Podívejte se na handshake Nebula z opačné strany a oba mechanismy vypadají zaměnitelně. Jeden rozhoduje, které adresy uzel hlásí majáku a které vzdálené adresy zkusí; druhý rozhoduje, co může projít, jakmile tunel existuje. Filtr může zastavit spojení dřív, než se vyhodnotí jakékoli pravidlo firewallu, a pravidlo firewallu nemůže oživit koncový bod, který objevování odstranilo. Obě vrstvy odpovídají na různé otázky a klíčem je pořadí, v jakém působí.

Sledujte jedno spojení čtyřmi fázemi: ohlášená lokální adresa, zvažovaný vzdálený koncový bod, handshake a provoz v překryvné síti. Každá fáze má vlastní konfiguraci a vlastní podpis selhání.

Začněte u lokální adresy, kterou uzel ohlašuje

local_allow_list filtruje lokální adresy tohoto hostitele dřív, než se nahlásí majákům. Záznamy mohou být rozsahy adres a konfigurace podporuje i vzory názvů rozhraní. To se hodí, když má hostitel kontejnerové mosty nebo další tunelová rozhraní, která se nemají stát koncovými body partnerů.

Projděte rozhraní hostitele a zeptejte se, do kterých z nich vzdálený partner skutečně dosáhne. Adresa mostu Docker je pro toho hostitele lokální a pro partnera v jiné síti zbytečná. Její ohlašování plýtvá objevováním a může poslat partnera k adrese, která nikdy neodpoví. Všechno, co partner nedokáže směrovat, je šum v odpovědi majáku.

Úzký seznam povolení je tu bezpečnější než široký seznam zakázání. Pokud jsou přítomny jen záznamy povolení, nespecifikovaný zbytek se vyloučí; pozdější přidání záznamu zakázání mění výchozí logiku a vyžaduje vlastní revizi. Ta změna si zaslouží druhý pohled na výchozí hodnotu.

Potom sledujte volbu vzdáleného koncového bodu

remote_allow_list filtruje adresy, které tento hostitel zváží pro vzdáleného partnera během handshake. Platí pro adresu podkladové sítě, nikoli pro adresu v překryvné síti, kterou partner použije po navázání tunelu.

Soukromý rozsah může být zcela použitelný ve sdílené kancelářské síti a nesmyslný, když oba hostitelé sedí v nesouvisejících sítích, které obě používají 10.0.0.0/8. Filtr vám umožní upřednostnit směrovatelnou cestu a shodu ignorovat.

Když se partner nedokáže připojit, porovnejte zkoušenou adresu s pravidlem, které na ni odpovídá. Zapněte protokoly handshake a přečtěte zvolenou vzdálenou adresu; řádek protokolu pojmenuje koncový bod, který filtrováním prošel, což je užitečnější než seznam adres, které partner vlastní.

Filtr názvů rozhraní na straně ohlašování může koncový bod odstranit dřív, než ho přijímající strana vůbec uvidí. Zkontrolujte oba uzly, když selhává jen jeden směr.

Po handshake platí pravidla přístupu v překryvné síti

Pravidla firewallu Nebula působí uvnitř překryvné sítě, po navázání tunelu. Párují hostitele, skupiny, porty a protokoly a rozhodují, zda paket smí do lokálního hostitele vstoupit nebo jej opustit. Nevybírají koncový bod v podkladové síti.

Toto oddělení vysvětluje častou chybnou diagnózu. Operátor přidá pravidlo firewallu pro port a stále se nemůže připojit, protože filtr majáku odstranil jediný dostupný koncový bod. Jiný operátor otevře filtr adres a stále se k službě nedostane, protože firewall překryvné sítě port odmítá.

Čtěte selhání ve správné vrstvě. Handshake, který se nikdy nedokončí, ukazuje na objevování, filtrování koncových bodů nebo síťovou cestu. Dokončený handshake následovaný odmítnutým nebo zahozeným spojením ke službě ukazuje na firewall překryvné sítě nebo na aplikaci.

Čtěte výchozí hodnotu při mísení povolení a zakázání

Konfigurace majáku podporuje seznamy pouze povolující, pouze zakazující a smíšené a výchozí hodnota pro nespecifikovaný zbytek se mezi těmito podobami liší. Smíšený seznam potřebuje explicitní výchozí hodnotu pro rodinu adres; předpoklad, že se zbytek chová jako předchozí konfigurace, je cesta, kterou funkční koncový bod tiše zmizí.

lighthouse:
  local_allow_list:
    interfaces:
      docker0: false
  remote_allow_list:
    192.168.0.0/16: true
    default: false

Berte výchozí hodnotu jako součást pravidla, ne jako šablonovitý text. Pokud je výchozí hodnota rodiny zakázání, každá neuvedená adresa se vyloučí, včetně nového kancelářského rozsahu přidaného po napsání konfigurace.

Zaznamenejte, které adresy měly být dostupné, a testujte z obou stran. Filtr, který funguje pro jednu dvojici partnerů, může selhat u jiné dvojice, jejíž jediná společná cesta používá adresu, kterou seznam vylučuje.

Použijte relay, když není dostupný žádný přímý koncový bod

Pokud je každý kandidátský koncový bod odfiltrován nebo nedostupný, odpovědí není širší seznam povolení, který znovu přijímá adresy, kterým nevěříte. Konfigurace relay v Nebula poskytuje alternativní cestu pro partnery, když přímé spojení není proveditelné.

Relay řeší transport a objevování, ne autorizaci, a nerozšiřuje firewall. Firewall překryvné sítě stále rozhoduje, které služby se smějí používat, a relay nemění filtrování majáku v mechanismus řízení přístupu.

Otestujte cestu přes relay s vypnutými přímými koncovými body a potvrďte, že zamýšlená služba stále funguje a nezamýšlená ne. Ten jediný test odděluje transportní opravu od změny politiky a udržuje obě vrstvy poctivé.

Související články