クライアントとコアルーターの間にUbuntuベースのゲートウェイをセットアップしようとしています。理想的なトラフィックフローは次のとおりです。
ClientGroup 1(10.0.0.0/24)-> Ubuntuゲートウェイ(10.0.0.2)->コアルーター(10.0.0.1)->インターネット
ClientGroup 2(10.0.1.0/24)-> Ubuntuゲートウェイ(10.0.1.2)->コアルーター(10.0.1.1)->インターネット
ClientGroup 3(10.0.2.0/24)-> Ubuntuゲートウェイ(10.0.2.2)->コアルーター(10.0.2.1)->インターネット
クライアントはUbuntuインスタンスをゲートウェイとして使用します。
次のnetplan
構成は、内部トラフィックを適切にルーティングしますが、インターネットトラフィックの場合、eth0.1
のため、デフォルトでgateway4
(10.0.1.1)になります。
network:
version: 2
ethernets:
eth0:
addresses: [10.0.0.2/24]
routes:
- to: 10.0.0.0/24
via: 10.0.0.1
table: 101
routing-policy:
- from: 10.0.0.0/24
table: 101
dhcp4: false
vlans:
eth0.1:
id: 1
link: eth0
addresses: [10.0.1.2/24]
gateway4: 10.0.1.1
routes:
- to: 10.0.1.0/24
via: 10.0.1.1
table: 102
routing-policy:
- from: 10.0.1.0/24
table: 102
dhcp4: false
eth0.2:
id: 2
link: eth0
addresses: [10.0.2.2/24]
routes:
- to: 10.0.2.0/24
via: 10.0.2.1
table: 103
routing-policy:
- from: 10.0.2.0/24
table: 103
dhcp4: false
すべてのトラフィックをコアルーターの対応するネクストホップにルーティングする方法についてのアイデアはありますか?つまり、0.0.0.0/0
からのすべてのトラフィック(10.0.0.0/24
)は10.0.0.1
にルーティングする必要がありますが、10.0.2.0/24
は10.0.2.1
にルーティングする必要があります。
プレーンなip route
ルールも使用できてうれしいです。
前もって感謝します!
編集13/05/2:
各routes
にデフォルトルートを追加しました。ルーティングは期待どおりに機能していますが、traceroute
の出力はおかしいようです。
routes:
- to: 0.0.0.0/0
via: 10.0.0.1
table: 101
最初のテスト:
traceroute to 1.1.1.1 (1.1.1.1), 64 Hops max, 52 byte packets
1 10.0.0.2 (10.0.0.2) 0.896 ms * *
2 10.0.0.1 (10.0.0.1) 1.361 ms 1.126 ms 0.879 ms
2番目のテスト:
traceroute to 1.1.1.1 (1.1.1.1), 64 Hops max, 52 byte packets
1 * * *
2 10.0.0.1 (10.0.0.1) 1.353 ms 1.062 ms 0.825 ms
特に複数のルーティングテーブルをすでに使用しているため、非常に簡単です。
(申し訳ありませんが、私の例をnetplanに変換しませんでした。ただし、通常のIPルートルールを使用するゲームなので、それで十分です。この例では、最初から始めていることを前提としています)
つまり、ネットプランはすでに3つのルーティングテーブルを作成しているので、最初のルーティングテーブルを使用します。
ip route flush 101
ip route add table 101 to 10.0.0.0/24 dev eth0
ip route add table 101 to default via 10.0.0.1
そしてあなたが持っている3番目のルーティングテーブル:
ip route flush 103
ip route add table 103 to 10.0.2.0/24 dev eth0.2
ip route add table 103 to default via 10.0.2.1
次に、トラフィックの送信元IPアドレスに基づいて各テーブルにトラフィックを送信する2つのルールを作成します。
ip rule add from 10.0.0.0/24 table 101 priority 101
ip rule add from 10.0.2.0/24 table 103 priority 103
これでうまくいくはずです。 2つのテーブルに宛先ルートを追加し続けることができ、関連付けられたソースからのトラフィックのみがそれらのエントリにヒットすることに注意してください。これらのエントリは十分であり、各テーブルのデフォルトルートを削除することを選択できます。