Linux: привязываем несколько IP адресов к одной сетевой карте

На Debian / CentOS привязать несколько IP адресов к одной сетевой карте можно с помощью алиасов.
Достаточно прописать в файле /etc/network/interfaces следующую конфигурацию:


auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address XXX.YYY.ZZZ.AAA
netmask 255.255.255.0
network XXX.YYY.ZZZ.0
broadcast XXX.YYY.ZZZ.255
up route add -host AAA.BBB.CCC.DDD dev eth0
up route add default gw AAA.BBB.CCC.DDD
dns-nameservers AAA.BBB.CCC.DDD AAA.BBB.EEE.DDD
dns-search somehost.com
auto eth0:1
iface eth0:1 inet static
address XXX.YYY.ZZZ.BBB
netmask 255.255.255.0
network XXX.YYY.ZZZ.0
broadcast XXX.YYY.ZZZ.255
auto eth0:2
iface eth0:2 inet static
address XXX.YYY.ZZZ.CCC
netmask 255.255.255.0
network XXX.YYY.ZZZ.0
broadcast XXX.YYY.ZZZ.255

После этого перезапускаем сеть и наслаждаемся тремя IP адресами XXX.YYY.ZZZ.AAA,XXX.YYY.ZZZ.BBB, XXX.YYY.ZZZ.CCC на одном физическом интерфейсе eth0.
Привязанные адреса могут находиться и не в одной подсети, но тогда могут возникнуть некоторые проблемы с маршрутизаций; но эта проблема уже разруливается техподдержкой вашего хостера.

Прощай, Windows или глубокая настройка OpenSUSE

Выбирая для себя десктопный лиункс, я остановился на OpenSUSE. Народ очень хвалил Ubuntu, но первым попавшимся в мои руки дистрибутивом оказалась система OpenSUSE 10.3.

Установка была очень простой, в общем-то никаких сложностей она вызвать не может. Драйвера на практически все устройства встали без проблем (не опозналась только моя видеокарта ATI Radeon X1650 с 512 мегабайтами видеопамяти).

Еще меня ожидало неприятное разочарование, что в стандартном дистрибутиве этой операционки не оказалось кодеков для просмотра видео и проигрывания mp3. Проигрыватели, которые шли в дистрибутиве (Kaffeine, Totem Movie Player) можно смело сносить, толку от них никакого нет.

Чтобы превратить свою систему в полноценный десктоп, пришлось подключить дополнительные репозитории. Крайне рекомендую в Yast прописать следующие репозитории:

packman.unixheads.com/suse/10.3 – для кодеков и Media-плееров.
www2.ati.com/suse/10.3 – для установки свежайших драйверов видеокарты.

Начнем пожалуй, с драйверов видеокарты. Стандартный SVGA драйвер очень медленный, поэтому я установил 2 пакета программ:

  • ati-fglrxG01-kmp-default
  • x11-video-fglrxG01

после установки этих пакетов через Sax2 можно указать драйвер видеокарты fglrx вместо Radeon или SVGA.
Однако, после указанных манипуляций встроенный в видеокарту 3D-ускоритель так и не заработал.
Я довольно долго искал, в чем же причина; и в конце концов выяснилось, что утилита конфигурирования параметров монитора и видеокарты Sax2 неправильно прописала параметры карты в xorg.conf.
В секции Device файла xorg.conf она прописала строчку:

BusID «1.1.0»

что в принципе не позволило 3D-ускорителю заработать.

После того, как я руками исправил эту строчку на

BusID «PCI:1.1.0»

и перезапустил KDE, 3D-ускоритель заработал по полной программе.

После перезапуска Xwindows запустил в консоли:

glxinfo | grep direct

На что и получил утвердительный ответ: direct rendering: Yes

Решил проверить, как же быстро карточка отрисовывает кадры. Для этого в SUSE в пакетах fglrx предназначена небольшая утилита glxgears, которая на моей системе после 15-секундного тестирования показала следующую скорость рендеринга:

6026 frames in 5.0 seconds = 1205.160 FPS
6073 frames in 5.3 seconds = 1152.335 FPS
6952 frames in 5.0 seconds = 1390.392 FPS

А потом я поставил Quake3 и исптытал карточку в боевых условиях — все работает отлично, и скорость меня устроила.

Ну а для просмотра видео, рекомендую установить следующие пакеты:

w32codec-all — большинство фильмов с ними будут отлично смотреться
libdvdcss2 — для просмотра DVD
И один из лучших плееров — mplayer (в связке с gmplayer и mencoder ему равных нет).

В общем, я поставил себе все самое необходимое, и совершенно перестал пользоваться Windows. Даже для для скачивания файлов из локального хаба нашлась замечательная бесплатная софтина LinuxDC++ (бинарник называется linuxdcpp), которая у меня уже давно работает почти без перерыва.

Самое главное, весь вышеперечисленный софт совершенно бесплатный и лежит в открытом доступе.
Народ, отказывайтесь от Windows, под Linux’ом ничуть не хуже!

Как автоматически создавать поддомены

Задача: при обращении к поддомену сервер должен отдавать контент из соответствующей поддиректории для заданного VirtualHost.

Есть 2 способа решения задачи, и какой из них лучше – решайте сами.
В любом случае, сначала надо настроить WildCard DNS на домене, иначе ничего работать не будет.

Если Ваш проект хостится у firstvds или у minivds, то при добавлении домена на Ваш аккаунт файл зоны будет выглядеть примерно так:


$TTL 3600
domain.com. IN SOA ns1.minivds.com. root.mylogin.minivds.com. (2007041702 10800 3600 604800 86400)
;
domain.com. IN NS ns1.minivds.com.
domain.com. IN NS ns2.minivds.com.
domain.com. IN MX 10 mail
domain.com. IN MX 20 mail
domain.com. IN A XXX.YYY.ZZZ.WWW
www IN A XXX.YYY.ZZZ.WWW
ftp IN A XXX.YYY.ZZZ.WWW
mail IN A XXX.YYY.ZZZ.WWW
smtp IN A XXX.YYY.ZZZ.WWW
pop IN A XXX.YYY.ZZZ.WWW
domain.com. IN TXT "v=spf1 a mx ~all"

Чтобы включить WildCard DNS, достаточно в файл зоны добавить всего одну строчку и поменять цифры в serial number зоны. После исправлений файл доменной зоны будет выглядеть так:


$TTL 3600
domain.com. IN SOA ns1.minivds.com. root.mylogin.minivds.com. (2007041703 10800 3600 604800 86400)
;
domain.com. IN NS ns1.minivds.com.
domain.com. IN NS ns2.minivds.com.
domain.com. IN MX 10 mail
domain.com. IN MX 20 mail
domain.com. IN A XXX.YYY.ZZZ.WWW
www IN A XXX.YYY.ZZZ.WWW
ftp IN A XXX.YYY.ZZZ.WWW
mail IN A XXX.YYY.ZZZ.WWW
smtp IN A XXX.YYY.ZZZ.WWW
pop IN A XXX.YYY.ZZZ.WWW
* IN A XXX.YYY.ZZZ.WWW
domain.com. IN TXT "v=spf1 a mx ~all"

Через некоторое время можно попробовать пингануть домены abc.domain.com, asfwsegws.domain.com – доменное имя 3-го уровня должно определяться с тем же IP-адресом, что и доменное имя 2-го уровня.
Вот теперь можно переходить к настройке сабдоменов.

Способ номер 1: вносим изменения в httpd.conf
Выглядит это примерно так:


RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.domain.com
RewriteCond %{HTTP_HOST} !^cgi-bin\.domain\.com$ # запрещаем перенаправление для cgi-bin
RewriteCond %{HTTP_HOST} ^(www\.)?(([^\.]+)\.){1}domain.com$
RewriteCond /home/domain/data/www/domain.com/%3 -d
RewriteRule ^/(.*) /%3/$1

Перезапускаем apache и все – любая поддиректория, созданная в /home/domain/data/www/domain.com/ будет доступна как поддомен. Это самый правильный вариант создания поддоменов.

Но такой способ не будет работать на виртуалхостингах, поскольку доступ пользователю к httpd.conf никто не даст.

Способ номер 2: поддомены через .htaccess:


RewriteEngine on
RewriteCond %{HTTP_HOST} ^subdomain1.domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.subdomain1.domain.com$
RewriteRule ^(.*)$ http://www.domain.com/subdomain1/ [R=301,L]
RewriteCond %{HTTP_HOST} ^subdomain2.domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.subdomain2.domain.com$
RewriteRule ^(.*)$ http://www.domain.com/subdomain2/ [R=301,L]

В этом случае при обращении к subdomain1.domain.com или к www.subdomain1.domain.com пользователь будет перенаправлен на URL http://www.domain.com/subdomain1/ и он это заметит.