Como configurar o servidor dual homed para que os dois segmentos de rede se comuniquem?

2

Queremos adicionar um segmento de rede adicional (LAN2) e precisar 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 a LAN2 da LAN1 ou LAN1 da LAN2 nem da WAN da LAN2. Gostaria de saber como fazer com que hosts LAN1 e LAN2 se comuniquem juntos e também como permitir o acesso à WAN de máquinas LAN2.

Solução de problemas

Eu obtenho as seguintes respostas usando ping:

IP             (source)         ---> IP           (destination)    : Ping reply
---------------------------------------------------------------------------
192.168.5.33   (client on LAN1) ---> 192.168.5.8  (SRV-01:eth0)    : OK
192.168.5.33   (client on LAN1) ---> 10.0.2.1     (SRV-01:eth1)    : NO
192.168.5.33   (client on LAN1) ---> 10.0.2.2     (SRV-02:eth0)    : NO
*.*.*.*.*      (SRV-01)         ---> 192.168.5.33 (client on 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 (client on LAN1) : NO

Topologia de rede

WAN --- (ISP Router) --- 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

O SRV-01 é um Ubuntu Server 14.04 dual-homed (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 / network / 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
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         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
localnet        *               255.255.255.0   U         0 0          0 eth0
~$ ip route show
default 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  scope 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á desativado no servidor "SRV-01" e todas as cadeias do iptables têm uma política padrão definida como ACCEPT target. Note que nenhum pacote único chegou à tabela FORWARD ainda ...

~$ sudo ufw status
Status: inactive
~$ sudo iptables -L -v | grep policy
Chain INPUT     (policy ACCEPT 369 packets, 28278 bytes)
Chain FORWARD   (policy ACCEPT 0 packets, 0 bytes)
Chain OUTPUT    (policy ACCEPT 187 packets, 19740 bytes)

servidor SRV-02

O SRV-02 é um servidor Ubuntu 14.04 com um adaptador de rede.

  • 10.0.2.2/24 (eth0, LAN2)

/ etc / network / interfaces

# Loopback
auto lo
iface lo inet loopback
# LAN2
iface eth0 inet static
    address 10.0.2.2
    netmask 255.255.255.0
    network 10.0.2.0
    broadcast 10.0.2.255
    dns-nameservers xxx.xxx.xxx.xxx

Roteamento

~$ netstat -r:
Kernel IP routing table
Destination     Gateway     Genmask         Flags   MSS Window  irtt Iface
default         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
~$ ip route show
default via 10.0.2.1 dev eth0 
10.0.2.0/24 dev eth0  proto kernel  scope link  src 10.0.2.2 

Firewall

O Ubuntu "Uncomplicated FireWall" (UFW) está desabilitado no servidor "SRV-02" e todas as cadeias do iptables possuem uma política padrão definida como ACCEPT target.

~$ sudo ufw status
Status: inactive
~$ sudo iptables -L -v | grep policy
Chain INPUT     (policy ACCEPT 0 packets, 0 bytes)
Chain FORWARD   (policy ACCEPT 0 packets, 0 bytes)
Chain OUTPUT    (policy ACCEPT 0 packets, 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 ...

    
por g0lem 07.10.2015 / 02:55

1 resposta

1

Existem dois problemas com esta configuração:

  1. Os hosts na LAN1 não sabem nada sobre o segmento LAN2. Quando você faz ping de um host na LAN1 (vamos chamá-lo de host1) do SRV-02, o pacote será encaminhado através do SRV-01 e chegará ao host1. No entanto, o host1 enviará a resposta para o gateway padrão (roteador ISP), pois não possui uma rota específica para a LAN2. (O roteador do ISP também a) também o enviará ao seu gateway padrão, pois ele também não sabe sobre a LAN2, ou b) descartará o pacote, pois ele vem de uma fonte desconhecida, não da LAN local.
  2. Ao tentar acessar a WAN da LAN2, os pacotes serão encaminhados através do roteador SRV-02 para o ISP, onde duas situações são possíveis:
    • O roteador não irá traduzir NAT o pacote como a fonte do pacote (LAN2) não é sua LAN local (esta é a situação mais provável), ou
    • O roteador irá NAT traduzir o pacote e enviá-lo para a Internet. No entanto, quando a resposta chegar e o destino for convertido de volta para o endereço da LAN2, o pacote não será entregue, pois o roteador do 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 ao roteador LAN2 para ISP e adicionando uma configuração NAT de origem para LAN2 no SRV-01. No entanto, isso não é possível devido a nenhum acesso de administrador ao roteador do provedor.

Existem duas soluções para contornar:

Torne o SRV-01 um roteador completo para hosts LAN1 e LAN2

  • Adicione outro adaptador de rede ao SRV-01 (totalizando 3 no total)
  • Altere a topologia da seguinte forma:

.

WAN -> ISP router -> LAN1 -> SRV-01 +-> LAN3 (for hosts originally in LAN1)
                                    +-> LAN2 -> SRV-02

Basicamente, estamos transformando o SRV-01 em um roteador para os dois segmentos da LAN.

  • Isso exigirá a movimentação de hosts originalmente em 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 / network / 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 de 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

Como alternativa, se você optar por manter o endereço IP estático no SRV-01 na eth0, as regras poderão ser alteradas (embora MASQUERADE ainda funcione):

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, na eth2 (LAN2), se necessário. (Em ambos os casos, o gateway será o endereço local de eth1 ou eth2, respectivamente, mas não é preciso dizer:)

Isso possibilitará 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. Torne SRV-01 um servidor DHCP para LAN1

Essa abordagem não é tão limpa quanto acima, mas é um pouco mais simples. Ele assume que você é capaz de desabilitar o DHCP no roteador ISP

  • Desativar DHCP no roteador do provedor de serviços de Internet
  • Configure o DHCP para a LAN1 no SRV-01 e torne o SRV-01 (192.168.5.8) o gateway padrão para a LAN1
  • Configure a conversão NAT de origem para LAN2 no 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 ativa o SNAT para que os hosts LAN2 possam acessar o próprio roteador do ISP e a segunda linha desative o SNAT para o acesso LAN2-LAN1.

Mais uma vez, essa abordagem não é tão limpa quanto a anterior, pois há dois roteadores na mesma sub-rede (SRV-01, roteador ISP). Quando eu usei essa abordagem eu notei 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. Isso pode não ser desejado, pois as políticas de rede implementadas no SRV-01 poderiam ser contornadas.

Espero que ajude.

    
por 08.10.2015 / 10:35