私はArchでShorewallを使って2つのローカルネットワークと2つのISP接続で設定を管理しようとしています。最終的に、ローカルネットワーク1(192.168.1.0/24インターフェイスenp5s0)のトラフィックはISP 1(76....インターフェイスenp6s0)を使用し、ローカルネットワーク2(192.168.0.0/24インターフェイスenp7s0)のトラフィックはISP 2を使用します。したいです。 (99...インターフェイス enp3s0)。現時点では、どの基本パスが最初に出てくるかに応じて、どちらか一方のみが機能するようにすることができます。
output of `ip route ls` with sensitive information redacted:
default via 76.[rd].1 dev enp6s0 src 76.[rd].78 metric 203 mtu 576
default via 99.[rd].1 dev enp3s0 src 99.[rd].190 metric 205
76.[rd].0/24 dev enp6s0 proto kernel scope link src 76.[rd].78 metric 203 mtu 576
76.[rd].78 dev enp6s0 scope link src 76.[rd].78
99.194.48.0/21 dev enp3s0 proto kernel scope link src 99.[rd].190 metric 205
99.[rd].190 dev enp3s0 scope link src 99.[rd].190
192.168.0.0/24 dev enp7s0 proto kernel scope link src 192.168.0.1 metric 204
192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.1 metric 202
上記の出力では、ローカル1は外部に到達できますが、ローカル2はそうではありません。最初の行が消えたら、その逆も同じです。 ISPが複数ある場合でも、複数の基本パスを使用することは不可能であると確信しています。しかし、これがShorewallがすることです。
これの例はどこにもないので、海岸壁の3つのインタフェース例に基づいてみましょう。この記事が長すぎるのを防ぐために、関連する各沿岸壁の構成へのリンクを貼り付けました。
- 相互作用:http://pastebin.com/u7w3YJdx
- 壊す:http://pastebin.com/1X2hrLCZ
- フェイスマスク:http://pastebin.com/bi9EEtwD
- ポリシー:http://pastebin.com/mBBZQ0wg
- ルール:http://pastebin.com/ySSLpMWd
- サプライヤー:http://pastebin.com/YjDfKZzg
- エリア:http://pastebin.com/XVgYz3dn
この問題に関するShorewallのページは、例の目標が私の目標とは大きく異なるため役に立ちません。正しい方向についてのアドバイスをいただきありがとうございます。
答え1
netctlファイルや他のファイルにデフォルトゲートウェイを設定しないでください。 IPアドレスを取得するためにDHCPを使用している場合は、デフォルトゲートウェイの取得(dhcpcd -G)を無効にする必要があります。 「ip Route ls」を実行するとデフォルトゲートウェイは表示されません。。 「ip Route show table all」のみ、各ISPテーブルのデフォルトゲートウェイを一覧表示できます。このような:
default via 10.1.1.1 dev enp3s0 table ITC1 src 10.1.1.10
10.1.1.1 dev enp3s0 table ITC1 scope link src 10.1.1.10
default via 10.1.2.1 dev enp4s0 table ITC2 src 10.1.2.10
10.1.2.1 dev enp4s0 table ITC2 scope link src 10.1.2.10
default via X.X.X.X dev enp5s0 table MPLS src X.X.X.X
X.X.X.X dev enp5s0 table MPLS scope link src X.X.X.X
default table balance
nexthop via X.X.X.X dev enp5s0 weight 1
nexthop via 10.1.1.1 dev enp3s0 weight 2
nexthop via 10.1.2.1 dev enp4s0 weight 2
rrulesエントリが必要であるため、mangleファイルからそのエントリを削除することもできます。