Երկու բաժանված թունելի պրոֆիլ, երկու մասնավոր նախածանց և մեկ հոսթ, որին հավակնում են երկուսն էլ։ Ախտանիշը հազվադեպ է մաքուր խափանում. ծառայությունը աշխատում է երկուշաբթի, ժամկետանց է դառնում երկրորդ կլիենտի վերամիացումից հետո և նորից աշխատում է վերագործարկումից հետո։ Այն հերթականությունը, որով միացրել եք կլիենտներին, չի որոշում արդյունքը, և կլիենտի միջերեսում տողերի հերթականությունը նույնպես։ Կատարեք այս ստուգումները հերթով և կանգ առեք առաջինի վրա, որը չի համապատասխանում, որովհետև հաջորդները իմաստ ունեն միայն այն դեպքում, երբ նախորդները ճշմարիտ են։

1. Գրի առեք նպատակակետը և աղբյուրը

Սկսեք այն ստույգ հասցեից, ուր գնում է ձախողված հարցումը, ոչ հոսթի անունից և ոչ հավելվածի անունից։ Լուծեք անունը մեկ անգամ, նշեք յուրաքանչյուր պատասխան և ընտրեք այն, որն իրապես օգտագործում է ձախողված հոսքը։ Այնուհետև նշեք նույն հոսքի տեղական հասցեն, որովհետև աղբյուրի հասցեն կարող է փոխել, թե որ քաղաքականության կանոնն է համընկնում և հետևաբար՝ որ աղյուսակն է դիտվում։

Մի քանի A գրառումներից մեկին ուղղված հարցումը կարող է ձախողվել, մինչ քույր հասցեն հաջողվում է, ինչը նման է անկայուն թունելի, բայց իրականում երկու տարբեր ուղի է։ Եթե նպատակակետը մի քանի պատասխան ունեցող անուն է, փորձարկեք յուրաքանչյուր պատասխանը առանձին, նախքան որևէ բան փոխելը։

2. Հարցրեք միջուկին, թե որ երթուղին է ընտրել

Չկարդաք երթուղիների աղյուսակը և պատասխանը չհանգեցնեք դրանից։ Տվեք նույն հարցը, որ տալիս է կույտը, նույն աղբյուրի հասցեով՝ ip route get 10.20.4.10 from 10.8.0.2 Linux-ում կամ Find-NetRoute -RemoteIPAddress 10.20.4.10 PowerShell-ում։ Արդյունքը նշում է այն երթուղին, որն իրականում կօգտագործվեր, և դա հաճախ այն չէ, ինչ սպասում էիք աղյուսակը կարդալիս։

Համընկնող երթուղիների մեջ սովորաբար հաղթում է ավելի կոնկրետ նախածանցը. /24-ը հաղթում է /16-ին այն հասցեի համար, որը գտնվում է երկուսի մեջ։ Հավասար երկարության համընկնումների միջև հաղթում է ավելի ցածր մետրիկան, և անջատված կապի վրա տեղադրված երթուղին բաց է թողնվում։ Երկու թունել, որոնք առաջ են մղում նույն /24-ը նույն մետրիկայով, այլ դեպք է. միջուկը պահում է երկու երթուղիներն էլ և ընտրում է նրանց միջև, ուստի արդյունքը կարող է հերթափոխվել՝ փոխարենը հետևելու կլիենտների միացման հերթականությանը։ Հենց այս վիճակն է ստեղծում երկուշաբթի աշխատում է, երեքշաբթի ձախողվում է օրինաչափությունը, և այլ հերթականությամբ վերամիացումը դա չի փոխում։

3. Ստուգեք, արդյոք քաղաքականության կանոնը վերահասցեավորել է որոնումը

Նախքան երթուղիների աղյուսակին դիմելը, միջուկը անցնում է իր քաղաքականության կանոններով։ Կանոնը կարող է տրված աղբյուրից, օգտվողից կամ հրապարակային պատի նշանից երթևեկն ուղարկել բոլորովին այլ աղյուսակ, ուստի հիմնական աղյուսակի հաղթող նախածանցը կարող է երբեք չդիտվել այդ հոսքի համար։ ip rule show թվարկում է դրանք գնահատման կարգով, իսկ ip route show table 100 ցույց է տալիս, թե ինչ է իրականում պարունակում ընտրված աղյուսակը։

Այստեղ երկու թակարդ կա։ Դատարկ աղյուսակին ուղղված կանոնը ստեղծում է որոնում, որը թափվում է հաջորդ կանոնին, ուստի կանոնը թվում է, թե ոչինչ չի անում։ Երկրորդը հենց առաջնահերթության համարն է. կանոնները կարդացվում են աճման կարգով, իսկ ներկառուցված արժեքներն են 0 local, 32766 main և 32767 default։ 32767-ից ցածր համարով կանոնը դիտվում է ամեն ինչ ընդգրկող լռելյայն կանոնից առաջ։ 32767-ից բարձր համարով կանոնը կանգնած է դրա հետևում և հասանելի է միայն այն ժամանակ, երբ ոչ մի նախորդ աղյուսակ չի պատասխանում, ինչը կանխում է main-ում սովորական լռելյայն երթուղին, ուստի գործնականում երբեք չի հասնում դրան և լուռ ոչինչ չի անում, մինչ տեղադրված է թվում։ Եթե կլիենտը գրել է կանոն և երթուղի, ստուգեք երկուսն էլ և կրկին ստուգեք վերամիացումից հետո, որովհետև վերագրված պրոֆիլը կարող է ավելացնել երկրորդ կանոն այլ առաջնահերթությամբ։

4. Առանձնացրեք երթուղային հավասարությունը կրկնվող հասցեային պլանից

Երբեմն նախածանցն ամենևին էլ խնդիրը չէ։ Երկու տեղամասեր, որոնք երկուսն էլ օգտագործում են 192.168.1.0/24, նշանակում են, որ նույն հասցեն նույնականացնում է երկու տարբեր հոսթերի, և ոչ մի երթուղի չի կարող տարբերել նրանց։ Երկու պատասխաններից մեկին ուղղված հոսթի երթուղին աշխատում է միայն այնքան, մինչև մյուս տեղամասը պատասխանի նույն անվան համար, և այդ ժամանակ բացառությունը լուռ դառնում է հենց խափանումը։

Նշանն այն է, որ նպատակակետի հասցեն երկու ուղիներում նույնն է, և տարբերվում է միայն նախատեսված սեփականատերը։ Սա հասցեային պլանի որոշում է, ոչ թե երթուղավորման կարգավորում. վերահամարակալեք մի կողմը, դրեք մի կողմը թարգմանող դարպասի հետևում կամ հասեք երկրորդ տեղամասին իր անունները լուծող վստահված սերվերի միջոցով։ Լռելյայն երթուղին իջեցնելը կամ հոսթի բացառությունները դիզելը ընդամենը տեղափոխում է բախումը ուրիշ տեղ։

5. Հաստատեք, որ լուծիչը համաձայն է երթուղու հետ

Սխալ մասնավոր հասցեով լուծվող անունը արտադրում է երթուղավորման կոնֆլիկտի բոլոր ախտանիշները և ոչ մեկը դրա պատճառներից։ Համեմատեք հոսթի ստացած պատասխանը այն հասցեի հետ, որն իրականում օգտագործում է նպատակակետը, և ստուգեք, թե որ լուծիչն է պատասխանել։ Եթե թունելը մղում է լուծիչ, կլիենտը պետք է տեղադրի այն թունելն օգտագործող հոսքերի համար. եթե ոչ, հոսթը շարունակում է հարցնել տեղական լուծիչին, որը կարող է պատասխանել որոնման տիրույթից կամ քեշավորված գրառումից։

Հարցրեք լուծիչին ուղղակիորեն և նշեք պատասխանած սերվերը։ Կարճ TTL-ով քեշավորված պատասխանը կարող է նաև բացատրել, թե ինչու է վերամիացումից հետո առաջին հարցումը իրեն այլ կերպ պահում, քան հինգերորդը։

6. Կրկին միացեք, զննեք կիրառված վիճակը, ապա փորձարկեք երկու հոսքերը

Ուղղումից հետո կրկին միացեք և զննեք, թե ինչ է իրականում տեղադրել կլիենտը՝ պրոֆիլի խմբագրին վստահելու փոխարեն։ Կրկին կարդացեք կանոնները, աղյուսակները և դրա արդյունքում ստացված ip route get պատասխանը։ Երկրորդ կլիենտը կարող է միանալիս կրկին տեղադրել իր սեփական երթուղին և վերստեղծել բախումը, դրա համար էլ վիճակի ստուգումը պետք է տեղի ունենա վերջին կլիենտի միանալուց հետո, ոչ թե առաջ։

Փորձարկեք երկու հոսք, ոչ մեկը. այն հարցումը, որը նախկինում ձախողվում էր, և այն ռեսուրսը, որը պետք է օգտագործի մյուս թունելը։ Ամբողջ մասնավոր երթևեկը մեկ միացման տեղափոխելը կանցնի առաջին թեստը, բայց կկոտրի երկրորդը, և դա բռնում է միայն զույգ թեստը։ Գրանցեք յուրաքանչյուր պահված բացառություն՝ նպատակակետով և պատճառով, որպեսզի հաջորդ մարդը կարողանա տարբերել դիտավորյալ հոսթի երթուղին մնացորդայինից։

Առնչվող հոդվածներ