Rydych yn codi'r twnnel, yn pingio fe80::1 gyda'r twnnel fel y rhyngwyneb ffynhonnell, ac yn dychwelyd yn wag. Nid yw'n rheol mur tân a anghofioch. Dim ond ar yr un ddolen lle y ffurfiwyd ef y mae cyfeiriad lleol-i'r-ddolen yn golygu rhywbeth, ac nid yw VPN a lwybrir yn y ddolen honno. Mae fe80::1 y llwybrydd pell yn byw ar segment pell y LAN; rydych chi un naid i ffwrdd ar segment gwahanol, ac nid oes gan IPv6 unrhyw fecanwaith i lwybrydd anfon pecynnau lleol-i'r-ddolen ymlaen o gwbl.

Mae'r rhagddodiad fe80 yn disgrifio cwmpas, nid amrediad

Unicast lleol-i'r-ddolen yw fe80::/10, a'r nodwedd sy'n diffinio yw'r cwmpas, nid y rhif. Dim ond ar un ddolen y mae'r cyfeiriad yn ddilys, ac mae pob rhyngwyneb yn ffurfio un o'i adnabyddwr ei hun; dyna pam y gall dau beiriant di-gysylltiad ar ddwy rwydwaith ddi-gysylltiad ateb ill dau i fe80::1 heb unrhyw wrthdaro. Yn y bôn mae'r rhagddodiad yn dweud “ar ryw ddolen”; daw'r ddolen ei hun o'r cyd-destun.

Ar westeiwr, y cyd-destun hwnnw yw'r parth, neu'r ID cwmpas, a ychwanegwch ar ôl arwydd y cant: fe80::1%eth0 ar Linux, fe80::1%3 neu fe80::1%12 ar Windows ac mewn offer sy'n dangos mynegeion rhyngwyneb. Mae'r cnewyllyn yn datrys y cyfeiriad ynghyd â mynegai'r rhyngwyneb ac yna'n anfon. Os tynnwch y parth, mae'r gyrchfan yn amwys, felly nid oes gan y pentwr ffordd i ddewis segment.

Pam na all twnnel a lwybrir ei chludo

Mae VPN a lwybrir yn rhyngwyneb pwynt-i-bwynt sy'n cario ei gyfeiriadau ei hun, fel arfer /64 o ofod IPv6 unigryw-leol neu breifat y tu mewn i'r twnnel. Mae'r LAN pell yn ddolen ar wahân, a gyrrheir ati trwy lwybro a chyfeirio pen y twnnel ar eich rhan. Dau segment ar wahan yw'r rhain, felly nid yw cyfeiriad o'r naill yn gyrchfan ddilys ar y llall.

Mae'r rheol gyfeirio yn glir yn y safon ac nid yn rhyfeddod yn eich cleient: nid yw llwybryddion yn cyfeirio pecynnau â ffynhonnell neu gyrchfan lleol-i'r-ddolen. Dyna pam mae'r pecyn yn marw hyd yn oed pan fo'r tabl llwybro yn edrych yn gywir. Ychwanegwch lwybr ar gyfer fe80::/64 at y twnnel ac mae pentwr sy'n cydymffurfio naill ai'n ei wrthod neu'n ei dderbyn ac yn gollwng pob pecyn sy'n cyfateb: mae cwmpas y gyrchfan yn dweud “y ddolen hon yn unig”, ac nid y ddolen honno yw'r rhyngwyneb allan.

Mae darganfod cymdogion yn atgyfnerthu'r un ffin. Mae gwesteiwyr yn datrys neidiau nesaf lleol-i'r-ddolen gyda chais cymydog a anfonir at multicast cwmpas dolen â therfyn naid o 255, fel y gall llwybryddion wrthod unrhyw beth a gyfeirir. Byddai gwneud hynny'n gweithio dros dwnnel yn golygu dirprwyo darganfyddiad ar gyfer segment pell, sef pont haen 2 mewn het wahanol.

Mae ail fethiant tawelach, ac mae'n baglu pobl sy'n ceisio gorfodi'r llwybr beth bynnag: y parth. Pa bynnag barth a deipiwch yn lleol, mae'n enwi rhyngwyneb y twnnel, tra bod y cyfeiriad rydych ei eisiau wedi'i rwymo i ryngwyneb y LAN pell. Nid yw'r ddau byth yn cyfateb, felly ni ellir cyfeirio'r pecyn at y rhyngwyneb cywir ar y pen pell.

Sut mae'r methiant yn edrych yn ymarferol

Mae allbwn offer ar gyfer camgymeriad cwmpas yn darllen fel gwall llwybro neu fur tân, a dyna'n union pam mae pobl yn treulio prynhawn yn y haen anghywir.

What you runWhat you seeWhat it means
ping fe80::1 with no zoneInvalid argument on Linux, or a transmit failure on WindowsThe stack cannot pick an interface for an ambiguous destination
ping -6 -I tun0 fe80::1Destination unreachable, or a silent timeoutThe address is not on the tunnel link, so there is nothing on-link to answer
ssh user@fe80::1 after the tunnel is upHangs, then no route to hostThe SYN never left the machine in a deliverable form; the server logs nothing
ip -6 neigh show dev tun0Empty tableNo neighbor entry can exist for a link-local host that is not on this link
fe80::/64 inside AllowedIPs or route-ipv6Config accepted, traffic still droppedThe tunnel carried the packet; the receiving stack refused to forward it

Y drydedd res sy'n gwastraffu'r mwyaf o amser, oherwydd mae cleient ssh heb allbwn yn edrych fel problem gwasanaeth sy'n gwrando. Os oes gennych unrhyw ffordd i mewn, edrychwch ar yr ochr bell a chadarnhewch a yw sshd wedi'i rwymo i bob cyfeiriad neu i un yn unig.

Defnyddiwch gyfeiriad a oedd i fod i gael ei lwybro

Ar gyfer unrhyw beth y mae angen i chi gyrraedd trwy'r twnnel, defnyddiwch y cyfeiriad a roddwyd i'r gwasanaeth at y diben hwnnw: cyfeiriad unicast byd-eang, neu gyfeiriad unigryw-leol o fc00::/7, yr amrediad a gadwyd yn union ar gyfer yr achos mewnol hwn. Cadarnhewch fod y gwrandäwr yn ei rwymo mewn gwirionedd, a chadarnhewch y llwybr dychwelyd ac unrhyw reol mur tân ar y gwesteiwr.

Edrychwch ar y gwesteiwr pell yn hytrach na dyfalu. Mae ip -6 addr show yn rhestru'r cyfeiriadau sy'n bodoli, ac mae ss -6 -ltn yn rhestru'r hyn y mae'r daemon yn gwrando arno. Dim ond o'i segment ei hun y gellir cyrraedd gwasanaeth sydd wedi'i rwymo i fe80:: yn unig, ac fel arfer dyma osodiad diofyn na ddewisodd neb yn fwriadol ac y gellir ei newid gyda chytundeb y gweinyddwr.

Pan nad oes modd ailrwymo'r gwasanaeth o gwbl, symudwch y bont i fyny i'r haen cymhwysiad yn lle'r haen rwydwaith. Mae trosglwyddydd ar y gwesteiwr pell sy'n gwrando ar gyfeiriad llwybradwy ac yn cysylltu â'r un lleol-i'r-ddolen yn datrys y broblem heb ymestyn unrhyw segment:

socat TCP6-LISTEN:8080,bind=[fd00:1:2::10] TCP6:[fe80::1%eth0]:80

Yma mae'r parth ar yr ochr gywir, ar y gwesteiwr sydd â eth0 ar y ddolen honno mewn gwirionedd. Mae eich cleient yn siarad â fd00:1:2::10, sy'n llwybro fel arfer, ac mae'r trosglwyddydd yn gwneud y naid leol-i'r-ddolen yn lleol. Mae'r un tric yn gweithio ar gyfer rhyngwyneb gwe offeryn neu BMC hen sy'n hysbysebu cyfeiriad lleol-i'r-ddolen yn unig.

Pryd mae pontio wir yn ateb, a beth i'w wirio

Mae rhai gosodiadau wir angen un segment a rennir: dyfais sy'n siarad dim ond darganfyddiad lleol-i'r-ddolen, offeryn sy'n dibynnu ar multicast, labordy sy'n atgynhyrchu LAN fflat. Problem haen 2 yw hon ac mae angen ateb haen 2, megis dyfais tap wedi'i phontio i'r rhyngwyneb pell neu gynnyrch cleient â modd pontio penodol. Mae'n costio traffig darlledu a multicast yn croesi'r twnnel ynghyd â darganfyddiad cymdogion sy'n gorfod gweithio o ben i ben.

Peidiwch â'i amcangyfrif trwy ychwanegu fe80::/64 at broffil a lwybrir. Mae hynny'n cynhyrchu'r cyflwr gwaethaf oll: mae'r ffurfweddiad yn edrych yn orffenedig, mae'r tabl llwybro yn dangos cofnod, ac mae pob pecyn yn dal i gael ei daflu rywle rhwng dau bentwr sy'n ymddwyn yn gywir ill dau.

Gwiriwch gyda'r rhyngwyneb yn hytrach na'r ping. Mae ip -6 addr show tun0 yn dweud wrthych a yw dolen y twnnel wedi ffurfio cyfeiriad lleol-i'r-ddolen ei hun, ac mae ip -6 route get fe80::1%tun0 yn dweud beth fyddai'r cnewyllyn yn ei wneud mewn gwirionedd â chyrchfan â chwmpas. Pan fo'r cnewyllyn yn dweud bod y gyrchfan yn un na ellir ei chyrraedd ar y rhyngwyneb hwnnw, ni fydd unrhyw osodiad twnnel yn newid hynny, ac mae'n amser rhoi'r gorau i olygu'r proffil.

Dilyniant byr sy'n setlo'r cwestiwn:

  • Darllenwch y cyfeiriad ar y gwesteiwr pell a nodwch ai fe80:: neu ragddodiad llwybradwy yw ef.
  • Os yw'n fe80::, ailrwymwch y gwasanaeth, trosglwyddwch ar y gwesteiwr hwnnw, neu bontiwch y segment; os yw'n llwybradwy, trwsiwch y llwybr, y mur tân neu'r cyfeiriad rhwymo.
  • Ailwirio'r parth bob tro y byddwch yn ailbrofi, oherwydd mae gorchymyn copïwyd fel arfer yn cadw'r rhyngwyneb anghywir.

Ffynonellau: RFC 4291, pensaernïaeth cyfeirio IPv6.

Erthyglau cysylltiedig