Questão roteamento entre interfaces e nat (aliasing ip)


Eu tenho 2 servidores, ambos conectados por switch0 (sem vlan) server1 tem 2 NICS

eth0 --> switch0
ppp0 --> modem --> internet
cat /proc/sys/net/ipv4/ip_forward 1

192.168.1.0/24
192.168.1.212 netmask 255.255.255.0

rota:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0
10.10.10.0      10.10.10.1      255.255.255.0   UG    0      0        0 tun0
10.10.10.1      0.0.0.0         255.255.255.255 UH    0      0        0 tun0
151.7.202.72    0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
172.16.212.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.116.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet8

server2 é:

192.168.1.0/24
192.168.1.252 netmask 255.255.255.0 --> switch0

com 3 lans, 3 NICS:

192.168.1.0/24 netmask 255.255.255.0 --> switch0
192.168.2.0/24 netmask 255.255.255.0 --> switch1
193.168.3.0/24 netmask 255.255.255.0 --> switch2

rota:

Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.1.212      UGS         0   168553   bge0
10.10.10.0/24      10.10.10.1         UGS         0        0   tun0
10.10.10.1         link#12            UH          0        0   tun0
10.10.10.2         link#12            UHS         0        0    lo0
127.0.0.1          link#10            UH          0     1897    lo0
192.168.1.0/24     link#1             U           0    42375   bge0
192.168.1.252      link#1             UHS         0        4    lo0
192.168.2.0/24     link#7             U           0   117807    rl0
192.168.2.252      link#7             UHS         0        0    lo0
192.168.3.0/24     link#8             U           0   161828    rl1
192.168.3.252      link#8             UHS         0        0    lo0

Eu preciso criar um roteamento de 192.168.1.0/24 para todos os outros lans.

Devo usar o aliasing de ip no server2?


0


origem


Você deixou de fora algumas informações importantes para responder adequadamente a essa pergunta. A infra-estrutura física e as informações do caso de uso são necessárias. Se você tiver três NICs físicas separadas conectadas a um comutador que fornece acesso a três VLANs diferentes, não será necessário o alias de IP. Se você tiver uma porta em um switch que apresente três VLANs e a NIC faça tagging, isso também apresenta uma resposta diferente. O aliasing permite que você atribua endereços IP a uma interface virtual. Não roteia pacotes. Você precisará do encaminhamento de IP para passar dados de uma rede para outra. - Sean C.
Por favor, poste as tabelas de roteamento dos dois servidores, route -n, bem como a saída do ifconfig nos dois servidores. E, a propósito, você não precisa necessariamente de aliasing, você pode sair com apenas roteamento, dependendo da sua configuração exata. - MariusMatutiae
Eu adicionei outras informações, obrigado pela ajuda - Pol Hallen


Respostas:


Na verdade é bem fácil.

No servidor 2: edite (como sudo) o arquivo /etc/sysctl.conf, localize esta linha

  #net.ipv4.ip_forward=1

e descomente-o,

  net.ipv4.ip_forward=1

Salve o arquivo, emita o comando:

  sudo sysctl -p

Isso é simplesmente dizer ao seu kernel para permitir que pacotes passem de um NIC para outro.

Além disso, precisamos configurar o NAT nele, para que os pacotes de retorno possam ser roteados corretamente via server2. Emita isto:

  sudo iptables -t nat  -A POSTROUTING -o rl0 -j MASQUERADE
  sudo iptables -t nat  -A POSTROUTING -o rl1 -j MASQUERADE

Isso pressupõe que suas políticas padrão do iptables sejam todas ACCEPT. Se isso não estiver correto, teremos que dar mais alguns furos em seu firewall.

Agora para o servidor 1. Emita os seguintes comandos:

  sudo route add -net 192.168.2.0/24 default gw 192.168.1.252
  sudo route add -net 192.168.3.0/24 default gw 192.168.1.252

Estes dois comandos estão simplesmente instruindo seu servidor1 que, caso ele encontre um pacote destinado a 192.168.2.0/24 ou 192.168.3.0/24, o pacote deve ser roteado para o servidor2, que cuidará dele.

Você não especificou se deseja que os clientes em 192.168.2.0/24 ou 192.168.3.0/24 possam acessar 192.168.1.0 através do server2. Se você fizer isso, adicione

  sudo iptables -t nat -A POSTROUTING -o bge0 -j MASQUERADE

para o seu firewall.

Por fim, espero que as sub-redes 192.168.2.0/24 e 192.168.3.0/24 sejam não conectado ao Server1 através de uma rota diferente, porque isso implicaria que há loops fechados em sua configuração, o que requer alguns instrumentos avançados para lidar com isso corretamente.


1



MariusMatutiae: felicidades! server2 é openbsd os. Já tinha regras equivalentes de firewall e encaminhamento. Resolvi seguir seu conselho: regras "route add -net". Obrigado pela ajuda! :-) - Pol Hallen