Por que eu dou VLANs acesso à internet?

0

O desafio que enfrento é o seguinte.

Eu preciso dar acesso à internet a várias VLANs através de um único roteador Ubuntu 16.04.

As VLANs são 8021q marcadas e chegam ao roteador na interface ens1f1. As VLANs são denominadas vlan10, vlan20, vlan30 e vlan40. O uplink da internet está conectado ao enp0s25. Enp0s25 tem um endereço IP público estático atribuído pelo ISP. O dispositivo upstream conectado ao Enp0s25 não é compatível com VLAN.

Eu pergunto a vocês, engenheiros sábios ou experientes, se vocês poderiam me explicar como eu posso rotear, ligar, NAT ou catapultar pacotes entre essas VLANs e aquele grande emaranhado de encanamentos que chamamos de internet. Enquanto isso, vou me retirar para o meu armário resmungando o erro 418 (RFC 2324).

Atenciosamente,

Kevin

    
por Kevin Anderson 06.02.2018 / 16:53

1 resposta

1

% bl0ck_qu0te%

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.

    
por Thomas Ward 06.02.2018 / 17:26