Ich versuche, Shorewall auf Arch zu verwenden, um ein Setup mit 2 lokalen Netzwerken und 2 ISP-Verbindungen zu verwalten. Letztendlich möchte ich, dass der Verkehr vom lokalen Netzwerk 1 (192.168.1.0/24 Schnittstelle enp5s0) ISP 1 (76. ... Schnittstelle enp6s0) und der Verkehr vom lokalen Netzwerk 2 (192.168.0.0/24 Schnittstelle enp7s0) ISP 2 (99. ... Schnittstelle enp3s0) verwendet. Derzeit kann ich das eine oder das andere zum Laufen bringen, aber nicht beides, je nachdem, welche Standardroute zuerst kommt:
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
Mit der obigen Ausgabe könnte Local 1 die Außenwelt erreichen, Local 2 jedoch nicht. Umgekehrt, wenn die erste Zeile weg wäre. Ich bin ziemlich sicher, dass mehrere Standardrouten ein No-Go sind, selbst bei mehreren ISPs, aber so hat Shorewall es gemacht.
Da es dafür nirgends ein Beispiel gab, habe ich mich an Shorewalls Beispiel mit drei Schnittstellen orientiert. Um diesen Beitrag nicht zu lang werden zu lassen, finden Sie hier Links zu Ausschnitten aller relevanten Shorewall-Konfigurationen:
- Schnittstellen:http://pastebin.com/u7w3YJdx
- Mangel:http://pastebin.com/1X2hrLCZ
- Maske:http://pastebin.com/bi9EEtwD
- Politik:http://pastebin.com/mBBZQ0wg
- Regeln:http://pastebin.com/ySSLpMWd
- Anbieter:http://pastebin.com/YjDfKZzg
- Zonen:http://pastebin.com/XVgYz3dn
Die Seiten von Shorewall zu diesem Thema sind nicht hilfreich, da das Ziel in ihrem Beispiel ganz anders ist als mein Ziel. Für jeden Hinweis in die richtige Richtung wäre ich sehr dankbar.
Antwort1
Stellen Sie sicher, dass Sie das Standard-Gateway nicht in den netctl-Dateien oder in anderen Dateien festlegen. Wenn Sie DHCP zum Abrufen von IP-Adressen verwenden, deaktivieren Sie unbedingt das Abrufen des Standard-Gateways (dhcpcd -G). Die Ausführung von „ip route ls“ solltekeine Standard-Gateways anzeigen. Nur „ip route show table all“ würde die Standard-Gateways für jede ISP-Tabelle auflisten. Etwa so:
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
Sie können auch die Einträge aus der Mangle-Datei entfernen, da die rtrules-Einträge für Ihre Anforderungen ausreichen sollten