Configure o DD-WRT para vários IPs externos?

3

Eu tenho um roteador Broadcom BCM5352 executando o firmware DD-WRT e quatro IPs externos. Na minha configuração de rede em casa eu tenho primeiro um roteador e, em seguida, um switch conectado ao roteador (para evitar vários cabos através de todo o apartamento.

Um servidor está conectado ao switch, e se possível, eu gostaria de dar a esse servidor um ip externo diferente (ou seja, dizer ao roteador para rotear todo o tráfego para o ip externo especificado para o servidor e vice-versa). Eu não tenho IPs estáticos, meu ISP só oferece DHCP.

Então existe alguma maneira de configurar isso? O firmware suporta o iptables, então se isso pode ser feito com o iptables, então isso é uma solução. É possível fazer com pf, onde o recurso é chamado de mapeamento nat bidirecional (mapeamento 1: 1).

    
por Torandi 19.07.2009 / 20:20

4 respostas

2

Primeiro, como mencionado acima por outro - eu nunca ouvi falar de um ISP dando vários IPs com DHCP. Você pode querer verificar isso.

Nada disso é específico do DD-WRT:

... Se eles realmente entregarem tudo no DHCP, você precisará de vários MACs em uma placa de interface, ou precisará de 4x NICs conectadas a um switch que será conectado ao seu roteador ISP. Isso é b / c, o servidor DHCP vai continuar entregando os mesmos IPs, não importa se está tudo no mesmo MAC. Eu não acho que o Linux tenha de fazer vários MACs no mesmo NIC.

Depois disso, é bem fácil:
- Use 'ip addr X.X.X.X dev eth0 (ou qualquer NIC que você usar nesse lado) para cada IP que você deseja ser.

Você precisará configurar o NAT como de costume no iptables

Em seguida, você precisará configurar o DNAT (encaminhamento de porta) para direcionar o tráfego de entrada para o servidor. Você irá configurar essas regras para encaminhar para o IP interno do servidor ...

Se você quer que o servidor venha sempre daquele IP, então você também precisa usar o SNAT para fazer isso, e você precisará marcar o pacote na tabela mangle, e então configurar um comando 'ip rule' para aquele .

Fazemos tudo isso no roteador aqui ...

2    80 DNAT       tcp  --  eth2   *       0.0.0.0/0            x.x.x.74        tcp dpt:53 to:10.10.x.5:53 
0     0 DNAT       udp  --  eth2   *       0.0.0.0/0            x.x.x.74        udp dpt:53 to:10.10.x.5:53 
1197 60064 DNAT       all  --  eth2   *       0.0.0.0/0            x.x.x.73        to:10.10.x.9 
Chain POSTROUTING (policy ACCEPT 2686 packets, 403K bytes)
 pkts bytes target     prot opt in     out     source               destination         
14613  903K SNAT       all  --  *      eth0    0.0.0.0/0            0.0.0.0/0           to:xx.x.x.75 
    0     0 SNAT       all  --  *      eth2    10.10.x.98         0.0.0.0/0           to:xxx.x.x.xx.69 
  178 11500 SNAT       all  --  *      eth2    10.10.x.8          0.0.0.0/0           to:xx.xx.219.xx 
    0     0 SNAT       all  --  *      eth2    10.10.x.9          0.0.0.0/0           to:xxx.xxx.xx.xx
    1    60 SNAT       all  --  *      eth2    10.10.x.18         0.0.0.0/0           to:xx.x.x.70 
    0     0 SNAT       all  --  *      eth2    10.10.x.5          0.0.0.0/0           to:x.x.x.74 
14327  871K SNAT       all  --  *      eth2    0.0.0.0/0            0.0.0.0/0           to:x.x.x.66 

e aqui está como seriam as regras do iproute2:

0:  from all lookup local 
18: from all fwmark 0x4 lookup T1 
19: from all fwmark 0x3 lookup T1 
20: from all lookup main 
21: from x.x.x.0/20 lookup cable 
22: from x.x.x.64/27 lookup T1 
1000:   from all lookup 110 
2000:   from all lookup main 
32766:  from all lookup main 
32767:  from all lookup default 

and the mangle table - this makes certain machines use those first to rules, so they exit out the right IP/interface:

Chain PREROUTING (policy ACCEPT 1921K packets, 1149M bytes)
 pkts bytes target     prot opt in     out     source               destination         
   10  1304 MARK       tcp  --  eth1   *       10.10.x.18         0.0.0.0/0           tcp dpt:25 MARK set 0x3 
    0     0 MARK       tcp  --  eth1   *       10.10.x.9          0.0.0.0/0           tcp dpts:1719:1720 MARK set 0x4 
    0     0 MARK       tcp  --  eth1   *       10.10.x.9          0.0.0.0/0           tcp spts:60100:60200 MARK set 0x4 
    0     0 MARK       udp  --  eth1   *       10.10.x.9          0.0.0.0/0           udp spts:60100:60200 MARK set 0x4 

Observe como marcamos o TCP 25 para sempre sair de uma determinada rota. Esse é o seu e-mail que será rejeitado se você não tiver o IP que o registro MX informa em muitos servidores SMTP de recebimento.

    
por 20.07.2009 / 07:06
0

Sim, é possível fazer com iptables, no entanto, você precisa ter dois IPs atribuídos a você pelo seu ISP. Tenho 99% de certeza de que a única maneira de conseguir isso é com IPs estáticos, nunca ouvi falar de um ISP fornecendo dois IPs via DHCP.

    
por 19.07.2009 / 21:31
0

Eu acho que você pode fazer isso com o iptables, mas será um pouco difícil, não me lembro, mas eu estava olhando para isso há tempos atrás e alguém me mostrou algumas amostras com IPs dinâmicos. Em seguida, mudei para algumas instâncias de firewall de servidor virtual, então tenho uma por DHCP dinâmico (dhcp) - tudo através de uma única NIC de host externo (e sim, elas executam o Microsoft ISA agora, mas isso realmente não importa). Isso pareceu muito mais fácil e eu gosto de executar meu firewall e roteador NAT em um sistema operacional de servidor genérico por algum motivo;)

Muitos ISPs na Suécia distribuem mais de um IP dinâmico público via DHCP - 5 é um valor padrão muito comum, embora nem todos o façam. Dessa forma, você não precisa realmente bater a cabeça contra os horrores do NAT para suportar mais de um host em casa ... embora os firewalls de ponta do nível do consumidor normalmente não consigam lidar com isso, eu acho ...

    
por 19.07.2009 / 21:59
0

Você já pesquisou nos fóruns do DD-WRT? Aqui
Eu corro DD-WRT no meu roteador e tenho um ISP que atribui 5 IPs DHCP. No entanto, tomei um caminho diferente e mais simples. Eu tenho a minha conexão com a Internet ir diretamente em um switch que, em seguida, se conecta aos meus servidores e em meu roteador DD-WRT. Cada dispositivo obtém seu próprio IP de DHCP como se estivesse em sua própria conexão de rede. No entanto, ainda posso falar com meus servidores a 100 Mbps (a velocidade do meu switch) versus a velocidade da minha conexão com a Internet.

Outra opção é simplesmente conectar seu servidor ao seu Roteador e transformá-lo em um servidor DMZ. Isso teria um efeito semelhante, mas seu roteador e servidor compartilhariam um IP.

Uma quarta e muito mais complicada maneira de fazer isso seria usar 2 NICs em seu servidor e fazer com que você adicione uma interface virtual em sua conexão de saída e conecte essa interface virtual ao seu roteador. Então ambos os dispositivos teriam seu próprio IP. (Neste caso, o servidor estaria fazendo o que você disse que queria que o roteador fizesse)

    
por 20.07.2009 / 06:13