如果更改默认网关,现有连接会发生什么?


0

我一直想知道以下情况:

+-------+        +-------+
| ISP 1 |        | ISP 2 |
+-------+        +-------+
  |                    |
  |     +--------+     |
  --eth0| ROUTER |eth1--
        +--------+
           eth2
             |
             |
          +----+
          | PC |
          +----+

ROUTER是一台具有三个网络接口的Linux机器:

接口eth0连接到主Internet提供程序,并配置为执行源NAT。
接口eth1连接到备份Internet提供程序,并配置为执行源NAT。
接口eth2连接到普通PC。

接口eth0配置为默认路由,因此PC将通过ISP 1到达Internet。

假设用户开始在PC上从Internet下载大文件,然后ISP 1下线。如果ROUTER上的默认路由更改为eth1会发生什么?下载会继续吗?


您的路由器是否正在执行NAT,如果是,您是否为每个WAN接口单独配置规则?
弗兰克托马斯

是的,路由器执行NAT。这是NAT规则:iptables --table nat --append POSTROUTING --out-interface eth0 --jump SNAT --to-source x.x.x.x并且iptables --table nat --append POSTROUTING --out-interface eth1 --jump SNAT --to-source y.y.y.yROUTER上的默认路由配置为接口eth0
user347119 2014年

那么有多种原因对于已建立的连接不起作用。您不仅拥有多个外部地址,还可以在每个外部接口上使用nat表进行竞争。如果没有一些额外的硬件和服务,这真的不容易。
弗兰克托马斯

Answers:


1

那么,建立的下载会话将介于ISP1的IP地址,Eth0上的外部NAT地址和远程主机(比如netflix)之间,当ISP1无法访问时,netflix将不知道ISP2,并且不会发送任何数据来自它通过ISP2与ISP1的地址建立了会话。如果ISP1路径上的路由器没有创建ICMP错误,例如“HOST UNREACHABLE”或“NO ROUTE T​​O HOST”,则在TCP定时器到期后,当没有从ISP1 NAT地址收到来自系统的ACK消息时,连接将超时。

您的系统可能会尝试使用ISP2的NAT地址确认其最后收到的数据包,但netflix将忽略这些数据,因为会话位于ISP1和netflix之间。

如果您没有使用NAT,有自己的便携式IP分配,以及与两个ISP的BGP对等安排,那么您的传输将继续进行,中断时间最短,除非路由器在此期间发出如上所述的ICMP错误,作为路由表变了。


是否可以从ROUTER发送某种消息,使PC立即丢弃所有已建立的连接,这样就不必等待TCP定时器到期?
user347119 2014年

是; 有几个ICMP消息,如果主机尊重(或光荣),将关闭TCP会话。然而,这些ICMP消息曾经是DoS攻击的来源,因此不再依赖它们进行会话管理。
Nevin Williams 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.