Jak połączyć wiele połączeń internetowych w jedno?

23

Mój komputer ma w sumie 4 karty sieciowe, 2 przewodowe karty sieciowe Gigabit Ethernet, a także 2 bezprzewodowe karty sieciowe. (Jeden Broadcom z zastrzeżonymi sterownikami i Ralink z oprogramowaniem open source, które działa znacznie lepiej niż Broadcom.)

Mój telefon komórkowy może współdzielić swoje połączenie bezprzewodowo z komputerem, ale mam także przewodowe połączenie z Internetem. Mam więc wiele połączeń internetowych, aby uzyskać dostęp do Internetu. Jak mogę połączyć 2 lub więcej połączeń razem i zrównoważyć je, aby cieszyć się jednym połączonym Internetem, że jest to suma wszystkich podłączonych do niego połączeń internetowych.

Na przykład, jeśli mam modem z połączeniem internetowym 1024 kB / s i inny, który oferuje 512 kB / s oraz jeden mały, który oferuje 128 kB / s, po równoważeniu obciążenia i scaleniu wszystkich połączeń (łączenie lub tworzenie grup), można pobrać z prędkość 1664 kB / s przy użyciu wszystkich 3 połączeń internetowych jako jednego na przykład.

To pytanie zawsze mnie intrygowało.

Luis Alvarado
źródło
5
Wydaje się raczej, że wykracza poza zakres Ask Ubuntu :) To dość skomplikowane rzeczy sieciowe. IMO rzadko jest tego warte, zanim weźmiesz pod uwagę utracone pakiety ze względu na awarię łącza (nawet tymczasowo), zmianę kolejności pakietów ze względu na to, że niektóre łącza są wolniejsze niż inne, i takie rzeczy. Nie znam rozwiązania „czarnej skrzynki”, które by to zrobiło, może być interesującym projektem.
Cesium
9
Pytanie dotyczy tego, czy można to zrobić w Ubuntu, a jeśli tak, to w jaki sposób.
Luis Alvarado
Stworzyłem odpowiedź w 2 połączeniach internetowych na jednym poście do komputera . Łączenie dokumentów w celu ograniczenia w Ubuntu.
Lucio
@Lucio Mógłbym oznaczyć pytanie jako duplikat lub możesz przenieść swoją odpowiedź tutaj i mogę oznaczyć je jako zaakceptowane. Będziesz także musiał być gotowy, kiedy pojawi się 13.04, ponieważ będzie on zawierał w Menedżerze sieci opcje łączenia (teraz tylko slave do łączenia przewodowego).
Luis Alvarado,

Odpowiedzi:

11

Robię coś takiego w pracy, używając Ubuntu 11.04. Uruchamiamy narzędzie do konfiguracji zapory ogniowej Shorewall, które oprócz tego, że doskonale sobie radzi, zapewnia kilka podstawowych narzędzi do routingu wielu dostawców usług internetowych, które mogą pasować do twoich potrzeb. Możesz znaleźć kilka dokumentów na ten temat tutaj: http://www.shorewall.net/MultiISP.html

Sprowadza się to jednak do tego, że nie można używać wielu dostawców usług internetowych dla jednego połączenia ... rzeczy nie są takie proste. Najlepsze, co możesz zrobić, to równomiernie kierować nowe połączenia między różnymi dostawcami.

To złożony problem. Prawdopodobnie skończysz walić głową o ścianę (z pewnością tak zrobiłem), zanim skończysz debugować każdy problem. Tak więc, jak sugerują inne plakaty, możesz mądrze rozważyć, jak silne jest twoje pragnienie.

trognandery
źródło
Niezły link. Bardzo fajny samouczek.
Luis Alvarado,
Zobaczmy również: debuntu.org/2006/02/23/…
Postadelmaga,
8

Możesz to zrobić za pomocą pakietu, ifenslavektóry dołącza i odłącza slave interfejsy sieciowe do urządzenia łączącego.

  1. Zainstalować:

    sudo apt-get install ifenslave
    
  2. Moduł jądra do łączenia obciążeń

    sudo modprobe bondingle
    
  3. Skonfiguruj swoje interfejsy:

    sudo vi /etc/network/interfaces
    

    Przykład konfiguracji, aby połączyć eth0 i eth1 jako slave do twojego interfejsu wiązania:

    #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. Uruchom ponownie sieć:

    sudo restart networking
    
  5. Wyświetlanie interfejsu w górę / w dół:

    ifup bond0
    ifdown bond0
    

    Jako przykład używamy kilku trybów łączenia:

    bond-mode active-backup
    

    Opis aktywnego trybu tworzenia kopii zapasowej :

    Polityka aktywnego tworzenia kopii zapasowych: aktywny jest tylko jeden slave w obligacji. Inny slave staje się aktywny tylko wtedy, gdy aktywny slave ulegnie awarii. Adres MAC obligacji jest widoczny z zewnątrz tylko na jednym porcie (karta sieciowa), aby uniknąć pomylenia przełącznika. Ten tryb zapewnia odporność na uszkodzenia. Podstawowa opcja wpływa na zachowanie tego trybu.

    • Opis wszystkich trybów łączenia.

    Źródło i więcej informacji na wiki pomocy społeczności Ubuntu .

Łączenie oznacza łączenie kilku interfejsów sieciowych (NIC) w jedno łącze, zapewniając wysoką dostępność, równoważenie obciążenia, maksymalną przepustowość lub ich kombinację. Źródło

pl1nk
źródło
+1, ponieważ jest jednym z powodów mojego pytania. Nadal będzie czekał na sposób utworzenia wirtualnego połączenia głównego sieci, które będzie sumą wszystkich połączeń podrzędnych (rzeczywistych). Coś w rodzaju wiązania, które występuje w najnowszej wersji jądra.
Luis Alvarado,
2
-1 - łączenie działa w sieciach LAN, ponieważ działa w warstwie 2. Pytanie dotyczy równoważenia obciążenia dwóch niezależnych sieci WAN.
gertvdijk
@gertvdijk Nie zgadzam się, sprawdź moją odpowiedź na aktualizację, aby dowiedzieć się, że łączenie powoduje również równoważenie obciążenia.
pl1nk
1
@ pl1nk To jest równoważenie obciążenia warstwy 2 dla dwóch kart sieciowych w tej samej sieci L2. To nie to samo, co równoważenie obciążenia wielu dostawców usług internetowych!
gertvdijk
3
@ pl1nk Mój ostatni komentarz. Pytanie dotyczy oczywiście wielu niezależnych połączeń szerokopasmowych. Chociaż mogą być jednym dostawcą usług internetowych, nie zmienia to niepełnosprawności do obsługi tego na warstwie 2.
gertvdijk
6

To trochę stare pytanie, ale jeśli nadal chcesz wiedzieć ...

Istnieją 2 typowe scenariusze, które argumentowali gertvdijk i pl1nk w jednej z odpowiedzi:

Masz komputer z 2 publicznymi adresami IP (2 różnymi dostawcami ISP) i łączysz się z innym hostem (np. Serwerem w centrum danych z grubą rurką, która jest większa niż łączna przepustowość obu połączeń ISP twojego komputera). Nawiązujesz połączenie z hostem za pomocą 2 połączeń, a następnie host (serwer) obsługuje ruch za pośrednictwem własnego połączenia internetowego. W tym scenariuszu można uzyskać prawie 100% łącznej przepustowości w obu kierunkach dla jednego połączenia.

Jest to szczególny przypadek łączenia / łączenia / łączenia agregacji, w którym interfejsy wielu warstw 2 (ta sama sieć) są ze sobą połączone. Można to osiągnąć, ustanawiając połączenia warstwy 2 VPN (tap) na każdym interfejsie ISP od komputera do hosta i łącząc je ze sobą (tryb round-robin), aby mieć jeden interfejs. Czynnikiem ograniczającym w tym scenariuszu jest to, jak różne są opóźnienia (ping) na każdym połączeniu ISP z hostem. Im bardziej są podobne i stabilne, tym lepiej. Używamy go w jednej z naszych instalacji, działa dobrze. Jeśli chcesz poznać szczegóły dotyczące jego wdrożenia, daj mi znać.

Wtedy inny scenariusz byłby bez pośredniego hosta, tj. Bezpośrednie połączenie z interfejsów ISP do różnych serwerów WWW na całym świecie. W takim przypadku najlepsze, co możesz uzyskać, to równomiernie rozdzielić połączenia wychodzące między interfejsami - tzn. Jedna sesja TCP przechodzi całkowicie przez jednego dostawcę usług internetowych, druga sesja za pośrednictwem innego i tak dalej. Dzieje się tak, ponieważ po ustanowieniu połączenia TCP ma on początkowy i docelowy adres IP dla każdego pakietu, a gdy serwer odbiera pakiet z innego adresu IP, dla którego nie przeprowadzono uzgadniania TCP, uznaje pakiet za błędny i upuszcza go. Ponieważ każde połączenie ISP ma swój własny publiczny adres IP, dla tej samej sesji TCP nie można wysłać jednego pakietu za pośrednictwem jednego połączenia z jednego adresu IP, a drugiego za pośrednictwem innego połączenia z innym adresem IP.

Nie osiągniesz tak wysokiego zagregowanego wykorzystania przepustowości dla pojedynczego komputera, jak w pierwszym scenariuszu, ale dla małego biura może to być dobre rozwiązanie. Aby go nieco rozszerzyć, można wdrożyć niestandardowe rozwiązania dla określonych protokołów. Na przykład możesz mieć jakiś rodzaj proxy w bramie (którym może być ten sam komputer) do pobierania http i poprosić o różne części ogromnego pliku ustanawiającego różne sesje TCP za pośrednictwem różnych interfejsów ISP. W takim przypadku wynikowa szybkość pobierania wynosiłaby blisko 100% łącznej przepustowości. To jak odciążanie bramy, co robią ReGet, GetRight i podobne programy pobierające. Google „Częściowa treść HTTP 206”. Nie znam żadnych gotowych rozwiązań typu open source dla tego scenariusza, ale istnieją urządzenia sprzętowe, które robią to dokładnie: google

Anatoli
źródło
Łał! Pierwsza część twojej odpowiedzi jest dokładnie tym, czego szukam. Mam serwer w chmurze z Ubuntu i bardzo szybkie połączenie. A jedyne połączenie internetowe, jakie mogę tutaj mieć, to 300 kb / s przy ograniczonej sieci 3G. Czy możesz podać więcej informacji, w jaki sposób uzyskać pierwszą część odpowiedzi, aby móc kupić wiele kluczy 3G i planować poprawę szybkości mojego połączenia?
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
I zniewolić wszystkie połączenia ifaces z tym wiązaniem: echo "+tapX " >> /sys/class/net/bond0/bonding/slaves Sprawdź jego stan za pomocą: cat /proc/net/bonding/bond0 Na tym etapie cały ruch internetowy powinien przepływać przez bond0 do serwera w centrum danych. Tam powinieneś ustawić routing: echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -p /etc/sysctl.conf iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE (eth0 ma być internetowym iface)
Anatoli
1
Ta konfiguracja obligacji (tryb = 2 xmit_hash_policy = warstwa 3 + 4) sprawi, że każde nowe połączenie przejdzie przez inny bazowy VPN iface na podstawie skrótu (obliczonego na podstawie adresów IP i portów zaangażowanych w połączenie) mod iface number. Więcej informacji: kernel.org/doc/Documentation/networking/bonding.txt . To faktycznie jest bardziej jak drugie rozwiązanie z mojej odpowiedzi, ponieważ potrzebujesz bardzo podobnych (bardzo niski jitter i ta sama przepustowość) połączeń leżących u podstaw, aby wiązanie rundy działało poprawnie (w przeciwnym razie dostajesz dużo zmiany kolejności pakietów) i mówisz że twoje połączenia są 3G.
Anatoli,
1
@ Huafu, aby mieć pierwsze rozwiązanie, wystarczy zmienić opcje wiązania zamiast mode=2 xmit_hash_policy=layer3+4y mode=0(patrz link @ kernel.org), ale najpierw sprawdź, jak podobne są łącza przez 3G. Jeśli czasy pingów różnią się więcej niż 2-3 ms lub jitter jest dłuższy niż 1 ms, będziesz mieć dużo ponownego zamawiania pakietów, skutecznie zmniejszając szybkość agregowanego łącza. Będziesz musiał sprawdzić zagregowane statystyki linków za pomocą netstat -s(poszukaj retransmisji) i iperf -s/ iperf -c <server_ip> -d. Najpierw sprawdź wydajność każdego linku, a następnie możemy kontynuować rozwiązanie
Anatoli
0

napotkałem podobny problem .. i byłem bardzo zainteresowany podejściem do rozwiązania według pierwszego scenariusza autorstwa pana. GTH i Anatoli, bardzo proszę o przedstawienie podstawowych konfiguracji i skryptów, jeśli to możliwe, w celu przetestowania konfiguracji opisanej w pierwszym scenariuszu.

teraz skonfigurowałem połączenia VPN za pośrednictwem różnych dostawców ISP, używając połączonych interfejsów tun / tap (to nie jest wiązanie, co wyjaśniono w odpowiedzi nr 8) za pomocą tego narzędzia:

Net-ISP-Balance autorstwa Lincolna D. Steina

Równoważ obciążenie połączenia internetowego między dwoma lub więcej dostawcami usług internetowych, aby zwiększyć przepustowość i niezawodność

Strona główna projektu: https://lstein.github.io/Net-ISP-Balance/

Ten pakiet umożliwia równoważenie obciążenia połączenia internetowego w domu lub w małej firmie przez co najmniej dwóch dostawców usług internetowych. Możesz go używać z jednym hostem podłączonym do dwóch dostawców usług internetowych lub na routerze / zaporze sieciowej w celu zrównoważenia obciążenia całej sieci LAN. Ruch sieciowy jest zrównoważony między obydwoma połączeniami ISP, aby zwiększyć pojemność wysyłania i pobierania, a jeśli jeden dostawca nie powiedzie się, drugi dostawca (y) przejmie automatycznie.

Przepustowość jest rozdzielana na poziomie poszczególnych połączeń. Oznacza to, że nie zobaczysz zagregowanej przepustowości na żadnym konkretnym teście pobierania lub testu prędkości, ale zobaczysz korzyści, gdy wiele transmisji danych ma miejsce jednocześnie, na przykład, gdy kilka osób w twoim domu przesyła strumieniowo filmy. Ponadto protokoły przesyłania plików z wieloma połączeniami, takie jak BitTorrent, dostrzegą zalety równoważenia obciążenia.

jest to oparte na Perlu narzędzie do zarządzania routingiem i iptables w Linuksie, idealne do naszych celów, w rzeczywistości najpierw tworzy tabelę routingu dla wszystkich dostawców, a następnie równomiernie rozdziela cały ruch LAN między dostawcami, aby zrozumieć, jak działa to narzędzie, sugerujemy rozważyć mały przykład (konfiguracja testowa) dla 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 ##
ITz
źródło
Proszę rozważyć usunięcie tej odpowiedzi i dodanie komentarza z prośbą o dodatkowe wyjaśnienie do odpowiedniej odpowiedzi. To nie jest odpowiedź. Dziękuję Ci.
Raffa