Просто из любопытства решил посмотреть, что творится на этом фронте у других ОС, которые можно было бы взгромоздить на x86-роутер.
И оказалось, что актуальная OpenBSD умеет это "из коробки".
В этом примере сервер с OpenBSD подключен интерфейсом em0 в коммутатор ядра, где в вилане 281 ходит LDP. Рабочая машина, воткнута в порт em1, должна оказаться в VPLS-бридже (виртуальный коммутатор), находящемся на маршрутизаторе где-то в далёкой серверной и получить оттуда адрес по dhcp.
Т.е. компы со всей необъятной сети, подключенные в этот бридж, "считают", что находятся за одним обычным коммутатором.
Создаём vlan-интерфейс:
# ifconfig em0 up # ifconfig em0 mtu 2000 # ifconfig vlan281 create # ifconfig vlan281 vlan 281 vlandev em0 # ifconfig vlan281 up mpls # ifconfig vlan281 10.100.15.133/30 # ifconfig vlan281 mtu 1600Для работы LDP нужен выделенный лупбек (вообще, хорошим тоном является создание на каждом маршрутизатор лупбек-интерфейса с ip-адресом, и использование это ip-адреса в качестве router-id для разных протоколов).
# ifconfig lo1 10.100.223.220/32Создаём pseudowire-интерфейс и бриджуем его с физическим портом.
# ifconfig mpw0 create # ifconfig mpw0 up # ifconfig em1 up # ifconfig bridge0 create # ifconfig bridge0 up # ifconfig bridge0 add em1 # ifconfig bridge0 add mpw0Надо добавить параметр в файл /etc/pf.conf:
set reassemble no
Теперь ospf с ядром:
router-id 10.100.223.220 area 0.0.0.0 { interface lo1 interface vlan281 }Запускаем ospfd.
И наконец ldp:
router-id 10.100.223.220 l2vpn OFFICE type vpls { bridge bridge0 interface em1 pseudowire mpw0 { neighbor-id 10.100.223.18 pw-id 1111 } } address-family ipv4 { interface vlan281 }Запускаем ldpd. Проверяем:
# ldpctl show l2vpn pseudowires Interface Neighbor PWID Status mpw0 10.100.223.18 1111 UP
Пробуем получать на тестовой машине dhcp.
Комментариев нет:
Отправить комментарий