Linux nat com um endereço ip secundário

0

Eu quero configurar o nat em um servidor / roteador com vários endereços IP públicos (em sub-redes diferentes e com gateways diferentes, mas com a mesma interface Ethernet física), usando o endereço A para todo o tráfego local originado do servidor e endereço B para outras máquinas por trás do nat. Eu já fiz muitas configurações nat simples antes, mas raramente trabalhei com vários endereços não-locais somente na mesma máquina. Supondo que a configuração que eu quero é possível, como faço para configurá-la?

    
por R.. 12.02.2014 / 04:13

2 respostas

0

Como eu entendo de sua exigência, você precisa ter dois nat, um para a rede local e outro para o próprio servidor. Você quer que os ips / LAN locais saiam pelo endereço A e o tráfego gerado pelo servidor deve passar pelo endereço B.

Primeiro Adicione o endereço A e o endereço B na ethernet externa via subinterface.

ifconfig eth0 address A/x.x.x.x

ifconfig eth0:1 address B/x.x.x.x

Segundo Adicione a regra SNAT para a rede LAN

iptables -t nat -A POSTROUTING -s < LAN IP NETWORK > -o eth0 -j SNAT --to < address a >

Terceiro Adicione o SNAT para o resto (isso também incluirá a máquina souce)

iptables -t nat -A POSTROUTING  -o eth0 -j SNAT --to < address B >

se isso não funcionar, podemos testar.

    
por 12.02.2014 / 05:10
0

Supondo que temos uma interface primária A chamada eth0 :

inet 192.168.1.1  netmask 255.255.255.0  broadcast 192.168.1.255

e outra interface B chamada eth1 :

inet 192.168.2.1 netmask 255.255.255.0  broadcast 192.168.2.255

Há também a terceira rede C na sub-rede 10.0.0.0/24 da qual queremos encaminhar o tráfego para A ou B .

Primeiro, verifique ip rule ls :

0:      from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default

e a principal política de roteamento ip route list table main

default via 192.168.1.1 dev eth0 
10.0.0.0/24 dev lxc  proto kernel  scope link  src 10.0.0.1 
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.1 metric 100 

Agora, queremos adicionar uma regra para um servidor de e-mail com o endereço IP 10.0.0.13 para rotear via interface B .

echo "200 mail" >> /etc/iproute2/rt_tables
ip rule add from 10.0.0.13 table mail

verifique a tabela de roteamento ip rule ls

0:      from all lookup local 
32765:  from 10.0.0.13 lookup mail 
32766:  from all lookup main 
32767:  from all lookup default

Por fim, adicionamos a rota padrão e o cache nivelado:

ip route add default via 192.168.2.1 dev eth1 table mail
ip route flush cache
    
por 20.03.2018 / 17:49