- 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.