Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Сергей Супрунов
Представьте себе ситуацию: узел СПД в составе маршрутизатора CISCO и коммутатора Catalyst находится на первом этаже, а ваш FreeBSD-сервер – на четвертом. И при этом требуется вывести во внешний мир несколько подсетей, которые проходят через сервер FreeBSD на Catalyst. Можно, конечно, подключить к серверу несколько сетевых адаптеров, занять для внутреннего использования несколько портов на Catalyst и пробросить между этажами километр кабеля 5-й категории. На кабеле можно даже сэкономить, пропустив по одному кабелю сразу два соединения и задействовав тем самым все имеющиеся пары. Однако все равно и затрат, и дополнительных работ по прокладке кабелей получается слишком много. А раз возникает сложность, то наверняка кто-то уже нашел способ ее устранить. И в нашем случае панацеей будет технология VLAN – виртуальные локальные сети.
Данная технология позволяет логически разделять несколько подсетей на одном устройстве (например, коммутаторе) таким образом, что машины, объединенные в одну VLAN, ничего не знают о существовании компьютеров, входящих в другую. И с точки зрения топологии сети мы получаем отдельные коммутаторы для каждой подсети.
На уровне протоколов это достигается добавлением нескольких полей в заголовок пакета сетевого уровня. Одно из добавленных полей содержит идентификатор (номер) сети VLAN, на основе которого и происходит разделение Ethernet-кадров по виртуальным сетям. Кадры, имеющие одинаковый номер VLAN, рассматриваются как принадлежащие одной подсети. Регламентируется это стандартом IEEE 802.1Q.
Развитие технологии VLAN привело к тому, что стало возможным не только назначать отдельные подсети отдельным портам, но и через один порт пропускать несколько VLAN (так называемый multiVLAN). То же относится и к сетевым адаптерам, чем мы и воспользуемся.
Рассмотрим настройку VLAN для FreeBSD на следующем примере: пусть имеется один отрезок кабеля между Catalyst и FreeBSD. На Catalyst свободен один порт, на FreeBSD – одна сетевая карта, обслуживающая внешние соединения. Нужно через это соединение организовать передачу следующих подсетей:
n подсеть реальных адресов для работы в Интернете (111.222.0.0/28);
n корпоративная частная подсеть для доступа к вышестоящим узлам компании (10.0.123.0/24);
n и еще одна сеть для управления оборудованием СПД (10.254.0.0/24).
Прежде всего нужно проверить, поддерживает ли ваша сетевая карта работу по VLAN. Некоторые карты обеспечивают поддержку данной технологии на аппаратном уровне, однако драйвер также должен поддерживать VLAN. Страница справочного руководства (см. man vlan) для FreeBSD 5.2 сообщает, что аппаратное мультиплексирование поддерживается для драйверов bge, em, gx, nge, ti и txp. (Во FreeBSD 5.3 к этому списку добавился еще и драйвер re, обеспечивающий работу сетевых адаптеров на чипсетах RealTek 8139C+/8169/8169S/8110S). Узнать подробную информацию по каждому из драйверов, в том числе список поддерживаемых драйвером моделей сетевых карт, можно на страницах man (например, man 4 em сообщает, что драйвером em поддерживается Intel PRO/1000 Gigabit Ethernet adapter). Если ваш адаптер не входит в этот список, то наверняка он сможет работать с использованием программной эмуляции мультиплексирования. По крайней мере, для большинства современных карт это утверждение справедливо. Нужно заметить, что тот же man vlan гласит, что сетевой адаптер для полноценной эмуляции должен поддерживать «длинные» кадры (oversized frames). В противном случае из-за необходимости размещения дополнительных полей заголовка, содержащих информацию о VLAN, которой принадлежит пакет, приходится снижать максимальный размер передаваемого пакета (MTU) на соответствующем интерфейсе.
Драйвера сетевых адаптеров, поддерживающих длинные кадры, перечислены в man vlan, однако данный список нельзя считать исчерпывающим, поскольку с 2002 года (когда писались страницы руководства) ситуация изменилась в лучшую сторону и перечень совместимых сетевых карт значительно расширился. По крайней мере, D-Link DFE-538TX, работающий на драйвере rl, отсутствующем в списке, никаких нареканий с моей стороны не вызвал. (Замечание: во FreeBSD 5.3 поддержка vlan значительно расширена, и теперь поддержка длинных кадров драйвером rl оформлена официально.)