Mae handshake WireGuard yn gweithio ond does dim rhyngrwyd: dilynwch y pecyn
Dim ond allweddi ac adgyrhaeddedd y mae’r handshake yn eu profi. Dilynwch un pecyn o AllowedIPs drwy anfon ymlaen, NAT a’r llwybr dychwelyd i weld ble mae’n stopio.
Mae’r twnnel i fyny, mae wg show yn adrodd handshake diweddar, gallwch bingo cyfeiriad twnnel y gweinydd, ac nid oes dim y tu hwnt iddo yn ateb. Y reddf yw ailgynhyrchu allweddi neu ailrannu’r ffurfweddiad. Mae hynny’n newid yr union ran o’r llwybr y profwyd eisoes ei bod yn gweithio.
Mae handshake wedi’i gwblhau’n dweud bod y ddau barti’n cytuno ar allweddi, bod UDP yn cyrraedd y pen draw, a bod y llwybro cryptograffaidd yn derbyn y pecyn. Nid yw’n dweud dim am a all y pecyn adael y gweinydd wedyn.
Felly dilynwch un pecyn yn lle dyfalu. Mae pedwar lle y gall farw, ac mae pob un yn gadael ôl gwahanol.
Beth mae’r handshake yn ei brofi mewn gwirionedd
Protocol UDP yw WireGuard sy’n sefydlu sesiwn â handshake Noise ac yna’n amgryptio pecynnau i barti arall. Pan fydd wg show yn rhestru handshake ychydig eiliadau oed a chowntiwr trosglwyddo sy’n codi, mae’r pen draw, yr allweddi a’r allwedd gyhoeddus y parti arall i gyd yn gywir.
Yr hyn nad yw’n ei brofi yw bod eich cleient yn anfon traffig tuag at y rhyngrwyd i’r rhyngwyneb o gwbl, bod y gweinydd yn fodlon ei anfon ymlaen, neu y gall ateb ddod o hyd i’w ffordd yn ôl. Penderfyniadau llwybro cnewyllyn a mur tan yw’r rheini, ac fe’u gwneir y tu allan i’r twnnel.
Dyma pam mae pingo cyfeiriad twnnel y gweinydd yn brawf mor gamarweiniol. Mae’r pecyn hwnnw wedi’i gyfeirio at y gweinydd ei hun, felly mae’n gorffen yn lleol. Nid oes arno byth angen anfon ymlaen, na chyfieithu, na llwybr dychwelyd o’r rhyngrwyd.
Mae AllowedIPs yn benderfyniad llwybro
Ar y cleient, mae AllowedIPs yn gwneud dau waith. Dyma’r tabl llwybro allwedd-gryptograffaidd sy’n penderfynu pa gyfeiriadau cyrchfan sy’n cael eu hanfon i dwnnel y parti hwn, a dyma’r rhestr o gyfeiriadau ffynhonnell y bydd y parti arall yn eu derbyn gennych. Os mai dim ond 10.8.0.0/24 sydd yn ffurfweddiad y cleient, nid yw cyrchfannau cyhoeddus byth yn mynd i’r rhyngwyneb ac mae eich llwybr diofyn arferol yn eu cludo y tu allan i’r twnnel. Yna mae’r twnnel yn gweithio’n berffaith ac yn gwneud dim o’r hyn yr oeddech ei eisiau.
Edrychwch ar yr hyn a osododd y cleient mewn gwirionedd yn hytrach nag ar yr hyn mae’r ffeil ffurfweddu’n ei ddweud:
wg show wg0 allowed-ipsip route get 1.1.1.1
Yr ail orchymyn yw’r un mwyaf penderfynol. Os yw’r ateb yn enwi eich rhyngwyneb ffisegol a’r giât arferol, nid yw’r pecyn yn cael ei dwnelu ac ni fydd unrhyw newid ar ochr y gweinydd yn ei drwsio. Ychwanegwch 0.0.0.0/0 ar gyfer IPv4 a ::/0 ar gyfer IPv6 ar wahân; mae rheol sy’n dal popeth ar gyfer un teulu yn gadael y llall ar ei lwybr gwreiddiol, ac mae hynny’n achos cyffredin o dwnnel IPv4 sy’n gweithio a chwest IPv6 sydd wedi tagu.
Ble mae’r pecyn yn marw ar y giât
Os yw’r llwybr yn gywir ac mae’r pecyn yn dal i fynd i unman, mae’n cyrraedd y gweinydd ac yn stopio yno. Mae pedwar gwiriad yn cwmpasu’r rhan fwyaf o giatiau.
Anfon ymlaen. sysctl net.ipv4.ip_forward yn dychwelyd 0 yw’r ateb clasurol, ac mae llawer o ddosbarthiadau’n dal i fod yn 0 yn ddiofyn. Rhaid iddo fod yn 1, a’i osod yn barhaol mewn ffeil sysctl yn hytrach na chyda gorchymyn sy’n diflannu ar ailgychwyn. Mae anfon ymlaen IPv6 yn swits ar wahân.
Y polisi hidlo. Bydd cadwyn FORWARD â pholisi gollwng diofyn yn taflu traffig twnelu tra’n caniatáu traffig i’r gwesteiwr ei hun, sy’n cyd-fynd yn union â’r symptom. Darllenwch y rheolau byw, nid ffeil a gadwyd: nft list ruleset neu iptables -S.
Cyfieithu neu lwybro. Mae angen naill ai NAT ffynhonnell ar ryngwyneb allan y gweinydd, neu ragddodiad wedi’i lwybro y mae’r rhwydwaith uwchradd yn gwybod sut i’w ddychwelyd, ar gleientiaid sy’n defnyddio cyfeiriadau twnnel preifat. Mae’r dewis rhwng y ddau yn dilyn y cynllun cyfeiriadau. Mae ychwanegu MASQUERADE at rwydwaith sy’n llwybro eich rhagddodiad yn ôl yn barod yn ddiniwed ond yn ddi-fudd, ac mae ei hepgor lle nad oes llwybr yn gadael atebion wedi’u cyfeirio at ystod breifat na ellir ei llwybro.
Y llwybr dychwelyd. Mewn dyluniadau wedi’u llwybro, mae ar y llwybrydd uwchradd angen llwybr sy’n pwyntio at eich gweinydd. Gall rhwydweithio’r darparwr ei rwystro hefyd: mae sawl cwmwl yn galluogi gwiriad ffynhonnell a chyrchfan ar y rhithwir, sy’n gollwng pecynnau’n dawel pan nad yw’r ffynhonnell yn gyfeiriad y rhithwir ei hun, nes bod y gwiriad hwnnw’n cael ei analluogi.
Mae DNS yn methu’n wahanol i lwybro
Mae pecyn i gyfeiriad hysbys a chwiliad enw yn ddau fethiant ar wahân, ac mae’r negeseuon gwall yn camarwain i gyfeiriadau croes. Os yw ping 1.1.1.1 yn gweithio ac ni all porwr lwytho dim, mae’r llwybr yn iawn ac nid yw datrysiad enwau. Os yw’r ping ei hun yn methu, mae DNS yn amherthnasol ac rydych yn ôl yn yr adran flaenorol.
Gall wg-quick osod datryswr o’r llinell DNS = yn y ffurfweddiad, ac mae gan systemd-resolved ei ymddygiad ei hun fesul dolen. Bydd VPN sy’n goresgyn y datryswr â chyfeiriad na ellir ei gyrraedd ond y tu mewn i’r twnnel yn methu pob chwiliad yr eiliad y bydd y twnnel yn cwympo, sy’n edrych fel bod y twnnel yn torri’r rhyngrwyd.
| Symptom | Layer to inspect |
|---|---|
| Tunnel address pings, nothing else does | Client route, then gateway forwarding |
| Public IP pings, hostnames fail | Resolver selection and reachability |
| Handshake completes, no reply ever | FORWARD policy or missing NAT on the server |
| Small requests work, large transfers stall | MTU and TCP MSS clamping |
Trefn sy’n cynhyrchu tystiolaeth
Rhedwch y gwiriad ar ochr y cleient yn gyntaf, oherwydd un gorchymyn ydyw ac mae’n dileu hanner y posibiliadau. Yna cadarnhewch ai bwriad y gweinydd yw bod yn allanfa i’r rhyngrwyd o gwbl; nid yw giât a adeiladwyd ar gyfer mynediad preifat yn doredig pan fydd cyrchfannau cyhoeddus yn methu.
Ar y gweinydd, gwyliwch y rhyngwyneb wrth anfon ping o’r cleient: dylai tcpdump -ni wg0 icmp ddangos y cais, a dylai tcpdump -ni eth0 icmp ddangos ei fod yn gadael, wedi’i gyfieithu neu beidio. Os yw’n ymddangos ar yr un cyntaf ac yn byth ar yr ail, mae’r stopio’n lleol i’r gweinydd. Os yw’n gadael ac nad oes ateb yn dychwelyd, mae’r broblem yn uwch i fyny, a sgwrs wahanol yw honno.
Yn olaf, gwnewch i’r trwsiad oroesi ailgychwyn. Mae anfon ymlaen yn perthyn mewn ffeil sysctl, mae rheolau mur tan yn perthyn i’r gwasanaeth sy’n eu llwytho, ac mae llwybrau’r cleient yn perthyn i’r ffurfweddiad sy’n codi’r rhyngwyneb yn hytrach nag i gragen y byddwch yn ei hanghofio. Ailgysylltwch, ailadroddwch yr un ddwy brawf, a chadarnhewch fod y cowntwyr yn symud.