Rota em torno do dispositivo de rede "especial"

0

Eu tenho um modem de "segurança", que redireciona meu IP externo para sua página de configuração quando acessado internamente. No diagrama a seguir:

  10.0.0.1 +-------+ 1.2.3.4
     +-----+ Modem |<---------+Internet
     |     +-------+
     |
     |
     |     +--------+ 192.168.1.1
     +---->| Router +------+
10.0.0.253 +--------+      |
                           |
           +--------+      |
           | Server |<-----+
           +--------+ 192.168.1.3

Eu tenho DMZ configurado no modem para 10.0.0.253 (o roteador) e DMZ no roteador para 192.168.1.3 (o servidor).

nathan@InternetDevice $ curl 1.2.3.4
Hello from Server!

nathan@Server $ curl 1.2.3.4
<!DOCTYPE html>
...
blah blah router config page
...

Gostaria de configurar o roteador para redirecionar automaticamente as conexões TCP, UDP ou ICMP de 192.168.1.x para 1.2.3.4 para 192.168.1.3 , de forma transparente. Se houver uma maneira melhor de conseguir isso (além de obter um modem menos "especial"), também aceitarei isso.

O modem é essencialmente uma caixa preta, mas tanto o roteador quanto o servidor executam o Linux. Atualmente, tenho um nome de host que resolve globalmente para 1.2.3.4 , mas o servidor DNS do roteador resolve para 192.168.1.3 . No entanto, isto falha com, e. Dispositivos Chrome OS, que sempre usam o DNS do Google, e parecem estranhos.

    
por Nathan Ringo 01.08.2016 / 15:54

1 resposta

0

Acabei escrevendo um script ...

PUBLIC_IP="$(curl ipinfo.io/ip 2>/dev/null)";
DMZ_IP="192.168.1.3";

add_rule() {
        iptables -t nat -A PREROUTING --dst "${PUBLIC_IP}" --protocol "${1}" --match "${1}" --jump DNAT --to-destination "${DMZ_IP}";
};

add_rule tcp;
add_rule udp;

iptables -t nat -A POSTROUTING -j MASQUERADE;
    
por 07.08.2016 / 00:14