Esta é uma pergunta um pouco confusa, porque os comandos que você deu não fazem isso, ... Eu quero rotear o bbb.bbb.bbb.bbb para o meu roteador em 10.3.0.2 via tap0 . Se eu entendi bem, você quer que o roteador passe pelo servidor Linux para acessar a Internet. Se estiver correto, então é como obtê-lo, começando da configuração em sua primeira figura, isto é, negligenciando seus comandos a seguir.
-
No servidor Linux, ative o encaminhamento IPv4 e, em seguida, emita:
iptables -t -nat -A POSTROUTING -o eth0 -j MASQUERADE ip route add 172.16.0.0/24 via 10.3.0.2 dev tap0
-
No roteador, onde presumo o encaminhamento IPv4 está habilitado por padrão:
ip route del default ip route add default via 10.3.0.1 dev tap0 iptables -A INPUT -s 10.8.3.0.1 -j ACCEPT
A vantagem disso é que ele faz um único nível de NAT, no servidor Linux, e o roteamento cuida de tudo. Se você quiser que os clientes da rede local encontrem o servidor Linux pelo nome (digamos, ele é chamado LS), adicione a seguinte linha:
10.3.0.2 LS
para o arquivo / etc / hosts do roteador: não há necessidade de configurar um servidor DNS para uma necessidade tão pequena.
No entanto, isso não equivale a ... Então, meu roteador terá um endereço IP público , porque o endereço IP público pertence ao servidor Linux. Se alguém tentar entrar em contato com aaa.aaa.aaa.aaa , será o servidor Linux que terá que responder. A única exceção que você pode fornecer é através do encaminhamento de porta , o que significa que as comunicações all em uma determinada porta serão transferidas para o roteador, mas você não pode transferir todas as comunicações em todas as portas para o roteador (o que realmente significa ... Então, meu roteador terá um endereço IP público ). A menos, é claro, que o seu servidor Linux possua 2 endereços IP , caso em que você poderia reservar um para o roteador e o outro para o servidor Linux.