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

【Linux】デフォルトゲートウェイの設定:ipコマンド

デフォルトゲートウェイの概要

 ネットワーク管理において、デフォルトゲートウェイの設定は非常に重要です。デフォルトゲートウェイは、ネットワーク上のデバイスが他のネットワークと通信する際に使用するルートを指します。ここでは、ipコマンドを使用してデフォルトゲートウェイを設定する方法を解説します。また、一時的な設定と恒久的な設定の違いについても解説します。

デフォルトゲートウェイの設定

 デフォルトゲートウェイを設定するには、ipコマンドやrouteコマンドを使用しますが、これらのコマンドで行った設定は再起動時にリセットされます。恒久的に設定を維持するには、設定ファイルを編集するか、nmcliコマンドを使用する必要があります。

恒久的な設定方法

 Red Hat系のLinuxディストリビューション(CentOSなど)では、/etc/sysconfig/network-scripts/ifcfg-[NIC名] ファイルを編集して、デフォルトゲートウェイを恒久的に設定することができます。

例: CentOS 7 の /etc/sysconfig/network-scripts/ifcfg-enp0s3

以下の設定ファイルにデフォルトゲートウェイの設定を追加します。

$ cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s3"
UUID="24371982-477d-406f-a95b-1ffa4258bb68"
DEVICE="enp0s3"
ONBOOT="yes"

このファイルに

GATEWAY="デフォルトゲートウェイのIPアドレス"

という行を追加することで、再起動後も設定が維持されます。

ipコマンドによるデフォルトゲートウェイの設定

 ipコマンドを使用してデフォルトゲートウェイを一時的に設定する方法を説明します。ip routeコマンドを使用することで、ルーティングテーブルを操作します。

主なコマンドとその説明

コマンド説明
ip route show現在のルーティングテーブルを表示します。
ip route add default via IPアドレス指定したIPアドレスを持つデフォルトゲートウェイをルーティングテーブルに追加します。
ip route delete default現在設定されているデフォルトゲートウェイを削除します。
主なコマンドとその説明

コマンドの使用例と解説

1.rootユーザーに切り替える。

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

  su -コマンドを使って、rootユーザーに切り替えます。これにより、システム管理者権限でコマンドを実行することができます。

user01@ubuntu-vm:~$ su -
パスワード: 
root@ubuntu-vm:~#

2.現在のルーティングテーブルを表示する。

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

 現在のルーティングテーブルの内容を確認します。以下のように、設定されているルートが表示されます。

root@ubuntu-vm:~# ip route show
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 
出力結果の例説明
10.0.2.0/24 dev enp0s3 proto kernel scope link10.0.2.0/24 のネットワークへのルートがインターフェース enp0s3 に設定されていることを示します。
169.254.0.0/16 dev enp0s3 scope linkこれはリンクローカルアドレスであり、通常は特定のネットワークが見つからない場合に使用されます。
現在のルーティングテーブル

3.デフォルトゲートウェイを設定する。

・「ip route add default via 10.0.2.1」コマンドを実行します。

 このコマンドで、10.0.2.1をデフォルトゲートウェイとして設定します。これにより、他のネットワークに対する通信がこのゲートウェイを通じて行われるようになります。

root@ubuntu-vm:~# ip route add default via 10.0.2.1

4.ルーティングテーブルを確認する。

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

 再度、ルーティングテーブルを確認し、デフォルトゲートウェイが正しく設定されていることを確認します。

root@ubuntu-vm:~# ip route show
default via 10.0.2.1 dev enp0s3 
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.デフォルトゲートウェイを削除する。

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

 設定されているデフォルトゲートウェイを削除します。これにより、デフォルトルートが無効化されます。

root@ubuntu-vm:~# ip route delete default

6.ルーティングテーブルを確認する。

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

 再度、ルーティングテーブルを確認し、デフォルトゲートウェイが削除されたことを確認します。

root@ubuntu-vm:~# ip route show
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 

まとめ

 ipコマンドを使用したデフォルトゲートウェイの設定は、シンプルですが、設定が再起動後に保持されないため、恒久的な設定が必要な場合は設定ファイルを編集するか、nmcliコマンドで設定する必要があります。システム管理者は、恒久的なネットワーク設定を行う際に、この点に注意する必要があります。