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.