WireGuard mezgls nav sasniedzams, kamēr cits strādā: kontrolsaraksts
Strādājošais mezgls pierāda tikai savu atslēgu, galapunktu un maršrutus. Pirms jebkura noteikuma paplašināšanas salīdziniet neveiksmīgā mezgla AllowedIPs, koncentratora pāradresāciju un iekšējo avotu.
Viens WireGuard vienaudža mezgls laiž cauri datu plūsmu, bet otrais pabeidz roku sasveicināšanos, taču nekad nesasniedz neko aiz tuneļa. Strādājošais mezgls jums saka, ka saskarne, UDP ports un servera atslēga, iespējams, ir kārtībā. Tas neko nepasaka par otrā mezgla AllowedIPs, tā iekšējo avota adresi vai pāradresācijas noteikumiem starp tiem. Izstaigājiet sarakstu secīgi un apstājieties pie pirmā soļa, kura nosacījums netiek izpildīts.
Solis 1: Pierakstiet ceļu, pa kuru paketei jāiet
Divi klienti vienā koncentratorā viens otru nesasniedz automātiski. Koncentratora un staru shēmā serveris saņem paketi uz wg0 un tam tā no jauna jāpārsūta no wg0 uz otru mezglu, kas prasa IP pāradresāciju un pāradresācijas noteikumu. Tiešā vienaudžu shēmā katrai pusei vajag otras puses galapunktu un otras puses tuneļa adresi AllowedIPs iekšienē. Pirms lasīt jebkuru konfigurāciju, izlemiet, kuru shēmu jūs atkļūdojat.
Gaidāmais ceļš arī pasaka, kur skatīties. Ja paketei jāšķērso koncentrators, neveiksmīgais lēciens ir vai nu sūtītāja AllowedIPs, vai koncentratora pāradresācija, vai saņēmēja AllowedIPs. Ja tam jāiet tieši, koncentrators nav svarīgs un svarīgi ir abu mezglu galapunkta lauki.
Solis 2: Salīdziniet AllowedIPs abās pusēs, nevis tikai vienā
WireGuard izmanto AllowedIPs gan kā maršrutēšanas tabulu, gan kā piekļuves sarakstu. Sūtot galamērķa adrese tiek meklēta mezgla AllowedIPs, lai izvēlētos tuneli; saņemot iekšējai avota adresei jāiekrīt sūtošā mezgla AllowedIPs, citādi pakete tiek izmesta. Trūkstošs diapazons jebkurā pusē dod to pašu simptomu: transports strādā, saturs pazūd.
Lasiet dzīvo stāvokli, nevis failu, jo pārlāde varēja klusi neizdoties: sudo wg show wg0 allowed-ips. Serverī neveiksmīgā mezgla ierakstam jāietver tā tuneļa adrese, piemēram, 10.90.0.3/32. Klientā servera mezgla ierakstam jāietver mērķis, ko testējat, lai tas būtu koncentratora tuneļa adrese vai attālais apakštīkls. Pārklājošies diapazoni padara meklēšanu neviennozīmīgu un var atlasīt mezglu, kuru neesat domājis, tāpēc turiet tos atsevišķi.
Solis 3: Pārbaudiet iekšējo avota adresi
Klients, kas maršrutē 10.90.0.3 caur wg0, bet sūta paketes no savas Wi-Fi adreses, tiks noraidīts no saņēmēja, jo avots neatbilst mezgla AllowedIPs. Apstipriniet, ko kodols faktiski izvēlas, ar ip route get 10.90.0.3 from 10.90.0.2, un apstipriniet tuneļa saskarnei piešķirto adresi ar ip -brief addr show wg0.
Saņēmējā Linux resursdatorā apgrieztā ceļa filtrēšana ir otrie vārti. Stingrs rp_filter uz saskarnes, kurai pieder atgriešanās maršruts, var izmest tuneļa datu plūsmu, kuras atgriešanās ceļš neatbilst saskarnei, pa kuru tā ieradās. Pirms izslēgšanas pārbaudiet efektīvo vērtību; daudzās topoloģijās pareizais labojums ir maršruts, nevis mīkstināts filtrs.
Solis 4: Pārskatiet koncentratora pāradresāciju un atgriešanās ceļu
Ja koncentratoram jāpārsūta starp mezgliem, kodolam vajag net.ipv4.ip_forward=1, un ugunsmūrim jāpieņem pārsūtītā plūsma: iekšā uz wg0, ārā no wg0, no sūtītāja tuneļa adreses līdz saņēmēja adresei. Bieža kļūda ir ievades noteikums, kas pieņem UDP 51820, bet nav pāradresācijas noteikuma], tāpēc roku sasveicināšanās izdodas, bet saturs iet bojā. Uzskaitiet spēkā esošos noteikumus ar sudo nft list ruleset vai jūsu ugunsmūra pārvaldnieka ekvivalentu.
Pēc tam pārbaudiet atbildi. Galamērķa resursdatoram jābūt atgriešanās maršrutam pie sūtītāja, vai nu caur koncentratoru, vai caur savu vārteju. Ja koncentrators arī NATo tuneļa apakštīklu, apstipriniet, ka tulkojums attiecas uz pārsūtīto plūsmu un ka atbilde sasniedz koncentratoru pirms stāvokļa beigām. Vienvirziena kļūda, kas izskatās pēc atslēgas problēmas, bieži ir tieši šis atgriešanās maršruts.
Visbeidzot, atšķiriet roku sasveicināšanos no datiem. Mezgls, kas pabeidz roku sasveicināšanos, bet iestrēgst lielos pārsūtījumos, parasti saskaras ar MTU vai MSS problēmu tieši šajā ceļā, nevis AllowedIPs problēmu. Vispirms pārbaudiet ar mazu ping, pēc tam ar pilna izmēra ping, un salīdziniet abus mezglus.
Solis 5: Mainiet vienu lietu un saglabājiet strādājošo mezglu neskartu
Veiciet vienu izmaiņu neveiksmīgajā ceļā un vēlreiz pārbaudiet abus mezglus. Visu mezglu AllowedIPs aizstāšana ar 0.0.0.0/0 ir ātrākais veids, kā salauzt jau strādājošo mezglu, jo tā maina maršrutēšanas lēmumu visai šīs saskarnes plūsmai. Rediģējiet to vienu ierakstu, pārlādējiet un nolasiet dzīvo stāvokli vēlreiz.
Pierakstiet, kurš ceļš izdevās, kurš neizdevās, un katra precīzo komandas izvadi. Šis salīdzinājums ir vērtīgāks par vispārīgu ziņojumu, ka VPN ir salūzis, un tas ir pirmais, ko prasīs nākamais cilvēks.