Մեկ /24 լաբորատոր տպիչի համար անհետանում է ip route show երկու կանչերի միջև, իսկ հաճախորդի մատյանը միայն ասում է, որ ցանցը փոխվել է։ Ոչինչ սխալ չէր հրամանի, նախածանցի կամ ձեր արտոնությունների մեջ։ Կորպորատիվ հաճախորդը, որը տիրապետում է հոսթի երթուղավորման մոդելին, վերահաստատում է այդ մոդելը, երբ որևէ մեկը փոխում է այն, ուստի ձեր ավելացրած գրառումը հեռացվում է որպես ներխուժող։ Նույն աղյուսակում նրա դեմ պայքարը պարտվող դիրք է։ Լուծումը այդ աղյուսակի համար մրցակցությունը լիովին դադարեցնելն ու բացառությունը տեղադրելն է այնտեղ, որտեղ մոնիտորը երբեք չի նայում։

Մոնիտորը բացատրում է անհետացած երթուղին

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

ip route show
ip route add 192.168.2.0/24 dev enp0s31f6
sleep 5; ip route show

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

Երկրորդ աղյուսակը անտեսանելի է մոնիտորի համար

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

Գործարքը սպասարկումն է։ Երկու օբյեկտ կարող են հեռանալ իրարից, և ցանկում կանոնի դիրքը նույնքան կարևոր է, որքան այն աղյուսակի ներսում եղած երթուղին, որը նա ընտրում է։

Կառուցեք բացառությունը, ապա թողեք, որ այն հաղթի

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

ip rule add to 192.168.2.0/24 table 110 pref 30010
ip route add 192.168.2.0/24 dev enp0s31f6 table 110
ip route get 192.168.2.50

ip route get լուծում է այն երթուղին, որը միջուկը կօգտագործի՝ ներառյալ սարքը և աղբյուրի հասցեն։ Այն չի տպում աղյուսակի նույնացուցիչը, ուստի զուգակցեք այն ip rule show-ի հետ, երբ պետք է հաստատեք, թե որ աղյուսակը հաղթեց։ Միասին նրանք պատասխանում են միակ կարևոր հարցին՝ արդյոք այդ հասցեի երթևեկությունը դուրս է գալիս այնտեղից, որտեղ դուք մտադիր էիք։

Նույն գաղափարի այլ ձևեր

Ձևանմուշը ընդհանրացվում է, հենց որ դադարում եք մտածել նպատակակետերով։ Տեղական ենթացանցը կարող է մնալ հասանելի, մինչ թունելը պահում է լռելյայն երթուղին։ LAN-ին միացված SSH սերվերի պատասխանները կարող են դուրս գալ այն ինտերֆեյսով, որով եկել են, փոխանակ անհետանալու թունելում։ Իսկ ինտերֆեյսի վրա հիմնված կանոնը կարող է անլար ինտերֆեյսով եկող ամեն ինչ մղել թունել, մինչ հոսթն ինքը ստեղծած երթևեկությունը մնում է Ethernet-ում.

ip rule add iif wlan0 table 10
ip route add default dev tun0 table 10

Վերջին դեպքը համընկնում է մուտքային ինտերֆեյսի հետ, ոչ թե նպատակակետի, ինչը այլ կանոնի տեսակ և այլ մտածողության մոդել է։ Փոխանցված երթևեկությանը նաև անհրաժեշտ է միացված net.ipv4.ip_forward, և հեռու կողմը պետք է աղբյուրի միջակայքը հետ ուղղորդի կամ թարգմանի. մեկ մեքենայի կանոնը երբեք չի ստեղծում ուղու մյուս կեսը։

Վերաբերվեք կանոնին որպես ժամանակավոր

Կանոններն ու աղյուսակային երթուղիները ապրում են հիշողության մեջ։ Վերամիացումից հետո թունելի սարքը կարող է վերանվանվել, հատկացված հասցեն կարող է տեղափոխվել, և հին արժեքը պահող կանոնը լուռ դադարում է համընկնել։ Կրկին կիրառեք ամբողջ փոփոխությունը մեկ սկրիպտից, որը տիրապետում է դրան, ապա նորից ստուգեք ip rule show-ը, սարքի ընթացիկ անունը և նոր ip route get-ը իրական նպատակակետի դեմ, նախքան բացառությանը վստահելը։

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

Գրեք աղյուսակի համարը, առաջնահերթությունը և նպատակակետը սկրիպտի կողքի գրառման մեջ։ Հակառակ դեպքում հաջորդ մարդը կգտնի թունելին գերազանցող կանոն և որևէ միջոց չի ունենա իմանալու, թե ինչու։

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