centos 添加永久靜態路由


CentOS7添加永久靜態路由(已測試通過)

轉載自:https://blog.51cto.com/8577921/2348053

一、ip route顯示和設定路由

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  1024
192.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
^C
復制代碼


3、刪除靜態路由

只需要把 add 替換成 del,或者更簡單的只寫目標網絡

[root@centos7 ~]# ip route del 10.15.150.0/24

備注;

ip route 指令對路由的修改不能保存,重啟就沒了。把 ip route 指令寫到 /etc/rc.local 也是徒勞的。

RHEL7官網文檔沒有提到 /etc/sysconfig/static-routes,經測試此文件已經無效;

/etc/sysconfig/network 配置文件僅僅可以提供全局默認網關,語法同 Centos6 一樣: GATEWAY=<ip address> ;

在 /etc/sysconfig/network-scripts/下,新建文件名為route-interfacename的文件
永久靜態路由需要寫到 /etc/sysconfig/network-scripts/route-interfacename 文件中

比如添加兩條靜態路由:(網卡的設備名叫em1)

[root@centos7 ~]# vi /etc/sysconfig/network-scripts/route-em1
10.15.150.0/24 via 192.168.11.2 dev em1
10.25.250.0/24 via 192.168.11.2 dev em1
173.241.113.99 via 192.168.1.1 dev em2

保存,然后service network restart重啟網絡服務后生效

 

 

 

 

 

二、設置永久的靜態路由

1、添加永久靜態路由

ip route 指令對路由的修改不能保存,重啟就沒了。把 ip route 指令寫到 /etc/rc.local 也是徒勞的。

RHEL7官網文檔沒有提到 /etc/sysconfig/static-routes,經測試此文件已經無效;

/etc/sysconfig/network 配置文件僅僅可以提供全局默認網關,語法同 Centos6 一樣: GATEWAY=<ip address> ;

永久靜態路由需要寫到 /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

 

一般直接連接一次設備即可,如果不成功就先斷開設備再連接設備,注意必須兩個指令一起運行,否則,,,,,,你曉得。

[root@centos7 ~]# nmcli dev disconnect enp0s3 && nmcli dev connect enp0s3

 

 

2、清除永久靜態路由

可以刪除 ifcfg-enp0s3文件或者注釋掉文件里的相應靜態路由條目,重啟計算機。

想要讓修改后的靜態路由立即生效,只能用 ip route del 手工刪除靜態路由條目。

 

實驗的過程中出現兩個奇怪的現象:

1)有時候路由生效了但是在 ip route show 卻沒有顯示,重啟計算機后是肯定顯示的,原因暫時不明。

2)存在多個網卡時,默認路由似乎是隨機經由某個網卡設備。檢查了所有連接配置文件后發現,第一網卡的默認連接配置文件 ifcfg-eth0 設置了GATEWAY0(此設置會覆蓋/etc/sysconfig/network 定義的全局默認網關),第二網卡的連接配置文件 ifcfg-eth1 使用的是dhcp,會在啟動時也分配默認網關,兩個默認網關讓計算機糊塗了。這是在測試系統里經常發生的現象,生產系統一般不會讓網卡用dhcp,或者即使是用了也會仔細分配默認網關防止沖突。

 

其他需要注意的:

1)連接配置文件 ifcfg-* 里可以設置多個GATEWAY,一般第一個是 GATEWAY0,然后GATEWAY1, GATEWAY2... ,尾號最大的有效;

2)如果必須在/etc/sysconfig/network 文件定義全局網關,連接配置文件 ifcfg-* 就不要設置GATEWAY了,dhcp的連接要注意dhcp服務器不要定義默認網關。

3)ifcfg-enp0s3 文件改名為 ifcfg-eth0 后,route-enp0s3 文件也要改名為 route-eth0。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM