答え1
linkdown
テーブルに表示され、その状態のインターフェイスを通過するルート用に設定されている状態DOWN
。以下を実行してこれを確認できます。
ip a
インターフェイスの状態を探します。私のラップトップでWiFiをオンにしてイーサネットアダプタを外すと、次のようになります。
wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
enp0s25: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
私のルーティングテーブルには多くのルートがありますが、いくつかのジャンクルートを追加できます。
sudo ip route add 192.168.123.0/24 dev enp0s25
sudo ip route add 192.168.124.0/24 dev wlp3s0
linkdown
これにより、マイテーブルにイーサネットパスが表示されます。
192.168.123.0/24 dev enp0s25 scope link linkdown
192.168.124.0/24 dev wlp3s0 scope link
onlink
これは、パスが「インターフェイスプレフィックスと一致しない場合でも、ネクストホップがこのリンクに直接接続されていると仮定する」ことを意味します。したがって、私たちは偽のテーブルを1つにすることもできます:
sudo ip route add 192.168.125.0/24 via 192.168.123.111 dev wlp3s0 onlink
これで、ルーティングテーブルに次のものが表示されます。
192.168.123.0/24 dev enp0s25 scope link linkdown
192.168.124.0/24 dev wlp3s0 scope link
192.168.125.0/24 via 192.168.123.111 dev wlp3s0 onlink
ダウンストリームインターフェイスに接続すると、クールになり、両方を持つことができます。
192.168.126.0/24 via 192.168.123.111 dev enp0s25 onlink linkdown
答え2
linkdown
テーブルに表示され、その状態のインターフェイスを通過するルート用に設定されている状態DOWN
。
onlink
このオプションが実際に何をしているのかを見てみましょう。
eth0
コンピュータでIPアドレス/マスクを設定しました:192.168.0.1/24
何らかの理由で、eth0
実際のLANで一貫していない構成のゲートウェイを使用しようとしています。アドレスが10.0.10.1/24であると仮定します。これは、コンピュータに提供した192.168.0.1/24構成と一致しません。
あなたが言うなら:
ip route add default dev eth0 via 10.0.10.1
その後、エラー応答(ネットワークに接続できないなど)が届きます。
なぜ? (厳密には)eth0
コンピュータにこのLANのネットワークアドレスが192.168.0.0/24と指定されているため、10.0.10.1 LANにコンピュータを置くことは意味がありません。
onlink
しかし、次のような結果が出ます。次のようにコマンドに追加すると、
ip route add default dev eth0 via 10.0.10.1 onlink
これでパスが承認されます。
onlink
しかし、もう別の問題が発生しました。パケットがこのゲートウェイにルーティングされる必要がある場合、カーネルは何をしますか?
(実験的に)確認した結果は次のとおりです。カーネルは、ユーザーが設定したゲートウェイeth0
「10.0.10.1を持つ人」を要求するLANからarp要求を送信します。onlink
応答を受け取ると、カーネルはMACアドレスパケットを送信してルーティングを実行できます。
つまり、ゲートウェイアドレスがシステムのLAN構成と一致しない場合()ステートメントにeth0
追加して、カーネルにこのゲートウェイを使用するように強制することができます。onlink
この機能を使用する必要がある場合はほとんどないようです。オンラインリンクオプションが必要な状況は、ほとんどがネットワーク設計が悪いためです。一般的なトンネル設定にも必要ないと思いますonlink
。
回答ソース:ここ