Как стать автором
Обновить

Простой проброс VLAN

Привет Хабр! Сегодня я расскажу, как без особых затрат и дополнительных физических интерфейсов пробросить локальную сеть провайдера в свою домашнюю сеть. Идея возникла после появления в сети нашего провайдера полноценного IPTV. Можно, конечно, было настроить iptables на форвардинг мультикаста, но это вышло бы накладно с точки зрения ресурсов сервера, поэтому я задался задачей сделать это при помощи 802.1q VLAN.

Сеть нашего провайдера построена так: локальная сеть (eth0) DHCP 10.0.0.0/8 (грубо говоря, имеется разделение по подсетям), интернет PPPoE (ppp0). Поскольку у меня сеть провайдера приходит на скорости 1 Гбит, а гигабитных портов на свиче всего 2 (DES3526), пришлось завести приходящий провод напрямую в сервер, в противном случае на мой основной компьютер гигабит не приходил бы. Или он не приходил бы на сервер, что тоже не есть гуд. Так как же сделать так, чтобы локальная сеть провайдера приходила на нужный порт и не обрабатывалась IPtables? Просто! Для начала установим нужные пакеты:

sudo apt-get install vlan bridge-utils

Затем подгружаем модуль ядра 802.1q:

sudo modprobe 8021q

Делаем автозагрузку модуля:

sudo echo 8021q > /etc/modules

Далее нам надо создать vlan на нашем домашнем интерфейсе (в моем случае это eth1), для этого добавляем в /etc/network/interfaces следующее:

auto eth1.7
iface eth1.7 inet manual


Итак, Vlan с номером 7 у нас создан на интерфейсе eth1 без ip-адреса, ибо он нам не нужен. Теперь надо направить локальный трафик с eht0 в Vlan, для этого меняем в /etc/network/interfaces настройки eth0 на мост:

Убираем IP с eth0:
auto eth0
iface eth0 inet manual

Создаем мост:
auto br0
iface br0 inet dhcp
bridge_ports eth0 eth1.7

В принципе, тут бы можно и остановиться, но после подъема моста отваливается PPPoE. Решается это так: для начала в настройках нашего PPPoE в /etc/network/interfaces правим автоподнимаемый интерфейс с eth0 на br0:

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig br0 up # line maintained by pppoeconf
provider dsl-provider


Затем надо ткнуть демона мордой в интерфейс, где искать PPPoE, для этого правим /etc/ppp/peers/dsl-provider, где меняем строку:

plugin rp-pppoe.so eth0 на
plugin rp-pppoe.so br0

Ну вот мы и подошли к проверке работоспособности нашего моста. Начинаем с поднятия интерфейсов:

sudo ifup eth1.7

Разрываем связь с внешним миром:

sudo poff dsl-provider

Поднимаем мост:

sudo ifup br0

Поднимаем PPPoE:

sudo pon dsl-provider

Если все настройки сделаны правильно, то все заработает сразу. Осталось только направить Vlan на необходимый порт нашего свича или роутера (если роутер поддерживает 802.1q Vlan.)

Всю историю этой задачи в процессе решения вы можете так же посмотреть тут.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.