Bem, uma imagem por mil palavras. 3 sub-redes privadas:
+-----+ +-----+
| PC2 | | PC3 |
Linux | .2 | | .3 |
__ +----------+ +-----+ +-----+
i \ | .1| | |
n ) +-----+ | ------|-----+----------+-----
t ( | | 192.168.0.0/24 |.1/ / |eth1 192.168.1.0/24
e > ----|FW .2|------------------| < LR X |
r ( | | eth0| \ \ |eth2 192.168.2.0/24
n ) +-----+ | ------|-----+----------+-----
e__/ | .1| | |
+----------+ +-----+ +-----+
Router | .4 | | .5 |
| PC4 | | PC5 |
+-----+ +-----+
Roteador Linux:
ifcace eth0 inet static
address 192.168.0.1/24
gateway 192.168.0.2
dns-nameservers 8.8.8.8
ifcace eth1 inet static
address 192.168.1.1/24
ifcace eth2 inet static
address 192.168.2.1/24
PCx (..1.x):
ifcace eth0 inet static
address 192.168.1.x/24
gateway 192.168.1.1
dns-nameservers 8.8.8.8
PCx (..2.x):
ifcace eth0 inet static
address 192.168.2.x/24
gateway 192.168.2.1
dns-nameservers 8.8.8.8
LR
# echo "1" > /proc/sys/net/ipv4/ip_forward
# ip route list
default via 192.168.0.2 dev eth0 onlink
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.1
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.1
192.168.2.0/24 dev eth2 proto kernel scope link src 192.168.2.1
O roteador Linux pode facilmente pingar para o FW e se comunicar com a Internet pública. O LR também pode executar ping em todos os PCs. PCx pode fazer ping no 192.168.0.1
endereço, mas não pode fazer ping no FW 192.168.0.2
(Host Unreachable)
Não se destina a rotear entre 192.168.1.0/24
e 192.168.2.0/24
, mas é altamente esperado que alcance a Internet pública por meio de FW. Eu sei, que é possível fazer algo com o iptables NAT, o que significa configurar dois firewalls tandem, mas não é disso que precisamos. A rota estática simples é preferida.
Eu pesquisei uma nota, que poderia ser útil para definir "regras de ip", mas não entendi como.
Por favor, você pode me informar, o que a maldita configuração pode definir o roteamento esperado?
ip route
pode ser uma ferramenta poderosa, mas algum tutorial claro com exemplos deve ser muito útil.
A tradução de endereços de rede (NAT) não se importa particularmente com os IPs da LAN local. Ele apenas sabe que qualquer tráfego encaminhado da interface externa para a Internet deve levar um endereço "De" no pacote IP que corresponda ao IP público na interface externa do FW . Portanto, não há motivo para seu diagrama, conforme mostrado, não funcionar para o tráfego de saída .
Mas quando o tráfego voltar, novamente carregando o endereço IP "Para" da interface externa do FW , o NAT converterá devidamente o endereço "Para" para corresponder ao endereço 192.168.X.0/24 original registrado na tabela NAT. Aqui é onde o problema começa. Se o endereço original era 192.168.0.x/24, não há problema, pois o FW possui uma interface nessa rede e, portanto, sabe como chegar diretamente a esses hosts.
Mas se o IP original era 192.168.1.x ou 192.168.2.x, o FW não tem ideia de onde estão esses IPs. Ele não tem uma interface em nenhuma dessas redes, então não pode alcançá-los diretamente; e o FW não sabe (a menos que você diga) que esses IPs devem ser roteados de volta ao LR para que o LR possa encaminhá-los.
A solução para esse problema seria configurar rotas estáticas no FW que informassem para onde rotear o tráfego para as redes 192.168.1.0/24 e 192.168.2.0/24, ou seja, rotear ambas as redes para 192.168.0.1.
Dado seu comentário que diz que você pode usar a funcionalidade NAT no FW , mas não pode alterar sua tabela de roteamento, a configuração mais simples que funcionaria seria alterar o LR de funcionar como roteador para funcionar como uma ponte. Lembre-se de que uma ponte conecta vários hosts no mesmo domínio de transmissão de rede (aprendendo os endereços MAC presentes em cada uma das interfaces em ponte), da mesma forma que um switch de rede faz.
Se você reconfigurar o roteador LR como uma ponte LB (ponte eth0, eth1 e eth2), usar IPs 192.168.0.x/24 por toda parte e definir 192.168.0.2 como o gateway padrão para todos os hosts, o FW não apenas encaminhará O tráfego NAT sai, mas quando o tráfego volta, ele poderá entregá-lo de volta à rede 192.168.0.X sem problemas.