WireGuard 5G pobočka: nech pobočka volá rozbočovač sama
Keď pobočka volá rozbočovač, rozbočovač nikdy nemusí zisťovať meniacu sa mobilnú adresu. Nakonfigurujte, overte a potom sa pozrite, čo to nerieši.
Nasmerovať pobočku na rozbočovač je ľahká polovica tohto návrhu, keď pobočka sedí za meniacou sa mobilnou adresou a rozbočovač má stabilné meno. Rozbočovač sa potom pobočku učí z autentifikovanej prevádzky, nie zo záznamu, ktorý musíte udržiavať aktuálny. Zmluva je jednoduchá: pobočka vždy začína.
Nakonfigurujte to zámerne a potom overte tú časť, o ktorej ľudia predpokladajú, že funguje. Oba kroky trvajú minúty a práve na druhom tieto návrhy zvyčajne zlyhávajú.
Ktorá strana drží stabilný koncový bod
Konfigurácia pobočky uvádza koncový bod rozbočovača a jeho verejný kľúč. Konfigurácia rozbočovača uvádza verejný kľúč pobočky a jej povolené vnútorné prefixy a môže nemať vôbec žiadny koncový bod, pretože identita pochádza z kľúča, nie zo zdrojovej adresy posledného paketu. Táto asymetria je celý mechanizmus a odstraňuje celú triedu problémov s objavovaním na strane rozbočovača.
Keď pobočka pošle autentifikovaný paket, rozbočovač zaznamená zdroj, odkiaľ prišiel, a použije toto mapovanie na odpovede. Prečíslovanie mobilného spoja potom nestojí nič okrem ďalšieho podania ruky a každý komponent, ktorý už nepotrebujete, je ten, ktorý počas prepnutia nemôže zlyhať. Túto vlastnosť sa oplatí testovať počas plánovanej zmeny, nie počas incidentu. Urobte to, kým niekto môže sledovať oba konce naraz.
Dajte pobočke konfiguráciu, ktorá prežije prečíslovanie
Držte koncový bod a keepalive na pobočke a záznam partnera na rozbočovači držte bez natvrdo zadanej adresy. Keepalive drží preložené mapovanie otvorené dosť dlho na to, aby rozbočovač mohol po období nečinnosti poslať nevyžiadanú prevádzku.
[Peer]
PublicKey = HUB_PUBLIC_KEY_BASE64
Endpoint = hub.example.net:51820
AllowedIPs = 10.60.0.0/24, 10.60.10.0/24
PersistentKeepalive = 25
Dvadsaťpäť sekúnd je často citovaný príklad na udržanie NAT mapovania nažive, nie požiadavka pre každého partnera. Nastavte ho podľa časového limitu mapovania, ktorý skutočne pozorujete, a pamätajte, že generuje prevádzku na linke s dátovým limitom, kým je rozhranie aktívne.
Na rozbočovači musia povolené prefixy partnera pobočky pokrývať všetko, čo pobočka pošle. Chýbajúci prefix správa sa ako zlyhanie smerovania na vzdialenom konci a nespôsobí žiadne upozornenie na žiadnej strane, preto sa oplatí skontrolovať ho pred prvým skutočným paketom. Pred prvým pripojením porovnajte povolené prefixy rozbočovača s adresami rozhraní pobočky.
Overte mapovanie a prepnutie
Potvrďte, že podanie ruky sa dokončí, že rozbočovač uvádza aktuálny koncový bod pobočky a že vnútorné adresy pobočky sú dostupné cez tunel. To je východiskový stav a mal by sa zaznamenať predtým, než sa niekto dotkne mobilného spoja. Dva riadky výstupu stačia. Uchovajte ich v tikete s časovou pečiatkou.
wg show wg0
wg show wg0 latest-handshakes
ip route show default
ping -c 3 10.60.10.1
Potom otestujte poruchu, pre ktorú tento návrh existuje. Vytiahnite primárny WAN a potvrďte, že podkladová trasa pobočky k rozbočovaču teraz vychádza cez mobilné rozhranie. Tunel nemôže opraviť prerušenú fyzickú cestu, takže vonkajšia trasa, ktorá stále ukazuje na mŕtve vzostupné spojenie, spôsobí časový limit podania ruky, ktorý vyzerá presne ako problém rozbočovača.
Ak je vonkajšia cesta výslovne zviazaná alebo smerovaná politikou, prepnutie ju musí zahrnúť. Tá medzera medzi návrhom, ktorý sa číta správne, a tým, ktorý prežije výpadok, je zvyčajne jediná chýbajúca vec.
Čo tento návrh nerieši
Nič tu neumožňuje prichádzajúce pripojenie k pobočke. Ak niečo v ústredí musí vytočiť mobilné miesto, smer tunela je pre túto požiadavku nesprávny a dynamický DNS aktualizuje iba meno. Preklad poskytovateľa, prichádzajúca politika aj obnovenie koncového bodu klientom zostávajú v ceste a zmenený záznam nemôže otvoriť NAT na úrovni operátora.
Držte prefix pobočky oddelený od každej inej lokality a obmedzte, čo bude jej brána preposielať. Stabilný koncový bod rozbočovača zjednodušuje objavovanie a nič nerobí pre návrh smerovania, plánovanie adries ani otázku, ktoré trasy aplikácií prežijú prepnutie.
Napíšte do runbooku štyri veci: kto začína, ktoré prefixy sú povolené, ako dlho trvá keepalive a čo sa stane, keď primárne spojenie vypadne. Práve tie riadky budúci operátor o tretej ráno skutočne potrebuje.