有没有办法使用iproute2
Ubuntu 系统上的工具套件“正确”配置默认路由?
我的台式机/服务器通过以太网连接到转变;当系统启动并且网络启动时,系统会“感到困惑”,因为还有其他系统随着网关和交换机都连接在同一个交换机上,导致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_tables
并1 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
如果您使用多个接口,那么您可以为所有接口定义静态路由。我希望这会有所帮助。