21.10.2018
Naše firemní síť je už hodně dlouho postavená na IPv6. Tento protokol jsme používali už v době, kdy ještě firma Hobrasoft neexistovala a pracovali jsme jako OSVČ. Uvnitř firemní sítě je IPv6 velmi pohodlný protokol. Není třeba nic nastavovat, každé zařízení je nastavené v okamžiku připojení do sítě - někdy je jen trochu práce se zjištěním, jakou IP adresu zařízení dostalo.
Firemní sítí v našem případě můžeme rozumět nejen zařízení v rožnovské kanceláři, ale i servery (mnohé virtuální) v pražské a brněnské serverovně. Díky veřejným IP adresám pro každé zařízení mezi sebou všechny servery, počítače, teploměry, LED světla, kamery, zabezpečovačka a další blbiny připojené do naší sítě na sebe mohou vidět. Je úplně jedno, kde je zařízení k internetu připojené - pokud jsou všechny adresy součástí veřejného adresního prostoru, jednotlivá zařízení mezi sebou mohou bez omezení komunikovat. Omezení jsou samozřejmě nutná. Nechceme, aby se nám v síti volně pohybovaly nežádoucí existence. Omezení jsou však daná pravidly na firewallu, nikoli chybějícími IP adresami, NATem a náhodnými kolizemi adres mezi různými sítěmi.
Protože je firemní síť rozložená mezi různými lokacemi, jednotlivé její části spolu komunikují prostřednictvím internetu. Nutnou podmínkou pro bezpečnost je proto šifrování. Záměrně na tomto místě neuvádím termín VPN, i když je síť zabezpečená pomocí IPSEC, což je prostředek, který se pro vytvoření VPN tradičně používá. Všechna zařízení by totiž mezi sebou mohla komunikovat bez potíží i bez VPN. IPSEC je zde využité pouze pro šifrování provozu mezi dvěma body sítě (obvykle mezi internetovým serverem a firewallem v kanceláři).
Při používání IPv6 je mi úplně jedno, kde je zařízení, se kterým se bavím. Proto jsem vždy velmi frustrovaný, když přijedu k zákazníkovi, chci se pochubit třeba postupem práce, ale nedovedu se připojit k zařízení v kanceláři, protože v cestě mi stojí IPv4.
Hledal jsem proto způsob, jak získat normální IPv6 připojení kdekoliv. Jednoduché řešení jsem našel v podobě IPSEC a IKEv2. Zde už se dá s přimhouřením očí mluvit o VPN. Na IPv4 se naváže spojení s VPN serverem a uvnitř šifrovaného kanálu se vytvoří tunel protokolem IPv6. Připojované zařízení (notebook, tablet s androidem a podobně) takto získá veřejnou IPv6 adresu z adresního prostoru VPN serveru (na serveru je potřeba mít prostor /48 nebo /56).
VPN server máme umístěný v Praze na gigabitové síti. Díky tomu je IPv6 síť rychlá a nezatěžuje připojení k internetu v rožnovské kanceláři. Přístup do kanceláře je mezi VPN a kanceláří zabezpečený šifrováním. Protože VPN klienti dostanou adresu vždy ze stejného rozsahu IPv6 adres, lze na firewallu v rožnovské kanceláři povolit provoz z VPN bez omezení.
Pomocí jedné VPN jsme tak získali hned dvě věci: přístup k IPv6 odkudkoliv a současně zabezpečený přístup do sítě v kanceláři. Absence IPv4 směrem do kanceláře není na závadu. V kaceláři má IPv4 pouze okrajový význam, všechna zařízení jsou dostupná bez omezení přes IPv6.
Celá struktura je patrná z obrázku. Zelenou barvou jsou nakreslené zabezpečené části spojení (tunely). Spojení mezi notebookem a kancelářskou sítí je po celé své pouti internetem zašifrované. IPv4 z notebooku prochází mimo tunel. Do kanceláře se na IPv4 kvůli nedostatku IP adres nelze dostat, zpřístupnit lze pomocí NAT pouze vybrané porty. Nežádoucí provoz do kanceláře je omezený pravidly ve firewallu.
Na straně klienta používáme Windows, Linux a Android.
Ve Windows je VPN klient součástí systému a jeho nastavení je opravdu jednoduché. Problém je pouze s nastavením výchozí brány pro IPv6. To je třeba nastavit ručně přes povelovou řádku Windows. Naštěstí to stačí udělat pouze jednou.
Pro Android existuje aplikace "StrongSwan VPN Client". Jeho nastavení je triviální a na rozdíl od klienta IKEv2 ve Windows funguje bez dodatečného nastavení.
Nejsložitější je nastavení v Linuxu. Aplikaci StrongSwan se nastavuje v konfiguračním souboru a určitě se nedá označit za triviální.
VPN server provozujeme na virtuálním Linuxovém stroji. Ačkoliv lze na straně serveru použít několik různých aplikací implementujících IPSEC a IKEv2, funguje pouze jedna: StrongSwan.
StrongSwan zajišťuje také šifrování přenosu do kanceláře.
V kanceláři na firewallu používáme pro ipsec starší aplikaci Racoon. Její nastavení je složitější, než v případě StrongSwan. Narozdíl od StrongSwan podporuje Racoon pouze protokol IKEv1, chybí mu podpora protokolu IKEv2. V kanceláři je tato aplikace použitá z historických důvodů, aplikaci máme nasazenou na mnoha různých serverech a sítích.
Nesmírně důležitou součástí IPv6 je správné nastavení DNS záznamů. Bez DNS je protokol IPv6 zcela nepoužitelný. Spousta lidí si dokáže zapamatovat adresu v podobě 192.168.1.x, spousta adminů jim to zjednodušuje i tím, že jiné adresy pro lokální sítě ani nepoužívají. Ale nikdo si nedovede zapamatovat adresu ve formátu 2001:0db8:124f:1fe:5604:a6ff:fe32:34dd. A u IPv6 je častým zvykem používat pro každou službu vlastní IP adresu. Jeden server tak může mít hned několik různých IPv6 adres. Není v lidských silách si je zapamatovat.
Práci VPN lze shrnout do jediné fráze: prostě funguje. Ať se připojím přes mobilní telefon, nebo přes síť u libovolného zákazníka, po nastartování VPN mám k dispozici okamžitě celý internet, nejen jeho část v podobě IPv4. Na IPv6 provozujeme podstatnou část toho, co nás na síti zajímá: servery zákazníků, monitorovací systém, vlastní vývojové servery v rožnovské kanceláři a další věci. Jako bonus získáme po nastartování VPN neomezený přístup do vnitřní sítě rožnovské kanceláře.
I když používám IPv6 už zhruba deset let, stále mě nepřestává fascinovat, s jakou lehkostí a elegancí se dají díky dostatku IP adres ošetřit různé situace, ve kterých použití IPv4 vede ke složitým a nepřehledným bastlům a někdy se na IPv4 nedají spolehlivě vyřešit vůbec. K takovým typicky neřešitelným úlohám patří právě VPN přístup do firmy. Kvůli systémovým omezením nelze zajistit přístup do firemní sítě přes VPN na sto procent. I když se drtivá většina uživatelů IPv4 a VPN do podobné situace nedostane, případy, kdy se spojení přes VPN nepodaří vytvořit, jsou o to nepříjemnější. Když už má dojít ke kolizi adres, nebude to ve známém domácím prostředí, ale někde u zákazníka, až budete potřebovat nutně stáhnout důležitý dokument ze svého serveru v kanceláři.
Podpora IPv6 je dnes všude, chybí pouze u poskytovatelů připojení. Bavil jsem se kdysi s jedním zaměstnancem ISP - snažil jsem se mu naznačit, že masová potřeba IPv6 může přijít ze dne na den, pokud se objeví aplikace, která je na IPv6 závislá. "My si to u nás nemyslíme", zněla jeho odpověď. Aplikací si lze ale představit kde co, může to být třeba podpora IPv6 u některého z mobilních operátorů a následná mediální propagace. Náhlý zájem o IPv6 může být způsoben i obyčejným exponenciálním růstem. Ať už to bude tak, nebo jinak, na IPv6 chceme být připravení.