再帰的なルートを追加しようとしています。次のアイデアは、Ciscoルーターなどでうまく機能しますが、Linux(Ubuntu 14.04.5 LTS)は満足していません
# ip -4 route add 1.1.1.1/32 dev eth4
# ip -4 route add 2.2.2.2/32 via 1.1.1.1
# ip -4 route add 3.3.3.3/32 via 2.2.2.2
RTNETLINK answers: Network is unreachable
# ip route
default via 10.122.197.1 dev eth4 metric 100
1.1.1.1 dev eth4 scope link
2.2.2.2 via 1.1.1.1 dev eth4
再帰を手動で解決し、最終的なゲートウェイを入力しますか?Linuxはルーティングされたパケットを直接送信し、着信パケットの可能性があるものとして処理せず、再度ルーティングします。なぜ再帰的なルートが必要だと思いますか?
—
Dirkt
はい、これは手動で行うことができますが、私のQがLinuxでこれを行うことができない理由です。申し訳ありませんが、プロジェクトの理由を明かすことはできません。
—
ニールマクギル
Linuxネットワークスタックの仕組みであるため、Linuxでは実行できません。また、ルーティング処理後の追加チェックを回避して、パケット処理をより効率的にします。また、ネットワークスタックを実装する場合、これが必要になる理由がわからないので、それも含めませんでした(そして、あなたは説明したくありません)。これは答えとして十分ですか?
—
Dirkt
@dirktルートを追加するときに、同じチェックを1回実行できます。これは、たとえばBirdで再帰ルートが実装される方法です。
—
-grawity
複数レベルのルート再帰はルーターの世界ではかなり標準的なものですが、Linuxは1レベルの再帰と2レベル以上で停止するようです。@grawityが、ルートインストール時にfibに1回実行できると言っているように、これは効率のために実行されるという答えを特に購入していません。リブは、マルチレベルの再帰を追跡できます。少なくともそれはルーターでの動作です。これは、これをサポートしないという意図的な設計上の選択か、Linuxのバグのように見えます... Birdは私にとって新しいものです-その情報をありがとう。
—
ニールマクギル