我有基于 Debian wheezy 的实例,带有 2 个网络接口(主、辅)。我的设置流程:
vim /etc/网络/接口
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet dhcp
ifup eth1 ifconfig-a
eth0 Link encap:Ethernet HWaddr 0a:1e:17:4a:dc:0a
inet addr:172.31.7.189 Bcast:172.31.15.255 Mask:255.255.240.0
inet6 addr: fe80::81e:17ff:fe4a:dc0a/64 Scope:Link
eth1 Link encap:Ethernet HWaddr 0a:74:e6:54:ba:c9
inet addr:172.31.10.172 Bcast:172.31.15.255 Mask:255.255.240.0
inet6 addr: fe80::874:e6ff:fe54:bac9/64 Scope:Link
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
好的,目前一切正常,并且两个私有 IP(172.31.7.189、172.31.10.172)都可以 ping 通。
回显“200 输出”>> /etc/iproute2/rt_tables
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
200 out
路线-n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.31.0.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
172.31.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
172.31.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth1
ip route 添加默认通过 172.31.0.1 dev eth1 表
从 172.31.0.0/20 表中添加 ip 规则
Write failed: Broken pipe
现在无法通过 ssh 访问实例。请帮忙,我做错了什么?
答案1
问题解决了。
我尝试为整个网络 172.31.0.0/20 定义 IP 规则,但这是错误的。
当我使用来自辅助网络接口的私有 IP 时,一切正常。
ip route add default via 172.31.10.172 dev eth1 table out
ip rule add from 172.31.10.172 table out
其中 172.31.10.172 是网络接口 eth1 的私有 IP
而不是“ip 规则从 172.31.0.0/20 表中添加出来...”
PS 非常感谢 Tomas Nevar