Проблема, с которой я сталкиваюсь, следующие.
Я должен дать доступ в Интернет нескольким VLAN через единственный маршрутизатор Ubuntu 16.04.
VLAN 8021q отмечены и прибывают в маршрутизатор в интерфейсе ens1f1. VLAN называют vlan10, vlan20, vlan30, и vlan40. Интернет-восходящий канал подключен к enp0s25. Enp0s25 имеет статический общедоступный IP-адрес, присвоенный ISP. Восходящим устройством, подключенным к Enp0s25, не является способный VLAN.
Я спрашиваю Вас мудрые и высохшие инженеры или пакет manglers там, если Вы объяснили бы мне, как я могу направить, образовать мост, NAT или пакеты катапульты между теми VLAN и что большая путаница инфраструктуры мы называем Интернет. Тем временем я отступлю к своей ошибке бормотания стойки 418 (RFC 2324).
С уважением,
Kevin
Этот ответ предполагает, что Вы используете
iptables
брандмауэр на Вашем 'маршрутизаторе' и не что-то 'более легкое' какufw
, и это Вы правильно настроили маршрутизатор для обработки VLAN в данном интерфейсе.
То, что Вы ищете, называют "NAT". Это сделано по умолчанию на многих маршрутизаторах, однако по умолчанию не сделан в системах Linux.
Необходимо будет позволить IPv4, передающему также в системе заставить его работать. Добавьте это в конец /etc/sysctl.conf
:
net.ipv4.ip_forward = 1
Можно заставить это применяться путем выполнения sudo sysctl -p
впоследствии. Это включает способности передать трафик через.
Так как Ваш интернет-маршрут по умолчанию отсутствует к Общедоступному Интернету, но Вы хотите настроить NAT так, чтобы другие машины VLAN могли выйти в Интернет через Вашу систему, необходимо было бы настроить что-то вроде этого в iptables
:
iptables -t nat -A POSTROUTING -s ip.add.re.ss/24 ! -d ip.add.re.ss/24 -m comment --comment "Allow vlanXX to go to the Internet, masquerade as the public IP." -j MASQUERADE
Это - правило в таблице NAT для того, как направить трафик после того, как это прибыло в систему. Вам будут нужны три из этих правил, один для каждой подсети каждого VLAN. Корректироваться ip.add.re.ss
и vlanXX
соответственно соответствовать информации для Вашей сети конкретно.
Вы также должны иметь ACCEPT
правило в filter
таблица iptables
для FORWARD
, и Вы обычно делали бы это интерфейсом, как это, обновляя XX
объекты, чтобы быть числом VLAN:
iptables -t filter -A FORWARD -o ens1f1.XX -m comment --comment "NAT for vlanXX" -j ACCEPT
iptables -t filter -A FORWARD -i ens1f1.XX -m comment --comment "NAT for vlanXX" -j ACCEPT
После того как Вы сделали это, необходимо удостовериться, что Вы сохраняете iptables
правила. Идеально Вы сделали бы это, если бы Вы не имели установленным сначала и сказали это "Да", когда это просит сохранять Ваши правила:
sudo apt-get install iptables-persistent
... и это настроило бы iptables
правила при начальной загрузке правильно, а также сохраняют правила. Если Вы уже имеете iptables-persistent
, затем необходимо обновить правила, которые это загружает:
sudo su -c 'iptables-save > /etc/iptables/rules.v4'
... и теперь NAT MASQUERADE
правило будет существовать каждый раз, когда Вы загружаетесь.