O que você está procurando é chamado de "NAT". Isso é feito por padrão em muitos roteadores, mas por padrão não é feito em sistemas Linux.
Você precisará ativar o encaminhamento IPv4 também no sistema para que ele funcione. Adicione isto ao final de /etc/sysctl.conf
:
net.ipv4.ip_forward = 1
Você pode fazer isso para aplicar sudo sysctl -p
depois. Isso permite a capacidade de encaminhar o tráfego.
Como sua rota padrão da Internet está fora da Internet pública, mas você deseja configurar o NAT para que as outras máquinas da VLAN possam acessar a Internet pelo sistema, você precisará configurar algo assim em 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
Esta é uma regra na tabela NAT de como rotear o tráfego depois que ele chega ao sistema. Você precisará de três dessas regras, uma para cada sub-rede de cada VLAN. Ajuste ip.add.re.ss
e vlanXX
de acordo para corresponder especificamente às informações da sua rede.
Você também precisa ter uma regra ACCEPT
na tabela filter
de iptables
para FORWARD
, e você normalmente faria isso por meio de interface, assim, atualizando os itens XX
para ser a vlan número:
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
Depois de fazer isso, você precisa salvar as regras iptables
. O ideal seria fazer isso se você não o instalasse primeiro e dissesse "Sim" quando ele pedisse para salvar suas regras:
sudo apt-get install iptables-persistent
... e isso configuraria as regras iptables
na inicialização corretamente, além de salvar as regras. Se você já tiver iptables-persistent
, precisará atualizar as regras carregadas:
sudo su -c 'iptables-save > /etc/iptables/rules.v4'
... e agora a regra NAT MASQUERADE
estará em vigor toda vez que você inicializar.