Skip to content

Делаем по-взрослому (изучаем vlan`ы)

Первый раз с самим понятием вланов (virtual LAN, VLAN) я столкнулся, проживая в студенческом общежитии (как будто я там сейчас не живу — прим. авт). Универ после ремонта разродился на нормальную ЛВС — с розетками в каждой комнате, коммутационными шкафами на лестничных клетках и 48-портовыми д-линками на этаж. На каждое общежитие студгородка было выделено по 2 влана, что добавило геморроя в настройке, но позволило избавиться от лишних бродкастов (с другой стороны, всякие VypressChat уже не работали). Сама идея очень даже неплоха — пользователи отделяются друг от друга на канальном уровне, можно крутить разные подсети на одном коммутаторе и прочие плюшки.

Интернет в общаге раздается весьма своеобразно — через два сервера. На одном крутится две дсл, на другом — еще три. Модемы подключены напрямую, т.е. в одном сервере стоит три сетевушки, во втором — четыре. Это накладывает существенные ограничения во-первых на железо (найти плату с 3 и более PCI-разъемами сложновато), а во-вторых на масштабируемость — добавлять новые сетевухи это не наш метод :). Т.к. под рукой совершенно случайно оказался управляемый DES-1226G с поддержкой вланов, решено было через этот самый коммутатор подключать модемы, оставив на серверах по две сетевушки — на вход и на выход. На «входящей», соответственно висели интерфейсы общежитских сетей, на «выходящей» — вланы модемов.
Создается влан-интерфейс чрезвычайно просто:

snake@snake [snake]#ifconfig vlan1692 create vlan 1692 vlandev em1 inet 192.169.2.2 netmask 255.255.255.0

Здесь:
vlan1692 — имя интерфейса
vlan 1692 — так называемый тэг влана (если мы собираемся принимать на этом интерфейсе только тэгированный трафик, что и требуется)
vlandev em1 — указывает родительский интерфейс (транк) на котором и будет висеть влан
далее идет обычная настройка — ip, маска и т.д.
Чтобы изменения сохранились после перезагрузки, в rc.conf нужно добавить следующие строки:

snake@snake [snake]#cat /etc/rc.conf
hostname="snake.hostel5.ru"
ifconfig_em0="inet 10.1.0.1 netmask 255.255.255.0"
cloned_interfaces="vlan1205 vlan1690 vlan1691 vlan1692 vlan1693 vlan1694 vlan1695"
ifconfig_vlan1205="inet 10.12.5.254 netmask 255.255.255.0 vlan 1205 vlandev em0"
ifconfig_vlan1690="inet 192.169.0.2 netmask 255.255.255.0 vlan 1690 vlandev em1"
ifconfig_vlan1691="inet 192.169.1.2 netmask 255.255.255.0 vlan 1691 vlandev em1"
ifconfig_vlan1692="inet 192.169.2.2 netmask 255.255.255.0 vlan 1692 vlandev em1"
ifconfig_vlan1693="inet 192.169.3.2 netmask 255.255.255.0 vlan 1693 vlandev em1"
ifconfig_vlan1694="inet 192.169.4.2 netmask 255.255.255.0 vlan 1694 vlandev em1"
ifconfig_vlan1695="inet 192.169.5.2 netmask 255.255.255.0 vlan 1695 vlandev em1"

В нашем случае создается 7 vlan-интерфейсов — один на «входящей» сетевушке — для общежитской сети, и еще 6 на «выходящей» — часть из них используется для связи с модемами, часть — просто для мониторинга и управления.

Удалить влан интерфейс:

snake@snake [snake]#ifconfig vlan1692 destroy

Не забываем настроить соответствующим образом порты коммутатора — порт, к которому подключается «выходящая» сетевая карта сервера, должен пропускать только тэгированный трафик, порты, к которым подключены модемы — нетэгированный (потому как модемы в большинстве своем про всякую экзотику типа vlan слыхом не слыхивали), причем PVID порта должен совпадать с номером нужного влана (а у нас длинк, к слову. у других производителей все может быть совсем по другому).
Приведу простой пример — «выход» сервера подключен к 10 порту коммутатора. Модемы — соответственно к 11,12 и 13 портам. На 10 порту прописываются соответствующие вланы (для каждого модема отдельный, как мы помним) — все тэгированные, PVID не столь важен, потому что трафик будет пропускаться только тэгированный (от сервера либо с другого порта коммутатора).
На портах, к которым подключены модемы (11,12 и 13) прописываем по влану с опцией untag, и назначаем этим портам PVID, соответствующий номеру влана — таким образом весь нетэгированный трафик на этом порту будет считаться трафиком данного влана.
Если все настроено правильно — модемы должны пинговаться (если правильно настроены ип), и pppoe должен нормально подниматься. Если нет — смотрим, где и что недонастроили (например, интерфейс в настройках mpd).

Всяческие замечания, предложения и критика приветствуются.

5 комментариев

  1. Марек Марек

    Ну а фаервол при этом как настроен?

    • Марек Марек

      ага
      а вот если в один из портов DES-а воткнуть ип-телефон и дать ему вилан отдельный, тогда как с фаерволом? (я начинающий, но даже не сисадмин, просто случилась необходимость пробросить сиповский трафик)

      • admin admin

        на том порту, где висит телефон, вешаем untag vlan, на вход и tag vlan на выход. На сервере создаем влан-интерфейс и разрешаем трафик внутри него

    • admin admin

      самым обычным образом — тот трафик, который нужно пропустиьт, пропускается, остальной блокируется

      • Марек Марек

        да, методом тыка уже)
        за виланы спасибо)

Добавить комментарий

%d такие блоггеры, как: