将第二个接口上的默认网关更改为特定地址

将第二个接口上的默认网关更改为特定地址

我目前有两台服务器,两个都服务器有(并且正在使用)两个端口。简而言之,我需要将其中一台服务器的默认网关从其默认eth0地址/网关更改为内部eth1地址,从而有效地将另一台服务器用作路由器/网关。

我使用的流程不起作用 - 当我将第二台服务器上的默认路由更改为第一台时,互联网/eth0访问停止(但本地网络/eth1访问继续)。我做错了什么?

附注:由于非常烦人的商业政治,服务器不能移至另一个交换机或类似设备(我更喜欢这样,但遗憾的是我没有权限)。

因此,第一台服务器(我将其称为服务器 A)具有以下内容(其中 XXXX 是公共 IP 地址,GGGG 是网关):

:~# ip route show
default via G.G.G.G dev eth0 onlink
10.11.0.0/16 dev eth0  proto kernel  scope link  src 10.11.0.8
10.130.0.0/16 dev eth1  proto kernel  scope link  src 10.130.12.252
X.X.X.X/XX dev eth0  proto kernel  scope link  src X.X.X.X

此外,服务器A已设置为允许IP转发:

:~# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1


:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere
LOG        all  --  anywhere             anywhere             LOG level warning

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination


:~# cat /etc/iptables/rules.v4
*nat
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT

*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -j LOG
COMMIT

现在,在第二台服务器上 -服务器B- 执行后ip route replace default via 10.130.12.252 dev eth1 onlink显示以下内容(其中 YYYY 是该服务器的公共 IP 地址):

:~# ip route show
default via 10.130.12.252 dev eth1 onlink
10.46.0.0/16 dev eth0  proto kernel  scope link  src 10.46.0.7
10.130.0.0/16 dev eth1  proto kernel  scope link  src 10.130.112.24
Y.Y.Y.Y/YY dev eth0  proto kernel  scope link  src Y.Y.Y.Y

这又导致服务器B失去所有互联网访问(不仅仅是 DNS -ping 8.8.8.8挂在服务器 B 上,但继续在服务器 A 上工作),但它仍然可以访问网络10.130.0.0/16)。将默认路由更改回 GGGG 可恢复互联网访问。

我做错了什么?我怎样才能让它正常工作?

相关内容