Como posso definir minha caixa de linux como um roteador para encaminhar pacotes ip?

22

Estou fazendo um experimento de rede sobre o encaminhamento de pacotes ip, mas não sei por que isso funciona.

Eu tenho uma máquina linux com duas interfaces de rede, eth0 e eth1, ambas com endereço IP estático (eth0: 192.168.100.1, eth1: 192.168.101.2).

Meu objetivo é simples, eu só quero encaminhar pacotes ip da eth1 com destino na sub-rede 192.168.100.0/24 para eth0 e encaminhar pacotes ip de eth0 com destino na sub-rede 192.168.101.0/24 para eth1.

Eu ativei o encaminhamento de ip com:

sysctl -w net.ipv4.ip_forward=1

minha tabela de roteamento é assim:

# route -n
Kernel IP routing table
Destination     Gateway     Genmask        Flags Metric Ref   Use  Iface
192.168.100.0   0.0.0.0     255.255.255.0  U     0      0       0  eth0
192.168.101.0   0.0.0.0     255.255.255.0  U     0      0       0  eth1

Mas, quando tento fazer ping de 192.168.100.25 para 192.168.101.47, ele não funciona.

    
por Yishu Fang 10.12.2012 / 03:36

2 respostas

21

Você precisa adicionar uma regra de encaminhamento usando o comando iptables , algo assim:

modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth1 -j ACCEPT

veja man iptables para mais detalhes, ou pesquise na internet por artigos como, por exemplo Como configurar um NAT roteador em um computador baseado em Linux

Aqui está Linux IP Masquerade HOWTO que discute o tópico em detalhes.

Você também deve garantir que não tenha outras regras (por exemplo, na cadeia FORWARD ) que estejam substituindo a regra ACCEPT acima. Se houver, você provavelmente deseja excluí-los.

    
por Sergey 10.12.2012 / 04:11
1

Você precisa adicionar uma rota aos 192.168.100.25 e 192.168.101.47.

Se o seu servidor de encaminhamento tiver os IPs 192.168.100.1 e 192.168.101.1, você adicionaria o cliente 192.168.100.25

ip route 192.168.101.0/24 via 192.1268.100.1

e no cliente 192.168.101.47

ip route 192.168.100.0/24 via 192.168.101.1

(Isso funciona apenas com encaminhamento ativado, sem iptables).

    
por V. Campos 08.06.2016 / 23:42