一、iproute显示和设定路由
1、显示路由表
[root@centos7 ~]# ip route show default via 192.168.150.254 dev enp0s3 proto static metric 1024 192.168.150.0/24 dev enp0s3 proto kernel scope link src 192.168.150.110
太难看了,低格一下(显示的是默认网段和局域网络由,两行的内容没有共通性):
[root@centos7 tmp]# ip route show|column -t default via 192.168.150.254 dev enp0s3 proto static metric 1024192.168.150.0/24 dev enp0s3 proto kernel scope link src 192.168.150.110
2、添加静态路由
[root@centos7 ~]# ip route add 10.15.150.0/24 via 192.168.150.253 dev enp0s3 [root@centos7 ~]# [root@centos7 ~]# ip route show|column -t default via 192.168.150.254 dev enp0s3 proto static metric 1024 10.15.150.0/24 via 192.168.150.253 dev enp0s3 proto static metric 1 192.168.150.0/24 dev enp0s3 proto kernel scope link src 192.168.150.110 [root@centos7 ~]#[root@centos7 ~]# ping 10.15.150.1 PING 10.15.150.1 (10.15.150.1) 56(84) bytes of data. 64 bytes from 10.15.150.1: icmp_seq=1 ttl=63 time=1.77 ms 64 bytes from 10.15.150.1: icmp_seq=1 ttl=63 time=1.08 ms 64 bytes from 10.15.150.1: icmp_seq=1 ttl=63 time=1.57 ms
3、删除静态路由
只须要把add替换成del,或则更简单的只写目标网路
[root@centos7 ~]# ip route del 10.15.150.0/24
二、设置永久的静态路由
1、添加永久静态路由
iproute指令对路由的更改不能保存,重启就没了。把iproute指令讲到/etc/rc.local也是徒劳的。
RHEL7官网文档没有提及/etc/sysconfig/static-routes,经测试此文件早已无效;
/etc/sysconfig/network配置文件仅仅可以提供全局默认网段,句型同Centos6一样:GATEWAY=;
永久静态路由须要讲到/etc/sysconfig/network-scripts/route-interface文件中,例如添加两条静态路由:
[root@centos7 ~]# vi /etc/sysconfig/network-scripts/route-enp0s3 10.15.150.0/24 via 192.168.150.253 dev enp0s3 10.25.250.0/24 via 192.168.150.253 dev enp0s3
重启计算机,或则重新启用设备enp0s3才会生效。
[root@centos7 ~]# nmcli dev connect enp0s3
通常直接联接一次设备即可,假若不成功就先断掉设备再联接设备centos添加路由,注意必须两个指令一起运行,否则,,,,,,你知道。
[root@centos7 ~]# nmcli dev disconnect enp0s3 && nmcli dev connect enp0s3
2、清除永久静态路由
可以删掉ifcfg-enp0s3文件或则注释掉文件里的相应静态路由条目centos添加路由,重启计算机。
想要让更改后的静态路由立刻生效,只能用iproutedel手工删掉静态路由条目。
实验的过程中出现两个奇怪的现象:
1)有时侯路由生效了并且在iprouteshow却没有显示,重启计算机后是肯定显示的kali linux,缘由暂时不明。
2)存在多个网卡时,默认路由其实是随机经由某个网卡设备。检测了所有联接配置文件后发觉,第一网卡的默认联接配置文件ifcfg-eth0设置了GATEWAY0(此设置会覆盖/etc/sysconfig/network定义的全局默认网段),第二网卡的联接配置文件ifcfg-eth1使用的是dhcp,会在启动时也分配默认网段,两个默认网段让计算机糊涂了。这是在测试系统里时常发生的现象linux社区,生产系统通常不会让网卡用dhcp,或则虽然是用了也会仔细分配默认网段避免冲突。
其他须要注意的:
1)联接配置文件ifcfg-*里可以设置多个GATEWAY,通常第一个是GATEWAY0,之后GATEWAY1,GATEWAY2…,尾号最大的有效;
2)假如必须在/etc/sysconfig/network文件定义全局网段,联接配置文件ifcfg-*就不要设置GATEWAY了,dhcp的联接要注意dhcp服务器不要定义默认网段。
3)ifcfg-enp0s3文件更名为ifcfg-eth0后,route-enp0s3文件也要更名为route-eth0