Я пытаюсь установить рабочее соединение между моей локальной сетью и Интернетом. Сначала я настраиваю мост (br0, имеет IP-адрес, а у других интерфейсов нет) между eth0 (LAN) и eth1 (internet), и создал правило nat в iptables, чтобы замаскировать исходный IP-адрес локального IP-адреса в локальной сети. . Все работает отлично, и я могу получить доступ к Интернету из подсети 192.168.1.0.
Теперь я хочу создать два vlan: 100 и 200. Я попытался использовать vconfig для создания eth0.100 и eth0.200, но не могу понять, как подключить их к Интернету. Пакеты из моей локальной сети прибыли с тегами vlan Id 100/200, и трафик проходит через eth1. Но как я могу заставить пакеты возвращаться на правильный eth0.x?
Я подумал о создании двух мостов, один для vlan 100 и один для 200, и подключить их к eth1. Но опять же, как мне направить пакеты, полученные из Интернета, на правильный мост?
Текущая настройка:
eth0 <--> br0 <--> eth1
предложил:
1.
eth0.100 <--> br100 <--> eth1
eth0.200 <--> br200 <--> eth1
2.
eth0.100 и eth0.200 <--> br0 <--> eth1
Вам необходимо направить трафик из LAN в WAN.
Это делается маршрутизатором, а не мостом, поэтому он должен выглядеть так:
eth0 (192.168.1.0/24) <==> eth1 (общедоступный Интернет)
Для vlan 100 и 200, как направить трафик в правильную VLAN? Создавая разные подсети для каждой VLAN, чтобы ваш хост знал, какой vlan является правильным выходным интерфейсом, теперь он должен выглядеть так:
eth0.100 (192.168.100.0/24) <==> eth1 (общедоступный Интернет)
eth0.200 (192.168.200.0/24) <==> eth1 (общедоступный Интернет)
Запомните NAT для обоих случаев:
iptables -I POSTROUTING -t nat -o eth1 -j MASQUERADE