複数のルーティングプロトコル(BGPなど)があることを知っていますが、ホームネットワークに接続するときにLinuxはどのプロトコルを使用しますか?私はDebianベースのシステムを使用しています。
答え1
ルーティングには2つの主な側面があります。 1つ目はパケットがルーティングされる方法、2つ目はシステムがパケットをルーティングする方法を知る方法です。
最初の名前があるかどうかはわかりません(少なくとも私にとってはそうではありません)。 Linuxカーネルは、ネットワークインタフェース、オプションのゲートウェイ、メトリック、およびその他のさまざまなオプションに関連するサブネットのリストであるルーティングテーブルを維持します。システムがパケットを送信すると、カーネルはルーティングテーブルをチェックします。 1つ以上のエントリがパケットの宛先を含むサブネットを記述すると、カーネルはそれを適切なネットワークまたはゲートウェイに送信します。それ以外の場合はデフォルトゲートウェイに渡します。以下を実行してルーティングテーブルを表示できます。
ip route
(これを行うと、基本テーブルエントリが表示されます)と
ip route table local
(これはローカルテーブルエントリを表示します)または
ip route table all
(これはすべてを示しています)。
少なくとも、次の項目を表示する必要があります。
default via 100.65.64.1 dev wlp3s0 proto dhcp metric 600
100.65.64.0/21 dev wlp3s0 proto kernel scope link src 100.65.67.24 metric 600
これは、100.65.64.0/21(マイサブネット)にパケットを送信することを意味します。渡す wlp3s0
、ルーティングテーブルエントリと一致しないすべてのパケットは100.65.64.1(デフォルトゲートウェイ)に送信されます。
2番目の部分にはさまざまなアルゴリズムがあります。 BGP はそのうちの 1 つですが、通常は AS ルータでのみ表示できます。一般的な前提設定では、ルーティングテーブルは次の情報で埋められます。動的ホスト構成プロトコルIPv4または新しい民主党IPv6で。
よく知られているプロトコルの情報と必ずしも一致しないルーティングテーブルエントリも追加できます。たとえば、コンテナネットワークエントリは、コンテナランタイムによって直接追加されることがよくあります。