Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Виртуальные интерфейсы



Раньше компьютер с системой UNIX обычно служил сервером для одного веб-узла (например, acme.com). По мере роста популярности сети веб, практически каждый пользователь обзавелся собственным веб-узлом, и, как грибы после дождя, стали появ­ ляться тысячи новых компаний, занимающихся веб-хостингом.

Основные конфигурации интерфейса описаны в главе 14.

Провайдеры быстро осознали, что можно добиться существенной экономии средств и ресурсов, если на одном сервере размещать несколько узлов. Это позволило управлять группой узлов, таких как acme.com, ajах.com, toadranch.com и многие другие, ис­ пользуя одно и то же аппаратное обеспечение. На практике такой подход реализуется с помощью виртуальных интерфейсов.

Идея, лежащая в основе виртуальных интерфейсов, весьма проста: одиночный ком­ пьютер обслуживает больше IP-адресов, чем позволяют его физические сетевые интер­ фейсы. Каждый из “виртуальных” сетевых интерфейсов может иметь доменное имя, под которым он известен пользователям Интернета. Это позволяет единственному серверу обслуживать сотни веб-узлов.

Виртуальные интерфейсы позволяют демону идентифицировать соединения не толь­ ко по номеру порта назначения (например, порта 80 для HTTP), но и по целевому IP- адресу. В настоящее время виртуальные интерфейсы получили широкое распростране­ ние и оказались полезными не только для веб-хостинга.

Протокол HTTP 1.1 реализует функциональные возможности, подобные виртуаль­ ным интерфейсам (официально это называется “виртуальные интерфейсы, не имеющие IP-адреса”), устраняя потребность в назначении уникальных IP-адресов веб-серверам или в конфигурировании специального интерфейса на уровне операционной системы. Этот подход позволяет совместно использовать IP-адреса, что особенно полезно, когда один сервер содержит сотни или тысячи начальных страниц (например, в случае уни­ верситетских веб-узлов).

Однако такой подход нельзя назвать практичным для коммерческих узлов, посколь­ ку уменьшается степень их масштабируемости (приходится изменять IP-адрес при пере­ мещении узла на другой сервер) и возникает угроза безопасности системы (если доступ к узлу фильтруется брандмауэром на основе IP-адресов). Кроме того, виртуальные узлы,

Глава 23. Веб-хостинг 1013

основанные на именах, требуют, чтобы браузер поддерживал протокол SSL.3 Видимо, из-за этого ограничения настоящие виртуальные интерфейсы будут применяться еще долго.

Конфигурирование виртуальных интерфейсов

Настройка виртуального интерфейса проходит в два этапа. Сначала требуется соз­ дать виртуальный интерфейс на уровне TCP/IP. Как именно, зависит от версий системы UNIX; инструкции для разных версий системы UNIX приводятся ниже. На втором эта­ пе необходимо сообщить серверу Apache об имеющихся виртуальных интерфейсах. Этот этап также описан ниже.

Виртуальные интерфейсы в системе Linux

Виртуальные интерфейсы Linux обозначаются в формате интерфейс:экземпляр. Например, если интерфейс Ethernet называется eth0, то связанные с ним виртуальные интерфейсы именуются eth0:0, eth0:1 и т.д. Все интерфейсы конфигурируются с по­ мощью команды ifconfig. Например, команда

$ sudo ifconfig eth0:0 128.138.243.150 netmask 255.255.255.192 up

настраивает интерфейс eth0:0 и закрепляет за ним адрес в сети 128.138.243.128/26. Для того чтобы назначенные виртуальные адреса стали постоянными, необходимо мо­ дифицировать сценарии запуска системы.

В системе Red Hat требуется для каждого виртуального интерфейса создать отдельный файл в каталоге /etc/sysconfig/network-scripts. Например, файл ifcfg-eth0:0, соответствующий приведенной выше команде ifconfig, может содержать такие строки.

DEVICE=eth0:0

IPADDR=128.138.243.150

NETMASK=255.255.255.192

NETWORK=128.138.243.128

BROADCAST=128.138.243.191

ONBOOT=yes

Подход, принятый в системе Ubuntu, аналогичен подходу, используемому в си­ стеме Red Hat, за исключением того, что определения интерфейсов должны содержаться в файле /etc/network/interfaces. Записи, соответствующие ин­ терфейсу eth0:0, в нашем примере должны выглядеть следующим образом.

Iface eth0:0 inet static

address 128.138.243.150

netmask 255.255.255.192

broadcast 128.138.243.191

В системе SuSE можно создать виртуальные интерфейсы либо с помощью программы YaST, либо путем редактирования интерфейсных файлов. Для ис­ пользования программы YAST сначала на вкладке Global Options раздела Network Settings выберите команду Traditional method with ifup.

3 Относительно новая функциональная возможность Server Name Indication (SNI) позволяет использовать протокол SSL с виртуальными узлами, но старые браузеры этого делать не могут.

1014 Часть II. Работа в сети

В системе SUSE IP-адреса каждого интерфейса конфигурируются в одном файле. Для редактирования конфигурации поищите в каталоге /etc/sysconfig/network файлы, имена которых начинаются словами ifcfg-имя_интерфейса.

Например, в показанном ниже файле определяются интерфейсы eth0 и eth0:0.

IPADDR_1=128.138.243.149

NETMASK_1=255.255.255.192

STARTMODE_1="auto"

LABEL_1=0

 IPADDR_2=128.138.243.150

NETMASK_2=255.255.255.192

STARTMODE_2="autо"

LABEL_2=1

Суффиксы, следующие за именами IPADDR и NETMASK (в данном случае _1 и _2), не обязательно должны быть представлены числами, но для согласованности такое со­ глашение является вполне приемлемым. Для того чтобы виртуальные интерфейсы рас­ познавались, необходимо отредактировать файл /etc/sysconfig/network/config и установить параметр NETWORKMANAGER="no".

Виртуальные интерфейсы в системе Solaris

Система Solaris поддерживает виртуальные интерфейсы (“вспомогательные ин­ терфейсы”) посредством концепции физического интерфейса и логического модуля. Например, если hme0 — это имя физического интерфейса, то hme0:1, hme0:2 и так далее — это имена соответствующих виртуальных интерфейсов. По умолчанию с каж­ дым физическим интерфейсом может быть связано до 256 виртуальных сущностей. Если вы хотите изменить это ограничение, используя команду ndd, измените параметр ip_ addrs_per_if (описание команды ndd см. в разделе 14.13).

Для конфигурирования виртуального интерфейса просто примените команду ifconfig к одному из виртуальных имен. (Соответствующий физический интерфейс в этот момент уже должен быть “подключен”.) В большинстве случаев систему настраи­ вают так, чтобы команда ifconfig применялась к виртуальным интерфейсам во время загрузки.

Рассмотрим пример, в котором компьютер под управлением системы Solaris имеет адрес в пространстве частных адресов во внутренней частной виртуальной сети (VPN) и внешний адрес — в Интернете, причем оба адреса связаны с одним и тем же физиче­ ским устройством hme0. Для того чтобы эти интерфейсы автоматически конфигуриро­ вались во время загрузки, администратор должен отредактировать два файла имен узлов: /etc/hostname.hme0 и /etc/hostname.hme0:1.

$ ls -l /etc/host*

-rw-r--r-- 1 root 10 Nov 4 10:19 /etc/hostname.hme0 -rw-r--r-- 1 root 16 Dec 21 19:34 /etc/hostname.hme0:1

Файлы имен узлов могут содержат либо имена узлов из файла /etc/hosts либо IP- адреса. В данном случае администратор использовал каждую из этих возможностей.

$ cat /etc/hostname.hme0 overkill

$ cat /etc/hostname.hme0:1 206.0.1.133

$ grep overkill /etc/hosts 10.1.2.9 overkill overkill.domain

Глава 23. Веб-хостинг 1015

Во время загрузки оба адреса конфигурируются автоматически (вместе со шлейфо­ вым адресом, который мы пропустили).

$ ifconfig -а

hme0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu

1500 inet 10.1.2.9 netmask ffffff00 broadcast 10.1.2.255

hme0:1: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST> mtu

1500 inet 206.0.1.133 netmask ffffff80 broadcast 206.0.1.255

Виртуальные интерфейсы в системе HP-UX

В системе HP-UX все виртуальные интерфейсы можно добавлять с помощью коман­ ды ifconfig. Ее синтаксис очень похож на синтаксис, используемый в системе Solaris. Например, для того чтобы добавить первый интерфейс, следует выполнить такую ко­ манду.

$ sudo ifconfig lan0:1 192.168.69.1 up Виртуальные интерфейсы системы AIX

В системе AIX, для того чтобы добавить дополнительный IP-адрес для интерфейса, можно создать “псевдоним”. Например, для того чтобы добавить 192.168.1.3 как вирту­ альный IP-адрес интерфейса en0, можно использовать команду ifconfig.

$ sudo ifconfig en0 192.168.1.3 netmask 255.255.255.0 alias

Однако этот псевдоним является временным. Для того чтобы создать постоянный виртуальный IP-адрес, следует выполнить команду chdev.

$ sudo chdev -l en0 -a alias4=192.168.1.3,255.255.255.0

Передача серверу Apache информации о виртуальном интерфейсе

После создания виртуальных интерфейсов с помощью команды ifconfig требуется сообщить серверу Apache о том, какие документы должны обрабатываться при попытке подключения клиента к каждому интерфейсу (IP-адресу). Это можно сделать с помощью директивы VirtualHost файла httpd.conf. Каждому сконфигурированному виртуаль­ ному интерфейсу должна соответствовать одна такая директива. Приведем пример.

<VirtualHost 128.138.243.150>

ServerName www.company.com

ServerAdmin webmaster@www.company.com

DocumentRoot /var/www/htdocs/company

ErrorLog logs/www.company.com-error_log

CustomLog logs/www.company.com-access_log combined

ScriptAlias /cgi-bin/ /var/www/cgi-bin/company

</VirtualHost>

После подключения клиента к виртуальному узлу 128.138.243.150 будут обрабаты­ ваться документы из каталога /var/www/htdocs/company. Для настройки параме­ тров виртуального узла в раздел VirtualHost может включаться почти любая дирек­ тива веб-сервера Apache. Относительные пути к каталогам, включая пути для директив DocumentRoot, ErrorLog и CustomLog, интерпретируются в контексте ServerRoot.

Если виртуальные узлы имеют имена, то множественные имена в системе DNS ссы­ лаются на один и тот же IP-адрес. Конфигурация веб-сервера Apache остается прежней,

1016 Часть II. Работа в сети

но необходимо задать основной IP-адрес, который веб-сервер Apache должен прослуши­ вать в ожидании входящих запросов к именованному виртуальному узлу, и не указывать IP-адрес в разделе VirtualHost.

NameVirtualHost 128.138.243.150

<VirtualHost *>

ServerName www.company.com

ServerAdmin webmaster@www.company.com

DocumentRoot /var/www/htdocs/company

ErrorLog logs/www.company.com-error_log

CustomLog logs/www.company.com-access_log combined

ScriptAlias /cgi-bin/ /var/www/cgi-bin/company

</VirtualHost>

В этой конфигурации веб-сервер Apache ищет заголовки HTTP, чтобы определить требуемый сайт. Сервер прослушивает запросы к сайту www.company.com на его основ­ ном IР-адресе 128.138.243.150.

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.