我在私有网络上有几台服务器,每台服务器都分配了一个私有 IP 地址和一个公共 IP。我希望这些服务器仅使用其私有 IP 地址相互通信。
我已经使用 Netplan 设置了 IP 地址,但现在正在尝试设置路由,以便如果服务器 A 尝试与服务器 B 通信,则它通过服务器 A 的私有 IP 进行通信,而不是通过分配给服务器的任何其他 IP 进行通信。
这是我目前的 Netplan 配置文件(为了安全起见,我已经 XXX 掉了部分公共 IP 地址):
network:
ethernets:
ens160:
addresses:
- 217.147.XXX.43/26
- 172.17.1.151/24
dhcp4: false
#gateway4: 217.147.XXX.1
#gateway4: 172.17.1.1
nameservers:
addresses:
- 172.17.1.2
- 172.17.1.3
- 8.8.8.8
search: []
routes:
- to: 0.0.0.0/0
via: 217.147.XXX.1
metric: 100
- to: 172.17.1.0/24
via: 172.17.1.1
metric: 101
version: 2
命令的输出ip route
:
$ ip route
default via 217.147.XXX.1 dev ens160 proto static metric 100
172.17.1.0/24 dev ens160 proto kernel scope link src 172.17.1.151
172.17.1.0/24 via 172.17.1.1 dev ens160 proto static metric 101
217.147.XXX.0/26 dev ens160 proto kernel scope link src 217.147.XXX.43
ifconfig 命令的输出:
$ ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 217.147.XXX.43 netmask 255.255.255.192 broadcast 217.147.XXX.63
inet6 fe80::2cc:29cc:fef5:966f prefixlen 64 scopeid 0x20<link>
ether 00:cc:29:cc:96:6f txqueuelen 1000 (Ethernet)
RX packets 728 bytes 71057 (71.0 KB)
RX errors 0 dropped 119 overruns 0 frame 0
TX packets 355 bytes 58475 (58.4 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 102 bytes 8213 (8.2 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 102 bytes 8213 (8.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
我遇到的问题是私人网络不可见。
$ ping 172.17.1.155
PING 172.17.1.155 (172.17.1.155) 56(84) bytes of data.
From 172.17.1.151 icmp_seq=1 Destination Host Unreachable
From 172.17.1.151 icmp_seq=2 Destination Host Unreachable
From 172.17.1.151 icmp_seq=3 Destination Host Unreachable
. . .
可以从私有网络中的其他服务器访问服务器 172.XXX.XXX.155。
任何帮助都将不胜感激。我对网络和 Netplan 还很陌生,并且对官方文档感到很困惑。
答案1
- to: 172.17.1.0/24
via: 172.17.1.1
metric: 101
这是不正确的。172.17.1.0/24 是您的本地网络,您正尝试通过 172.17.1.1 路由其所有流量。该机器可能未配置为在同一接口上路由往返于 172.17.1..0 的流量。如果您删除此路由,则到 172.17.1.155 的流量将改为通过您的本地网络路由,这应该可行。