Wie verschmelze ich mehrere Internetverbindungen zu einer?


23

Mein PC verfügt über insgesamt 4 Netzwerkkarten, 2 kabelgebundene Gigabit-Ethernet-Netzwerkkarten und 2 kabellose Netzwerkkarten. (Ein Broadcom mit proprietären Treibern und Ralink mit Open Source-Software, die viel besser als Broadcom funktioniert.)

Mein Handy kann seine Verbindung drahtlos mit meinem PC teilen, aber ich habe auch eine kabelgebundene Internetverbindung. Ich habe also mehrere Internetverbindungen, um auf das Internet zuzugreifen. Wie kann ich zwei oder mehr Verbindungen zusammenführen und ausgleichen , um eine einheitliche Interneterfahrung zu erzielen, bei der es sich um die Summe aller damit verbundenen Internetverbindungen handelt?

Wenn ich zum Beispiel ein Modem mit einer Internetverbindung von 1024 kBit / s und ein anderes mit 512 kBit / s und ein kleines mit 128 kBit / s habe, kann ich nach dem Lastenausgleich und dem Zusammenführen aller Verbindungen (Bonding oder Teaming) unter herunterladen B. eine Geschwindigkeit von 1664 kB / s, wenn alle drei Internetverbindungen als eine verwendet werden.

Diese Frage hat mich immer fasziniert.


5
Scheint eher über den Rahmen von Ask Ubuntu hinauszugehen :) Dies ist ziemlich komplexes Netzwerkmaterial. IMO ist es selten wert, wenn Sie verlorene Pakete berücksichtigen, weil eine Verbindung unterbrochen ist (sogar vorübergehend), Pakete neu ordnen, weil einige Verbindungen langsamer sind als andere, und solche Dinge. Ich kenne keine "Black-Box" -Lösung, die das schafft und ein interessantes Projekt sein könnte.
Caesium

9
Nun, die Frage ist, ob dies in Ubuntu möglich ist und wenn ja, wie.
Luis Alvarado

Ich habe eine Antwort in den 2 Internetverbindungen auf einem einzelnen PC- Beitrag erstellt. Verknüpfen von Dokumenten zum Binden in Ubuntu.
Lucio

@Lucio Ich könnte die Frage als doppelt markieren oder Sie können Ihre Antwort hierher verschieben und ich kann sie als akzeptiert markieren. Sie müssen auch bereit sein, wenn 13.04 herauskommt, da in Network Manager die Bonding-Optionen enthalten sind (derzeit nur verkabelte Bonding-Slaves).
Luis Alvarado

Antworten:


11

Ich mache so etwas bei der Arbeit mit Ubuntu 11.04. Wir führen das Shorewall-Firewall-Konfigurationstool aus, das nicht nur hervorragende Funktionen bietet, sondern auch rudimentär mehrere ISP-Routing-Tools bereitstellt, die möglicherweise Ihren Anforderungen entsprechen. Hier finden Sie einige Dokumente dazu: http://www.shorewall.net/MultiISP.html

Es kommt jedoch darauf an, dass Sie nicht mehrere ISPs für eine einzelne Verbindung verwenden können. Die Dinge sind nicht so einfach. Das Beste, was Sie tun können, ist zu versuchen, neue Verbindungen gleichmäßig zwischen den verschiedenen Anbietern zu leiten.

Es ist ein komplexes Problem. Sie werden wahrscheinlich Ihren Kopf gegen die Wand schlagen (das habe ich bestimmt getan), bevor Sie mit dem Debuggen aller Probleme fertig sind. Also, wie andere Poster vorgeschlagen haben, sollten Sie sorgfältig überlegen, wie stark Ihr Wunsch ist.


Netter Link. Sehr schönes Tutorial.
Luis Alvarado


8

Sie können dazu das Paket verwenden ifenslave, mit dem Slave-Netzwerkschnittstellen an ein Bonding-Gerät angeschlossen und von diesem getrennt werden.

  1. Installieren:

    sudo apt-get install ifenslave
    
  2. Laden Sie das Bonding-Kernel-Modul

    sudo modprobe bondingle
    
  3. Konfigurieren Sie Ihre Schnittstellen:

    sudo vi /etc/network/interfaces
    

    Beispielkonfiguration, um eth0 und eth1 als Slaves für Ihre Bonding-Schnittstelle zu kombinieren:

    #eth0 is manually configured, and slave to the "bond0" bonded NIC
    auto eth0
    iface eth0 inet manual
    bond-master bond0
    
    #eth1 ditto, thus creating a 2-link bond.
    auto eth1
    iface eth1 inet manual
    bond-master bond0
    
    # bond0 is the bonded NIC and can be used like any other normal NIC.
    # bond0 is configured using static network information.
    auto bond0
    iface bond0 inet static
    address 192.168.1.10
    gateway 192.168.1.1
    netmask 255.255.255.0
    # bond0 uses standard IEEE 802.3ad LACP bonding protocol 
    bond-mode 802.3ad
    bond-miimon 100
    bond-lacp-rate 1
    bond-slaves none
    
  4. Netzwerk neu starten:

    sudo restart networking
    
  5. Eingeschränkte Schnittstelle nach oben / unten bringen:

    ifup bond0
    ifdown bond0
    

    Es gibt verschiedene Bonding-Modi, die wir als Beispiel verwenden:

    bond-mode active-backup
    

    Beschreibung des Active-Backup-Bonding-Modus :

    Active-Backup-Richtlinie: Nur ein Slave in der Bindung ist aktiv. Ein anderer Slave wird nur dann aktiv, wenn der aktive Slave ausfällt. Die MAC-Adresse der Verbindung ist nur an einem Port (Netzwerkadapter) von außen sichtbar, um Verwechslungen mit dem Switch zu vermeiden. Dieser Modus bietet Fehlertoleranz. Die primäre Option beeinflusst das Verhalten dieses Modus.

    Quelle und mehr Infos im Ubuntu-Community-Hilfe-Wiki .

Bonding bedeutet die Kombination mehrerer Netzwerkschnittstellen (Network Interfaces, NICs) zu einer einzigen Verbindung, die entweder Hochverfügbarkeit, Lastenausgleich, maximalen Durchsatz oder eine Kombination aus diesen bietet. Quelle


+1 weil ist einer der Gründe für meine Frage. Wartet immer noch auf eine Möglichkeit, eine virtuelle Netzwerk-Master-Verbindung zu erstellen, die die Summe aller (realen) Slave-Verbindungen ist. So etwas wie eine Bindung, die in der neuesten Kernel-Version enthalten ist.
Luis Alvarado

2
-1 - Bonding funktioniert in LANs, da es auf Schicht 2 ausgeführt wird. Die Frage betrifft den Lastenausgleich zwischen zwei unabhängigen WANs.
Gertvdijk

@gertvdijk Ich bin nicht einverstanden, meine Update-Antwort zu überprüfen, um herauszufinden, dass das Bonden auch den Lastenausgleich unterstützt.
31.

1
@ pl1nk Dies ist der Layer 2-Lastenausgleich für zwei Netzwerkkarten im selben L2-Netzwerk. Dies ist nicht dasselbe wie der Lastausgleich für mehrere ISPs!
Gertvdijk

3
@ pl1nk Mein letzter Kommentar. Die Frage betrifft eindeutig mehrere unabhängige Breitbandverbindungen. Auch wenn es sich um einen ISP handelt, ändert dies nichts an der Behinderung, auf Ebene 2 damit
umzugehen

6

Es ist ein bisschen alte Frage, aber wenn Sie immer noch wissen wollen ..

Es gibt zwei typische Szenarien, über die sich gertvdijk und pl1nk in einer der Antworten gestritten haben:

Sie haben einen Computer mit 2 öffentlichen IPs (2 verschiedene ISPs) und stellen eine Verbindung zu einem anderen Host her (z. B. einem Server in einem Rechenzentrum mit einer Fatpipe, die größer ist als die Gesamtbandbreite beider ISP-Verbindungen Ihres Computers). Sie stellen also über Ihre 2 Verbindungen eine Bonding-Verbindung zum Host her und der Host (Server) bedient Ihren Datenverkehr über eine eigene Internetverbindung. In diesem Szenario können Sie fast 100% der kombinierten Bandbreite in beide Richtungen für eine einzelne Verbindung erhalten.

Dies ist ein besonderer Fall von Bonding / Teaming / Ling-Aggregation, bei dem mehrere Layer-2-Schnittstellen (dasselbe Netzwerk) miteinander verbunden werden. Dies könnte erreicht werden, indem auf jeder ISP-Schnittstelle VPN-Layer-2-Verbindungen (Tap) vom Computer zum Host hergestellt und diese miteinander verbunden werden (Round-Robin-Modus), um eine einzige Schnittstelle zu erhalten. Der begrenzende Faktor in diesem Szenario ist, wie unterschiedlich die Verzögerungen (Ping) bei jeder ISP-Verbindung zum Host sind. Je ähnlicher und stabiler sie sind, desto besser. Wir benutzen es in einer unserer Installationen, es funktioniert gut. Wenn Sie Einzelheiten zur Implementierung erfahren möchten, lassen Sie es mich wissen.

Dann wäre ein anderes Szenario ohne einen Zwischenhost, dh eine direkte Verbindung von Ihren ISP-Schnittstellen zu verschiedenen Webservern auf der ganzen Welt. In diesem Fall können Sie die ausgehenden Verbindungen zwischen den Schnittstellen gleichmäßig verteilen, dh eine TCP-Sitzung wird vollständig über einen Internetdienstanbieter, eine zweite Sitzung über einen anderen Internetdienstanbieter usw. abgewickelt. Dies liegt daran, dass beim Herstellen einer TCP-Verbindung die Ursprungs- und Ziel-IP-Adressen für jedes Paket angegeben werden. Wenn ein Server ein Paket von einer anderen IP empfängt, für die kein TCP-Handshake durchgeführt wurde, wird das Paket als fehlerhaft betrachtet und verworfen. Da jede ISP-Verbindung eine eigene öffentliche IP hat, können Sie für dieselbe TCP-Sitzung nicht ein Paket über eine Verbindung von einer IP-Adresse aus und ein anderes Paket über eine andere Verbindung mit einer anderen IP-Adresse senden.

Sie erreichen für einen einzelnen Computer keine so hohe Gesamtbandbreitennutzung wie für das erste Szenario, aber für ein kleines Büro könnte dies eine gute Lösung sein. Um es ein wenig zu erweitern, können Sie benutzerdefinierte Lösungen für bestimmte Protokolle implementieren. Zum Beispiel könnten Sie auf dem Gateway eine Art Proxy für http-Downloads haben (das könnte derselbe Computer sein) und nach verschiedenen Teilen einer riesigen Datei fragen, die über verschiedene ISP-Schnittstellen verschiedene TCP-Sitzungen aufbauen. In diesem Fall würde die resultierende Download-Rate nahezu 100% der kombinierten Bandbreite betragen. Es ist wie das Auslagern von ReGet, GetRight und ähnlichen Downloadern auf das Gateway. Google "HTTP 206 Partial Content". Ich kenne keine Standard-Open-Source-Lösungen für dieses Szenario, aber es gibt Hardware-Appliances, die genau das tun: google '


Wow! Der erste Teil Ihrer Antwort ist genau das, wonach ich suche. Ich habe einen Server in der Cloud mit Ubuntu und eine sehr schnelle Verbindung. Und die einzige Internetverbindung, die ich hier haben kann, ist 300 kbps mit begrenztem 3G. Können Sie weitere Informationen darüber geben, wie Sie den ersten Teil Ihrer Antwort erreichen, damit ich viele 3G-Dongles kaufen und die Geschwindigkeit meiner Verbindung verbessern kann?
Huafu

2
echo "bonding" >> /etc/modules echo -e "alias bond* bonding\noptions bonding max_bonds=10 mode=2 xmit_hash_policy=layer3+4 arp_interval=100 arp_ip_target=10.0.0.1" > /etc/modprobe.d/bonding.conf
Anatoli

1
Und versklaven Sie alle tap ifaces zu dieser Anleihe: echo "+tapX " >> /sys/class/net/bond0/bonding/slaves Überprüfen Sie ihren Status mit: cat /proc/net/bonding/bond0 Zu diesem Zeitpunkt sollte der gesamte Internetverkehr über bond0 zum Server im Rechenzentrum fließen. Dort sollten Sie das Routing einstellen: echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -p /etc/sysctl.conf iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE (eth0 soll das Internet iface sein)
Anatoli

1
Diese Bond-Konfiguration (Modus = 2 xmit_hash_policy = Layer3 + 4) bewirkt, dass jede neue Verbindung über ein anderes zugrunde liegendes VPN-iface geleitet wird, das auf dem Hash (berechnet aus den an der Verbindung beteiligten IPs und Ports) der Mod-iface-Nummer basiert. Weitere Informationen: kernel.org/doc/Documentation/networking/bonding.txt . Dies ist eigentlich eher die zweite Lösung aus meiner Antwort, weil Sie eine sehr ähnliche (sehr geringer Jitter und dieselbe Bandbreite) zugrunde liegende Verbindung benötigen, damit das Round-Robin-Bonding korrekt funktioniert (ansonsten erhalten Sie eine Menge Neuordnung von Paketen), und Sie sagen dass Ihre Verbindungen 3G sind.
Anatoli

1
@Huafu, um die erste Lösung zu haben, müssen Sie nur die Verbindungsoptionen ändern, anstatt sie mode=2 xmit_hash_policy=layer3+4anzugeben mode=0(siehe link @ kernel.org), aber zuerst prüfen, wie ähnlich die Verbindungen über 3G sind. Wenn sich die Ping-Zeiten um mehr als 2-3 ms unterscheiden oder der Jitter mehr als 1 ms beträgt, müssen Sie viele Pakete neu ordnen, um die Geschwindigkeit der aggregierten Verbindung effektiv zu verringern. Sie müssen die aggregierten Linkstatistiken mit netstat -s(nach erneuten Übertragungen suchen) und iperf -s/ überprüfen iperf -c <server_ip> -d. 1. Überprüfen Sie die Leistung jedes Links, dann können wir mit einer Lösung fortfahren
Anatoli

0

ich hatte ein ähnliches problem ... und ich war sehr interessiert an der herangehensweise an die lösung nach dem ersten szenario von herrn. GTH und Anatoli, ich bitte Sie sehr, die grundlegenden Konfigurationen und Skripte zu erstellen, wenn möglich, um die im ersten Szenario beschriebene Konfiguration zu testen.

Jetzt habe ich VPN-Verbindungen über verschiedene ISP-Anbieter mithilfe kombinierter Tun / Tap-Schnittstellen (es ist keine Bindung, was in Antwort 8 erklärt wird) mit diesem Dienstprogramm konfiguriert:

Net-ISP-Balance von Lincoln D. Stein

Verteilen Sie Ihre Internetverbindung auf zwei oder mehr ISPs, um die Bandbreite und Zuverlässigkeit zu verbessern

Projektstartseite: https://lstein.github.io/Net-ISP-Balance/

Mit diesem Paket können Sie eine Heim- oder Kleinunternehmens-Internetverbindung über zwei oder mehr ISPs verteilen. Sie können es mit einem einzelnen Host verwenden, der an zwei ISPs angeschlossen ist, oder auf einem Router / Firewall-Computer, um den Lastenausgleich für Ihr gesamtes LAN durchzuführen. Der Netzwerkverkehr wird über beide ISP-Verbindungen verteilt, um die Upload- und Download-Kapazität zu erhöhen. Wenn ein ISP ausfällt, übernehmen die anderen ISPs automatisch die Übertragung.

Die Bandbreite wird auf Verbindungsebene verteilt. Dies bedeutet, dass Sie die aggregierte Bandbreite bei keinem bestimmten Download- oder Geschwindigkeits-Benchmark sehen, aber Sie werden die Vorteile sehen, wenn mehrere Datenübertragungen gleichzeitig stattfinden, z. B. wenn mehrere Personen in Ihrem Haushalt Filme streamen. Darüber hinaus werden bei Dateiübertragungsprotokollen mit mehreren Verbindungen wie BitTorrent die Vorteile des Lastenausgleichs sichtbar.

Dies ist ein Perl-basiertes Dienstprogramm zum Verwalten von Routing und IPTables unter Linux, das für unsere Zwecke perfekt geeignet ist. Es erstellt zunächst eine Routing-Tabelle für alle Anbieter und verteilt dann den gesamten LAN-Verkehr gleichmäßig zwischen den Anbietern, um zu verstehen, wie das Dienstprogramm funktioniert ein kleines beispiel (testkonfiguration) für 3 isp + 1 lan

 #cat /etc/network/balance.conf
 ##service    device   role     ping-ip           
 CABLE3       enp0s3   isp      10.0.2.2
 CABLE8       enp0s8   isp      10.0.3.2
 CABLE9       enp0s9   isp      10.0.4.2
 LAN          enp0s10  lan                        

 #cat /etc/network/interfaces
auto enp0s3
allow-hotplug enp0s3
iface enp0s3 inet dhcp

auto enp0s8
allow-hotplug enp0s8
iface enp0s8 inet dhcp

auto enp0s9
allow-hotplug enp0s9
iface enp0s9 inet dhcp

auto enp0s10
allow-hotplug enp0s10
iface enp0s10 inet static
    address 192.168.1.1/24

#Now work Net-ISP-Balance utility:

## Including rules from /etc/network/balance/pre-run/pre-run-script.pl ##
## Finished /etc/network/balance/pre-run/pre-run-script.pl ##
echo 0 > /proc/sys/net/ipv4/ip_forward
ip route flush all
ip rule flush
ip rule add from all lookup main pref 32766
ip rule add from all lookup default pref 32767
ip route flush table  2
ip route flush table  1
ip route flush table  3
ip route add  10.0.2.0/24 dev enp0s3 src 10.0.2.15
ip route add  10.0.3.0/24 dev enp0s8 src 10.0.3.15
ip route add  10.0.4.0/24 dev enp0s9 src 10.0.4.15
ip route add  0.0.0.0/0 dev enp0s10 src 
ip route add default scope global nexthop via 10.0.4.2 dev enp0s9 weight 1 nexthop via 10.0.3.2 dev enp0s8 weight 1 nexthop via 10.0.2.2 dev enp0s3 weight 1
ip route add table 2 default dev enp0s3 via 10.0.2.2
ip route add table 2 10.0.2.0/24 dev enp0s3 src 10.0.2.15
ip route add table 2 10.0.3.0/24 dev enp0s8 src 10.0.3.15
ip route add table 2 10.0.4.0/24 dev enp0s9 src 10.0.4.15
ip route add table 2 0.0.0.0/0 dev enp0s10 src 
ip rule add from 10.0.2.15 table 2
ip rule add fwmark 2 table 2
ip route add table 1 default dev enp0s8 via 10.0.3.2
ip route add table 1 10.0.2.0/24 dev enp0s3 src 10.0.2.15
ip route add table 1 10.0.3.0/24 dev enp0s8 src 10.0.3.15
ip route add table 1 10.0.4.0/24 dev enp0s9 src 10.0.4.15
ip route add table 1 0.0.0.0/0 dev enp0s10 src 
ip rule add from 10.0.3.15 table 1
ip rule add fwmark 1 table 1
ip route add table 3 default dev enp0s9 via 10.0.4.2
ip route add table 3 10.0.2.0/24 dev enp0s3 src 10.0.2.15
ip route add table 3 10.0.3.0/24 dev enp0s8 src 10.0.3.15
ip route add table 3 10.0.4.0/24 dev enp0s9 src 10.0.4.15
ip route add table 3 0.0.0.0/0 dev enp0s10 src 
ip rule add from 10.0.4.15 table 3
ip rule add fwmark 3 table 3
## Including rules from /etc/network/balance/routes/01.local_routes ##
# enter any routing commands you might want to go in
# for example:
# ip route add 192.168.100.1 dev eth0 src 198.162.1.14

## Finished /etc/network/balance/routes/01.local_routes ##
## Including rules from /etc/network/balance/routes/02.local_routes.pl ##
## Finished /etc/network/balance/routes/02.local_routes.pl ##
iptables -F
iptables -t nat    -F
iptables -t mangle -F
iptables -X
iptables -P INPUT    DROP
iptables -P OUTPUT   DROP
iptables -P FORWARD  DROP

iptables -N DROPGEN
iptables -A DROPGEN -j LOG -m limit --limit 1/minute --log-level 4 --log-prefix "GENERAL: "
iptables -A DROPGEN -j DROP

iptables -N DROPINVAL
iptables -A DROPINVAL -j LOG -m limit --limit 1/minute --log-level 4 --log-prefix "INVALID: "
iptables -A DROPINVAL -j DROP

iptables -N DROPPERM
iptables -A DROPPERM -j LOG -m limit --limit 1/minute --log-level 4 --log-prefix "ACCESS-DENIED: "
iptables -A DROPPERM -j DROP

iptables -N DROPSPOOF
iptables -A DROPSPOOF -j LOG -m limit --limit 1/minute --log-level 4 --log-prefix "DROP-SPOOF: "
iptables -A DROPSPOOF -j DROP

iptables -N DROPFLOOD
iptables -A DROPFLOOD -m limit --limit 1/minute  -j LOG --log-level 4 --log-prefix "DROP-FLOOD: "
iptables -A DROPFLOOD -j DROP

iptables -N DEBUG
iptables -A DEBUG  -j LOG --log-level 3 --log-prefix "DEBUG: "
iptables -t mangle -N MARK-CABLE3
iptables -t mangle -A MARK-CABLE3 -j MARK     --set-mark 2
iptables -t mangle -A MARK-CABLE3 -j CONNMARK --save-mark
iptables -t mangle -N MARK-CABLE8
iptables -t mangle -A MARK-CABLE8 -j MARK     --set-mark 1
iptables -t mangle -A MARK-CABLE8 -j CONNMARK --save-mark
iptables -t mangle -N MARK-CABLE9
iptables -t mangle -A MARK-CABLE9 -j MARK     --set-mark 3
iptables -t mangle -A MARK-CABLE9 -j CONNMARK --save-mark
iptables -t mangle -A PREROUTING -i enp0s10 -m conntrack --ctstate NEW -m statistic --mode random --probability 1 -j MARK-CABLE9
iptables -t mangle -A PREROUTING -i enp0s10 -m conntrack --ctstate NEW -m statistic --mode random --probability 0.5 -j MARK-CABLE8
iptables -t mangle -A PREROUTING -i enp0s10 -m conntrack --ctstate NEW -m statistic --mode random --probability 0.333333333333333 -j MARK-CABLE3
iptables -t mangle -A PREROUTING -i enp0s10 -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -i enp0s3 -m conntrack --ctstate NEW -j MARK-CABLE3
iptables -t mangle -A PREROUTING -i enp0s3 -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -i enp0s8 -m conntrack --ctstate NEW -j MARK-CABLE8
iptables -t mangle -A PREROUTING -i enp0s8 -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -i enp0s9 -m conntrack --ctstate NEW -j MARK-CABLE9
iptables -t mangle -A PREROUTING -i enp0s9 -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -A INPUT  -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -d 127.0.0.0/8 -j DROPPERM
iptables -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT   -p tcp --tcp-flags SYN,ACK ACK -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK ACK -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROPFLOOD
iptables -A INPUT   -i enp0s10 -s 0.0.0.0/0 -j ACCEPT
iptables -A OUTPUT  -o enp0s10 -d 0.0.0.0/0  -j ACCEPT
iptables -A OUTPUT  -o enp0s10 -d 255.255.255.255/32  -j ACCEPT
iptables -A OUTPUT  -p udp -s 0.0.0.0/0 -j ACCEPT
iptables -A FORWARD  -i enp0s10 -o enp0s3 -s 0.0.0.0/0 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A OUTPUT   -o enp0s3                 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A FORWARD  -i enp0s10 -o enp0s8 -s 0.0.0.0/0 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A OUTPUT   -o enp0s8                 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A FORWARD  -i enp0s10 -o enp0s9 -s 0.0.0.0/0 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A OUTPUT   -o enp0s9                 ! -d 0.0.0.0/0 -j ACCEPT
iptables -A OUTPUT  -j DROPSPOOF
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s9 -j MASQUERADE
## Including rules from /etc/network/balance/firewall/01.accept ##
## This file contains iptables statements that add additional firewall rules

# allow incoming domain packets -- needed for DNS resolution
iptables -A INPUT   -p udp --source-port domain -j ACCEPT
# allow incoming NTP packets -- needed for net time protocol
iptables -A INPUT   -p udp --source-port ntp -j ACCEPT
## Finished /etc/network/balance/firewall/01.accept ##
## Including rules from /etc/network/balance/firewall/01.accept.pl ##
iptables -A INPUT -p tcp -s 0.0.0.0/0 --syn --dport ssh -j ACCEPT
## Finished /etc/network/balance/firewall/01.accept.pl ##
## Including rules from /etc/network/balance/firewall/02.forward.pl ##
iptables -A FORWARD -p udp --source-port domain -d 0.0.0.0/0 -j ACCEPT
iptables -A FORWARD -p udp --source-port ntp    -d 0.0.0.0/0 -j ACCEPT
## Finished /etc/network/balance/firewall/02.forward.pl ##
echo 1 > /proc/sys/net/ipv4/ip_forward
## Including rules from /etc/network/balance/post-run/post-run-script.pl ##
## Finished /etc/network/balance/post-run/post-run-script.pl ##

Bitte denken Sie daran, diese Antwort zu löschen und stattdessen einen Kommentar hinzuzufügen, in dem die entsprechende Antwort näher erläutert wird. Dies ist keine Antwort. Vielen Dank.
Raffa
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.