Fórum Root.cz
Hlavní témata => Sítě => Téma založeno: LacconePanda 21. 12. 2025, 18:12:00
-
Jak koncové body wireguardu mají nastavené kontaktování peera (vytvoří se paket u kterýho se určí že má vyjít tunelem), pokud ten peer umře? Myslím tím až s nějakým odstupem času, když se peer nějakou dobu neozývá.
Na co se chci zaměřit a hrát to bude roli bych řekl jsou dvě nastavení:
1. zadaný nebo prázdný Endpoint (můžou ho mít v konfigu obě strana, nebo první strana nebo druhé strana. ) Možná to ale nehraje roli
2. definovaný persitent keepalive (ano/ne u obou stran)
Jak to funguje? Kloním se k tomu, že jednička nehraje roli, že si peer bude držet adresu protistrany nadosmrti )ikdyž předtím ji neměl v konfigáči) a tím efektivně bude adresu peera znát vždy. Ale jak tam vystupuje druhý faktor ten nat keepalive? Slouží ten keepalive jen k tomu aby nevyschlo spojení přes nat (jenom koná),a nebo podle toho se i rozhoduje,že po uplynutí persistent keepalive si domyslí, že spojení právě vyschlo a nebude se pokoušet posílat takovéému peerovi nic
postrádám tady nějaký parametr alive-timeout, případně passive-only to asi wireguard nemá
-
Mrkni sem. https://www.wireguard.com/papers/wireguard.pdf
V zásadě:
1. WireGuard není connection-oriented
2. Peer je statická entita
3. Endpoint je cache poslední adresy odkud přišel packet se správným klíčem
4. Keepalive je transportní hack pro NAT (NAT hole punching)
-
Jak už píše Metabug, WireGuard neudržuje žádné spojení na transportní vrstvě a používá jednotlivé UDP pakety pro přenos dat. Zároveň je to tichý protokol, tedy nevytváří sám žádnou komunikaci, pokud se skrz tunel nemusí přenášet žádná data. Z toho plyne, že WireGuard prostě vždycky jen čeká, až mu přijde nějaký další paket.
Pokud nic nepřichází, tak prostě protistrana nepotřebuje nic odesílat. Kdykoliv se to ale může stát, proto se prostě a jednoduše čeká na další správně podepsaný paket. Pokud ten dorazí z jiné IP adresy, prostě si cíl poznamená nový endpoint a na něj bude směrovat případnou svou komunikaci k odeslání.
Keepalive je tam skutečně jen proto, aby udržoval díry skrz různé NATy po cestě a umožnil tedy protistraně kdykoliv začít vysílat bez předchozího ohlášení. Udržované prostupy pak umožní komunikaci dojít až do cíle někde v privátních sítích.