Unainua handaki, unapinga fe80::1 ukitumia handaki kama kiolesura chanzo, na hakuna kinachorudi. Hii si sheria ya firewall uliyoisahau. Anwani ya link-local ina maana tu kwenye kiungo kile kimoja ilipoundwa, na VPN inayopitishwa si kiungo hicho. fe80::1 ya kipanga njia cha mbali iko kwenye sehemu ya LAN ya mbali; wewe uko hatua moja mbali kwenye sehemu nyingine, na IPv6 haina utaratibu wowote wa kipanga njia kusambaza pakiti za link-local.

Kiambishi fe80 kinaeleza wigo, si masafa

Link-local unicast ni fe80::/10, na sifa inayofafanua si namba bali wigo. Anwani ni halali tu kwenye kiungo kimoja, na kila kiolesura huunda moja kutoka kitambulisho chake, ndiyo sababu mashine mbili zisizohusiana katika mitandao miwili isiyohusiana zinaweza zote kujibu fe80::1 bila mgongano wowote. Kiambishi kimsingi kinasema “kwenye kiungo fulani”; kiungo chenyewe kinatoka kwenye muktadha.

Kwenye mwenyeji, muktadha huo ni ukanda, au scope ID, unaoongeza baada ya alama ya asilimia: fe80::1%eth0 kwenye Linux, fe80::1%3 au fe80::1%12 kwenye Windows na katika zana zinazoonyesha fahirisi za violesura. Kiini hutatua anwani pamoja na faharisi ya kiolesura kisha hutuma. Ukiondoa ukanda, lengwa linakuwa na utata, kwa hiyo staki haina njia ya kuchagua sehemu.

Kwa nini handaki inayopitishwa haiwezi kuifikisha

VPN inayopitishwa ni kiolesura cha nukta-hadi-nukta kinachobeba anwani zake, kwa kawaida /64 ya nafasi ya IPv6 unique-local au ya kibinafsi ndani ya handaki. LAN ya mbali ni kiungo tofauti, kinachofikiwa na mwisho wa handaki ukielekeza na kusambaza kwa niaba yako. Hizi ni sehemu mbili tofauti, kwa hiyo anwani kutoka moja si lengwa halali kwenye nyingine.

Sheria ya usambazaji iko wazi katika kiwango, si ugeni wa mteja wako: vipanga njia hawasambazi pakiti zenye chanzo au lengwa la link-local. Ndiyo sababu pakiti hufa hata jedwali la njia linapoonekana sawa. Ongeza njia ya fe80::/64 kuelekea handaki na staki inayofuata kiwango ama itaikataa au itaikubali na kutupa kila pakiti inayolingana: wigo wa lengwa unasema “kiungo hiki pekee”, na kiolesura cha kutoka si kiungo hicho.

Ugunduzi wa majirani unaimarisha mpaka huo huo. Wenyeji hutatua hatua zinazofuata za link-local kwa ombi la jirani linalotumwa kwa multicast ya wigo wa kiungo na kikomo cha hatua 255, kwa hiyo vipanga njia vinaweza kukataa chochote kinachosambazwa. Kufanya hilo lifanye kazi kupitia handaki kungemaanisha kufanya proksi ya ugunduzi kwa sehemu ya mbali, ambayo ni daraja la Layer 2 lenye kofia nyingine.

Kuna kushindwa kwa pili kwa utulivu zaidi, na hilo huwakamata wale wanaojaribu kulazimisha njia hata hivyo: ukanda. Ukanda wowote unaoandika kienyeji unataja kiolesura cha handaki, wakati anwani unayotaka imefungwa kwenye kiolesura cha LAN ya mbali. Vyote viwili havilingani kamwe, kwa hiyo pakiti haiwezi kuelekezwa kwenye kiolesura sahihi upande wa mbali.

Kushindwa kunaonekanaje kwa vitendo

Matokeo ya zana kwa kosa la wigo husomwa kama kosa la uelekezaji au firewall, na ndiyo sababu watu hutumia mchana mzima kwenye tabaka lisilofaa.

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

Mstari wa tatu hupoteza muda mwingi zaidi, kwa sababu mteja wa ssh asiye na matokeo huonekana kama tatizo la huduma inayosikiliza. Ikiwa una njia yoyote ya kuingia, angalia upande wa mbali na uthibitishe kama sshd imefungwa kwenye anwani zote au moja tu.

Tumia anwani iliyokusudiwa kupitishwa

Kwa kila kitu unachohitaji kufikia kupitia handaki, tumia anwani ambayo huduma ilipewa kwa madhumuni hayo: anwani ya unicast ya kimataifa, au anwani ya unique-local kutoka fc00::/7, masafa yaliyotengwa mahsusi kwa kesi hii ya ndani. Thibitisha kuwa msikilizaji anaifunga kweli, na angalia njia ya kurudi na sheria yoyote ya firewall ya mwenyeji.

Angalia mwenyeji wa mbali badala ya kubahatisha. ip -6 addr show huorodhesha anwani zilizopo, na ss -6 -ltn huorodhesha kile daemon inasikiliza. Huduma iliyofungwa kwa fe80:: pekee inafikiwa tu kutoka sehemu yake, ambayo kwa kawaida ni chaguo-msingi ambalo hakuna aliyelichagua kwa makusudi na linaweza kubadilishwa kwa idhini ya msimamizi.

Wakati huduma kweli haiwezi kufungwa upya, peleka daraja juu kwenye tabaka la programu badala ya tabaka la mtandao. Relay kwenye mwenyeji wa mbali inayosikiliza anwani inayopitishwa na kuunganisha kwa ile ya link-local hutatua tatizo bila kupanua sehemu yoyote:

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

Hapa ukanda uko upande sahihi, kwenye mwenyeji ambaye kweli ana eth0 kwenye kiungo hicho. Mteja wako anazungumza na fd00:1:2::10, ambayo inapitishwa kawaida, na relay hufanya hatua ya link-local kienyeji. Ujanja huo huo hufanya kazi kwa UI ya wavuti ya kifaa au BMC ya zamani inayotangaza anwani ya link-local pekee.

Wakati daraja kweli ni jibu, na nini cha kuangalia

Baadhi ya usambazaji kwa kweli huhitaji sehemu moja inayoshirikiwa: kifaa kinachozungumza ugunduzi wa link-local pekee, kifaa kinachotegemea multicast, maabara inayozalisha LAN tambarare. Hilo ni tatizo la Layer 2 na linahitaji jibu la Layer 2, kama kifaa cha tap kilichofungwa daraja kwenye kiolesura cha mbali au bidhaa ya mteja yenye hali wazi ya daraja. Hilo linakugharimu trafiki ya broadcast na multicast inayovuka handaki pamoja na ugunduzi wa majirani ambao lazima ufanye kazi mwanzo hadi mwisho.

Usikaribie hili kwa kuongeza fe80::/64 kwenye wasifu unaopitishwa. Hilo huzalisha hali mbaya zaidi: usanidi unaonekana umekamilika, jedwali la njia linaonyesha ingizo, na kila pakiti bado inatupwa mahali fulani kati ya staki mbili ambazo zote zina tabia sahihi.

Thibitisha kwa kiolesura badala ya ping. ip -6 addr show tun0 hukuambia kama kiungo cha handaki kiliunda anwani yake ya link-local, na ip -6 route get fe80::1%tun0 hukuambia kile kiini kingefanya kweli na lengwa lenye wigo. Kiini kinaposema lengwa halifikiki kwenye kiolesura hicho, hakuna mpangilio wa handaki utakaobadilisha hilo, na ni wakati wa kuacha kuhariri wasifu.

Mfululizo mfupi unaomaliza swali:

  • Soma anwani kwenye mwenyeji wa mbali na uangalie kama ni fe80:: au kiambishi kinachopitishwa.
  • Ikiwa ni fe80::, funga huduma upya, fanya relay kwenye mwenyeji huyo, au fungia daraja sehemu; ikiwa inapitishwa, rekebisha njia, firewall au anwani ya kufungia.
  • Angalia ukanda upya kila unapojaribu tena, kwa sababu amri iliyonakiliwa kwa kawaida huhifadhi kiolesura kisichofaa.

Vyanzo: RFC 4291, usanifu wa anwani za IPv6.

Makala zinazohusiana