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.