Łączenie (Bonding) w MT 3.0
Z MikroTik Wiki
Spis treści |
Opis ogólny
Wprowadzenie
Łączenie jest technologią umożliwiającą sumującą wiele ethernetopodobnych interfejsów w jedno wirtualne łącze, w celu osiągnięcia większych przepływności danych i zapewnić ochronę przed awariami.
Przewodnik Szybkiej Konfiguracji
Załóżmy, że mamy dwa NIC na każdym routerze (Router1 i Router2) i chcemy uzyskać maksymalną przepływność pomiędzy 2 routerami. Postępujmy według poniższych kroków:
1. Upewnijmy się, że nie mamy adresu IP przydzielonego interfejsowi, który zostanie przydzielony interfejsowi łączonemu!
2. Dodaj interfejs łączony (bonding) na routerze Router1:
[admin@Router1] interface bonding> add slaves=ether1,ether2
A dla routera Router2:
[admin@Router2] interface bonding> add slaves=ether1,ether2
3. Dodaj adresy interfejsów łączonych:
* [admin@Router1] ip address> add address=172.16.0.1/24 interface=bonding1
* [admin@Router2] ip address> add address=172.16.0.2/24 interface=bonding1
4. Przetestuj łączę z Router1:
[admin@Router1] interface bonding> /pi 172.16.0.2 172.16.0.2 ping timeout 172.16.0.2 ping timeout 172.16.0.2 ping timeout 172.16.0.2 64 byte ping: ttl=64 time=2 ms 172.16.0.2 64 byte ping: ttl=64 time=2 ms
Zauważ, że interfejs łączony potrzebuje kilka sekund aby uzyskać połączenie z drugim końcem łącza.
Specyfikacja
Wymagany pakiet: system
Wymagana licencja: Level1
Poziom menu: /interface bonding
Standardy i technologie: brak
Wykorzystanie sprzętu: brak
Podobne artykuły
Linux Ethernet Bonding Driver mini-howto
Opis
Aby zapewnić odpowiednią ochronę przed awariami, powinieneś określić parametr link-monitoring. Może on być:
- MII (Media Independent Interface) type1 lub type2 - Media Independent Interface jest warstwą abstrakcyjną pomiędzy systemem operacyjnym a NIC, który wykrywa, że łącze jest działające (posiada także inne funkcje, ale w tym przypadku ta jest najważniejsza).
- ARP - Address Resolution Protocol okresowo (według czasu arp-interval) sprawdza status łącza.
link-monitoring używany jest do sprawdzania, czy łącze jest włączone czy nie.
Opis własności
arp (disabled | enabled | proxy-arp | reply-only; default: enabled) - Address Resolution Protocol dla danego interfejsu
- disabled - interfejs nie wykorzystuje ARP
- enabled - interfejs wykorzystuje ARP
- mproxy-arp -interfejs wykorzystuje usługę ARP proxy
- reply-only - interfejs wyłącznie odpowiada na żądania mające źródło w swoim własnym adresie IP. Adresy MAC sąsiadów będą rozpatrywane wyłącznie przy użyciu statycznie ustawionej tablicy /ip arp.
arp-interval (time; default: 00:00:00.100) - czas w milisekundach, określający jak często monitorowane są żądania ARP
arp-ip-targets (IP address; default: "") - Docelowy adres IP, który ma być monitorowany, jeżeli włączona jest w arp usługa link monitoring. Możesz określić wiele adresów IP, oddzielonych od siebie przecinkiem.
down-delay (time; default: 00:00:00) - jeżeli zostanie wykryte uszkodzenie łącza, interfejs łączony zostanie wyłączony na czas down-delay. Wartość powinna być wielokrotnością mii-interval.
lacp-rate (1sec | 30secs; default: 30secs) - częstotliwość Aggregation Control Protocol określa jak często wymieniane będzie LACPDU pomiędzy obiema łączonymi interfejsami. Używane do określenie czy łącze jest włączone lub czy wystąpiły inne zmiany w sieci. LACP próbuje się zaadaptować do tych zmian zapewniając ochronę przez awariami.
link-monitoring(arp | mii-type1 | mii-type2 | none; default: none) - Metoda używana do monitoringu łącza (czy jest włączone).
- arp - Wykorzystuje ARP do określenia czy zdalny interfejs jest osiągalny.
- mii-type1 - Używa Media Independent Interfejs type1 do określenia statusu łącza. Status łącza oparty jest o sterownik urządzenia. Jeżeli łączenie pokazuje, że łącze jest włączone, gdy nie powinno, oznacza to, że ta karta sieciowa nie obsługuje tej opcji.
- mii-type2 - Używa MII type2 dookreślenia statusu łącza (używane, gdy mii-type1 nie jest obsługiwane przez NIC)
MII type2 to determine link status (used if mii-type1 is not supported by the NIC)
- none - brak zdefiniowanej metody monitoringu łącza. Jeżeli nastąpi awaria łącza, nie jest traktowane jako wyłączone (ale żaden ruch nie będzie przez nie przenoszony).
mac-address (read-only: MAC address) - adres MAC interfejsu łączonego.
mii-interval (time; default: 00:00:00.100) - jak często łącze będzie monitowane pod względem awarii (parametr używany wyłączniew wtedy, kiedy monitorowanie łącza jest mii-type1 lub mii-type2).
mode (802.3ad | active-backup | balance-alb | balance-rr | balance-tlb | balance-xor | broadcast; default: balance-rr) - tryb interfejsu łączonego. Tryby:
- 802.3ad - łączenie dynamicznego łącza typu IEEE 802.3ad. W tym trybie interfejsy są łączone w grupę, w której każdy interfejs podrzędny dzieli tą samą przepływność. Jeżeli wykorzystujesz switch pomiędzy dwoma łączonych routerami, upewnij się, że ten switch obsługuje standard IEEE 802.3ad. Zapewnia tolerancje na uszkodzenia i równoważenie obciążenia.
- active-backup - zapewnia rezerwę łącza. Tylko jeden interfejs podrzędny może być aktywny na raz. Inny interfejs przechodzi w stan aktywności, tylko w wypadku awarii poprzedniego.
- balance-alb - adaptacyjne równoważenie obciążenia. Zawiera balance-tlb jak i równoważenie przychodzącego ruchu. Sterownik urządzenia powinien mieć obsługę ustawiania adresu mac, gdy tryb ten jest aktywny. W przeciwnym wypadku balance-alb nie będzie działać. Nie jest wymagany specjalny switch.
- balance-rr - równoważenie obciążenia typu round-robin. Podrzędne interfejsy w interfejsie łączonym powinny wysyłać jak i odbierać dane w odpowienim porządku. Zapewnia równoważenie obciążenia i odporność na awarie.
- balance-tlb - Ruch wychodzący jest rozdzielany według obciążenia na każdym interfejsie podrzędnym. Ruch przychodzący odbierany jest przez aktywny interfejs podrzędny. Jeżeli odbierający interfejs ulegnie awarii, wtedy inny interfejs przejmuje adres MAC uszkodzonego interfejsu. Nie wymaga żadnej specjalnej usługi sitch'a.
- balance-xor - Używa polityki XOR do transmisji. Zapewnia wyłącznie ochronę przed awarią (z bardzo dobrą jakością usługi), ale nie równoważenia obciążenia.
- broadcast - Rozsyła na raz te same dane przez wszystkie interfejsy. Zapewnia ochronę przed awarią, ale spowalnia ruch przechodzący na niektórych powolnych maszynach.
mtu (integer: 68..1500; default: 1500) - Maksymalny rozmiar ramki (Maximum Transmit Unit) w bajtach.
name (name) - Opisowa nazwa interfejsu łączonego.
primary (name; default: none) - Interfejs jest używany jako podstawowy interfejs wyjściowy dla mediów. Jeżeli podstawowy interfejs ulegnie awarii, tylko inne interfejsy podrzędne będą wykorzystywane. Wartość ta działa jedynie z mode=active-backup.
slaves (name) - Przynajmniej dwa interfejsy ethernetowe oddzielone przecinkiem, wykorzystywane w łączeniu interfejsów.
up-delay (time; default: 00:00:00) - Jeżeli łącze zostało włączone, interfejs łączony zostaje wyłączony przez pewien czas (up-delay) po którym zostaje włączony. Wartość powinna być wielokrotnością mii-interval.
Uwagi
Wykrywanie awarii łącza i ochrona przed awarią działają zdecydowanie lepiej z drogimi kartami sieciowymi, np. zrobionymi przez Intela, niż z tymi tanimi. Dla przykładu, w kartach Intela mechanizm ochrony przed awarią działa w czasie mniejszym niż sekundę po awarii łącza, gdy na innych kartach ten czas może trwać nawet do 20 sekund. Ponadto aktywne równoważenie łącza (mode=balance-alb) nie działa na niektórych tańszych kartach.
Przykłady aplikacji
Załóżmy, że chcesz skonfigurować router MikroTik dla poniższego układu sieci, w którym są dwa biura po dwa ISP w każdym. Chcesz połączyć łącza w celu uzyskania podwójnej przepływności i zapewnić ochronę przed awarią:
Zakładamy, że połączenia z internetem przez dwa ISP są skonfigurowane w obu routerach.
- Konfiguracja na routerach:
- W Office1:
[admin@office1] > /interface print Flags: X - disabled, D - dynamic, R - running # NAME TYPE MTU 0 R isp1 ether 1500 1 R isp2 ether 1500 [admin@office1] > /ip address print Flags: X - disabled, I - invalid, D - dynamic # ADDRESS NETWORK BROADCAST INTERFACE 0 1.1.1.1/24 1.1.1.0 1.1.1.255 isp2 1 10.1.0.111/24 10.1.0.0 10.1.0.255 isp1
- W Office2
[admin@office2] interface> print Flags: X - disabled, D - dynamic, R - running # NAME TYPE MTU 0 R isp2 ether 1500 1 R isp1 ether 1500 [admin@office2] interface> /ip add print Flags: X - disabled, I - invalid, D - dynamic # ADDRESS NETWORK BROADCAST INTERFACE 0 2.2.2.1/24 2.2.2.0 2.2.2.255 isp2 1 10.1.0.112/24 10.1.0.0 10.1.0.255 isp1
- Konfiguracja tunelu EoIP
- dla Office1 przez ISP1
[admin@office1] > interface eoip add remote-address=10.1.0.112 tunnel-id=2 \... mac-address=FE:FD:00:00:00:04 [admin@office1] > interface eoip print Flags: X - disabled, R - running 0 R name="eoip-tunnel2" mtu=1500 mac-address==FE:FD:00:00:00:04 arp=enabled \... remote-address=10.1.0.112 tunnel-id=2
- dla Office2 przez ISP1
[admin@office2] > interface eoip add remote-address=10.1.0.111 tunnel-id=2 \... mac-address=FE:FD:00:00:00:02 [admin@office2] > interface eoip print Flags: X - disabled, R - running 0 R name="eoip-tunnel2" mtu=1500 mac-address=FE:FD:00:00:00:02 arp=enabled \... remote-address=10.1.0.111 tunnel-id=2
- dla Office1 przez ISP2
[admin@office1] > interface eoip add remote-address=2.2.2.1 tunnel-id=1
\... mac-address=FE:FD:00:00:00:03
[admin@office1] interface eoip> print
Flags: X - disabled, R - running
0 R name="eoip-tunnel1" mtu=1500 mac-address=FE:FD:00:00:00:03 arp=enabled
remote-address=2.2.2.1 tunnel-id=1
1 R name="eoip-tunnel2" mtu=1500 mac-address=FE:FD:00:00:00:04 arp=enabled
remote-address=10.1.0.112 tunnel-id=2
- dla Office2 przez ISP2
[admin@office2] > interface eoip add remote-address=1.1.1.1 tunnel-id=1
\... mac-address=FE:FD:00:00:00:01
[admin@office2] interface eoip> print
Flags: X - disabled, R - running
0 R name="eoip-tunnel1" mtu=1500 mac-address=FE:FD:00:00:00:01 arp=enabled
remote-address=1.1.1.1 tunnel-id=1
1 R name="eoip-tunnel2" mtu=1500 mac-address=FE:FD:00:00:00:02 arp=enabled
remote-address=10.1.0.111 tunnel-id=2
- Konfiguracja łączenia
- dla Office1
[admin@office1] interface bonding> add slaves=eoip-tunnel1,eoip-tunnel2
[admin@office1] interface bonding> print
Flags: X - disabled, R - running
0 R name="bonding1" mtu=1500 mac-address=00:0C:42:03:20:E7 arp=enabled
slaves=eoip-tunnel1,eoip-tunnel2 mode=balance-rr primary=none
link-monitoring=none arp-interval=00:00:00.100 arp-ip-targets=""
mii-interval=00:00:00.100 down-delay=00:00:00 up-delay=00:00:00
lacp-rate=30secs
[admin@office1] ip address> add address=3.3.3.1/24 interface=bonding1
[admin@office1] ip address> print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE
0 1.1.1.1/24 1.1.1.0 1.1.1.255 isp2
1 10.1.0.111/24 10.1.0.0 10.1.0.255 isp1
2 3.3.3.1/24 3.3.3.0 3.3.3.255 bonding1
- dla Office2
[admin@office2] interface bonding> add slaves=eoip-tunnel1,eoip-tunnel2
[admin@office2] interface bonding> print
Flags: X - disabled, R - running
0 R name="bonding1" mtu=1500 mac-address=00:0C:42:03:20:E7 arp=enabled
slaves=eoip-tunnel1,eoip-tunnel2 mode=balance-rr primary=none
link-monitoring=none arp-interval=00:00:00.100 arp-ip-targets=""
mii-interval=00:00:00.100 down-delay=00:00:00 up-delay=00:00:00
lacp-rate=30secs
[admin@office2] ip address> add address=3.3.3.2/24 interface=bonding1
[admin@office2] ip address> print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK BROADCAST INTERFACE
0 2.2.2.1/24 2.2.2.0 2.2.2.255 isp2
1 10.1.0.112/24 10.1.0.0 10.1.0.255 isp1
2 3.3.3.2/24 3.3.3.0 3.3.3.255 bonding1
[admin@office2] ip address> /ping 3.3.3.1
3.3.3.1 64 byte ping: ttl=64 time=2 ms
3.3.3.1 64 byte ping: ttl=64 time=2 ms
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 2/2.0/2 ms

