来自不同站点的不同外部IP地址

我的路由器是ClearOS 6 (Centos 6)。 在我的路由器中,我有两个来自两个ISP的外部(互联网)networking连接。

主要连接是eth2连接到电缆调制解调器和第二个是ppp0连接到dsl调制解调器。 我已经将eth2作为主连接(具有高度量值)。 实际上,这是通过clearos的multiwan网页界面完成的。 我在我的Nagios上有一个testing来监视主要的连接。 这个连接是基于结果完成的

curl ifconfig.me 

但是,似乎ifconfig.me总是给我的次要连接的IP地址。 我通过浏览器进行testing。 是ifconfig.me给出了二级互联网(ppp0)的ip地址。 但是whatismyipaddress。[com | org]给我的主要ip地址(eth2)。 我通过检查路由器上的默认路由

 ip route list 0/0 

<secondary network> dev ppp0 proto kernel scope link src <secondary ip address> <primary network> dev eth2 proto kernel scope link src <primary ip address> <lan> dev eth0 proto kernel scope link src <lan interface address>
default via <primary gateway address> dev eth2

这也显示了主连接(eth2)作为默认路由。

 traceroute www.google.com 

 traceroute ifconfig.me 

似乎都通过主要连接(eth2)来追踪。

由于我们的二级互联网连接只有有限的下载,我不想在月底付出巨额的款项。

有人知道为什么ifconfig.me显示我的第二个地址?

确保我的路由器(以及局域网)使用正确的互联网连接的最佳方法是什么?

一目了然,看起来你的路线configuration正确。

我build议你使用Wireshark / T-Shark分别查看离开每个外部接口(eth2,ppp0)的数据包,看看在运行curl ifconfig.me命令时会发生什么情况。 这可能会给你一个线索,为什么你用不同的工具获得不同的结果。

你有没有尝试其他IP地址查找工具 ,看看你是否得到相同的结果? 再次,这可能是启发性的。

确保我的路由器(以及局域网)使用正确的互联网连接的最佳方法是什么?

但这听起来像你真正想要的是故障转移,而不是负载平衡。 也就是说,你希望所有的stream量都离开你的主要连接,而你的第二个连接就在那里,以防万一你的主要连接断开。

从ClearOS文档 :

多WAN权重用于负载平衡出站Internetstream量。 默认情况下,所有WAN接口的权重均为1。 这种默认configuration意味着networkingstream量将在不同的广域网连接中大致均匀分配。

在其中一种典型的多WANconfiguration中,使用第二个宽带连接进行备份。 这第二个连接通常是一个低成本和低带宽的连接。 在这种情况下,您需要将您的高带宽连接上的权重设置为3或4,同时将低成本/低端连接的权重设置为1。

正如kce指出的,你的路由表看起来是正确的。 既然如此,我怀疑你可能没有意识到你可能有一些configuration的SNAT。

首先,试试这个: lsmod | grep conntrack lsmod | grep conntrack

这是看是否加载conntrack模块。 如果不是,则不要运行下一个命令,这是不必要的,列出空conntrack表的简单行为将加载模块,而不会自动卸载。 这可能是networking负载较高的服务器上的睡眠时间炸弹,与内核的连接跟踪表的默认大小一致。

如果你有这样的事情…

 nf_conntrack_ipv4 7597 3 iptable_nat,nf_nat nf_conntrack 38083 4 ipt_MASQUERADE,iptable_nat,nf_nat,nf_conntrack_ipv4 nf_defrag_ipv4 779 1 nf_conntrack_ipv4 

…然后尝试列出conntrack表:

 iptables -vn --line-numbers -t nat -L POSTROUTING 

您正在寻找一行,在目标列中显示“SNAT”,并在最右侧显示次要界面的IP地址。 删除该行,你应该全部设置。

希望就是这样。