我在 Google 上搜索了很多,但仍然找不到如何在 centOS 7 上创建一些持久路由的工作方法。
[root@asd network-scripts]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.23.40.1 0.0.0.0 UG 1024 0 0 enp10s0f1
172.23.40.0 0.0.0.0 255.255.255.0 U 0 0 0 enp10s0f1
enp10s0f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::226:55ff:fed1:9123 prefixlen 64 scopeid 0x20<link>
ether 00:26:55:d1:91:23 txqueuelen 1000 (Ethernet)
RX packets 1096 bytes 291485 (284.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12 bytes 2040 (1.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 34 memory 0xfbfe0000-fc000000
enp10s0f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.23.40.77 netmask 255.255.255.0 broadcast 172.23.40.255
inet6 fe80::226:55ff:fed1:9122 prefixlen 64 scopeid 0x20<link>
ether 00:26:55:d1:91:22 txqueuelen 1000 (Ethernet)
RX packets 2865 bytes 457736 (447.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1995 bytes 345793 (337.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 24 memory 0xfbee0000-fbf00000
我在 Google 上搜索的所有地方都说要在文件下面的文件夹中进行配置route-eth0
。但我的文件不是这样的,它们是“ifcfg-enp10s0f0”。我这里有这个文件/etc/sysconfig/network-scripts
::
-rw-r--r--. 1 root root 321 Sep 15 13:34 ifcfg-enp10s0f1
-rw-r--r--. 1 root root 440 Sep 15 14:44 ifcfg-enp10s0f0
[root@asd network-scripts]#
我尝试添加一个像route-enp10s0f0
.我在文件中添加了路线/etc/sysconfig/network
,但没有任何效果。每次我这样做,service network restart
一切都会消失!
我已经添加了ifcfg-enp10s0f0
:
GATEWAY0=0.0.0.0
NETMASK0=255.255.255.0
ADDRESS0=192.168.0.0
GATEWAY1=0.0.0.0
NETMASK1=255.255.0.0
ADDRESS1=169.254.0.0
我究竟做错了什么?
答案1
您在 Google 上找到的信息是正确的。您需要创建一个路由(ifname)文件。
内容需要类似于“ip”命令,但只有最后一部分。像这样:
192.168.1.0/24 via 192.168.2.1
更多信息可以在RHEL 7 网络指南。
答案2
我认为为了让持久的 ip 路由和规则发挥作用,您需要执行以下任务:
首先,通过编辑
/etc/iproute2/rt_tables
并添加一行来为您的路由创建一个新的路由表,'mytable' 可以更改为更合适的内容,100 是相对于其他表的优先级:100 mytable
接下来通过创建文件来指定您的接口(例如 eth1)所需的规则和路由(所选的规则和路由是示例,请更改它们以适合您的设置):
在/etc/sysconfig/network-scripts/rule-eth1
:
fr10.10.244/32 table myta
to 10.10.10.244/32 table mytable
在/etc/sysconfig/network-scripts/route-eth1
:
dlt via 10.10.10.1 dev eth1 tableable
最后,安装并启用 NetworkManager 扩展,以允许读取路由和规则文件:
$ sudo yum installworkger-config-routing-rules` $ sudo systemctl start NetworkManager-dispatcher.service`
然后重新启动以检查是否一切正常。
答案3
其中所说的route-eth0
,思考route-enp10s0f0
或route-enp10s0f1
。
本质上,文件中的路由规则在启动route-<interface-name>
时应用,在删除时删除。<interface-name>
<interface-name>