Roteador ISP

Roteador ISP

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:

  1. 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.)
  2. 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 usamos10.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 MASQUERADEainda 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.

informação relacionada