Použití Virtual NAT interfaces na Cisco IOS Lukáš Czakan (CZA0006) Marek Vašut (VAS0064) Abstrakt: Tato práce obsahuje praktické srovnání použití klasického NATu s NAT virtuálním rozhraním a jejich použití v rámci jednoduché topologie. Klíčová slova: NAT, směrovač, přepínač, NAT Virtual interface 1 Úvod... 2 2 Klasický NAT... 2 3 NAT Virtuální rozhraní... 2 4 Praktické testy propustnosti... 3 4.1 Testovaná topologie a použité nástroje... 3 4.2 Test klasického NATu... 4 4.3 Test NAT virtuálního rozhraní... 6 5 Závěr... 8 6 Použitá literatura a citace... 9 Obrázek 1 Testovací topologie... 3 Obrázek 2 Propojení prvků v racku... 4 Obrázek 3 Klasický NAT zatížen jedním vláknem... 5 Obrázek 4 Klasický NAT zatížen třemi vlákny... 5 Obrázek 5 translations... 6 Obrázek 6 statistics... 6 Obrázek 7 NVI zatížen jedním vláknem... 7 Obrázek 8 NVI zatížen třemi vlákny... 7 Obrázek 9 Translations... 8 Obrázek 10 Statistics... 8 2015 1/8
1 Úvod V naší práci jsme se zaměřili na porovnání rozdílů mezi klasickým NATem a NATem na virtuálním rozhraní. Pro testování rozdílů mezi NATy jsme si vytvořili jednoduchou topologii na které jsme testovali propustnost daného směrovače při použití určitého typu NAT. 2 Klasický NAT Jedná se způsob přepisu IP adresy a často i čísla TCP/UDP portu za účelem přístupu více počítačů z lokální sítě na internet pod jedinou veřejnou IP adresou nebo za účelem bezpečnosti (přístup z nelokálního segmentu). Nutností u klasického NATu je definování jednoho rozhraní jako OUTSIDE a jednoho či více rozhraní jako INSIDE. Další nutností je definování přístupového listu a pokud používáme dynamický NAT, tak i poolu veřejných adres na které se nám budou adresy z přístupového listu překládat. Toto definování nám ukazují konfigurační příkazy níže. Definování rozhraní jako INSIDE: interface fastethernet 0/1 ip address 10.0.1.1 255.255.255.0 ip nat inside no shutdown Definování rozhraní jako OUTSIDE : interface fastethernet 0/2 ip address 165.25.10.1 255.255.255.0 ip nat outside no shutdown Definování poolu: ip nat pool INOUT 165.25.10.100 165.25.10.200 ip nat inside source list 1 pool INOUT Definování přístupového listu: access-list 1 permit 10.0.1.0 0.0.0.255 Definování výchozí směrovací adresy: ip route 0.0.0.0 0.0.0.0 165.25.10.1 Testovací příkazy: sh ip nat translations sh ip nat statistics Příkazy použité výše jsou dále využity v praktickém testování. 3 NAT Virtuální rozhraní Možnost vzužití NAT virtuálního rozhraní je k dispozici od verze IOS 12.3(14)T. NAT virtuální rozhraní odstraňuje požadavky na konfiguraci jednotlivých rozhraní jako INSIDE/OUTSIDE. Jednotlivé rozhraní lze nakonfigurovat jednoduše tak, že buď používají NAT nebo ne. Praktický rozdíl oproti klasickému NATu tedy spočívá v mnohem jednodušší konfiguraci, což může být obrovská výhoda při konfiguraci spletité topologie. Povolení NATu na rozhraních: interface fastethernet 0/1 ip address 10.0.1.1 255.255.255.0 ip nat enable interface fastethernet 0/2 ip address 165.25.10.1 255.255.255.0 ip nat enable 2015 2/8
Definování poolu: ip nat pool NVI 165.25.10.100 165.25.10.200 ip nat source list 1 pool NVI Definování přístupového listu: access-list 1 permit 10.0.1.0 0.0.0.255 Příkazy použité výše jsou dále využity v praktickém testování. 4 Praktické testy propustnosti 4.1 Testovaná topologie a použité nástroje Při připravování prezentace první fáze projektu, při které bylo cílem předvést zamýšlený postup řešení projektu cvičícímu jsme při vyhledávání materiálů narazili na velice zvláštní názor v jednom uživatelském fóru. Neznámý uživatel zde tvrdil, že při použití NAT virtuálního rozhraní dosahuje oproti klasickému NATu poloviční propustnost na Cisco směrovači. Tento názor jsme shledali velice závažným pro celou síťovou praxi a rozhodli jsme toto tvrzení otestovat na zařízeních dostupných v laboratořích Cisco na Vysoké škole báňské. Obrázek 1 Testovací topologie Pro testování propustnosti jsme se rozhodli použít program Jperf verze 2.0.5, který byl ve formě klienta aktivován na straně uživatele 10.0.1.2 a ve formě serveru na straně uživatele 165.25.10.2. 2015 3/8
Obrázek 2 Propojení prvků v racku 4.2 Test klasického NATu Na začátku jsme testovali klasický NAT a v laboratoři POREB429 jsme jednotlivé CISCO prvky zapojili dle dané topologie. Nakonfigurovali jsme jednotlivé rozhraní a následně jsme zatěžovali síť pomocí programu Jperf. Uživatele s IP adresou 10.0.1.2 jsme nastavili jako Client a uživatele s IP adresou 165.25.10.2 jako Server. Nejdříve jsme klasický NAT podrobili zátěži jednoho TCP vlákna. 2015 4/8
Obrázek 3 Klasický NAT zatížen jedním vláknem Z výsledku testu můžeme vidět, že propustnost směrovače se pohybuje řádově ve 100 Mbits/sec. Jelikož se jedná o Fast Ethernet je 100 Mbits/sec je tento výsledek vcelku předvídatelný a splňuje teoretické předpoklady této linky. Rozhodli jsme se proto provést zatížení pomocí tří vláken. Obrázek 4 Klasický NAT zatížen třemi vlákny Při zatížení třemi vlákny lze vidět že káždé z vláken již prochází směrovačem s výrazně menší propustností, avšak jejich součet nám dává opět celkovou propustnost kolem 100 Mbits/sec. Jednotlivá 2015 5/8
vlákna pak kolem 32 Mbits/sec. Při bližším pohledu na NAT tabulku překladů si lze povšimnout, že dochází k překladu každého z vláken na stejnou IP adresu avšak s jiným TCP portem. Obrázek 5 translations Statistiky nám ukazují, že došlo k přeložení celkem 6 043 010 paketů. Obrázek 6 statistics 4.3 Test NAT virtuálního rozhraní Při testování zátěže jsme použili stejnou topologii, jako tomu bylo u klasického NAT. IP adresy uživatelů jsme ponechali stejné. 2015 6/8
Obrázek 7 NVI zatížen jedním vláknem Z grafu lze vidět, že se propustnost směrovače pro jedno vlákno rapidně snížila, oproti klasickému NAT. Z hodnoty 100Mbits/sec se nyní dostáváme na 30Mbits/sec. Následně jsme provedli zatížení pomocí tří vláken. Obrázek 8 NVI zatížen třemi vlákny Z grafu lze vidět, že opět dochází k výraznému snížení propustnosti oproti klasickému NAT. Jen pro připomenutí, u klasického NAT byla propustnost každého vlákna kolem 30Mbits/sec. U NVI je propustnost pro každé vlákno kolem 10Mbits/sec. Na další stránce je pohled na NAT tabulku překladů a lze si opět povšimnout, že dochází k překladu každého z vláken na stejnou IP adresu avšak s jiným TCP portem. 2015 7/8
Obrázek 9 Translations Při použití příkazu show ip nat nvi statistics lze vidět počet přeložení paketů (658 231 paketů). Obrázek 10 Statistics 5 Závěr V projektu se nám podařilo srovnání použití klasického NATu s NAT virtuálním rozhraním. Z počátku jsme nakonfigurovali klasický NAT a testovali zatížení dané sítě. Poté jsme přistoupili ke konfiguraci NVI, přičemž jsme zjistili, že při zatížení sítě pomocí programu Jperf došlo k rapidnímu poklesu propustnosti na směrovači. Z těchto výsledků jsme usoudili, že konfigurace NVI je mnohem jednodušší avšak za cenu velmi snížené propustnosti. Samo CISCO na svých stránkách udává, že by NVI měly být použity pro NATování mezi různými VRF systémy (Virtual routing and forwarding), protože ty už samy o sobě ve velkém množství konzumují výkon hardwaru směrovače. NVI NAT tabulky aplikují routovací pravidlo proto, aby byly packety poslány na NVI virtuální rozhraní. Packety jsou zde přeloženy a poté je aplikováno další routovací pravidlo následováno posláním packetu pryč z rozhraní. Rozdíl oproti klasickému NATu spočívá tedy v tom, že routovací pravidlo je zde aplikováno dvakrát a tudíž dochází o poloviční zvýšení zátěže směrovače Proto bychom do běžných systémů nevyužívajících VRF doporučovali použít spíše klasický NAT. 6 Použitá literatura a citace GRYGAREK, Petr. VŠB-TU OSTRAVA. Network Address Translation - NAT [online]. [cit. 2015-05-03]. Dostupné z:http://www.cs.vsb.cz/grygarek/pos/nat-cisco.pdf Cisco Zine: Daily reporting on Cisco Technology [online]. [cit. 2015-05-11]. Dostupné z: http://www.ciscozine.com/nat-virtual-interface-aka-nvi-what-is-that/ SNIEDER, Joachim. Jocke: kek lol wtf? [online]. [cit. 2015-05-11]. Dostupné z: http://tech.jocke.no/2010/09/24/cisco-ios-nat-virtual-interface/ 2015 8/8