GNU/Linux >> Linux の 問題 >  >> Linux

7 Linux ルート コマンドの例 (Linux でルートを追加する方法)

IP ルーティング シリーズの第 1 部では、Linux IP ルーティングの基礎を学びました。

Route コマンドは、IP ルーティング テーブルを表示/操作するために使用されます。主に、インターフェイスを介して特定のホストまたはネットワークへの静的ルートを設定するために使用されます。

この記事では、route コマンドを使用して Linux でルーティング テーブルを操作する方法について説明します。

最初に、いくつかの基本的なルート コマンドの例を使用してルーティングがどのように行われるかを説明し、次に、ネットワークでルートをセットアップする方法について、サンプル ネットワーク アーキテクチャを使用して説明します。

I.ルーティングはどのように行われますか?

1.既存のルートを表示

route コマンドは、デフォルトでカーネル ルーティング テーブル エントリの詳細を表示します。この例では、route コマンドが実行されているシステムの IP アドレスは 192.168.1.157 です。

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

上記のコマンドは、宛先がネットワーク範囲 192.168.1.0 ~ 192.168.1.255 内にある場合、ゲートウェイが *、つまり 0.0.0.0 であることを示しています。

パケットがこの IP 範囲内で送信されると、宛先の MAC アドレスが ARP プロトコルによって検出され、パケットはその MAC アドレスに送信されます。

ARP とは何かを知らない場合は、まず ARP プロトコルの仕組みを理解する必要があります。

この IP 範囲内にない宛先にパケットを送信するために、パケットはデフォルト ゲートウェイに転送されます。デフォルト ゲートウェイは、そのパケットのさらなるルーティングを決定します。これについては後ほど説明します。

デフォルトでは、route コマンドは出力にホスト名を表示します。以下に示すように、-n オプションを使用して数値の IP アドレスを表示するように要求できます。

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.1.10    0.0.0.0         UG    0      0        0 eth0

2.デフォルト ゲートウェイの追加

ネットワーク内にないパケットをゲートウェイ アドレスに転送するように指定できます。

次の route add コマンドは、デフォルト ゲートウェイを 192.168.1.10 に設定します。

$ route add default gw 192.168.1.10

これで、route コマンドは次のエントリを表示します。

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
default         gateway.co.in   0.0.0.0         UG    0      0        0 eth0

これで、マシンにデフォルト ゲートウェイが追加されました。正常に動作しているかどうかを確認するには、外部ホスト (google.com など) に ping を実行して ICMP パケットを送信します。

$ ping www.google.com

以下は、上記の ping コマンドが実行されたときに発生する一連のイベントです。

<オール>
  • まず、DNS サーバーにクエリを実行して google.com の IP アドレスを取得します (例:74.125.236.34 )
  • 宛先アドレス ( 74.125.236.34 ) がネットワーク範囲外です。
  • したがって、レイヤー 3 (IP ヘッダー) では、宛先 IP は「74.125.236.34」として設定されます。
  • レイヤ 2 では、宛先 MAC アドレスは、デフォルト ゲートウェイの MAC アドレス (192.168.1.10 の MAC ) として入力されます。 MAC は、前述のように ARP を使用して検出されます。
  • パケットが送信されると、ネットワーク スイッチ (レイヤ 2 で動作) は、パケットをデフォルト ゲートウェイに送信します。これは、宛先 MAC がゲートウェイの MAC であるためです。
  • ゲートウェイがパケットを受信すると、ルーティング テーブルに基づいて、パケットをさらに転送します。
  • 上記の 2 つの例は、ネットワーク内でルーティングがどのように行われるかについての良いアイデアを示しています。これで、route コマンドで使用できるその他のコマンド ライン オプションが表示されます。

    3.カーネルのルーティング キャッシュ情報の一覧表示

    カーネルはルーティング キャッシュ情報を維持して、パケットをより高速にルーティングします。 -C フラグを使用して、カーネルのルーティング キャッシュ情報を一覧表示できます。

    $ route -Cn
    Kernel IP routing cache
    Source          Destination     Gateway         Flags Metric Ref    Use Iface
    192.168.1.157   192.168.1.51    192.168.1.51          0      0        1 eth0
    192.168.1.157   74.125.236.69   192.168.1.10          0      0        0 eth0
    .
    .
    .

    4.特定のホストまたはネットワークへのルーティングを拒否する

    特定のホスト/ネットワークへのパケットのルーティングを拒否したい場合があります。そのためには、次のエントリを追加してください。

    $ route add -host 192.168.1.51 reject

    以下に示すように、その特定のホスト (つまり、先ほど拒否した .51 ホスト) にアクセスできません。

    $ ping 192.168.1.51
    connect: Network is unreachable

    ただし、ネットワーク内の他のホストには引き続きアクセスできます (たとえば、.52 ホストには引き続きアクセスできます)。

    $ ping 192.168.1.53
    PING 192.168.1.53 (192.168.1.53) 56(84) bytes of data.
    64 bytes from 192.168.1.53: icmp_seq=1 ttl=64 time=7.77 ms

    ネットワーク全体 ( 192.168.1.1 – 192.168.1.255 ) を拒否する場合は、次のエントリを追加します。

    $ route add -net 192.168.1.0 netmask 255.255.255.0 reject

    これで、そのネットワーク内のどのホストにもアクセスできなくなります (例:.51、.52、.53 など)。

    $ ping 192.168.1.51
    connect: Network is unreachable
    
    $ ping 192.168.1.52
    connect: Network is unreachable
    
    $ ping 192.168.1.53
    connect: Network is unreachable

    II.サンプル ネットワーク アーキテクチャ (ルーティングを理解するため)

    残りの例では、次のサンプル ネットワーク アーキテクチャを使用しましょう。

    以下の図では、2 つの個別のネットワーク (192.168.1.0 と 192.168.3.0、サブネット マスクは 255.255.255.0 ) があります。

    3 枚のネットワーク カードを備えた「GATEWAY」マシンもあります。 1 枚目のカードは 192.168.1.0 に接続され、2 枚目のカードは 192.168.3.0 に接続され、3 枚目のカードは外界に接続されます。

    5. 192.168.3.* を 192.168.1.* からアクセス可能にする

    ここで、192.168.3 に ping できるようにルーティング エントリを追加する必要があります。 192.168.1 からの一連の IP アドレス。シリーズ。私たちの共通点は GATEWAY マシンです。

    したがって、192.168.1.* ネットワーク内の各マシンには、以下に示すようにデフォルト ゲートウェイが追加されます。

    $ route add default gw 192.168.1.10

    192.168.1.1 が 192.168.3.1 に ping を実行すると、192.168.1.10 経由で GATEWAY に到達します。

    GATEWAY で、次のルーティング エントリを追加します。

    $ route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.3.10

    これで、192.168.3.* ネットワークにアドレス指定されたすべてのパケットが 192.168.3.10 インターフェイス経由で転送され、アドレス指定されたマシンにパケットが配信されます。

    6. 192.168.1.* を 192.168.3.* からアクセス可能にする

    これは、以前に行ったことと非常によく似ています。

    したがって、192.168.3.* ネットワークの各マシンには、以下に示すようにデフォルト ゲートウェイが追加されます。

    $ route add default gw 192.168.3.10

    GATEWAY で、次のルーティング エントリを追加します。

    $ route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.10

    192.168.3.* マシンが 192.168.1.* マシンに ping できるようになりました。

    7.インターネット アクセスを許可する (外部世界)

    前の 2 つの例では、2 つの異なるネットワークを相互接続しています。

    次に、これら 2 つの異なるネットワークからインターネットにアクセスする必要があります。そのために、次のように、外部世界に接続されている 125.250.60.59 にデフォルト ルーティング (ルーティング ルールが一致しない場合) を追加できます。

    $ route add default gw 125.250.60.59

    これがどのように機能するかです:

    <オール>
  • これらのマシンのいずれか (たとえば、192.168.3.2 から) からインターネット (たとえば、ping google.com) にアクセスしようとすると、次のような一連のイベントが発生します。
  • 宛先 (google.com) が 3.* シリーズに含まれていないため、3.10 インターフェイス経由で GATEWAY に転送されます
  • GATEWAY では、宛先が 1.* の範囲内にあるかどうかをチェックします。この例ではそうではありません。
  • 次に、宛先が 2.* の範囲内にあるかどうかをチェックします。この例では、そうではありません
  • 最後に、デフォルト ルートを使用してパケットを転送します (つまり、外部世界に接続されている 125.250.60.59 インターフェースを使用します)。

  • Linux
    1. Linux での sa コマンドの例

    2. Linux での ac コマンドの例

    3. Linux での df コマンドの例

    1. RHEL7Linuxで新しい静的ルートを追加する方法

    2. 8 Linux TR コマンドの例

    3. Linux での du コマンドの例

    1. Linux で ip コマンドの例を使用して複数のルートを追加する方法

    2. Linux での rm コマンドの例

    3. Linux での ps コマンドの例