Nejprve k tomu, jak je vlastně síť FI připojená do univerzitní sítě a do Internetu: už v minulém tisíciletí :-) jsme se rozhodli použít pro připojení sítě FI zařízení, které budeme mít plně pod kontrolou, a kde se nebudeme muset vázat na proprietární hardware a software firmy Cis_o výrobců hardwarových routerů. Proprietární hardware je typicky několikanásobně dražší při stejném výkonu, s aktualizacemi softwaru je to všelijaké, a tak vůbec. Fakultní síť je tedy připojena pomocí běžného počítače architektury PC/x86 s operačním systémem Linux. Do tohoto počítače jsou zakončeny všechny sítě FI, a vede sem i vnější síť. Linuxový router mezi těmito sítěmi routuje a filtruje provoz, a běží na něm i některé menší síťové služby. V současné době máme takové routery dva, přičemž pomocí nástroje Heartbeat je řešena jejich vzájemná zastupitelnost. Primární router je připojený do sítě MU desetigigabitovou linkou, záložní pouze gigabitovou.
Stalo se, že v noci na sobotu 8. listopadu přestal primární router odpovídat. Sekundární router převzal bez problémů jeho roli, takže k viditelnému výpadku provozu sítě FI nedošlo. Později jsme zjistili, že se jedná o hardwarový problém, zřejmě základní desky routeru. Počítač se po několika pokusech vypnul a už se nechtěl zapnout. Zvolil si ještě docela rozumný okamžik: do konce tříleté záruky mu chybělo jen několik týdnů. Nyní je tedy primární router FI na reklamaci a čeká na opravu.
Bohužel se ukázalo, že záložní router, který je ještě výrazně starší, v průběhu pondělka přestal stíhat fakultní provoz směrovat. Je to vidět na následujícím grafu z nástroje Smokeping, který měří latenci a ztrátovost sítě:
Fakultní router má sice nějakých 1900 pravidel iptables pro IPv4 a cca 1300 pro IPv6, nicméně pravidla jsou poměrně široce rozvětvena, a v jejich množství problém nebyl. Problém byl v jiné části síťového provozu, jak ukazovala vysoká hodnota času softirq na procesoru, který zpracovával příchozí provoz z uplinku.
Ukázalo se, že problém souvisí s blacklistem IP adres, který pro síť FI udržujeme. Blacklist byl realizován pomoci ip rules, což je nástroj v jádře Linuxu, který používal cache směrovacích záznamů, a na rozdíl od iptables tedy fungoval bez lineárního procházení všech pravidel. Bohužel v posledních verzích jádra Linuxu byla směrovací cache odstraněna, a ip rules najednou začaly být neefektivní. Na primárním routeru FI jsme se tímto problémem již před časem setkali při distribuovaném útoku na IS. Od té doby jsme prozkoumali situaci se závěrem, že vhodnou alternativou pro řešení blacklistů a podobných masivních sad pravidel se jeví nástroj ipset.
V minulém týdnu jsme proto upravovali konfiguraci fakultního routeru tak, aby se pokud možno přestaly používat ip rules a zavedli jsme do provozu seznamy adres přes ipset. Finální varianta byla nasazena do ostrého provozu ve čtvrtek odpoledne.
Dnes (v pátek) odpoledne jsme ještě ručně přepojili 10GbE uplink fakulty do záložního routeru, abychom i během krátkodobých špiček provozu dosáhli rozumné latence. Změna je vidět na výše uvedeném grafu Smokepingu od cca 16:45 dále.
Uživatelům se za zhoršenou kvalitu síťového připojení v uplynulém týdnu omlouváme.