Ինչպես տարբերակել երթուղային հանգույցը երթուղու թրթռումից VPN կայքերում
Երթուղային հանգույցն ու թրթռացող երթուղին առաջացնում են նույն ընդհատվող կորուստը։ Դարպասների վրա երեք ստուգում տարբերում են դրանք նախքան որևէ բան փոխելը։
Երկու կայք, մեկ թունել և հեռավոր նախածանց, որը որոշ ժամանակ պատասխանում է, ապա լռում։ Ռեֆլեքսն է՝ անվանել այն երթուղային հանգույց, և երբեմն դա հենց այդպես է։ Սակայն հանգույցը և թրթռացող երթուղին առաջացնում են նույն բողոքը և պահանջում են հակադիր վերանորոգումներ՝ մեկը փոխանցման որոշում է, որը երբեք չի ավարտվում, մյուսը նախածանց է, որը շարունակ աղյուսակից դուրս է գալիս։ Երեք դիտարկում բաժանում են դրանք, և բոլոր երեքը կարող եք հավաքել դարպասի հրամանի տողից նախքան զտիչին դիպչելը կամ թունելը վերագործարկելը։
Հանգույցը որոշվում է քայլ առ քայլ։ A կայքը որպես նշանակման հաջորդ քայլ ընտրում է B-ն, B-ն նույն նշանակման համար ընտրում է A-ն, և փաթեթը լրանում է TTL-ի վրա երկու շրջանից հետո։ Թրթռումը փոխարեն որոշում է երթուղային արձանագրությունը՝ նախածանցը հետ է վերցվում, նորից տեղադրվում կամ փոխարինվում է այլընտրանքային հաջորդ քայլով, այնպես որ որոշ փաթեթներ ընդհանրապես երթուղի չունեն, մինչդեռ մյուսները հետևում են լիովին լավին։
Երեք ստուգումները, որոնք լուծում են հարցը
Առաջին որոշման համար փաթեթների որսի կարիք չկա։ Ձեզ պետք է նախածանցի վիճակը երկու ծայրերում, յուրաքանչյուր կողմի ընտրած հաջորդ քայլը և քայլերի թիվ, որը կա՛մ կրկնվում է, կա՛մ ոչ։ Եթե նախածանցը մնում է տեղադրված նույն հաջորդ քայլով, մինչ երթևեկությունը ձախողվում է, հանգույցն ապրում է փոխանցման ուղու մեջ։ Եթե նախածանցը անհետանում է և վերադառնում, խափանումը փոխանցումից վերև է, և վերանորոգումը պատկանում է երթուղային արձանագրությանը, ոչ թե ստատիկ երթուղուն։
| Observation | Routing loop | Route flapping |
|---|---|---|
| Prefix in the table | Installed, same next hop throughout | Withdrawn and reinstalled, or next hop alternates |
| Hop count | Reaches zero at the same two gateways | Expires only while the prefix is missing |
| Failure shape | Consistent loss for that prefix from every source | Bursts, often after a link or peer event |
| Where the fix belongs | The site that owns the prefix, plus filters on the transit path | Advertisement, hold timers, or the flapping link |
Մեկ զգուշացում սկսելուց առաջ։ Եթե սա կարդում եք այն թունելով, որը հանգույց է կազմում, ձեր սեսիան մահանում է այն պահին, երբ փոխեք երթուղին։ Բացեք վահանակ կամ կառավարման ուղի, որը կախված չէ այն նախածանցից, որը պատրաստվում եք վերանորոգել։
Ստուգում առաջին՝ նախածանցը կայո՞ւն է, թե՞ խառնաշփոթ
Հարցրեք միջուկին, թե ինչ է տեղադրել, ոչ թե ինչ է խոստանում կարգավորումների ֆայլը։ Linux դարպասի վրա ip route get 10.20.30.40 կատարում է նույն որոնումը, ինչ փոխանցման ուղին, ներառյալ քաղաքականության աղյուսակները, մինչդեռ ip route show 10.20.30.0/24 ցույց է տալիս հենց գրառումը։ ip monitor route հեռարձակում է ամեն փոփոխություն դրա կատարման պահին, ինչը նախածանցի գալն ու գնալը դիտելու ամենաարագ ձևն է։
FRR կամ BIRD աշխատեցնող երթուղիչում հետաքրքիրը ոչ թե փոխանցման աղյուսակն է։ show ip bgp 10.20.30.0/24 վերադարձնում է ընտրված ուղին և դրա աշխատանքի ժամանակը՝ աշխատանքի ժամանակ, որը յուրաքանչյուր մի քանի րոպեն մեկ վերակայվում է, թրթռում է, որը կարող եք անվանել, ոչ թե հանգույց։ show ip bgp summary ցույց է տալիս հարևանների վիճակը և նախածանցների քանակը, ուստի անընդհատ ընկնող գործընկերը մեղքը վերցնում է փոխանցման ուղուց։
Գրեք պատասխանը նախքան ինչ-որ բան փոխելը։ Տասը րոպե կայուն, մինչ ping-երը ձախողվում էին, և տասը րոպեում չորս անգամ անհետանալը տանում են տարբեր հաջորդ քայլերի։ Երկրորդը անիմաստ է դարձնում ստատիկ երթուղու բոլոր տեսությունները։
Ստուգում երկրորդ՝ արդյո՞ք հաջորդ քայլը հետ է ցույց տալիս դեպի ժամանման թունելը
Հանգույցը պահանջում է երկու դարպասների համաձայնություն։ Փաթեթը ստացող կայքում նայեք այն ուղուն, որը փաթեթը կօգտագործի դուրս գալու համար՝ ip route get 10.20.30.40 from 10.10.5.20 իրական աղբյուրի հասցեով, քանի որ քաղաքականության կանոնը կարող է այլ կերպ պատասխանել, քան հիմնական աղյուսակը։ Այնուհետև կրկնեք որոնումը այն կայքում, որը ուղարկել է այն։ Եթե յուրաքանչյուր կողմ մյուսին է ընտրում որպես նույն նախածանցի հաջորդ քայլ, հանգույցն ապացուցված է, և ոչ մի որս ոչինչ չի ավելացնի։
Պատճառը գրեթե միշտ հայտարարություն է, որը չպետք է անցներ թունելով։ Թունել վերաբաշխված լռելյայն երթուղին, հեռավոր կայքի սեփական ենթացանցը ծածկող ագրեգատը կամ ապահովության համար գործընկերոջն ուղղված ստատիկ երթուղին բոլորը ստեղծում են նույն փոխադարձ հաջորդ քայլը։ Թունելը կարող է ամբողջությամբ կառուցված լինել և այնուամենայնիվ երթևեկությունը շրջանով տանել՝ strongSwan-ի փոխանցման նշումները նկարագրում են այդ պահանջի երթուղային կողմը։
WireGuard-ը արժանի է իր նշումին, որովհետև մեղադրելու հայտարարություն չկա։ wg show թվարկում է յուրաքանչյուր գործընկերոջ AllowedIPs-ը, և միջուկը գործընկերոջ համար նշանակում է ընդունում միայն այն դեպքում, երբ այն ընկնում է այդ միջակայքի մեջ։ Այնտեղ հանգույցը համընկնող AllowedIPs միջակայք է կամ ինտերֆեյսի վրայով հետ ցույց տվող ստատիկ երթուղի, ուստի վերանորոգումն ապրում է հենց այդ երկու տեղերում։
Ստուգում երրորդ՝ կարդացեք քայլերի թիվը, ոչ աստղերը
traceroute -n -I 10.20.30.40 և mtr -n -r -c 20 10.20.30.40 երկուսն էլ ցույց են տալիս ուղին, և ICMP ռեժիմը հաճախ ողջ է մնում այն զտումից, որը ուտում է UDP զոնդերը։ Հանգույցը նման է նույն երկու դարպասի հասցեների կարճ կրկնվող հաջորդականության, երբ TTL-ը ամեն անգամ բարձրանում է։ Ընկնելը նման է աստղերի վերջին պատասխանած դարպասից հետո, և մեկ լուռ քայլը ոչնչի ապացույց չէ։
Երբ ուղին երկիմաստ է, կարդացեք TTL-ը լարի վրա։ tcpdump -ni any -vv icmp երկու դարպասների վրա ցույց է տալիս յուրաքանչյուր փաթեթի TTL-ը և ժամանակի գերազանցման յուրաքանչյուր պատասխանի աղբյուրի հասցեն։ Եթե փաթեթը հեռավոր կայք է հասնում ավելի ցածր TTL-ով, քան ուղու հնարավոր քայլերի թիվն է, ինչ-որ բան ավելացնում է քայլեր, որոնք traceroute-ը ձեզ չի ցույց տալիս, և դա տեղի է ունենում, երբ մի կայքի հրային պատը զոնդերին պատասխանում է մյուսի անունից։
Վերանորոգեք նախածանցի տիրոջը, ապա ստուգեք երկու ուղղությունները
Որոշեք, թե որ կայքն է ստեղծում նշանակումը և որ անցողիկ ուղիներն են թույլատրված, ապա փոխեք հայտարարությունը կամ ստատիկ երթուղին այդ տիրոջ մոտ։ Ստացող կայքի ուղղումը գայթակղիչ է և սովորաբար սխալ՝ այն թաքցնում է հանգույցը մեկ նախածանցի համար և վատ հայտարարությունը թողնում է տեղում հաջորդի համար։ Երթուղու պիտակները, բաշխման ցուցակները և split-horizon կանոնները գոյություն ունեն դա ակունքում կանգնեցնելու համար, և դրանք ավելի էժան են, քան մեկ նախածանցի հետ համընկնող զտիչը։
Փոփոխությունից հետո ստուգեք ուղիղ և վերադարձի ուղղությունները առանձին, որովհետև հանգույցը կարող է փոխարինվել սև խոռոչով՝ առանց ախտանիշի տեսանելի բարելավման։ Գործարկեք ip route get երկու ծայրերից, երթևեկություն ուղարկեք հոսթից, որը դարպասը չէ, և թողեք ip monitor route աշխատի առնվազն մեկ պահման ժմչփ, որպեսզի թրթռումը վերանորոգում չհամարվի։
Նախքան ինչ-որ բան փոխելը հաստատեք այս հինգ կետերը՝ նախածանցը կայուն է, թե խառնաշփոթ, երկու ծայրերում հաջորդ քայլը ցույց է տալիս թունելի, քայլերի թիվը կրկնվում է, թե ոչ, մեկ կայք է տիրապետում նախածանցին, և դուք ունեք կառավարման ուղի, որը դիմանում է փոփոխությանը։ Եթե հինգից որևէ մեկը անհայտ է, մյուս չորսը ենթադրություններ են։