Linux CentOS 7 routeを変更するコマンド

今回は、CentOSでルーティングを変更したいって時に役に立つコマンドと設定方法をご紹介致します。

 ネットワーク172.16.0.0 宛を gw 172.16.0.1 へ向けるルーティング
route add -net 172.16.0.0 gw 172.16.0.1 netmask 255.255.0.0 eth0

 ホスト172.16.0.10 宛をgw 172.16.0.1 へ向けるルーティング
route add -host 172.16.0.10 gw 172.16.0.1 eth0

 gw 172.16.0.1 へ向いてるネットワーク172.16.0.0 のルーティングを削除
route delete -net 172.16.0.0 gw 172.16.0.1 netmask 255.255.0.0 eth0

 gw 172.16.0.1 へ向いてるホスト172.16.0.10 のルーティングを削除
route delete -host 172.16.0.10 gw 172.16.0.1 eth0

上記のコマンドはルーティングを変更できるが一時的でありLinuxを再起動すると設定ファイルのルーティング情報が読み込まれるので、permanent設定をするには以下のファイルに設定を行う。
 vi /etc/sysconfig/network-scripts/route-インターフェイス名

[設定例]/etc/sysconfig/network-scripts/route-インターフェイス名

 

ADDRESS0=172.16.0.0
NETMASK0=255.255.0.0
GATEWAY0=172.16.0.1
ADDRESS1=172.17.0.0
NETMASK1=255.255.0.0
GATEWAY1=172.17.0.1

 

設定が完了したらnetwork.serviceを再起動
systemctl restart network

 

その他、ip route コマンドでもルーティングを変更することができる。

 ネットワーク172.16.0.0 宛を gw 172.16.0.1 へ向けるルーティング
ip route add 172.16.0.0/16 via 172.16.0.1 dev eth0

 ホスト172.16.0.10 宛をgw 172.16.0.1 へ向けるルーティング
ip route add 172.16.0.10 via 172.16.0.1 dev eth0

 ネットワーク172.16.0.0 のルーティングを削除
ip route del 172.16.0.0/16

 ホスト172.16.0.10 のルーティングを削除
ip route del 172.16.0.10

/etc/sysconfig/network-scripts/route-インターフェイス名の設定ファイルをviで開いて編集しなくても nmcliコマンドを使えばpermanentの設定ができる。
nmcli con eth0 +ipv4.routes “172.18.0.0/16 172.18.0.1”

cat /etc/sysconfig/network-scripts/route-eth0

 

ADDRESS0=172.16.0.0
NETMASK0=255.255.0.0
GATEWAY0=172.16.0.1
ADDRESS1=172.17.0.0
NETMASK1=255.255.0.0
GATEWAY1=172.17.0.1
ADDRESS3=172.18.0.0
NETMASK3=255.255.0.0
GATEWAY3=172.18.0.1

 

ADDRESS3、NETMASK3、GATEWAY3が新たに追加される。