A ddylai traffig IPv6 fynd drwy'r VPN neu'n uniongyrchol?
Penderfynwch a yw ::/0 yn perthyn y tu mewn i'r twnnel, gan ddefnyddio tri amod: cymorth allanfa, cyrhaeddadwyedd y pen draw a rhwydweithiau lleol yn unig.
Gofynnodd dau berson i mi yr wythnos diwethaf am ganlyniadau cyferbyniol: roedd un am i IPv6 gael ei orchuddio gan y VPN, a'r llall am i argraffydd y swyddfa barhau i weithio. Ni all un llwybr ::/0 gyflawni'r ddau ar ei ben ei hun. Mae a yw'r llwybr hwnnw'n perthyn y tu mewn i'r twnnel yn dibynnu ar dri amod, a'r cyntaf yn ei eithrio ar gyfer y rhan fwyaf o allanfeydd masnachol. Os nad yw'r allanfa yn cario IPv6, mae llwybro'r llwybr diofyn iddi yn cuddio'ch traffig mewn twnnel heb unman i'w anfon.
Mae tri amod yn penderfynu'r ateb
Un llinell yw'r llwybr diofyn, ::/0, ac mae'n cyfateb i unrhyw gyrchfan IPv6 heb lwybr mwy penodol (RFC 4291). Mae ei osod yn hawdd. Mae penderfynu a ddylech chi yn dod i lawr i dri amod.
Amod un: mae gan yr allanfa rydych yn cysylltu â hi IPv6 sy'n gweithio ac mae'n barod i'w anfon ymlaen. Amod dau: gall eich cleient gadw llwybr at y pen draw twnnel, sydd fel arfer y tu mewn i'r amrediad rydych ar fin ei lwybro. Amod tri: gallwch enwi'r cyrchfannau IPv6 lleol sy'n rhaid aros y tu allan i'r twnnel.
Mae pob amod yn methu yn ei ffordd ei hun, a dyna pam mae dyfalu yn costio hwyrnos gyfan. Mae amod un wedi methu yn rhoi tawelwch a thabl llwybrau sy'n edrych yn gywir. Mae amod dau wedi methu yn lladd yr ysgwyd llaw ychydig eiliadau ar ôl iddo ddechrau. Mae amod tri wedi methu yn gadael twnnel sy'n gweithio a chydweithiwr anhapus wrth yr argraffydd.
| What you see | Decision |
|---|---|
| Exit answers IPv6 probes, no local IPv6 devices to protect | Route ::/0 into the tunnel |
| Exit answers IPv6 probes, printer or NAS reachable by a global address | Route ::/0, then give those prefixes a route of their own |
| Exit is IPv4-only inside the tunnel | Do not route ::/0; block IPv6 on the client |
Endpoint is reached over IPv6 and sits inside ::/0 | Install a host route for the endpoint first |
A yw'r allanfa mewn gwirionedd yn cario IPv6?
Nid yw rhyngwyneb twnnel â chyfeiriad IPv6 yn profi dim am yr ochr draw. Mae llawer o broffiliau masnachol yn IPv4 yn unig y tu mewn: mae'r gweinydd yn rhoi cyfeiriad v4 i chi ac yn gollwng popeth arall. Gosodwch lwybr diofyn o AllowedIPs ar ben hynny a bydd y cnewyllyn yn anfon IPv6 yn llawen i ryngwyneb nad yw ei gymar byth yn ei weld.
Profwch o'r cleient tra bod y twnnel i fyny. Mae ping -6 -c 3 2001:4860:4860::8888 a ip -6 route get 2001:4860:4860::8888 yn ateb gwahanol gwestiynau: a yw ateb yn dod yn ôl, a pha ddyfais y dewisodd y cnewyllyn. Pan fydd yr ail yn enwi'ch twnnel a'r cyntaf yn dychwelyd dim, yr allanfa yw'r broblem, nid y llwybr.
Os chi sy'n rhedeg yr allanfa, gall prawf y cleient lwyddo a'r llwybr barhau i ddiweddu'n segur. Cadarnhewch net.ipv6.conf.all.forwarding=1 ar y giât a bod ei mur tân yn derbyn pecynnau a anfonir ymlaen o'r twnnel. Mae pecyn wedi'i lwybro'n gywir i allanfa sy'n gwrthod adlais yn edrych yn union fel nam llwybro o ochr y cleient.
A all y cleient gadw ei lwybr at y pen draw?
Dyma'r un a'm daliodd ar liniadur â phen draw WireGuard IPv6 yn unig. Mae cyfeiriad y pen draw yn gyfeiriad byd-eang cyffredin, felly mae'n syrthio o fewn ::/0. Llwybrwch y rhagddodiad cyfan i'r rhyngwyneb a bydd y pecynnau ysgwyd llaw yn hel eu hunain i'r twnnel y maent yn dal i geisio ei adeiladu. Nid yw'r twnnel byth yn codi, ac nid oes dim yn allbwn y cleient yn dweud pam.
Mae wg-quick yn ymdrin â hyn ar Linux. Mae'n deillio llwybrau o AllowedIPs, yn eu gosod yn ei dabl ei hun, ac yn ychwanegu rheol polisi fel bod traffig at y pen draw yn cael ei ddatrys drwy'r prif dabl yn gyntaf: y rheol suppress_prefixlength 0 a gewch yn ip -6 rule. Dyna pam mae wg-quick up yn llwyddo lle mae ip -6 route add default dev wg0 wedi'i ysgrifennu â llaw yn eich torri i ffwrdd.
Gwiriwch y ddau gyflwr gyda ip -6 route get <endpoint-v6>, cyn ac ar ôl codi'r twnnel. Os yw'r ateb yn newid i'ch dyfais twnnel, rydych wedi tynnu'r llwybr sydd ei angen ar y twnnel. Pan fyddwch yn ysgrifennu'r llwybrau eich hun, ychwanegwch lwybr gwesteiwr at y pen draw drwy'r giât wreiddiol, neu cysylltwch â'r pen draw dros IPv4 a gadael IPv6 i'r llwyth.
Beth sy'n rhaid aros y tu allan i'r twnnel?
Mae llwybrau mwy penodol yn curo'r diofyn, felly mae rhagddodiad ar y cyswllt neu amrediad ULA â llwybr ei hun yn parhau i weithio heb ymdrech ychwanegol. Dyma'r rheswm tawel pam mae cymaint o osodiadau IPv4 twnnel llawn yn goroesi: mae rhagddodiadau'r LAN yn fwy penodol na'r diofyn ac yn byth yn mynd i mewn i'r twnnel.
Mae'n torri pan fo dyfais leol yn cyrraedd drwy gyfeiriad byd-eang, sy'n normal i argraffydd a gafodd raggddodiad cyhoeddus gan yr un llwybrydd, NAS, neu deledu. Mae'r cyfeiriadau hynny'n cyfateb i ::/0 a dim arall, felly maent yn symud i'r twnnel gyda phopeth arall ac yn diflannu.
Penderfynwch fesul cyrchfan, nid fesul protocol. Os yw dau neu dri gwesteiwr lleol o bwys, rhowch lwybr allan drwy'r rhyngwyneb ffisegol i'w rhagddodiadau, neu eu gollwng o'r set a drafodwyd. Os yw'r rhestr yn parhau i dyfu, yr ateb gonest yw twnelu hollt ar gyfer IPv6 gyda rhestr eithriadau ysgrifenedig, nid llwybr diofyn rydych yn ei glytio'n barhaus.
Os mai 'na' yw'r ateb, blocwch ef
Nid yw gadael IPv6 heb lwybr yr un peth â'i adael ar ei ben ei hun. Mae gwesteiwr â llwybr diofyn IPv6 sy'n gweithio yn parhau i'w ddefnyddio tra bod y twnnel yn cario IPv4, felly mae'r traffig yn gadael wrth ochr y VPN ac mae pob gwasanaeth sy'n ffafrio IPv6 yn gweld eich gwir gyfeiriad. Gollyngiad yw hwnnw, nid twnnel hollt.
Dewiswch un ac ysgrifennwch pa un a ddewisolch. Llwybrwch y diofyn a derbyniwch y cyfaddawdau uchod, neu analluogwch IPv6 am gyfnod y twnnel. Nid yw hepgor y rhagddodiad o AllowedIPs yn ddigon ynddo'i hun, oherwydd mae'r system weithredu yn cadw ei llwybr diofyn ei hun. Ar Linux y fersiwn blwnt yw sysctl -w net.ipv6.conf.all.disable_ipv6=1; mae'r fersiwn fwy manwl yn gollwng IPv6 y tu allan i'r twnnel gyda rheol mur tân. Mae cleientiaid ffôn yn cynnwys newidydd blocio IPv6 amlwg sy'n gwneud yr un gwaith.
Gwiriwch ef fel gollyngiad
Codwch y twnnel a darllenwch y cyflwr yn lle ymddiried yn y newidydd. Dylai ip -6 route show default ddangos un llwybr diofyn, a dylai ip -6 route get ar gyfer cyrchfan y tu allan i'ch LAN enwi'r ddyfais twnnel. Ailadroddwch y ddau ar ôl datgysylltu: llwybr diofyn sy'n goroesi'r twnnel yw'r nam roeddech yn chwilio amdano.
Yna profwch y cyfeiriad arall. O westeiwr ar y rhwydwaith lleol, cyrhaeddwch y cleient ar ei gyfeiriad IPv6 lleol. Os yw hynny'n stopio gweithio, ni chafodd amod tri ei fodloni erioed, beth bynnag a haerai'r tabl llwybrau bryd hynny.
Ysgrifennwch y canlyniad lle bydd y person nesaf yn dod o hyd iddo: pa raggddodiadau sy'n aros yn lleol, pam, a beth mae'r cleient yn ei wneud ar ôl datgysylltu. Mae dwy linell mewn runbook yn arbed i'r peiriannydd nesaf ailddarganfod dolen y pen draw yn hanner nos.