Uelekezaji wa Sera za IPv6 Wakati Uplink Mbili Zikishiriki fe80::1
Uplink mbili zinaweza kuonyesha hop inayofuata fe80::1 ile ile kwenye viungo tofauti. Chagua jedwali moja kwa kila sera, miliki muda wa maisha, na uthibitisha kwa utafutaji wa njia.
Una uplink mbili, na ip -6 route show inachapisha hop inayofuata ile ile kwenye zote mbili: default via fe80::1 dev uplink0 na default via fe80::1 dev uplink1. Hii si mgongano wa anwani iliyorudiwa, na kunakili hop inayofuata tupu fe80::1 kwenye jedwali la sera hakuiambii kernel unakusudia kiungo kipi. Swali la kweli ni jembamba kuliko dalili inavyodokeza: je, jedwali la pili linahitaji kiungo kimoja au vyote viwili, na nini kinavihifadhi njia hizo hai baada ya kuwasha upya. Masharti matatu, yaliyokaguliwa kwa mpangilio, hutatua sehemu kubwa.
fe80::1 ile ile ni majirani wawili tofauti
Anwani za kiungo cha ndani zina upeo wa kiungo kimoja, kwa hiyo fe80::1 si anwani moja iliyochapishwa mara mbili; ni majirani wawili ambao kwa bahati wanashiriki kiambishi tamati. Kielekezi cha eneo ni jinsi mwenyeji anavyosema ni kipi anachokusudia, kwa hiyo fe80::1%uplink0 na fe80::1%uplink1 ni maeneo tofauti kwa kernel, na kiambishi hicho hakipiti kamwe kwa kipanga njia cha mbali. RFC 4007 inaeleza mfano wa eneo ulio nyuma ya hili, na ndiyo sababu jedwali la sera linapaswa kubeba kifaa pamoja na kila hop inayofuata ya kiungo cha ndani.
Kizalisha cha usanidi wa VPN kinachonakili kitambulisho cha eneo la nambari kutoka kwa mwenyeji mmoja kwenda kwenye kiolezo huchukulia muktadha wa ndani kana kwamba ni sehemu ya anwani, na faili inayoiandika ni mbovu kwenye kila mashine yenye majina au fahirisi za violesura tofauti. Jedwali la sera pia haliunganishi viungo viwili kuwa kimoja: VPN inayoelekezwa hupitisha pakiti kati ya mitandao, lakini haibebi utambulisho wa ndani wa kiungo wa jirani wa Ethernet wa mbali kuvuka handaki, kwa hiyo trafiki ya kiungo cha ndani hubaki kwenye kiungo chake.
Ondoa kifaa na njia inakuwa haiwezi kuandikwa. ip -6 route add default via fe80::1 table 200 haiwezi kutatua lango, na iproute2 huikataa kwa Error: Nexthop has invalid gateway. hitilafu. Ongeza dev uplink0 na amri inafanikiwa, kwa sababu kifaa ndicho kinachobandika hop inayofuata kwa mmoja wa majirani hao wawili. Kifaa hakiwezi kukuambia ni kama uplink0 ni kiungo sahihi kwa jedwali hili, na njia iliyonakiliwa kutoka kwa mwenyeji mwingine huja na majina ya violesura vya mwenyeji huyo, na hapo ndipo makosa ya kweli yanatoka.
Sharti la kwanza: kiungo kimoja au viwili kwenye jedwali
Anza na kile uplink ya pili inakusudiwa. Ikiwa viungo vyote viwili vinabeba trafiki ile ile na kimoja ni chelezo, jedwali mbadala linapaswa kuwa na malango yote mawili na metrik tofauti: maeneo yale yale, njia moja inayopendelewa, chaguo la pili lililo wazi. Ikiwa uplink zipo kwa sababu trafiki tofauti lazima zitoke kwa watoa huduma tofauti, au kwa sababu hii ni handaki iliyogawanyika ambapo trafiki nyingine inaikwepa VPN na iliyobaki inabaki ndani, viungo hivyo viwili haviwi kamwe kwenye jedwali moja. Ni vya majedwali mawili, yanayochaguliwa na kanuni, na kanuni huchagua jedwali, si handaki: trafiki inayokwepa huwekwa alama kabla ya kuelekezwa, na alama hiyo ndiyo inayoipeleka kwenye jedwali la pili.
Katika hali hiyo ya pili kanuni huamua ni lini jedwali lishauriwe, na njia huamua pakiti inakwenda wapi mara baada ya kushauriwa:
ip -6 rule add fwmark 0x2 table 201
ip -6 route add default via fe80::1 dev uplink1 metric 100 table 201
ip -6 route add 2001:db8:100::/48 dev uplink1 metric 100 table 201
ip -6 route show table 201Hakuna kitu kinachochukua nafasi ya kingine, na jedwali lililo na chaguo-msingi pekee bado linaweza kushindwa kutatua lango lake. Ikiwa kuongeza kumekataliwa, au njia ipo lakini haiwezi kutumika, weka kiambishi awali kilichounganishwa cha violesura hivyo kwenye jedwali lilo hilo, au weka alama kwenye hop kama onlink (wakati kiambishi hicho kinapoelekezwa mahali pengine). Kwenye kizuizi kilicho juu 2001:db8:100::/48 kinawakilisha kiambishi hicho kilichounganishwa kwenye uplink1, si eneo la kubahatisha. Kanuni ya fwmark hutumia tu alama ambayo kitu kingine lazima kiweke, kutoka kwa kanuni ya nftables au iptables kwenye njia ya upelekaji au kutoka SO_MARK kwenye soketi, kwa hiyo kizuizi kilichonakiliwa bila chanzo cha alama haking'ai chochote.
Sharti la pili: metrik hazitambui mtoa huduma aliyekufa
Metrik ni upendeleo kati ya njia zilizopo, si ukaguzi wa afya. Mtoa huduma anapoporomoka, kernel huondoa njia kwenye kifaa hicho na chaguo-msingi la pili huchukua nafasi. Wakati kebo inabaki hai na mtoa huduma aliye nyuma yake akifa, hakuna kinachobadilika kwenye jedwali: njia inayopendelewa imewekwa, jirani anafikiwa kwenye tabaka 2, na pakiti zinatoka kwenda kwenye shimo jeusi. Ikiwa tofauti hiyo ni muhimu kwa usanidi wako, ubadilishaji wa hitilafu lazima utoke kwa kitu kinachochunguza njia na kuondoa njia, iwe ni daemon ya uelekezaji au skripti ndogo inayofuta na kuweka tena kiingilio.
Thibitisha chaguo baada ya jedwali kujengwa, na uthibitishe jinsi kernel itakavyoliona. ip -6 route get 2001:db8:100::1 huchapisha njia ambayo ingetumika, ikiwa ni pamoja na kifaa na anwani ya chanzo iliyochaguliwa, na inaheshimu kanuni za sera. Anwani ya chanzo ya uplink isiyo sahihi ni ishara ya kawaida kwamba kanuni ililingana mapema kuliko ulivyotarajia.
Sharti la tatu: amua nani anamiliki uthabiti
Njia iliyoongezwa kwa ip -6 route add hubaki hadi kuwasha upya au hadi kitu kiifute. Chaguo-msingi lililojifunza kutoka kwa matangazo ya kipanga njia hubeba muda wa maisha na kipanga njia anaweza kuliondoa, wakati chaguo-msingi lililoongezwa kwa mkono haliishi kamwe lenyewe. Kuchanganya vyote viwili kwenye jedwali moja ndiyo njia ambayo njia ya kudumu iliyopitwa na wakati huanza kuzidi ile mpya iliyotangazwa, muda mrefu baada ya uplink iliyoelezwa kutokuwepo.
Chagua mmiliki mmoja kwa kila jedwali. Ikiwa meneja wa mtandao au daemon ya uelekezaji tayari anasimamia violesura, eleza njia ya sera hapo na uachie kernel. Ikiwa unafanya kwa skripti, ifanye iwe idempotent na uandike ubomoaji wakati huo huo, kwa sababu utaihitaji kwenye mabadiliko mabaya ya kwanza:
ip -6 route flush table 201
ip -6 rule del fwmark 0x2 table 201Kwenye kipanga njia kinachopeleka kwa wenyeji wengine, kabla ya kulaumu jedwali angalia net.ipv6.conf.all.forwarding . Upelekaji ukiwa umezimwa, pakiti zilizoelekezwa kwenye mtandao mwingine hutupwa, hata jedwali 201 liwe sahihi kiasi gani.
Rekodi muundo ili mtu anayefuata aweze kuukagua
Orodha inayohifadhi tu fe80::1 hutupa sehemu muhimu. Rekodi lengo, hop inayofuata, kifaa, jedwali na metrik pamoja, na pia kila njia ilikotoka: ilitangazwa, ilizalishwa na meneja, au ni tuli. Wakati mtu baadaye akiuliza kama uplink ya pili kweli inabeba trafiki, rekodi hiyo hujibu bila kubahatisha.
Kabla ya kutangaza jedwali limekamilika, thibitisha jirani kwa ip -6 neigh show dev uplink0 , soma tena ip -6 rule show kwa ajili ya ajali za mpangilio, na jaribu kwa trafiki inayolingana na kanuni badala ya ping inayochukua njia ya chaguo-msingi. Kisha zima uplink moja kwa makusudi na uangalie ni njia ipi kernel inarudi; jibu linapaswa kulingana na uliloandika.