Nid oes togl fesul dyfais ar VPN llwybrydd; y togl rydych yn chwilio amdano yw llwybr byr sy’n ysgrifennu rheolau llwybro polisi ar eich rhan. Yr eiliad y mae un gliniadur, un amrediad porthladdoedd, un rhestr cyfeiriadau neu un segment LAN yn gorfod defnyddio’r tiwnel tra bo popeth arall yn aros ar y WAN, rydych yn adeiladu llwybr polisi yn hytrach nag yn galluogi nodwedd. Mae gan y gwaith dri darn symudol, ac mae pob un yn methu’n wahanol: mae tabl wedi’i farcio heb lwybr yn edrych fel distawrwydd, mae marc a gymhwysir yn y gadwyn anghywir yn edrych fel pe na bai dim wedi digwydd, ac mae rheol NAT ar goll yn edrych fel tiwnel sy’n cysylltu ac yn cario dim. Mae dau ddarn arall yn diflannu oherwydd nad ydynt byth yn ymddangos yn y rheol mangle, sef DNS ac IPv6.

Y myth: mae’r tiwnel yn osodiad cleient

Mae cleient VPN ar ochr y llwybrydd yn gwneud un peth di-lol yn dda: mae’n rhoi 0.0.0.0/0 yn y prif dabl llwybro ac yn ei bwyntio at y tiwnel. Mae WireGuard yn deillio hynny o AllowedIPs, OpenVPN o redirect-gateway a wthiwyd, ac mae’r ddau yn newid y llwybr ar gyfer pob gwesteiwr y tu ôl i’r llwybrydd. Mae culhau AllowedIPs neu ychwanegu route-nopull yn newid yr hyn y mae’r cleient yn ei osod. Nid yw’n newid pwy y mae’r osodiad yn berthnasol iddynt, oherwydd nid yw’r cleient byth yn gweld dyfeisiau. Dim ond pecynnau y mae’n eu gweld.

Mae dewis yn ôl ffynhonnell neu gyrchfan yn benderfyniad llwybro, felly mae’n perthyn i haen polisi’r llwybrydd: rheol mangle ynghyd â thabl ail ar RouterOS, MARK ynghyd ag ip rule ar OpenWrt neu DD-WRT, neu reol wal dân y mae’r tiwnel yn borth iddi ar pfSense. Rysáit cleient WireGuard Netgate yw’r un i’w darllen cyn dyfalu, oherwydd ar y platfform hwnnw mae porth y rheol, aseinio’r rhyngwyneb a chofnod NAT allanol i gyd yn gorfod cytuno cyn i un cleient ddefnyddio’r tiwnel.

Hanner arall y myth yw’r ail lwybrydd. Mae prynu blwch arall, neu symud y ddyfais i SSID gwestai, yn aml yn gweithio, ac nid y caledwedd yw’r rheswm: mae’n rhoi’r ddyfais ar ei is-rwydwaith ei hun, sy’n rhoi’r detholwr ffynhonnell y mae’r cadarnwedd eisoes yn ei ddeall. Os gallwch ddiffinio’r segment hwnnw ar y llwybrydd sydd gennych, mae’r blwch ychwanegol yn datrys problem nad oedd gennych.

Darn un: tiwnel nad yw’n y llwybr diofyn

Ar RouterOS, ychwanegwch y cleient heb lwybr diofyn a rhowch dabl ei hun i’r tiwnel. Y llwybr cyntaf yw’r diofyn wedi’i farcio; yr ail yw hanner y methiant.

/ip route add dst-address=0.0.0.0/0 gateway=VPN_GATEWAY_IP routing-mark=vpn distance=1
/ip route add dst-address=0.0.0.0/0 type=unreachable routing-mark=vpn distance=2

Y llwybr unreachable yw’r rheswm pam mae tabl wedi’i farcio yn curo rhestr eithriadau yn y prif dabl. Pan fydd y tiwnel yn cwympo, mae pecynnau wedi’u marcio yn cael unreachable ar unwaith yn lle llithro’n dawel yn ôl i’r WAN, felly mae’r methiant i’w weld ym neges gwall y rhaglen yn hytrach nag ar dudalen geoleddle a wiriwch awr yn ddiweddarach.

Mae RouterOS 7 yn gwahanu’r hyn a oedd 6.x yn ei gadw gyda’i gilydd: byddwch yn datgan y tabl gyda /routing table add name=vpn fib, yna’n cyfeirio ato wrth ei enw yn y llwybr ac yn y rheol mangle. Mae snippet 6.x sy’n mewnosod routing-mark heb ddiffinio’r tabl yn llwytho’n lân ac yn cyfateb i ddim. Yr achos clasurol arall yw dau hanner 0.0.0.0/1, neu ddau lwybr diofyn ar yr un pellter mewn un tabl: mae’r cnewyllyn yn dewis un, a gall yr ymddygiad newid ar ôl ailgychwyn.

Darn dau: marcio cyn chwiliad y llwybr

Mae’r detholwr yn penderfynu pa becynnau sy’n mynd i mewn i’r tabl hwnnw. Mae RouterOS fel arfer yn dechrau gyda rhestr cyfeiriadau ar gyfer polisi cyrchfan, neu gyfeiriad ffynhonnell ar gyfer polisi dyfais:

/ip firewall mangle add chain=prerouting src-address=192.168.88.50 action=mark-routing new-routing-mark=vpn
/ip firewall mangle add chain=prerouting dst-address-list=via-vpn action=mark-routing new-routing-mark=vpn
/ip firewall address-list add list=via-vpn address=203.0.113.10

Mae cadarnwedd Linux yn gwneud yr un peth gyda marc netfilter a rheol sy’n tywys pecynnau wedi’u marcio i dabl rydych wedi’i lenwi:

iptables -t mangle -A PREROUTING -p tcp --dport 27000:27050 -j MARK --set-mark 0x200
ip route add default dev tun0 table 100
ip rule add fwmark 0x200 table 100

Nid dewis arddull yw’r gadwyn. Erbyn i becyn gyrraedd FORWARD mae chwiliad y llwybr eisoes wedi digwydd, felly dim ond ailddarllen neu daflu y gall MARK neu DROP yno ei wneud. Rhaid i’r marc lanio yn PREROUTING ar gyfer traffig a anfonir ymlaen ac yn OUTPUT ar gyfer traffig y mae’r llwybrydd yn ei greu, sef lle mae DNS, NTP a gwiriadau diweddaru’r llwybrydd yn byw. Y llwybr allbwn hwnnw yw’r rheswm arferol pam mae setup wedi’i diwnelu’n llwyr yn dal i ateb o ddatryswr yr ISP mewn prawf gollwng.

Mae angen cyfatebiaeth nad yw’n drifftio ar bolisi dyfais. Cadwch y cyfeiriad yn DHCP, neu cyfatebwch ryngwyneb ar gyfer segment penodol; mae cyfeiriad sy’n symud yn ddiweddarach i ddyfais arall yn cymhwyso’r tiwnel yn dawel i’r cleient anghywir. Mae pont fesul SSID gyda’i is-rwydwaith ei hun yn fersiwn fwy gwydn o’r un syniad, ac mae’n rhoi lle i’r rheolau IPv6 fyw hefyd.

Darn tri: NAT, DNS ac eithriad y LAN

Mae traffig sy’n gadael drwy’r tiwnel angen cyfeiriad ffynhonnell y bydd yr ochr bell yn ateb arno. Cwmpaswch y cyfieithu i ryngwyneb y tiwnel: out-interface=VPN_NAME ar RouterOS, -o tun0 ar Linux, cofnod NAT allanol cyfatebol ar pfSense. Mae rheol masquerade heb y cwmpasu hwnnw yn ailddarllen traffig roeddech am ei adael yn llonydd, a’r symptom yw bod y ddyfais heb ei diwnelu yn colli ei chyfeiriad cyhoeddus.

Mae eithriad y LAN yn achosi mwy o edafedd cymorth na’r tiwnel ei hun. Os mai dim ond llwybr diofyn sydd gan y tabl wedi’i farcio, mae cyrchfan argraffydd neu NAS o’r ddyfais a ddewiswyd yn cyfateb i’r diofyn hwnnw ac yn diflannu i’r tiwnel. Ychwanegwch lwybr y LAN at yr un tabl, neu eithriwch yr is-rwydwaith leol yn y detholwr; mae’r ddau yn gweithio, ac mae’r eithriad yn haws ei gadw’n gywir pan ychwanegwch VLANs yn ddiweddarach.

Mae DNS yn cymryd llwybr ar wahân. Mae ymholiadau y mae’r llwybrydd yn eu hanfon ymlaen yn deillio o’r llwybrydd ac yn dilyn OUTPUT, nid y marc a anfonwyd ymlaen, felly gall gliniadur wedi’i diwnelu’n llwyr ddal i ddatrys drwy’r ISP. Pwyntiwch gleientiaid at ddatryswr y gellir ei gyrraedd drwy’r tiwnel, neu marciwch draffig porth 53 y llwybrydd ei hun, yna gwiriwch y cyfeiriad a ddatryswyd yn lle tybio bod yr ateb wedi teithio gyda’r cais gwe.

Pan fydd y rheol yn cyfateb ond mae’r ap yn dal i ddefnyddio’r WAN

Mae rhestrau cyrchfan yn heneiddio’n wael. Mae enw’n datrys i gyfeiriad nad yw yn y rhestr, felly mae’r cais yn cymryd y WAN tra bo pob prawf a wnaethoch ar y cyfeiriad a restrwyd wedi gweithio. Adnewyddwch y rhestr o’r un datryswr y mae’r cleient yn ei ddefnyddio, a ffafriwch ddetholwr yn seiliedig ar ffynhonnell pan fyddwch wir am holl draffig un ddyfais.

IPv6 yw’r osgo dawel. Mae gan y ddyfais ail deulu cyfeiriadau gyda’i lwybr diofyn ei hun a’i set rheolau ei hun, ac mae cyfateb dim ond y cyfeiriad IPv4 yn hanner polisi. Cymhwyswch yr un detholwr i ip6tables neu’r hyn sy’n cyfateb yn nftables, neu analluogwch IPv6 ar y segment hwnnw’n fwriadol yn hytrach nag yn ddamweiniol.

Mae cysylltiadau sefydledig yn bwysig hefyd. Mae cofnod conntrack a grëwyd cyn y newid yn dilyn yr hen lwybr nes iddo ddod i ben, felly mae porwr a arhosodd ar agor yn ystod y golygu yn edrych yn union fel rheol na chafodd ei chymhwyso erioed. Agorwch gysylltiad newydd, neu fflyshwch y cyflwr, cyn barnu’r polisi.

Gwirio gyda dwy ddyfais ac ailgychwyn

Profwch y ddyfais y dylai fod yn y tiwnel a’r ddyfais na ddylai, a chymharwch yr ail hop yn lle rhif cyflymder. Mae traceroute o’r naill a’r llall yn dangos naill ai porth y tiwnel neu borth yr ISP yn yr ail hop; os yw’r ddau yn edrych yr un peth, nid yw’r marc neu’r tabl yn gwneud yr hyn y mae’r rheol yn ei ddweud. Defnyddiwch gysylltiadau newydd ar gyfer y prawf.

Yna ailgychwynnwch. Trefn cychwyn yw’r lle mae polisi sy’n gweithio yn troi’n un wedi torri, oherwydd rhaid i’r cleient fod i fyny cyn i lwybr unreachable gael ei osod, a bydd snapshot a gadwyd sy’n adfer yr hen set rheolau yn trosysgrifo eich tabl. Gwiriwch fod pob rheol yn y ffurfweddiad a gadwyd a bod y diofyn wedi’i farcio yn bodoli ar ôl cychwyn, nid yn unig ar ôl i chi ei deipio.

Os bydd rhywbeth yn methu, tynnwch y marc yn gyntaf a gweld a yw traffig normal yn dychwelyd, yna tynnwch y tabl. Mae’r drefn honno’n dweud wrthych a ydych yn hel problem llwybro neu broblem wal dân, ac mae’n gadael yr aelwyd gydag argraffydd sy’n gweithio tra byddwch yn gorffen y gwaith.

Erthyglau cysylltiedig