Տվյալների բազայի հարցումը կախվում է IPsec-ի վրայով՝ UDP վերադասավորո՞ւմ, թե՞ TCP
Մաքուր handshake-ից հետո կախվող հարցումը մատնանշում է թունելի ուղու ներսը։ Երեք պայման որոշում է՝ ուղղել ուղին, թե վերադառնալ TCP-ի 443 պորտին։
TCP handshake-ից հետո կախվող հարցումը երթուղայնության խնդիր չէ։ Երթուղու սխալները ձախողում են handshake-ը, ուստի սեսիան, որը հաստատվում է և հետո լռում, մատնանշում է ուղու ներսը՝ ստուգում, MTU կամ թունելի UDP փաթեթների ժամանման ձևը։ Ձեր առջև որոշումն է՝ ուղղել այդ ուղին, թե տեղափոխել թունելը TCP-ի։ Երեք պայման է դա որոշում, և դրանցից ոչ մեկը տվյալների բազայի մասին չէ։
Դասակարգեք կախումը, նախքան թունելին մեղադրելը
Չորս արդյունք օգտատիրոջը նույնն են թվում, իսկ ինժեների համար բոլորովին տարբեր բան են նշանակում։
| What the client sees | What it rules out |
|---|---|
| Connection refused | Nothing is listening on the address and port the client reached |
| Timeout before the handshake | A filter, a missing route, or the wrong address |
| Handshake completes, query hangs | The session exists, so look at inspection, MTU and packet order |
| Stalls that recover on retry | Often reordering, or a state table entry expiring |
Միայն վերջին երկու տողերն են արդարացնում թունելի վրա ծախսված ժամանակը։ VPN-ի միջով մերժված կապը սովորաբար տվյալների բազայի՝ միայն loopback-ում լսելն է, ինչը լսողի խնդիր է, իսկ handshake-ից առաջ սպասման ժամկետը զտիչ կամ ուղի է։ Ոչ մեկը չի բարելավվում փաթեթավորման փոփոխությամբ։
Նախ գրեք դասակարգումը տոմսի մեջ։ Դա ամենաէժան քայլն է և հեռացնում է որոնման տարածքի մեծ մասը։
Երեք պայման, որոնք որոշում են UDP-ի և TCP-ի միջև
Փաթեթավորված IPsec երթևեկությունը գնում է UDP-ով, և UDP-ն ուղուն ազատություն է տալիս վերադասավորելու և գցելու՝ առանց որևէ մեկին ասելու։ Երբ վերադասավորումը փաթեթները մղում է թունելի կրկնության դեմ պատուհանից դուրս, դրանք լուռ դեն են նետվում, և ներքին TCP սեսիան պարզապես սպասում է։ Դա այն մեխանիզմն է, որ ընկած է հաջող handshake-ի և երբեք չվերադարձող հարցման հետևում։
Ուղին ուղղելը կամ TCP-ին վերադառնալը կախված է երեք բանից։ Առաջին՝ ուղու վրա իրական փաթեթի կորուստ կա՞, թե՞ միայն վերադասավորում։ Երկրորդ՝ կարո՞ղ եք փոխել, թե որտեղ է կատարվում ստուգումը, կամ բացառել այս թունելը վերադասավորող բաղադրիչից։ Երրորդ՝ արդյո՞ք բեռը զգայուն է կախման օրինաչափության նկատմամբ, օրինակ մեկ կապը կիսող բազմաթիվ մուլտիպլեքս սեսիաներ։
Եթե առաջին պատասխանը կորուստ է, իսկ երկրորդը՝ ոչ,443 պորտի TCP-ն պրագմատիկ այլընտրանքն է։ Եթե երկրորդ պատասխանը այո է, ուղղեք ուղին և թողեք UDP-ն։
Կարդացեք firewall-ի գրառումը, ոչ թե հավելվածի սխալը
Հավելվածը հաղորդում է սպասման ժամկետի մասին, ինչը ոչինչ չի ասում պատճառի մասին։ Firewall-ի սեփական մատյանն այն տեղն է, որտեղ հայտնվում է դեն նետումը կամ արգելափակումը, ուստի զտեք տվյալների բազայի և հավելվածի հասցեներով և փնտրեք ինչպես դեն նետումներ, այնպես էլ ընդունումներ։Սպառնալիքների կանխարգելման մոդուլները կարող են դեն նետել փաթեթները՝ առանց հավելվածի մակարդակում սխալ ստեղծելու، և դա հենց կախվող հարցման ձևն է։ Մատյանի լռությունը նույնպես տվյալ է՝ այն մատնանշում է մի բանի, որը չի գրանցում, օրինակ վերադասավորմանը։
Ստուգեք նաև կլաստերը։ Սխալ կարգավորված կլաստերը կարող է սեսիան պահել վիճակների աղյուսակում մի անդամի վրա, մինչ փաթեթները գնում են մեկ այլ անդամի ուղով, այնպես որ պատասխանները հասնում են այնտեղ, որտեղ վիճակ չկա։ Նման կախումները պատահական են թվում և չեն փոխկապակցվում ծանրաբեռնվածության հետ։
Համեմատեք երկու ծայրերը, նախքան ինչ-որ բան փոխելը, և համեմատեք ժամանման կարգը, ոչ թե փաթեթների քանակը՝
tcpdump -ni any udp port 4500 -w /tmp/encap.pcap
tcpdump -ni any tcp port 5432 -w /tmp/inner.pcapԻնչ արժե ձեզ իրականում 443 պորտի TCP-ն
Թունելը TCP-ի տեղափոխելը հեռացնում է վերադասավորման ախտանիշը, որովհետև միջանկյալ սարքը հիմա տեսնում է կարգավորված հոսք։ Այն նաև ստեղծում է TCP-over-TCP։ Արտաքին կապը նորից ուղարկում է այն, ինչ ներքինն արդեն նորից ուղարկել է, և մեկ կորուստը կարող է միանգամից կանգնեցնել բոլոր մուլտիպլեքս սեսիաները։ Մաքուր ուղու վրա դա անտեսանելի է։ Կորուստներով ուղու վրա բուժումն ավելի վատն է, քան ախտանիշը։
Փոխանակումը ընդունելի է, երբ այլընտրանքը կապի իսպառ բացակայությունն է, և այն պետք է փաստաթղթավորվի որպես բացառություն՝ պատասխանատուով, այլ ոչ թե ընդունվի որպես նորմա։
Գրանցեք տրանսպորտը, պորտը, օրինակելի հարցումը և չափված արդյունքը, ինչպես նաև ամսաթիվը։ Առանց այդ գրառման հաջորդ ինժեները կրկնում է փորձը, և բացառությունը լուռ դառնում է ճարտարապետություն։
Պահեք որոշումը վերանայելի
Ուղու ախտորոշումը արագ հնանում է։ Միջանկյալ սարքը փոխարինվում է, մոդուլի կարգավորումը փոխվում է, կապը թարմացվում է, և 443 պորտի TCP-ի պատճառը անհետանում է, մինչ կարգավորումը մնում է։ Դրեք վերանայման ամսաթիվ բացառության վրա և նշեք այն պայմանը, որը թույլ կտար վերադառնալ UDP-ին։
Փորձարկեք երկու տրանսպորտներն էլ փոքր հարցումով և մեծ արդյունքների հավաքածուով։ Վերադասավորումը երևում է որպես չափից կախված կախումներ, մինչ լսողի խափանումը հավասարապես կանգնեցնում է երկու չափերը։