Давхардсан IKE пакетууд: алга болсон шилжилтийг ол
Давтагдсан IKE хүсэлт нь таймерын үйл явдал бөгөөд онош биш. Хувилбарын зөв танигчтайгаар эхлүүлэгчээс хариу хүртэл нэг нотолгооны гинжийг байгуул.
Лог нэг IKE хүсэлтийг хоёр удаа харуулж, хэн нэгэн мобайл аплинкийг зааж, тикет таамаглалаар хаагдана. Тэр таамаглал бол домог: давтагдсан пакет нь нэг солилцооны тухай ажиглалт бөгөөд холболтын онош биш. Дахин илгээлт нь өөрийн дүрэмтэй хэвийн зан төлөв бөгөөд хариу удаан үед эрүүл замд ч гарч ирдэг. Интерфэйсийг буруутгахаас өмнө хариуг дага.
Домог: давтагдсан хүсэлт нэг холболтын алдагдлыг нотолдог
Хоёр өөр зүйл давхардал үүсгэдэг бөгөөд аль нь ч гэмт хүнийг нэрлэхгүй. Хүсэлт гаргагч хариу аваагүй тул хүсэлтийг давтаж болно, эсвэл барих цэг нь стект хаана холбогдсоноос болж нэг пакетыг хоёр удаа харуулж болно. Нэг хост дээр оролт, гаралтыг хардаг цорго нэг пакетыг хоёр гэж баяртайгаар бүртгэнэ, тэр логыг уншдаг операторт солилцооны танигчгүйгээр ялгааг харах арга байхгүй. Хоёрын аль нь гарт байгааг хэлж чарах хүртэл давхардлыг таймерын үйл явдал гэж үз.
Хоёр аплинк төөрөгдлийг сайжруулахын оронд улам дордуулна. Нэг лог мөр нэг интерфэйсийг нэрлэдэг боловч хариу нөгөөгөөр гарсан байж болно, тиймээс мессеж дэх интерфэйс нь пакет хаана харагдсаныг тодорхойлдог, ярианы хэлбэрийг биш. Тиймээс эхний асуулт нь аль холболт гэмтсэн бэ гэхээс илүү аль солилцоог харж байна вэ гэдэг.
Дахин илгээлт үнэндээ юу гэж хэлдэг
IKEv2-д дахин илгээлт ингэж ажиллана: хариу ирээгүй үед хүсэлт гаргагч хүсэлтийг давтана, хариулагч шинийг тооцоолохын оронд кэшлэсэн хариугаа дахин илгээж болно. Мессежийн танигчид тэр солилцоонд хамаарна, яг ижил танигчтай давтагдсан хүсэлтийг шинэ оролдлого бус протоколын ажил гэж таних боломжийг энэ олгодог. Эхний оролдлогт хамааруулахад эх сурвалжийн хаяг эсвэл эхлүүлэгчийн SPI-ээс илүү зүйл ихэвчлэн хэрэгтэй байдаг тул платформын өөрийн солилцооны бүртгэл пакетын жагсаалтаас дээр. IKEv1 өөр танигчтай өөр дүрэм баримталдаг бөгөөд эхний пакетын давхардлын тухай нийлүүлэгчийн анхааруулга бүх хувилбарт ижил утгагүй.
Тиймээс дахин илгээлтийн цаг тамга таймер дууссныг хэлнэ. Аль үсрэлт удаан байсныг хэлэхгүй, оператор буруутай гэж ч хэлэхгүй. Эдгээр нь тусдаа мэдэгдэл бөгөөд тикетэд зөвхөн хоёр дахь нь хэрэгтэй.
Практик үр дагавар нь дүгнэлт хийхээс өмнө солилцоог бүртгэх явдал юм. Орон нутгийн хүлээн авах хаяг, бодлогын сонгосон хариу зам, хосын tuple, солилцооны танигчуудыг нэг дор бич, учир нь бүртгэлийг дараа уншихад тус бүр нь өөр асуултад хариулдаг.
Нэг гинж болгон дөрвөн ажиглалтын цэг
Солилцоог харах дөрвөн тусдаа газраар биш, гинжин хэлхээний дөрвөн холбоос гэж бод. Холбоос нотолгоог хадгална эсвэл тодорхойгүй хэвээр үлдэнэ, гинж нь хамгийн сул бүртгэгдсэн холбоосынхоо хэмжээнд л мэдээлэлтэй. Доорх хүснэгт нь жагсаалт: байрлал бүр юуг тогтоож чадах, юуг хөндөхгүй орхих.
| Байрлал | Өгч чадах нотолгоо | Юуг нээлттэй орхих |
|---|---|---|
| Эхлүүлэгч илгээнэ | Хүсэлт энэ хостоос гарсан | Хос хүртэл хүрсэн эсэх |
| Хариулагч хүлээн авна | Хүсэлт ирсэн | Хариу үүссэн эсэх |
| Хариулагч илгээнэ | Хариу гарцаас гарсан | Зорьсон замаар явсан эсэх |
| Эхлүүлэгч хүлээн авна | Солилцоо дууссан | Бодлого үр дүнг хүлээн авсан эсэх |
Гинжийг зөвхөн хандалт байгаа газарт бөглөж, бусад хэсгийг таамаглахын оронд тодорхойгүй гэж тэмдэглэ. Нэг машин дээр пакет бүртгэдэг дэгээ нь алслагдсан машин юу хүлээн авсан тухай юу ч хэлэхгүй, хүсэлт харагдсан гэсэн лог мөр нь хариу хэзээ нэгэн цагт гарсан гэдгийн нотолгоо биш. Шударга цоорхойнууд таамаглалаар барьсан бүрэн харагдах бүртгэлээс илүү ашигтай.
Эхний алга болсон шилжилтийг ол
Гинжийг эхлүүлэгчээс гадагш алхаж, нотолгоогүй эхний холбоос дээр зогс. Хэрэв гарц хүсэлтийг хэзээ ч бүртгэхгүй бол алдаа нь түүний өмнөх замд байна. Гарц нэг хүсэлтийг дахин дахин бүртгэж, харин клиент хариуг хэзээ ч бүртгэхгүй бол буцах чиглэл сэжигтэй: эх сурвалжийн хаяг, хөрвүүлэлт, таны хянадаг хилийн бүр дэх шүүлт. Хариу ирсэн ч клиент урагшлахгүй бол асуулт тээврийг орхиж, бодлого эсвэл төлөв болсон.
Харьцуулах үед хос болон протоколыг тогтмол бариад, саатал, алдагдал, бодлого, төлөв тус бүр өөр цаг хугацааны шугам үүсгэдгийг сана. Мобайл сүлжээ автоматаар шалтгаан биш, хатуу шугам бүх шаардлагад автоматаар хангалттай найдвартай биш. Солилцоо амьд байх хооронд хоёр чиглэлийг бич:
tcpdump -ni any -vv 'udp port 500 or udp port 4500'
Хандалт алслагдсан төгсгөлөөс өмнө зогсвол, бүртгэл хаана зогсдогийг хэлбэл тус болно. Зөвхөн эхлүүлэгч дээр бичих нь хүсэлт гарч, хариу ирэхгүй байгааг харуулж, алдааг тэр дэгээний дараах бүх зүйлд нарийсгана, аль үсрэлт унагасныг мэддэг мэт дүр эсгэхгүйгээр. Алслагдсан холбоосуудыг тодорхойгүй гэж тэмдэглэж, хандалттай дараагийн хүнд бөглөхийг зөвшөөр. Ингэж бичсэн бүртгэл шударга хэвээр, бас богино хэвээр байна.
Ямар нэг зүйлийг өөрчлөхөөс өмнө харьцуул. Нэг хүсэлтийг нэг хос руу нэг протоколоор давтах нь хувьсагчдыг тоолох боломжтой байлгана, харин бичлэгүүдийн хооронд дахин тохируулах, түлхүүр шинэчлэх эсвэл бодлого засах нь харьцуулалтыг устгана. Өөрчлөлт зайлшгүй бол түүний дараа шууд дахин бич, ингэснээр өмнө болон дараа нь мөн ижил солилцоог дүрсэлнэ.
Ашигтай тайлан юу гэж хэлдэг
Үйлдэл хийх үнэ цэнэтэй тайлан нэг хүсэлтийг хариутай нь хослуулж, ард нь нотолгоогүй эхний алхмыг нэрлэнэ. Тэр өгүүлбэр долоо хоногийн дараа тэнд байгаагүй инженер уншихад тэсвэрлэж, дараагийн хүнд сэжигтэн биш эхлэх газрыг өгнө.
Зөвхөн дахин илгээлтийн онолыг шалгахын тулд таних шалгалтыг сулруулж, зөвшөөрөгдсөн протоколын багцыг бүү өргөжүүл. Аливаа дахин тохируулалтын өмнө анхны пакетууд болон үйл явдлын бүртгэлийг хадгал, учир нь дахин тохируулалт нь цуглуулах гэж байсан материалаа устгаж, солилцоо хаана гацсаныг харуулсан цагийг арилгана.
Домог нь нэг давхардал операторын бурууг нотолдог. Бодит байдал нь нэг давхардал таймер дууссныг нотолдог бөгөөд хариу нь хариуны зам дээр амьдардаг.