Queremos adicionar um segmento de rede adicional (LAN2) e precisamos de algumas máquinas na LAN1 para acessar recursos na LAN2. Algumas máquinas na LAN2 também precisam acessar recursos na LAN1 e no segmento WAN. O gateway entre LAN1 e LAN2 é chamado de "SRV-01", um servidor Linux dual homed.
Não consigo acessar LAN2 de LAN1 ou LAN1 de LAN2 nem WAN de LAN2. Gostaria de saber como fazer os hosts LAN1 e LAN2 conversarem entre si e também como permitir o acesso à WAN a partir de máquinas LAN2.
Solução de problemas
Recebo as seguintes respostas usando ping:
IP (origem) ---> IP (destino): resposta de ping -------------------------------------------------- ------------------------- 192.168.5.33 (cliente na LAN1) ---> 192.168.5.8 (SRV-01:eth0): OK 192.168.5.33 (cliente em LAN1) ---> 10.0.2.1 (SRV-01:eth1): NÃO 192.168.5.33 (cliente em LAN1) ---> 10.0.2.2 (SRV-02:eth0): NÃO *.*.*.*.* (SRV-01) ---> 192.168.5.33 (cliente em LAN1): OK *.*.*.*.* (SRV-01) ---> 10.0.2.2 (SRV-02:eth0): OK 10.0.2.2 (SRV-02) ---> 10.0.2.1 (SRV-01:eth1): OK 10.0.2.2 (SRV-02) ---> 192.168.5.8 (SRV-01:eth0): OK 10.0.2.2 (SRV-02) ---> 192.168.5.33 (cliente em LAN1): NÃO
Topologia de rede
WAN --- (Roteador ISP) --- LAN1 --- (SRV-01) --- LAN2 --- (SRV-02)
Roteador ISP
O roteador do provedor de serviços de Internet (ISP) fornece NAT (dois adaptadores de rede) e atua como um servidor DHCP para LAN1. Não temos acesso shell/admin a este equipamento.
- xxx.xx.xx.xx/xx (eth0, WAN)
- 192.168.5.4/24 (eth1, LAN1)
Servidor SRV-01
SRV-01 é um Ubuntu Server 14.04 de hospedagem dupla (dois adaptadores de rede) que atuaria como um gateway entre a sub-rede LAN1 e a sub-rede LAN2.
- 192.168.5.8/24 (eth0, LAN1)
- 10.0.2.1/24 (eth1, LAN2)
/etc/rede/interfaces
# Loopback
auto lo
iface lo inet loopback
# LAN1
auto eth0
iface eth0 inet static
address 192.168.5.8
netmask 255.255.255.0
network 192.168.5.0
broadcast 192.168.5.255
gateway 192.168.5.4
dns-nameservers xxx.xxx.xxx.xxx
# LAN2
auto eth1
iface eth1 inet static
address 10.0.2.1
netmask 255.255.255.0
network 10.0.2.0
broadcast 10.0.2.255
dns-nameservers xxx.xxx.xxx.xxx
Roteamento
~$ netstat -r Tabela de roteamento IP do kernel Gateway de destino Genmask sinaliza janela MSS irtt Iface padrão 192.168.5.4 0.0.0.0 UG 0 0 0 eth0 10.0.2.0 * 255.255.255.0 U 0 0 0 eth1 rede local * 255.255.255.0 U 0 0 0 eth0
~$ exibição de rota ip padrão via 192.168.5.4 dev eth0 10.0.2.0/24 dev eth1 proto kernel scope link src 10.0.2.1 192.168.5.0/24 dev eth0 proto kernel escopo link src 192.168.5.8
Encaminhamento de IP
~$ sudo sysctl -a | grep net.ipv4.ip_forward net.ipv4.ip_forward = 1 net.ipv4.ip_forward_use_pmtu = 0
Firewall
O Ubuntu "Uncomplicated FireWall" (UFW) está desabilitado no servidor "SRV-01" e todas as cadeias de iptables têm uma política padrão definida como alvo ACCEPT. Observe que nenhum pacote chegou à tabela FORWARD ainda...
~$ sudo status ufw Status: inativo
~$ sudo iptables -L -v | política grep Chain INPUT (política ACCEPT 369 pacotes, 28278 bytes) Cadeia FORWARD (política ACCEPT 0 pacotes, 0 bytes) Cadeia OUTPUT (política ACCEPT 187 pacotes, 19.740 bytes)
Servidor SRV-02
SRV-02 é um Ubuntu Server 14.04 com um adaptador de rede.
- 10.0.2.2/24 (eth0, LAN2)
/etc/rede/interfaces
# Loopback auto el iface lo inet loopback #LAN2 iface eth0 inet estático endereço 10.0.2.2 máscara de rede 255.255.255.0 rede 10.0.2.0 transmissão 10.0.2.255 servidores de nomes dns xxx.xxx.xxx.xxx
Roteamento
~$ netstat -r: Tabela de roteamento IP do kernel Gateway de destino Genmask sinaliza janela MSS irtt Iface padrão 10.0.2.1 0.0.0.0 UG 0 0 0 eth0 10.0.2.0 * 255.255.255.0 U 0 0 0 eth0
~$ exibição de rota ip padrão via 10.0.2.1 dev eth0 10.0.2.0/24 dev eth0 proto kernel escopo link src 10.0.2.2
Firewall
O Ubuntu "Uncomplicated FireWall" (UFW) está desabilitado no servidor "SRV-02" e todas as cadeias de iptables têm uma política padrão definida como alvo ACCEPT.
~$ sudo status ufw Status: inativo
~$ sudo iptables -L -v | política grep Chain INPUT (política ACCEPT 0 pacotes, 0 bytes) Cadeia FORWARD (política ACCEPT 0 pacotes, 0 bytes) Chain OUTPUT (política ACCEPT 0 pacotes, 0 bytes)
O que estou perdendo aqui? Gostaria de saber qual rota estática deve ser adicionada ao SRV-01 e também se os gateways padrão estão configurados corretamente...
Responder1
Existem dois problemas com esta configuração:
- Os hosts na LAN1 não sabem nada sobre o segmento LAN2. Quando você executa ping em um host na LAN1 (vamos chamá-lo de host1) do SRV-02, o pacote será roteado através do SRV-01 e alcançará o host1. No entanto, o host1 enviará a resposta ao seu gateway padrão (roteador ISP), pois não possui uma rota específica para a LAN2. (O roteador ISP a) também o enviará para seu gateway padrão, pois também não conhece a LAN2, ou b) descartará o pacote, pois ele vem de uma fonte desconhecida e não da LAN local.)
- Ao tentar acessar a WAN da LAN2, os pacotes serão roteados através do SRV-02 para o roteador ISP onde duas situações são possíveis:
- O roteador não traduzirá o pacote por NAT, pois a origem do pacote (LAN2) não é sua LAN local (esta é a situação mais provável), ou
- O roteador fará a tradução NAT do pacote e o enviará para a Internet. No entanto, quando a resposta chegar e o destino for traduzido de volta para o endereço LAN2, o pacote não será entregue porque o roteador ISP não possui uma rota para essa rede. O pacote será enviado incorretamente para o gateway padrão (ISP).
Esses problemas podem ser corrigidos adicionando uma rota estática à LAN2 para o roteador ISP e adicionando uma configuração NAT de origem para LAN2 no SRV-01. No entanto, isso não é possível devido à falta de acesso de administrador ao roteador ISP.
Existem duas soluções que contornam isso:
A. Faça do SRV-01 um roteador completo para hosts LAN1 e LAN2
- Adicione outro adaptador de rede ao SRV-01 (tornando 3 no total)
- Altere a topologia da seguinte maneira:
.
WAN -> ISP router -> LAN1 -> SRV-01 +-> LAN3 (for hosts originally in LAN1)
+-> LAN2 -> SRV-02
Basicamente, estamos fazendo do SRV-01 um roteador para ambos os segmentos de LAN.
- Isso exigirá mover hosts originalmente na LAN1 para uma nova sub-rede LAN3 - digamos que usamos
10.0.1.0/24
- A configuração de rede do SRV-01 precisará ser alterada da seguinte forma:
/etc/rede/interfaces:
# LAN1 - to ISP router
auto eth0
iface eth0 inet dhcp
# we can even use dhcp as the IP address is not really important
# - there are no more hosts on LAN1 apart from ISP router and SRV-01
# LAN3 - for hosts originally in LAN1
iface eth1
address 10.0.1.1
netmask 255.255.255.0
# LAN2
iface eth2
address 10.0.2.1
netmask 255.255.255.0
Regras do iptables para fazer o acesso WAN funcionar:
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.2.0/24 -j MASQUERADE
Alternativamente, se você optar por manter o endereço IP estático em SRV-01 na eth0, as regras poderão ser alteradas (embora MASQUERADE
ainda funcionem):
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -j SNAT --to-source 192.168.5.8
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.2.0/24 -j SNAT --to-source 192.168.5.8
- O DHCP precisará ser configurado no SRV-01 na eth1 (LAN3, para hosts originalmente na LAN1) e possivelmente também na eth2 (LAN2), se necessário. (Em ambos os casos, o gateway será o endereço local de eth1 ou eth2 respectivamente, mas nem é preciso dizer :)
Isto tornará possível a comunicação entre LAN3 e LAN2 (via SRV-01 que é o gateway padrão para ambos). O acesso WAN também funcionará a partir de LAN3 e LAN2 graças ao NAT de fonte dupla.
B. Faça do SRV-01 um servidor DHCP para LAN1
Esta abordagem não é tão limpa como acima, mas é um pouco mais simples. Ele pressupõe que você é capaz de desabilitar o DHCP no roteador ISP
- Desative o DHCP no roteador ISP
- Configure o DHCP para LAN1 em SRV-01 e torne SRV-01 (192.168.5.8) o gateway padrão para LAN1
- Configure a tradução NAT de origem para LAN2 em SRV-01 para que o acesso WAN funcione a partir de LAN2:
.
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.2.0/24 -d 192.168.5.4 -j SNAT --to-source 192.168.5.8
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.2.0/24 ! -d 192.168.5.0/24 -j SNAT --to-source 192.168.5.8
A primeira linha habilita o SNAT para que os hosts LAN2 possam acessar o próprio roteador ISP e a segunda linha desabilita o SNAT para acesso LAN2-LAN1.
Novamente, essa abordagem não é tão simples quanto a anterior, pois há dois roteadores na mesma sub-rede (SRV-01, roteador ISP). Quando usei essa abordagem, percebi que meu segundo roteador (SRV-01 neste cenário) enviaria redirecionamentos ICMP para o roteador ISP, pois veria que o cliente (host na LAN1) e o roteador upstream (roteador ISP) estão no mesma LAN. Isto pode não ser desejado, pois as políticas de rede implementadas no SRV-01 poderiam ser contornadas.
Espero que ajude.