08配置 Linux 策略路由以允许双网卡双地址访问
现有一台 Linux 网关,拥有两块网卡,一块接入百兆校园网(222.24.24.2/24),一块接入千兆专线(10.0.0.2/24)。因为专线带宽远高于校园网,所以默认路由指向了专线。路由表如下所示:
$ ip route
default via 10.0.0.1 dev eth1 proto static metric 1024
10.0.0.0/24 dev eth1 proto kernel scope link src 10.0.0.2
222.24.24.0/24 dev eth0 proto kernel scope link src 222.24.24.2
由于保留了校园网地址,所以理论上可以同时使用校园网地址 222.24.24.2 和专线地址 10.0.0.2 访问到这个网关。然而实际情况却不一样。测试发现,222.24.24.2 地址只能通过同网段电脑正常访问。不同网段的地址并不能通过 222.24.24.2 登录到网关。原因十分简单:通过其它网段地址发往 222.24.24.2 的数据包,会通过网关 222.24.24.1 发到 eth0,然后返回的数据包会根据路由表选路通过 eth1 发往千兆专线网关 10.0.0.1,然而 10.0.0.1 是一个防火墙,防火墙由于没有完整地看到连接建立过程,对数据不予放行,于是无法正常建立 TCP 会话。