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

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

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

主连接是连接到电缆调制解调器的 eth2,第二个连接是连接到 dsl 调制解调器的 ppp0。我已将 eth2 指定为主连接(具有较高的度量值)。实际上,这是通过 clearos 的 multiwan web 界面完成的。我在我的 Nagios 中进行了测试,以监控主连接是否正常。此连接是根据

curl ifconfig.me

但似乎 ifconfig.me 总是提供我的辅助连接的 IP 地址。我通过浏览器测试了它。是的,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 显示我的辅助地址吗?

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

答案1

乍一看,您的路线配置似乎正确。

我建议您使用 Wireshark/T-Shark 分别查看离开每个外部接口 (eth2、ppp0) 的数据包,并查看运行命令时会发生什么curl ifconfig.me。这可能会让您了解为什么使用不同的工具会得到不同的结果。

您是否尝试过查找其他 IP 地址工具看看你是否得到了相同的结果?同样,这可能会有所启发。


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

但听起来你真正想要的是故障转移而不是负载平衡。也就是说,你希望所有流量都离开主连接,而辅助连接只是为了在主连接发生故障时继续使用。

来自ClearOS 文档

多 WAN 权重用于平衡出站互联网流量。默认情况下,所有 WAN 接口的权重均为 1。此默认配置意味着网络流量将在不同的 WAN 连接之间大致均匀分配。

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

答案2

正如 kce 指出的那样,您的路由表看起来是正确的。既然如此,我怀疑您可能在不知情的情况下配置了某种 SNAT。

首先,尝试一下这个: lsmod | grep conntrack

这是为了查看 conntrack 模块是否已加载。如果没有,请不要运行下一个命令,这是不必要的,列出空的 conntrack 表的简单操作将加载模块,而不会在之后自动卸载它。对于网络负载较高的服务器来说,这可能是一个定时炸弹,这些服务器的运行速度超过了内核连接跟踪表的默认大小。

如果您得到类似这样的信息...

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 地址。删除该行,一切就绪。

但愿如此。

相关内容