Дахин ачаалсны дараах эхний холболт ажиллана. Үүний дараах бүх оролдлого холболтын үе шатанд гацаж, эцэст нь хугацаа дуусна, цорын ганц найдвартай эмчилгээ нь дахин нэг ачаалалт юм. Энэ хэв маяг нь профайлын асуудал биш бөгөөд нэвтрэх мэдээллийн асуудал ч биш. Арын дэвсгэрт ямар нэг зүйл өмнөх оролдлогын төлөвийг барьж байгаа бөгөөд дараагийн оролдлого түүнтэй мөргөлдөнө.

macOS дээр тэр ямар нэг зүйл ихэвчлэн IKE демон байдаг.

Хэв маяг: нэг холболт, дараа нь хугацаа дуусах

Ачаалах бүрт яг нэг удаа ажилладаг холболт нь салгахад тэсвэрлэдэг боловч дахин ачаалалтад тэсвэрлэдэггүй төлөвийг заана. Профайлууд хоёуланд нь тэсвэрлэдэг тул профайл нь хувьсагч биш. Нэвтрэх мэдээлэл ч хоёуланд нь тэсвэрлэдэг, сервер бүртгэлийг түгжихгүй л бол. Дахин ачаалалтад өөрчлөгддөг зүйл бол ажиллаж буй демонуудын багц ба тэдний барьж буй сокетууд юм.

Энэ нь нэг ч лог нээхээс өмнө мөрдөн шалгалтыг нарийсгана. Асуулт нь аль процесс IKE портыг эзэмшиж, юу хийж байна гэж бодож байгаа болох болно.

Хоёр демон, нэг порт

Систем ажиллуулдаг racoon холболт IKE 1 хувилбараар ярих үед. Одоогийн хувилбарууд бас авчирдаг iked IKEv2 болон илүү шинэ IPsec стекэд зориулсан. Хоёулаа UDP 500 ба UDP 4500-г эзэлж чадна, мөн холболтын оролдлого нууц үгийн асуултад цуцлагдсан эсвэл сүлжээний өөрчлөлтөөр тасалдсан тохиолдолд хоёулаа хагас нээлттэй аюулгүй байдлын холбоог барьж чадна.

Ийм зүйл тохиолдоход дараагийн оролдлого цэвэрхэн эхлэхгүй. Хуучин холбоо партнерын төлөвийг эзэлсээр байхад тэр хэлэлцээр хийхийг оролддог бөгөөд тодорхой алдаатай бүтэлгүйтэхийн оронд солилцоо зогсдог. Хэрэглэгч эргэлдэх тэмдэг харж, дараа нь хугацаа дуусна.

Ямар нэг зүйлийг алахаас өмнө эзэмшигчийг ол, учир нь хариулт нь аль үйлчилгээг дахин эхлүүлэх, дараа нь аль логийг уншихыг тодорхойлно.

sudo lsof -i :500 -i :4500
ps -ef | grep -E "racoon|iked"

Гаралтыг хоёр баримт гэж унш: аль процесс портыг барьж байна, нэгээс олон байна уу. Нэг сокетын төлөө өрсөлдөж буй хоёр IKE демон тогтворгүй сервер мэт харагдах олон тасалдалтай зан төлөвийг тайлбарлана.

Процессыг биш, ажлыг дахин эхлүүл

Хуучин системд процессыг устгаад дараагийн холболтыг дахин эхлүүлэхэд хангалттай. Одоогийн хувилбаруудад демоныг launchd удирддаг бөгөөд зөвхөн процесст дохио өгөх нь ажлыг ажиллахгүй, эхлэхээр төлөвлөгдөөгүй төлөвт үлдээж болно. Үүний оронд ажлыг зогсоож, эхлүүл.

sudo launchctl stop com.apple.racoon
sudo launchctl start com.apple.racoon

Хэрэв launchd-д ажлын бүртгэл байхгүй бол процессыг нэрээр нь устгах нь дараагийн оролдлогод шинэ хэлэлцээрийг албаддаг. Шалгалт хоёр тохиолдолд ижил: дахин холбогдохыг оролдоход ямар ч процесс портыг барьж байх ёсгүй. Үүнийг ижил командаар баталгаажуул lsof дахин ачаалалт ажилласан гэж таамаглахын оронд.

Дараа нь нэг удаа холбогдоод клиентийн логийг эхнээс нь унш. 1-р үе шатыг давж, дараа нь дамжуулалтын алдаа мэдээлсэн хэлэлцээр локал сокетын асуудлыг давтаж байна; партнерын татгалзсан хэлэлцээр огт өөр тасалбар юм.

Сервер нь өөрөө татгалзаж байгаа үед

Хоёр дахь холболт бүр локалдаа бүтэлгүйтдэггүй. Сервер салгасны дараа тодорхой цонхны турш шинэ нэвтрэлтийг татгалзаж болох бөгөөд клиентийн хугацаа дуусах нь гацсан демонтой яг адилхан харагдана. Ялгаа нь хямд: демоныг дахин эхлүүлэх нь тус болохгүй ч өөр бүртгэл шууд холбогдвол цонх нь серверийн талд байгаа бөгөөд Mac хэзээ ч асуудал байгаагүй.

Хуваасан туннелийн бодлого ижил хэлбэрийг нөгөө талаас үүсгэдэг. Бүх урсгалыг туннельд шаарддаг сервер хуваасан туннельд тохируулсан клиентийг хэлэлцээрийн үеэр хаяж, клиент бодлогын татгалзал биш харин хугацаа дууссан гэж мэдээлнэ. Профайлыг бүгдийг туннелээр илгээхээр өөрчлөх нь түүнийг холбогдуулж магадгүй, гэхдээ энэ нь сүлжээний эзэмшигчтэй хамт авах бодлогын шийдвэр, чимээгүйгээр хэрэгжүүлэх засвар биш.

Клиентийг дахин өөрчлөхөөс өмнө партнерын логийг унш. Татгалзал, бодлогын зөрчил, чимээгүй хаялт нь гурван өөр шалтгаан бөгөөд бүгд Mac-ийн дэлгэц дээр «холбогдож байна» гэж харагдана.

Хуучин клиентүүд ба 64-битийн цөм

Хуучин Cisco IPSec клиент 32-битийн болон PowerPC системд зориулж бүтээсэн цөмийн өргөтгөлийг ачаалдаг. 64-битийн цөмд ачаалсан Mac дээр тэр өргөтгөл ачаалагдахгүй бөгөөд клиент VPN дэд системд огт хүрч чадахгүй тул 51 алдаатайгаар эрт бүтэлгүйтнэ. Буруу архитектуртай цөмийн өргөтгөлийг хэчнээн удаа демон дахин эхлүүлсэн ч засагдахгүй.

Өргөтгөлийг дахин ачаалах нь хэсэг хугацаанд ажиллаад дараагийн ачаалалтад дахин бүтэлгүйтэж болно. Байнгын шийдэл нь хуучин цөмийг дэмжлэгтэй хэвээр байгаа газарт нь ажиллуулах, эсвэл системтэй хамт ирдэг суурилагдсан клиент руу шилжих юм. Ачаалагдахгүй гуравдагч этгээдийн клиент дээр оройг үрэхээс өмнө архитектурыг шалга.

  • Нэг удаа дахин үүсгэж, дараа нь профайлд хүрэхээс өмнө аль демон UDP 500-г эзэмшиж байгааг шалга.
  • 1-р үе шатын дараах эхний бүтэлгүйтлийг унш: дамжуулалтын алдаа локал сокетыг заана.
  • Зөвхөн процессыг биш, launchd ажлыг дахин эхлүүлж, порт чөлөөтэй эсэхийг баталгаажуул.
  • Серверийн талын дахин баталгаажуулалтын цонхыг клиентийн эвдрэлээс ялгахын тулд хоёр дахь бүртгэл туршиж үз.
  • Клиентийг буруутгахаас өмнө цөмийн архитектурыг тэмдэглэ.

Яг нэг удаа ажилладаг VPN нь эсрэг нь нотлогдох хүртэл төлөвийн асуудал юм. Демоныг цэвэрлэх нь дахин ачаалалтаас хурдан бөгөөд дахин ачаалалт хаях байсан логийн нотолгоог хадгална.

Холбоотой нийтлэлүүд