/ Linux Reviews / Networking / Kształtowanie Ruchu i Zaawansowany Routing HOWTO - en - pl


Rozdział 18. Inne możliwości

Ten rozdział stanowi listę projektów, mające coś wspólnego z tym tematem tego dokumentu. Niektóre z tych linków zasługują na osobne rozdziały, niektóre są doskonale udokumentowane same w sobie i nie potrzebują nawet HOWTO.

802.1Q VLAN Implementation for Linux (WWW)

VLAN to fajny sposób na oddzielenie sieci bardziej na sposób wirtualny niż fizycznie. Dobre informacje na ten temat można znaleźć pod tym adresem. Dzięki tej implementacji, Linuks może wymieniać informacje z systemami takimi jak Cisco Catalyst, 3Com: {Corebuilder, Netbuilder II, SuperStack II switch 630}, Extreme Networks Summit 48, Foundry: ServerIronXL i FastIron.

Doskonałe HOWTO dotyczące VLANów dostępne jest pod tym adresem.

Uaktualnienie: łata została włączona do kernela 2.4.14 (a może 13).

Alternate 802.1Q VLAN Implementation for Linux (WWW)

Alternatywna implementacja VLAN dla Linuksa. Projekt zaczął się od nieporozumień przy projekcie architektury VLANów i stylu kodowania. Jest generalnie rzecz biorąc `czyściej' napisany.

Linux Virtual Server (WWW)

Ci ludzie są błyskotiliwi. LVS to skalowalny i wydajny serwer zbudowany na klastrze prawdziwych serwerów, z równoważeniem obciążenia pracującym pod Linuksem. Architektura klastra jest przeźroczysta dla użytkowników. Końcowi użytkownicy widzą jeden wirtualny serwer.

W dużym skrócie: jeśli potrzebujesz równoważenia ruchu, na dowolnym poziomie ruchu, LVS w jakiś sposób sobie z tym poradzi. Niektóre z technik zastosowanych w tym rozwiązaniu są naprawdę diabelskie! Na przykład, pozwalają wielu maszynom przypisać ten sam adres IP w jednym segmencie, ale wyłączyć dla nich ARP. Tylko maszyna LVS obsługuje ARP - decyduje który serwer powinien obsłużyć pakiet i wysyła pakiet pod odpowiedni adres MAC. Ruch wychodzący przepływa bezpośrednio do routera a nie przez maszynę LVS, która w związku z tym nie potrzebuje nadzorować zawartości np. 5Gbit'owego strumienia danych wypływającego do świata, a w związku z tym nie może być wąskim gardłem.

LVS zaimplementowano jako łata na Linuksa 2.0 i 2.2 i jako moduł dla netfilter w 2.4/2.5 więc nie potrzebne są już łaty! Co prawda wsparcie dla 2.4 jest nadal we wczesnym stadium rozwoju ale komentarze i uwagi są mile widziane.

CBQ.init (WWW)

Konfiguracja CBQ może być trochę zniechęcająca, szczególnie jeśli chcesz tylko trochę ograniczyć pasmo dla komputerów za routerem. CBQ.init może pomóc skonfigurować ci system przy pomocy uproszczonej składni.

Na przykład, jeśli chcesz by wszystkie komputery w sieci 192.168.1.0/24 (na 10mbitowym eth1) ograniczono do prędkości ściągania 28kbit/s zapisz te linijki do pliku konfiguracyjnego CBQ.init:

DEVICE=eth1,10Mbit,1Mbit
RATE=28Kbit
WEIGHT=2Kbit
PRIO=5
RULE=192.168.1.0/24

Oczywiście tego skryptu użyj tylko wtedy, gdy `jak i gdzie' cię w ogóle nie interesuje. Używamy CBQ.init na maszynach produkcyjnych i działa dobrze. Może nawet robić pewne zaawansowane rzeczy, jak naprzykład kształtowanie ruchu na podstawie czasu. Razem ze skryptem dostarczana jest dokumentacja, która wyjaśnia wszystko czego nie znajdziesz w README.

Chronox easy shaping scripts (WWW)

Stephan Mueller (smueller%chronox.de) napisał dwa użyteczne skrypty, `limit.conn' i `shaper'. Pierwszy umożliwia łatwe ograniczenie pojedyńczej sesji ściągania danych tak jak poniżej:

# limit.conn -s SERVERIP -p SERVERPORT -l LIMIT

Skrypty działają na Linuksie 2.2 oraz 2.4/2.5.

Drugi skrypt jest trochę bardziej skomplikowany i może być użyty do stworzenia całej masy kolejek na podstawie reguł iptables oznaczających pakiety, które zostają potem poddane kształtowaniu ruchu.

Virtual Router Redundancy Protocol implementation (WWW)

Stworzona całkowicie dla zapewnienia redundacji. Dwie maszyny ze swoimi własnymi adresami IP i MAC tworzą razem trzeci adres IP i MAC, który jest wirtualny. Oryginalnie protokół tworzono dla ruterów, które potrzebowały stałych adresów MAC, ale działa również dla innych serwerów.

Piękno tego podejścia przejawia się w niewiarygodnie prostej konfiguracji. Bez kompilacji kernela czy łatania - wszystko w przestrzeni użytkownika.

Uruchom po prostu to polecenie na wszystkich maszynach uczestniczących w implementacji:

# vrrpd -i eth0 -v 50 10.0.0.22

I już działa! 10.0.0.22 jest teraz obsługiwany przez jeden z twoich serwerów, prawdopodobnie pierwszy na którym uruchomiono demona vrrp. Odłącz ten komputer od sieci i zobaczysz, że bardzo szybko drugi komputer przyjmie adres 10.0.0.22 jak również adres MAC.

Próbowałem tego u siebie i miałem działającą konfigurację w ciągu minuty. Z jakiegoś dziwnego powodu implementacja postanowiła odrzucić moją domyślną bramę, ale flaga `-n' temu zapobiegła.

Poniżej `na żywo' symulacja awarii jednej z maszyn:

64 bytes from 10.0.0.22: icmp_seq=3 ttl=255 time=0.2 ms
64 bytes from 10.0.0.22: icmp_seq=4 ttl=255 time=0.2 ms
64 bytes from 10.0.0.22: icmp_seq=5 ttl=255 time=16.8 ms
64 bytes from 10.0.0.22: icmp_seq=6 ttl=255 time=1.8 ms
64 bytes from 10.0.0.22: icmp_seq=7 ttl=255 time=1.7 ms

Nie straciliśmy nawet jednego pinga! Zaraz po pakiecie numer 4 odłączyłem swoje P200 od sieci i 486 przejęło obsługę, co można poznać po większym opóźnieniu.


/ Linux Reviews / Networking / Kształtowanie Ruchu i Zaawansowany Routing HOWTO