Хөтөч HTTPS хуудас ачаалж байх үед SSH клиент өөр серверт хүрч, шийдэгч асуултад хариулж байгааг төсөөлөөд үзээрэй — бүгд нэг OpenVPN сессээр. Физик интерфейс дээр та нэг яриа харна; туннелийн дотор гурав харна. Хоёр үзэл хоёулаа зөв бөгөөд яагаад гэдгийг мэдэх нь ашигтай болон төөрөгдүүлсэн бичлэгийн ялгаа юм. Нэг дотоод урсгалыг сокетоос утас хүртэл дагавал давхаргалал нь хийсвэр байхаа болино.

Нэг гадаад яриа, олон дотоод урсгал

Апп бүр өөрийн сокетыг нээж, цөм нь түүнд эх хаяг, эх порт, очих хаяг, очих порт, протокол гэсэн таван элементээс бүрдсэн багцыг өгнө. Эдгээр багц нь ямар ч туннель оролцохоос өмнө бий. Дараа нь маршрутлалт тэдгээр бүгд туннелийн төхөөрөмжөөр гарна гэж шийддэг тул OpenVPN-д өгөгдсөн пакет дотроо анхны толгойнуудыг хэвээр агуулна. OpenVPN тэр дотоод пакетыг шифрлэж, үр дүнг хамтрагчтай нэг гадаад UDP эсвэл TCP ярианд ороодог. Тиймээс гадаад яриа нэг бол дотоод урсгалууд аппууд нээсэн хэмжээгээр олон.

Юу ч нурж унахгүй. Дотоод багцууд эхнээс эцэс хүртэл хадгалагдаж, иймээс алслагдсан тал гурав дэх урсгалыг ялгаж чадна.

Хэвээр үлддэг порт

Тогтмол үлддэг зүйл бол гадаад багц: таны хаяг, клиент холбосон локал порт, хамтрагчийн хаяг, тохируулсан үйлчилгээний порт. Зам дээрх галт хана эсвэл NAT-д зөвшөөрөх ёстой нь яг энэ багц бөгөөд дээд холбоос дээрх бичлэг яг үүнийг харуулна. Дахин холбогдсон эсвэл сүлжээ солигдсоны дараа өөрчлөгддөг нь ч мөн энэ, учир нь клиент өөр локал порт холбож болно. Нэг туннель гэдэг нь нэг тогтмол эх порт үүрд гэсэн үг биш.

Дотоод портууд нь төгсгөлийн цэгүүдэд чухал зүйл. Гадаад тээвэр операторын тохируулсан порт дээр сууж байсан ч HTTPS урсгал туннелийн дотор очих 443 портыг хадгална. Аппын төгсгөлийн цэгүүд гадаад портын тухай хэзээ ч мэддэггүй.

Алслагдсан төгсгөлд декапсуляц юуг өөрчилдөг

Хамтрагч дээр гадаад давхарга арилж, үлддэг нь дотоод пакет. Тэндээс дамжуулалт болон нэвтрэх бодлого дотоод очих цэг болон протоколд хамаарна. Вэб сервер одоо ч HTTPS холболт хүлээн авч, SSH демон одоо ч SSH хүлээн авч, шийдэгч одоо ч асуулт хүлээн авна.

Иймээс гадаад тээврийг зөвшөөрсөн дүрэм дотоод үйлчилгээг зөвшөөрсөнтэй ижил дүрэм биш. Эхнийх нь замыг дүрсэлдэг; хоёр дахь нь эрх олголтыг дүрсэлдэг.

Гадаад TCP гэдэг нь нэг урсгал, нэг холболт биш

Гадаад тээвэр UDP үед дотоод урсгал бүрийн хувь заяа бие даасан: алдагдсан датаграм өөрийн дахин илгээх хүртэл нэг дамжуулалтад нөлөөлнө. Гадаад тээвэр TCP үед бүх дотоод урсгал нэг найдвартай байт урсгалыг хуваалцана.

Яг энэ хуваалцсан урсгал бол хүмүүсийн анзааралгүй өнгөрдөг хэсэг. Сэргээлт бүхний төлөө нэг удаа болдог тул нэг алдагдсан сегмент дотор мультиплекслагдсан апп бүрийн урсгалыг саатуулна. Төгсгөлийн цэгүүдэд одоо ч олон холболт, утсан дээр нэг холболт байгаа бөгөөд дарааллын толгойн эффект яг утсан дээр амьдардаг. Сонсож буй портуудын тоо энэ тухай юу ч хэлэхгүй, иймээс порт тоолох нь туннелийн гүйцэтгэлийн тухай бодох муу арга юм.

Өөрийн тохиргоог нарийн тайлбарла

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

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

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