このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

ルーティングの設定:nmcliコマンド

nmcliコマンド(ルーティングの設定)

 nmcliコマンドは、NetworkManagerを操作してネットワーク設定を管理するためのコマンドラインツールで、ルーティングの設定も簡単に行うことができます。この設定は恒久的なものであり、システムの再起動後も保持されます。

【構文】ルーティングの設定
nmcli connection modify コネクション名 +ipv4.routes "宛先ネットワーク 転送先のIPアドレス"

主なコマンドと説明

コマンド構文説明
nmcli connection modify コネクション名 +ipv4.routes "宛先ネットワーク 転送先のIPアドレス"指定した宛先ネットワークへのルートを追加します。
nmcli connection modify コネクション名 -ipv4.routes "宛先ネットワーク 転送先のIPアドレス"指定した宛先ネットワークへのルートを削除します。
主なコマンドと説明

コマンドの使用例と解説

想定するネットワーク構成図
1.rootユーザーに切り替える。

・「su -」コマンドを実行します。

 su -コマンドを使用して、rootユーザーに切り替えます。これにより、システム全体のネットワーク設定を変更できる権限を得ます。

user01@ubuntu-vm:~$ su -
パスワード: 
root@ubuntu-vm:~# 
2.現在のルーティングテーブルを表示する。

・「ip route show」コマンドを実行します。

 このコマンドを使用して、現在のルーティングテーブルを表示します。現在設定されているルートを確認することができます。

root@ubuntu-vm:~# ip route show
default via 10.0.2.2 dev enp0s3 proto static metric 20100 
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.100 metric 100 
169.254.0.0/16 dev enp0s3 scope link metric 1000
3.172.16.1.0/24へのルートを追加する。

・「nmcli connection modify enp0s3 +ipv4.routes "172.16.1.0/24 10.0.2.3"」コマンドを実行します。

 このコマンドで、enp0s3インターフェースに対して172.16.1.0/24ネットワークへのルートを10.0.2.3を経由して追加します。この設定は恒久的なもので、再起動後も保持されます。

root@ubuntu-vm:~# nmcli connection modify enp0s3 +ipv4.routes "172.16.1.0/24 10.0.2.3"
4.ルーティングテーブルを再度表示する。

・「ip route show」コマンドを実行します。

再度ルーティングテーブルを表示しますが、この時点では新しいルートが反映されません。

root@ubuntu-vm:~# ip route show
default via 10.0.2.2 dev enp0s3 proto static metric 20100 
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.100 metric 100 
169.254.0.0/16 dev enp0s3 scope link metric 1000 
5.ネットワークサービスを再起動する。

以下のコマンドを実行します。

  • nmcli con down enp0s3」コマンド
  • nmcli con up enp0s3」コマンド

 ネットワークサービスを再起動することで、新しいルートが有効になります。nmcli con downでインターフェースを無効にし、nmcli con upで再度有効にします。

root@ubuntu-vm:~# nmcli con down enp0s3
接続 'enp0s3' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/2)
root@ubuntu-vm:~# nmcli con up enp0s3
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/3)
6.ルーティングテーブルを再度表示する。

・「ip route show」コマンドを実行します。

 ルーティングテーブルを再度表示し、新しいルートが正しく追加されたことを確認します。

root@ubuntu-vm:~# ip route show
default via 10.0.2.2 dev enp0s3 proto static metric 20100 
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.100 metric 100 
169.254.0.0/16 dev enp0s3 scope link metric 1000 
172.16.1.0/24 via 10.0.2.3 dev enp0s3 proto static metric 100 
7.追加したルートを削除する。

・「nmcli connection modify enp0s3 -ipv4.routes "172.16.1.0/24 10.0.2.3"」コマンドを実行します。

このコマンドを使用して、先ほど追加したルートを削除します。

root@ubuntu-vm:~# nmcli connection modify enp0s3 -ipv4.routes "172.16.1.0/24 10.0.2.3"
8.ネットワークサービスを再起動する。

以下のコマンドを実行します。

  • nmcli con down enp0s3」コマンド
  • nmcli con up enp0s3」コマンド

 ネットワークサービスを再起動することで、ルートの削除が反映されます。nmcli con downでインターフェースを無効にし、nmcli con upで再度有効にします。

root@ubuntu-vm:~# nmcli con down enp0s3
接続 'enp0s3' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/2)
root@ubuntu-vm:~# nmcli con up enp0s3
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/3)
9.ルーティングテーブルを再度表示する。

・「ip route show」コマンドを実行します。

再度、ルーティングテーブルを表示し、ルートが削除されたことを確認します。

root@ubuntu-vm:~# ip route show
default via 10.0.2.2 dev enp0s3 proto static metric 20100 
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.100 metric 100 
169.254.0.0/16 dev enp0s3 scope link metric 1000 

まとめ

 nmcliコマンドを使用することで、ルーティング設定を恒久的に行うことができます。設定はNetworkManagerによって管理され、再起動後も保持されるため、信頼性の高いネットワーク管理が可能です。ルートの追加や削除も簡単に行えるため、ネットワークの柔軟な構成に役立ちます。