Dva aktivna IPsec tunela i dalje traže plan povratnog puta
Dva tunela nisu plan. Prati jedan TCP razgovor kroz jedan par pristupnika i natrag kroz drugi, pa odluči ko drži stanje.
Otvori terminal na radnoj stanici na jednoj lokaciji i spoji se na server na drugoj. Taj jedan TCP razgovor sad mora proći kroz četiri pristupnika umesto dva, a zanimljivi deo nije da li radi na dobar dan. Zanimljivi deo je koji je par pristupnika izabrao smer napred, koji par bira odgovor i ko drži stanje toka dok se to dešava. Ništa u tabeli rutiranja ne odlučuje to umesto vas.
Nacrtaj četiri pristupnika pre nego što nacrtaš rutu
Dvostruko aktivni dizajn sa dva nezavisna VPN firewall-a po lokaciji, jedan par po provajderu, daje ti dva upotrebljiva puta i tri načina da ih pokvariš. Zapiši adrese pre nego što bilo šta konfigurišeš: klijent kako se vidi pre i posle svakog pristupnika, server isto tako, sledeći skok napred i sledeći skok natrag.
Ta tabela je dizajn. Sve posle nje pitanje je da li se uređaji slažu sa tabelom.
Kako se bira put napred
Sloj višestaznog rutiranja sa jednakom cenom raspoređuje tokove po sledećim skokovima heširanjem polja zaglavlja, što RFC 2992 detaljno opisuje. Taj izbor može biti potpuno bezstanjan: ne treba mu unos praćenja konekcije, samo stabilan heš nad nepromenjenim poljima. Drži skup puteva i ulaze heša stalnim i svaki paket toka bira isti sledeći skok.
Odabir po toku izbegava preraspoređivanje koje bi balansiranje paket po paket izazvalo na vezama sa različitim kašnjenjima. On ne obećava da jednaka cena rutiranja znači jednako izmereno kašnjenje, jer ne znači. A kada se sastav puteva promeni, tokovi se premapiraju, pa je preživljavanje konekcije tokom kvara poseban zahtev od odabira puta.
Šta povratni put zaista treba
Ovde šetnja prestaje da bude simetrična. Stabilan heš napred ne govori ti ništa o tome šta će udaljena lokacija uraditi sa odgovorom. Ako nezavisni firewall mora da vidi oba smera konekcije da bi održao korisno stanje, povratna ruta koja ga zaobilazi ostavlja saobraćaj koji se ni sa čim ne poklapa. Dve kutije sa sličnim skupovima pravila nisu deljeno stanje.
Potvrdi implementirano dvosmerno ponašanje ili napiši izričitu politiku koja održava tražene granice koherentnim. Pretpostavka se ovde otkrije tokom ispada, od ljudi koji u tome ne uživaju.
Gde prevod odlučuje umesto tebe
NAT je druga poluga i nije obavezan nego opcionalan. Prevedeni identiteti specifični za put mogu da usmere odgovore natrag ka pristupniku koji drži stanje, što je legitiman dizajn. Oni takođe dodaju mapiranja, povratne rute i vlasnika tog stanja, pa prihvati teret samo za zahtev koji možeš izgovoriti naglas.
Ako je zahtev jednostavno da oba puta nose saobraćaj i da bilo koji preživi gubitak provajdera, običan višestazni tok sa koherentnim povratnim rutiranjem obično je manji dizajn.
Prođi prihvatanje po redu
Testiraj ovim redosledom i beleži adrese na svakom koraku: nova konekcija na putu A i njen povratni put, isto na putu B, zatim gubitak jednog provajdera, zatim obnova. Za svaki rezultat zabeleži koji su se uspostavljeni tokovi pomerili, koji su morali ponovo da se povežu i kuda su novi tokovi otišli posle. Prvo zapiši očekivanu vrednost, pa je uporedi sa snimkom. Dva uspostavljena tunela ne dokazuju ništa od toga.
Dizajn je gotov kada se tabela koju si napisao poklapa sa onim što snimak pokazuje, a ne kada su oba tunela podignuta.