Linux
 Computer >> コンピューター >  >> システム >> Linux

Linuxでのルーティング設定方法(RHEL/CentOS):ipコマンドによる静的ルートの追加・削除と管理

本記事では、Linux CentOS環境においてipコマンドを使用してルーティングを構成し、ネットワークルートを管理する方法を解説します(ルーティングテーブルの表示、静的ルートの追加・削除など)。この記事の内容は、ipツールを備えた他のLinuxディストリビューション(Red Hat、Fedoraなど)でも同様に適用できます。

Linuxでルーティングを管理する際には、routeコマンドではなくipコマンドの使用が推奨されます。routeコマンドは、ポリシールーティングのような高度なルーティング機能を設定できず、ipツールで設定された特殊なルーティング設定を表示することもできないためです。

Linuxでネットワークルーティングテーブルを表示する方法

Linuxで現在のルーティングテーブルを表示するには、以下のコマンドを実行します。

# ip route

Linuxでのルーティング設定方法(RHEL/CentOS):ipコマンドによる静的ルートの追加・削除と管理
  • default via 192.168.1.1 dev enp0s3:この例では、enp0s3インターフェースを使用するデフォルトゲートウェイを示します。宛先IPアドレスがルーティングテーブル内の静的ルートに一致しない場合、パケットはこのゲートウェイ(デフォルトルート)経由で送信されます。
  • 192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.201:192.168.1.0/24ネットワークへの静的ルートで、インターフェース192.168.1.201を経由します。
  • proto kernel:カーネルによって自動作成されたルートを示します(proto staticは管理者が手動で追加したルートを意味します)。
  • metric:ルートの優先度を表します(メトリック値が小さいほど優先度が高くなります)。同じメトリック値を持つルートが2つ存在する場合(絶対に避けるべき設定です)、カーネルはランダムにルートを選択します。

特定のIPアドレス宛てのトラフィックがどのインターフェース(ゲートウェイ)を経由するかを確認するには、次のコマンドを使用します。

# ip route get 192.168.2.45

192.168.2.45 via 192.168.1.1 dev enp0s3 src 192.168.1.201

2つ以上のネットワークインターフェースを持つLinuxサーバーは、ルーターやインターネットゲートウェイとして活用できます。複数のインターフェース間でパケットを転送するには、カーネルパラメータnet.ipv4.ip_forward = 1を有効にします。

Linuxで静的ルートを追加・削除する方法

特定のIPネットワークへの新しいルートをLinuxのルーティングテーブルに追加するには、以下のコマンドを実行します。

# ip route add 192.168.0.0/24 via 192.168.1.1

これにより、192.168.0.0/24ネットワークへのルートがゲートウェイ192.168.1.1経由で追加されます。

ip routeコマンドの構文はCisco IOSの構文に非常によく似ています。省略形も使用可能で、例えばip route addの代わりにip pro adと入力することもできます。

Linuxでのルーティング設定方法(RHEL/CentOS):ipコマンドによる静的ルートの追加・削除と管理

単一のIPアドレス(ホスト)に対して個別の静的ルートを追加することもできます。

# ip route add 192.168.1.0 via 192.168.1.1

Ciscoと同様に、nullルート(ip route null0に相当)を作成することもできます。このネットワーク宛てのパケットは「No route to host」として破棄されます。

# ip route add blackhole 10.1.20.0/24

この方法で追加したルートは一時的なもので、ネットワークサービスまたはサーバーを再起動するまでの間のみ有効です。

手動で作成した静的ルートを削除するには、以下のコマンドを実行します。

# ip route del 192.168.0.0/24

Linuxでのルーティング設定方法(RHEL/CentOS):ipコマンドによる静的ルートの追加・削除と管理

このように、ルートがLinuxのルーティングテーブルから削除されたことが確認できます。

永続的なルートを追加するには、ルート用の設定ファイルを作成するか、rc.localファイル(ホスト起動時に実行される)にルールを追加する必要があります。

永続的な静的ルートを追加するには、ルーティングに使用するネットワークインターフェース名が必要です。以下のコマンドでインターフェース名を確認できます。

# ip a

この例では、インターフェース名はenp0s3です。

次に、以下のファイルを開きます。

# nano /etc/sysconfig/network-scripts/route-enp0s3

そして、ルートを含む行を追加します。

192.168.0.0/24 via 192.168.1.1

ルートをファイルに追加した後、networkサービスを再起動します。

# service network restart

Linuxでのルーティング設定方法(RHEL/CentOS):ipコマンドによる静的ルートの追加・削除と管理

ネットワークを再起動すると、ルーティングテーブルに静的ルートが表示されます。

また、サーバーの起動時に静的ルートを自動的に追加したい場合は、rc.localファイルにルート追加コマンドを記述する方法もあります。ファイルを開きます。

# nano /etc/rc.local

そして、静的ルートを追加するコマンドを入力します。

# ip route add 192.168.0.0/24 via 192.168.1.1

Linuxでのルーティング設定方法(RHEL/CentOS):ipコマンドによる静的ルートの追加・削除と管理

これで、サーバーを再起動すると、システム起動時にルートが自動的に追加されるようになります。

Linuxで既存のルートエントリを変更する方法

既存のルートを変更するには、ip route replaceコマンドを使用します。

# ip route replace 192.168.0.0/24 via 192.168.1.1

Linuxでのルーティング設定方法(RHEL/CentOS):ipコマンドによる静的ルートの追加・削除と管理

ルーティングテーブル内のすべての一時的なルートをリセットしたい場合は、ネットワークサービスを再起動するだけで完了です。

# service network restart

Restarting network (via systemctl): [ OK ]

# ip route

default via 192.168.1.1 dev enp0s3 proto static metric 100
192.168.0.0/24 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.201 metric 100

Linuxでデフォルトルート(デフォルトゲートウェイ)を変更する方法

デフォルトルートは、ip route delコマンドで削除できます。

# ip route del default via 192.168.1.1 dev enp0s3

新しいデフォルトルートを設定するには、CentOS/RHEL Linuxで以下のコマンドを使用します。

# ip route add default via 192.168.1.2(ゲートウェイのIPアドレスを指定する場合)

# ip route add default via enp0s3(デバイス名を指定する場合)

デフォルトルートの設定を変更するには、次のコマンドを使用します。

# ip route replace default via 192.168.1.2

Linuxでのルーティング設定方法(RHEL/CentOS):ipコマンドによる静的ルートの追加・削除と管理
  1. Red Hat Enterprise Linuxにお金を払いたくない?無料で使えるCentOSという選択肢

    デスクトップ向けLinuxディストリビューションを選ぶとき、多くの人が思い浮かべるのはUbuntu、Fedora、openSUSEといった使いやすいOSでしょう。しかし、Linuxがコンピューティングの世界でこれほど支持されている最大の理由の一つは、エンタープライズ環境やサーバーでの圧倒的な採用実績にあります。 ご存じない方のために補足すると、現在のWebの大部分はLinuxによって支えられています。Facebook、Twitter、Googleをはじめ、主要なインターネットサイトの大多数がサーバーにLinuxを採用しています。サーバー管理者は複数のディストリビューションから選択できますが、そ

  2. RHEL・CentOS・Fedoraの違いを徹底解説!特徴と選び方のポイント

    Linuxディストリビューションは、よく車のモデルにたとえられます。選択肢が非常に多く、新しいものが日々登場するため、それぞれの違いを見極めるのは容易ではありません。中でも、Red Hat社が所有・支援する3つの主要ディストリビューションについては、混同されがちです。本記事では、RHEL、CentOS、Fedoraの違いを明確にし、それぞれがどんな用途に向いているのかをわかりやすく解説します。 RHEL、CentOS、Fedoraの共通点 まず、3つのディストリビューションの共通点から見ていきましょう。いずれも、2004年に開発が終了したRed Hat Linuxをベースとしています。Re