Mae’r rhyngwyneb wedi’i restru yn y gofod enwi roeddech ei eisiau, mae’r cymhwysiad wedi’i rwymo iddo, ac eto ni fydd unrhyw draffig twnnel yn ymddangos. Dyma nodwedd dyfais WireGuard yng nghnewyllyn Linux a grëwyd mewn un gofod enwi ac a symudwyd i un arall: symudodd y rhyngwyneb ac ni symudodd ei soced UDP wedi’i amgryptio. Mae’n rhaid i’r ddau fod yn y lle iawn cyn i’r traffig mewnol fod o bwys. Mae’r gwiriad yn gyflym unwaith y gwyddoch fod angen edrych ar ddau gyd-destun yn lle un.

Y symptom: y gofod enwi iawn, dim pecynnau

Y tu mewn i’r gofod enwi, mae’r twnnel yn edrych yn iach. Mae’r ddyfais yn bodoli, mae cyfeiriadau wedi’u neilltuo, ac mae cyfluniad y cymar yn bresennol. Y tu allan, ni fydd y gyfnewidfa UDP ddisgwyliedig byth yn ymddangos ar y rhyngwyneb roeddech yn ei wylio, ac mae’r ochr bell yn dweud nad oes unrhyw ysgwyd llaw.

Y rheswm yw bod pecynnau mewnol y cymhwysiad yn cyrraedd y ddyfais a symudwyd, ac mae’r ddyfais yn ceisio’u hanfon drwy soced sy’n perthyn i gyd-destun rhwydwaith gwahanol. Y llwybr islaw y mae’n ei ddefnyddio, a phob rheol mur tân sy’n berthnasol iddo, yw’r rhai yn y gofod enwi lle crëwyd y ddyfais.

Nid yw hyn yn fai yn y symudiad, ac nid yw’n gamgyfluniad o’r cymar. Dyma’r hyn y mae’r gweithrediad cnewyllyn yn ei wneud, ac mae dogfennaeth gofodau enwi WireGuard yn disgrifio’r rheol creu yn uniongyrchol.

Pam y mae gan y soced fan geni

Mae dyfais WireGuard yn berchen ar un soced UDP ar gyfer ei thrafnidiaeth wedi’i hamgryptio, ac mae’r soced hwnnw’n agor yn y gofod enwi lle crëwyd y ddyfais. Mae symud y rhyngwyneb gyda gorchymyn cyswllt yn adleoli’r ddyfais weladwy ond yn gadael y drafnidiaeth lle y dechreuodd. Yna mae gan y ddau wrthrych berchnogion gwahanol.

Mae’n hawdd colli’r canlyniad oherwydd bod y ddwy hanner yn cael eu harchwilio mewn lleoedd gwahanol. Penderfynir y llwybr mewnol yn y gofod enwi lle mae’r cymhwysiad yn rhedeg, a phenderfynir y llwybr allanol lle mae’r soced yn byw. Mae gwirio un yn unig yn cynhyrchu casgliad hyderus ond anghywir. Mae gwirio’r ddau fel arfer yn gorffen yr ymchwiliad mewn un pas.

Crëwch ef lle’r ydych am y soced

Y datrysiad yw creu’r ddyfais y tu mewn i’r gofod enwi targed yn hytrach na’i chreu y tu allan a’i symud. Gan dybio bod gofod enwi cymeradwy eisoes yn bodoli ac nad yw’r enw’n cael ei ddefnyddio:

ip netns exec vpn-apps ip link add wg-demo type wireguard
ip netns exec vpn-apps wg show

Nawr mae’r rhyngwyneb a’i soced yn perthyn i’r cyd-destun hwnnw, felly’r llwybr islaw a’r rheolau hidlo perthnasol yw’r rhai a gyfluniwyd yno. Os oes angen yr ochr glir yn rhywle arall ar y cynllun, rhowch y rhyngwyneb sylfaenol yn y gofod enwi yn gyntaf ac yna crëwch y twnnel. Mae trefn yn rhan o’r cynllun, nid yn fanylyn gweithredu.

Triniwch y rhain fel gorchmynion gweinyddu rhwydwaith, nid fel rysáit. Maent yn creu dyfais ac yn dangos cyflwr; rhaid i allweddi, cymar, cyfeiriadau a llwybrau ddod o gyfluniad cymeradwy o hyd, ac na ddylid byth rhoi rhyngwyneb cynhyrchu presennol mewn enghraifft.

Darllenwch ddwy ochr y llwybr

Unwaith y bydd y ddyfais yn y lle iawn, gwiriwch y ddau benderfyniad ar wahân. Dechreuwch gyda’r chwiliad mewnol o gyd-destun y cymhwysiad, yna gwiriwch y llwybr allanol o’r cyd-destun sy’n berchen ar y soced:

ip netns exec vpn-apps ip route get 10.30.0.9
ip netns exec vpn-apps wg show
tcpdump -ni any udp port 51820

Os yw’r chwiliad mewnol yn datrys drwy’r twnnel ac mae’r dal allanol yn dangos y gyfnewidfa wedi’i hamgryptio, mae’r ddwy hanner yn cytuno. Os yw’r dal yn wag, mae’r soced yn dal yn rhywle arall, neu nid yw’r llwybr islaw yn ei ofod enwi yn cyrraedd y pen terfynol.

Mae un gwiriad arall yn perthyn i’r cofnod: sut y crëir y ddyfais ar ôl ailgychwyn. Mae rheolwr sy’n ail-greu’r rhyngwyneb gyda chyd-destun creu gwahanol yn newid man geni’r soced. Nid yw symudiad â llaw a lwyddodd unwaith yn dystiolaeth am y llwybr a reolir.

Erthyglau cysylltiedig