|
||
|
静的ルーティングを追加するデフォルトゲートウェイ以外のルーティングを追加する手順です。なお、デフォルトゲートウェイはnmcli経由で設定する方が良いでしょう。 別項 nmcliでIPアドレスを設定する 参照 ルーティングを表示する コマンドで永続ルーティングを追加する 一時ルーティングを追加にする ファイルへ永続ルーティングを追加する おまけ nmcliでのルーティング追加 ルーティングを表示するコマンド #ip route show
通常表示されるのは「default」と表記されるデフォルトゲートウェイと、ダイレクトコネクトつまり自分が所属するセグメントです。default via 192.168.1.1 dev enp0s3 proto static metric 100 192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.108 metric 100 ルーティングの追加方法は以下の通りです。 ・コマンドで永続ルーティングを追加 ・設定ファイルへ永続ルーティングを追加 ・コマンドで一時ルーティングを追加 一時ルーティングは、設定した直後から有効になりますが、OS再起動したら消えます。 永続ルーティングは設定しただけでは有効になりませんが、ネットワークを再読み込みさせるかOSを再起動すると有効になります。 普通サーバは簡単に再起動できないことが多いので、再起動したら消えてしまう一時ルーティングの追加と、次回再起動したとき有効になる永続ルーティングの追加の、両方を行います。 コマンドで永続ルーティングを追加する 永続ルーティングをコマンドで設定します。 nmcliを使います。 この設定は次回ネットワークが再起動したときに有効になるため、すぐ有効にしたければネットワークサービスを再起動します。 再起動できない場合は、次の「一時ルーティングの追加」を行います。 まず、ip addr コマンドで表示されるデバイス名を確認します。(コネクション名ではありません) #ip addr
ルーティングの追加(確認したデバイス名を指定)。追加なので「プラス記号」を付けます #nmcli conn mod ens0s3 +ipv4.routes "10.1.1.0/24 192.168.1.2"
ネットワークを一度再起動して反映 #systemctl restart network
nmcliコマンドで永続ルーティングを追加できます。 nmcliコマンドがなにをしているかと言えば、単に/etc/sysconfig/network-script/route-デバイスへ、ルーティングを追加しているだけです。 つまりエディタでやるのと同じことを自動でやってくれます。 ファイルへ追加しているのだから、ネットワークかOSを再起動しないとルーティングテーブルは有効にはなりません。 ルーティングの削除 #nmcli conn mod ens0s3 -ipv4.routes "10.1.1.0/24 192.168.1.2"
サーバなど再起動できない環境の場合、次の一時ルーティングを続けて設定します。 一時ルーティングの追加 routeファイルに設定された永続ルーティングは、ネットワークを再起動するまで有効になりません。 ネットワークを停止できないサーバの場合、いつか再起動するまで一時ルーティングを追加しておきます。 いつか再起動したら消えてしまう設定ですが、その時は永続ルーティングの方が有効になってくれます。 新しいipコマンドによるものと従来のrouteコマンドによるものがありますが、どちらを使用してもいいでしょう。 ipコマンドによるルーティング追加 #ip route add 10.1.1.0/24 via 192.168.1.2
#ip route add 10.2.2.1 via 192.168.1.3 削除 #ip route del 10.1.1.0/24
#ip route del 10.2.2.1 routeコマンドによるルーティング追加 #route add -net 10.1.1.0 netmask 255.255.255.0 gw 192.168.1.2
#route add -host 10.2.2.1 gw 192.168.1.3 削除 #route del -net 10.1.1.0 netmask 255.255.255.0
#route del 10.2.2.1 コマンドからルーティングを削除しても、それは一時ルーティングの削除です。 OS起動中のみ有効な設定です。 次回再起動時も削除しておきたければ、永続ルーティングをコマンドもしくは設定ファイルから削除しておきます。 ファイルへ永続ルーティングを追加する システム再起動後も維持される「永続ルーティング」を追加する場合、従来通りファイルに追加するのが安心という管理者もいるでしょう。 まず、ip addr コマンドで表示されるデバイス名を確認します。(コネクション名ではありません) 確認したデバイス名を使って、/etc/sysconfig/network-scripts 配下に、 「route-デバイス名」というファイルを作成します。 #ip addr
#vi /etc/sysconfig/network-script/route-enp0s3 次にファイルの中に追加ルーティングを記述します。 ルーティングの記述形式は2種類あるので、どちらかに統一します。 注意 「DHCPの場合」と「nmcliですでにデフォルトゲートウェイが手動設定してある場合」は、routeファイルの中の デフォルトゲートウェイ設定は無視されます。 ipコマンド形式で記述 (ip routeコマンドの引数の形式) /etc/sysconfig/network-script/route-enp0s3
default via 192.168.1.100 #デフォルトゲートウェイ。DHCPなら無視される 10.1.1.0/24 via 192.168.1.2 10.2.2.1/32 via 192.168.1.3 ネットワーク/ネットマスクディレクティブ形式で記述 (従来型) /etc/sysconfig/network-script/route-enp0s3
ADDRESS0=10.1.1.0 NETMASK0=255.255.255.0 GATEWAY0=192.168.1.2 ADDRESS1=10.2.2.1 NETMASK1=255.255.255.255 GATEWAY1=192.168.1.3 ネットワークを再起動し設定を反映・ルーティングの確認 # systemctl restart network
# ip route show ネットワークを再起動できないサーバなら、一時ルーティングを追加することで対応します。 ちなみにrouteファイルの中に2つの形式を混在させてみたら、 ネットワーク/ネットマスクディレクティブ形式のルーティングのみが有効となりました。 ![]() ![]() ipコマンド形式と位置を入れ替えてみても、変わらなかったので順序は関係ない模様。 おまけ nmcliでのルーティング追加について ルーティングファイルへは、nmcliからコマンドで設定を追加できるわけですが #nmcli conn mod ens0s3 +ipv4.routes "10.1.1.0/24 192.168.1.2"
nmcliはちょっと気が利いています。 ルーティングファイルの中身によって動作が変化します。 ・ルーティングファイルがまだ存在しない場合 → nmcliはネットワーク/ネットマスクディレクティブ形式でルーティングファイルを作成してくれます。 ・すでにルーティングファイルがあり、内容が ネットワーク/ネットマスクディレクティブ形式 → nmcliは ネットワーク/ネットマスクディレクティブ形式でルーティングを追加してくれます。 ・すでにルーティングファイルがあり、内容がipコマンド形式 → nmcliは ipコマンド形式でルーティングを追加してくれます。 つまりルーティングファイルの形式はあまり気にせず、コマンドまかせでよい、ということです。 ちなみにわざと記述形式を混在させたルーティングファイルへnmcliからルーティングを追加すると もともと機能していなかったipコマンド形式をコメントアウトしてくれました。 ![]() 柔軟なコマンドです。 |
|
![]() |