Ubuntu15.04 上的 iproute2 和 NetworkManager

Ubuntu15.04 上的 iproute2 和 NetworkManager

有没有办法使用iproute2Ubuntu 系统上的工具套件“正确”配置默认路由?

我的台式机/服务器通过以太网连接到转变;当系统启动并且网络启动时,系统会“感到困惑”,因为还有其他系统随着网关和交换机都连接在同一个交换机上,导致Ubuntu15.04系统无法连接外网。

# ip route show
192.168.1.0/24 dev eth1 proto kernel scope link metric 100
...

一旦我发出

# ip route add default via 192.168.1.1 dev eth1

whoopsie我在日志消息中看到一些内容,并且我已连接网络!

# ip r
default via 192.168.1.1 dev eth1 proto static metric 100
192.168.1.0/24 dev eth1 proto kernel scope link metric 100
...

现在,我如何让它持久在这个系统上,没有在子目录中进行硬编码(因为没有更好的术语)/etc/network/?使用 NetworkManager 及其 nmcli 工具,似乎没有办法为连接分配网关,除非我完全关闭 DHCP!这是 NetworkManager 或 Ubuntu 或 iproute2 的缺陷吗?

我看到了/etc/iproute2目录;但是,手册页中似乎没有关于如何使配置更改持久化的指示。在 StackExchange 网络中搜索相关问答网站时,我遇到了不同的建议,这些建议并没有真正概述实现此目的的规范方法。 也许是 DHCP是否需要在 NetworkManager 中禁用此功能,我不确定。

systemd

目前,我将这行添加到/etc/rc.local。但是,这在启动过程中会失败,因为我假设它会被执行网络已准备就绪。

# systemctl status -l rc-local.service
...
...rc.local[1396]: RTNETLINK answers: Network is unreachable
...

重启服务系统启动解决了故障。据systemd我所知,我们的想法是停止使用/支持该脚本。也许现在应该使用用户级服务?

答案1

您可以通过添加以下行来实现/etc/network/interfaces

post-up route add default gw 192.168.1.1 

或者

post-up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0

在接口定义下方添加如下内容

auto eth0
iface eth0 inet static
        address 192.168.1.50
        netmask 255.255.255.0
        post-up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

或者

您可以按照以下步骤使用iproute2:打开文件/etc/iproute2/rt_tables1 rt2在末尾添加,如下所示:

# reserved values
#
255 local
254 main
253 default
0   unspec
# local
#1  inr.ruhep
 1      rt2

打开/etc/network/interfaces文件并添加

auto eth0
iface eth0 inet static
address 192.168.1.50
netmask 255.255.255.0
post-up ip route add 192.168.1.0/24 dev eth0 src 192.168.1.50 table rt2
post-up ip route add default via 192.168.1.1 dev eth0 table rt2
post-up ip rule add from 192.168.1.1 table rt2
post-up ip rule add to 192.168.1.1 table rt2

如果您使用多个接口,那么您可以为所有接口定义静态路由。我希望这会有所帮助。

相关内容