我有一个运行DD-WRT固件和四个外部IP的Broadcom BCM5352路由器。 在我家里的networkingconfiguration中,我首先有一台路由器,然后是一台连接到路由器的交换机(为了避免整个公寓里有多条电缆。
一台服务器连接到交换机,如果可能的话,我想给这个服务器一个不同的外部IP(即告诉路由器将所有stream量路由到指定的外部IP到服务器,反之亦然)。 我没有静态IP,我的ISP只提供DHCP。
那么无论如何要configuration这个? 固件支持iptables,所以如果可以用iptables来完成,那么这是一个解决scheme。 可以用pf来做,其中的特征称为双向nat映射(1:1映射)。
首先,正如上面提到的另一个 – 我从来没有听说过一个ISP给出多个IP与DHCP。 你可能想检查一下。
这些都不是DD-WRT特定的:
…如果他们真的把所有的东西都交给DHCP,那么你将需要在一个接口卡上使用多个MAC,否则你需要将4个NIC都插入交换机,然后再将其插入ISP路由器。 这是B / C的DHCP服务器将继续处理相同的IPs,不pipe如果它在同一个MAC上。 我不认为Linux无论如何要在同一个网卡上执行多个MAC。
在此之后,它很容易:
– 使用ip addr XXXX dev eth0(或者你在这边使用的任何网卡)为每一个你想要的IP。
你将需要像往常一样在iptables中设置NAT
然后,您将需要configurationDNAT(端口转发),以将传入stream量引导到服务器。 您将设置这些规则转发到服务器的内部IP …
如果你想要这个服务器总是来自这个IP,那么你也需要使用SNAT来做到这一点,你需要在mangle表中标记数据包,然后为此设置一个'ip rule'命令。
我们在我们的路由器上这样做…
2 80 DNAT tcp -- eth2 * 0.0.0.0/0 xxx74 tcp dpt:53 to:10.10.x.5:53 0 0 DNAT udp -- eth2 * 0.0.0.0/0 xxx74 udp dpt:53 to:10.10.x.5:53 1197 60064 DNAT all -- eth2 * 0.0.0.0/0 xxx73 to:10.10.x.9
链POSTROUTING(策略ACCEPT 2686包,403K字节)
pkts字节目标人选退出源目的地
14613 903K SNAT all - * eth0 0.0.0.0/0 0.0.0.0/0 to:xx.xx75
0 0 SNAT all - * eth2 10.10.x.98 0.0.0.0/0 to:xxx.xxxx.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.xx70
0 0 SNAT all - * eth2 10.10.x.5 0.0.0.0/0 to:xxx74
14327 871K SNAT all - * eth2 0.0.0.0/0 0.0.0.0/0 to:xxx66
以下是iproute2规则的样子:
0:从所有查找本地
18:从所有的fwmark 0x4查找T1
19:从所有的fwmark 0x3查找T1
20:从所有查找主要
21:从xxx0 / 20查找电缆
22:从xxx64 / 27查找T1
1000:从所有查找110
2000年:从所有查找主要
32766:从所有查找主要
32767:从所有查找默认
和mangle表 - 这使得某些机器使用那些第一个规则,所以他们退出正确的IP /接口:
链PREROUTING(策略接受1921K包,1149M字节)
pkts字节目标人选退出源目的地
10 1304 MARK tcp - eth1 * 10.10.x.18 0.0.0.0/0 tcp dpt:25 MARK设置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
注意我们如何标记TCP 25总是出去一定的路线。 这是你的邮件将被反弹,如果你没有出去的MXlogging在许多接收SMTP服务器的IP地址。
是的,可以使用iptables,但是您需要从ISP分配给您两个IP。 我99%确定唯一的方法是使用静态IP,我从来没有听说过一个ISP通过DHCP提供两个IP。
我认为你可以用iptables来做,但是这会有点难,我不记得,但是我在这个年代之前正在寻找,有人向我展示了几个带有dynamicIP的示例。 然后,我切换到几个虚拟服务器防火墙实例,所以我有一个每个外部dynamic(dhcp)IP – 所有通过一个单一的外部主机网卡(是的,他们现在运行微软ISA,但这并不重要)。 这似乎更容易,我喜欢在一般的服务器操作系统上运行我的防火墙和NAT路由器出于某种原因;)
瑞典的许多互联网服务提供商通过DHCP发布了多个公共dynamicIP – 5是一个非常常见的默认数量,虽然不是全部。 这样的话,你并不需要为了支持NAT中的多个主机而对抗NAT的恐慌,尽pipe消费级边缘防火墙通常无法处理,我猜…
你有没有searchDD-WRT论坛? 这里
我在路由器上运行DD-WRT,并有一个ISP分配5个DHCP IP。 不过,我采取了一个不同的,更简单的路线。 我有我的互联网连接直接进入一个交换机,然后插入我的服务器,并进入我的DD-WRT路由器。 每个设备都拥有自己的DHCP IP,就像它在自己的networking连接上一样。 但是,我仍然可以以100Mbps(我的交换机的速度)和我的互联网连接的速度与我的服务器通话。
另一个select是将您的服务器挂接到您的路由器,并将其设为DMZ服务器,这将有类似的效果,但您的路由器和服务器将共享一个IP。
第四种更复杂的方法是在服务器中使用2个NIC,并让服务器在其出口连接上添加虚拟接口,并将该虚拟接口连接到路由器。 那么这两个设备将拥有自己的IP。 (在这种情况下,服务器会做你说你想让路由器做的事情)