Shorewall 4インターフェース設定

Shorewall 4インターフェース設定

私は、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 が実行した方法です。

これに関する例はどこにもなかったので、shorewall の 3 つのインターフェースの例を参考にしました。この投稿が異常に長くなるのを避けるため、関連する各 shorewall 構成の貼り付けへのリンクを以下に示します。

Shorewall のこの件に関するページは、彼らの例の目標が私の目標と大きく異なるため、役に立ちません。正しい方向を指し示すヒントがあれば、大変ありがたいです。

答え1

netctlファイルや他のファイルでデフォルトゲートウェイを設定していないことを確認してください。DHCPを使用してIPアドレスを取得する場合は、デフォルトゲートウェイの取得を無効にしてください(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

また、rtrulesエントリは必要なものには十分であるため、mangleファイルからエントリを削除することもできます。

関連情報