在 Ubuntu Server 12.04 中成功添加路由

在 Ubuntu Server 12.04 中成功添加路由

我在 VMware 上有一个虚拟机,上面运行着 Ubuntu Server 12.04。我为虚拟机配置了两个网络适配器,我的 /etc/network/interfaces 配置如下:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 10.226.83.2
netmask 255.255.255.248
gateway 10.226.83.1

# Management Interface
auto eth1
iface eth1 inet static
address 10.20.9.200
netmask 255.255.240.0
up ip route add 10.20.0.0/20 via 10.20.0.1 dev eth1 || true
up ip route add 10.21.120.0/22 via 10.20.0.1 dev eth1 || true
up ip route add 10.13.122.0/22 via 10.20.0.1 dev eth1 || true

我的问题是,使用此特定配置,在调用路由时我无法看到到 10.13.122.0/22 的路由:

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use     Iface
default         10.226.83.1     0.0.0.0         UG    100    0        0 eth0
10.20.0.0       *               255.255.240.0   U     0      0        0 eth1
10.21.120.0     10.20.0.1       255.255.252.0   UG    0      0        0 eth1
10.118.233.0    10.118.233.2    255.255.255.0   UG    0      0        0 tun10000
10.118.233.2    *               255.255.255.255 UH    0      0        0 tun10000
10.226.83.0     *               255.255.255.248 U     0      0        0 eth0

我想要实现的是,往返于网络 10.20.0.0/20、10.21.120.0/22 和 10.13.122.0/22 的流量将通过 eth1 流向 10.20.0.1,否则流量将通过 eth0 并通过 10.226.83.1。tun10000 是由我们的 OpenVPN 配置生成的适配器,在这种情况下可以忽略它。

目前,除 10.13.122.0/22 之外的所有网络均运行良好,这反映在路由表中;尽管使用与其他两个网络相同的语法添加了 10.13.122.0/22 的路由,但我在表中看不到它。

另外,当我执行 sudo /etc/init.d/networking restart 时,我得到以下信息:

$ sudo /etc/init.d/networking restart
 * Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces
 * Reconfiguring network interfaces...
                                                    ssh stop/waiting
ssh start/running, process 21240
RTNETLINK answers: File exists
RTNETLINK answers: Invalid argument
ssh stop/waiting
ssh start/running, process 21306

即使有了两个 RTNETLINK 答案,我还是得到了一个功能正常的接口,除了到 10.13.122.0/22 的路由。我怎样才能让这个路由工作,有没有办法摆脱“文件存在”和“参数无效”消息?

答案1

10.21.120.0/22是 10.21.120.0-10.21.123.255,因此与 相同10.13.122.0/22。因此,设置 的路由10.13.122.0/22将给出错误“文件已存在”(或更准确地说是“条目已存在”)。

您需要更好地了解您的网络拓扑。

答案2

我在配置中输入了错误的掩码;将 10.13.122.0/22 替换为 10.13.122.0/23 可以使一切正常工作。

相关内容