IPv6 drwy dwnnel OpenVPN: taith drwy'r llwybrydd cartref
Mae IPv6 yn marw neu'n gollwng pan fydd y twnnel yn rhyddhau rhagddodiad na all y llwybrydd ei lwybro. Crwydrwch y cleient, y pwll, yr anfon ymlaen, y proxy NDP a'r llwybr dychwelyd yn eu trefn.
Mae gan y gliniadur gyfeiriad IPv6, mae'r twnnel i fyny dros IPv4, ac eto mae pob prawf IPv6 yn methu. Yn waeth, mae'r prawf yn llwyddo ac mae'r traffig wedi gadael ar lwybr y darparwr heb fynd i mewn i'r twnnel o gwbl. Mae'r ddau ganlyniad yn olrhain yn ôl i un penderfyniad coll: ni roddodd neb ragddodiad i'r llwybrydd y gallai ei lwybro tuag at gleientiaid. Mae crwydro'r llwybr o'r cleient tuag allan yn canfod pa ddarn sydd ar goll.
Dechreuwch lle mae'r cleient yn eistedd
Edrychwch ar y cleient cyn cyffwrdd â'r gweinydd. Dylai ip -6 addr ddangos cyfeiriad twnnel o'r pwll, a dylai ip -6 route ddangos y rhagddodiad a wthiwyd sy'n pwyntio at y ddyfais twnnel. Pan fo'r cyfeiriad yno ond nad oes llwybr, mae'r push ar goll neu mae'r cleient wedi'i anwybyddu. Pan nad oes y naill na'r llall, nid yw'r gweinydd wedi dyrannu dim o gwbl.
Yna gwiriwch beth mae'r cleient yn ei gredu am y byd allanol. Mae llwybr diofyn dros y twnnel yn hawlio'r holl draffig IPv6, tra bod llwybr ar gyfer 2000::/3 yn hawlio unicast byd-eang yn unig. Gall y ddau fod yn gywir, ac maent yn ateb cwestiynau gwahanol am ollwng.
Mae cleient heb unrhyw lwybr diofyn IPv6 yn methu pob prawf cyhoeddus tra bod y twnnel ei hun yn hollol iach. Bwlch polisi yw hwn, nid twnnel wedi torri.
Gwiriwch y pwll y gall y gweinydd ei lwybro mewn gwirionedd
Ni all gweinydd ddyrannu ond o ragddodiad y mae'n ei reoli mewn gwirionedd. Os yw'r darparwr yn dirprwyo /56, cadwch un /64 ar gyfer y twnnel a gadael y gweddill ar gyfer y LAN. Lle bo'r darparwr yn trosglwyddo un /64 yn unig ar y WAN ac yn llwybro dim arall, gadewch ragddodiad y LAN yn llonydd a rhowch ystod lleol unigryw i'r twnnel, gan dderbyn na fydd gan gleientiaid unrhyw allanfa fyd-eang.
Mae'r pwll a'r push yn perthyn gyda'i gilydd. Mae server-ipv6 2001:db8:80:10::/64 yn dyrannu cyfeiriadau, ac mae push "route-ipv6 2000::/3" yn dweud wrth gleientiaid beth i'w anfon i'r twnnel. Mae gwthio 2000::/3 yn cynnwys unicast byd-eang ac yn gadael ystodau link-local a multicast y tu allan i'r twnnel.
Ysgrifennwch y rhagddodiad a ddewiswyd yn y cofnod cyflwyno. Mae angen i'r sawl sy'n newid trosglwyddiad y darparwr nesaf wybod pa /64 mae'r twnnel eisoes yn ei feddiannu.
Trowch yr anfon ymlaen ymlaen ar gyfer yr ail deulu
Nid yw anfon ymlaen IPv4 yn awgrymu anfon ymlaen IPv6. Gosodwch net.ipv6.conf.all.forwarding=1 ac adlewyrchwch bopeth y mae polisi FORWARD IPv4 eisoes yn ei ganiatáu. Ar lwybrydd y mae ei gadwyn FORWARD yn gollwng yn ddiofyn, mae set rheolau ar goll yn edrych yn union fel twnnel marw.
Mae'r gwasg law yn llwyddo, mae'r cleient yn cael cyfeiriad, ac nid oes dim yn dod yn ôl. Ychwanegwch reolau ar gyfer y ddau gyfeiriad ac ar gyfer coes y WAN, oherwydd mae twnnel sy'n cyrraedd y LAN ond nid y rhyngrwyd yn methu'r trydydd prawf. Edrychwch ar gowntwyr y gadwyn ar ôl ymgais fethiedig, oherwydd mae rheol na chyfatebodd erioed yn broblem wahanol i un a gyfatebodd ac a ollwng.
ip6tables -A FORWARD -i br0 -o tun0 -j ACCEPT
ip6tables -A FORWARD -i tun0 -o br0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -i tun0 -o wan0 -j ACCEPT
Mae un sgil-effaith yn dal y bobl sy'n beio'r twnnel yn y diwedd. Mae galluogi anfon ymlaen yn gwneud i'r cnewyllyn hepgor cyfluniad cyfeiriad drwy Hysbyseb Llwybrydd oni bai eich bod yn dweud fel arall, ac mae llwybr diofyn a ddysgwyd felly yn diflannu gyda hi. Naill ai pinwch lwybr diofyn penodol ar y rhyngwyneb WAN, neu gosodwch accept_ra i 2 yno yn fwriadol. Ar ôl y naill newid neu'r llall, cadarnhewch fod gan y llwybrydd lwybr IPv6 defnyddiadwy allan o hyd cyn ailbrofi'r cleientiaid.
Atebwch ddarganfod cymdogion pan na fydd yr uwch-lif yn llwybro
Mae offer uwch yn trin y /64 a ddirprwywyd fel un sy'n perthyn i'w gyswllt ei hun ac yn gwrthod llwybro unrhyw is-ragddodiad i'r blwch VPN. Pan ddigwydda hynny, rhaid i rywbeth ateb ceisiadau cymdogion ar gyfer pob cyfeiriad cleient ar wahân.
OpenVPN yn datgelu'r cyfeiriad a ddyrannwyd i fachyn client-connect, felly gall cofnodion ddilyn y pwll go iawn yn lle rhestr a gynhelir â llaw. Mae'r bachyn yn ychwanegu ip -6 neigh add proxy $ifconfig_pool_remote_ip6 dev eth0, ac mae bachyn client-disconnect cyfatebol yn ei dynnu. Heb y tynnu, mae'r tabl proxy yn mynd yn hen a gall cleient diweddarach etifeddu cofnod ar gyfer cyfeiriad na chafodd erioed. Cadarnhewch y cyflwr gyda ip -6 neigh show proxy.
Triniwch y proxying fel datrysiad dros dro. Mae llwybr statig ar gyfer /64 y twnnel wedi'i anelu at y llwybrydd yn goroesi newidiadau cleientiaid ac nid oes angen unrhyw fachyn cragen freintiedig o gwbl.
Dilynwch y llwybr tuag allan, un naid ar y tro
Profwch tuag allan mewn tri cham: cyfeiriad twnnel y llwybrydd yn gyntaf, yna gwesteiwr LAN, ac yn drydydd cyrchfan gyhoeddus drwy traceroute6. Profir y pwll gan y cyntaf, yr anfon ymlaen a wal dân y LAN gan yr ail, a'r llwybr dychwelyd drwy'r uwch-lif gan y trydydd. Mae pob methiant yn culhau'r chwilio i un ddyfais yn lle ailagor y dyluniad cyfan.
Gwyliwch MTU y twnnel, oherwydd ni fydd llwybryddion IPv6 ar y llwybr yn darnio ar eich rhan. Mae MTU rhy fawr yn ymddangos fel gwall packet-too-big a TLS wedi stondio yn lle methiant glân. Gosodwch ef yn benodol a phrofwch â llwythi yn agos at y terfyn.