VPN эсвэл TURN релей: WebRTC дуудлагыг үнэхээр аль нь зөөдөг вэ?
Туннель нь ICE-ийн хардаг замыг өөрчилдөг; тэр хэзээ ч релей хуваарилдаггүй, дохиолол өгдөггүй. VPN гаралт болон TURN сервер тус бүр юу өгдөг талыг харьцуул.
Хуудас VPN-ээр ачаалагдаж, дуудлага хэзээ ч холбогдохгүй: нэг хаягийн мөрөнд хоёр өөр гэмтэл. Туннель хөтөчийн ашигладаг замыг өөрчилсөн; энэ нь дохиоллын үйлчилгээ, STUN сервер эсвэл релей болоогүй бөгөөд ICE аль нэр дэвшигчийн хосыг сонгохыг ч шийдэхгүй. Компонент бүрийн гүйцэтгэх ажлыг тусгаарлах нь л бүрхэг «WebRTC хаагдсан» гэдгийг тодорхой гэмтэл болгоно.
Дөрвөн ажил, туннель зөвхөн нэгд нь хүрнэ
Аппликейшн сессийн мэдээллийг ямар нэгэн дохиоллын зохион байгуулалтаар солилцдог, энэ нь эхний ажил. ICE нэр дэвшигчийн хаягуудыг цуглуулж, нэг нь ажиллах хүртэл хосуудыг шалгадаг, энэ нь хоёр дахь. STUN нь түншид өөрийн трафик гаднаас хэрхэн харагдахыг мэдэх боломж олгодог, TURN нь шууд зам байхгүй тохиолдолд релей хуваарилдаг. Эдгээр дөрвөн үүрэг нь ялгаатай бөгөөд VPN тэдний тулгардаг хаяг, шүүлтэд нөлөөлдөг, тэдгээрийн аль нэгийг нь өөрөө өгдөггүй.
Тиймээс амжилттай нэвтрэлт нь медиа замын талаар юу ч хэлэхгүй. Дохиолол нь ихэвчлэн хуудас аль хэдийн ашиглаж буй HTTPS-ээр, 443 порт дээр явдаг бол медиа нь UDP-ээр огт өөр очих газар руу явж болно.
Хувийн хаяглалт нь төөрөгдлийг улам ихэсгэдэг. Туннелийн хаяг нь түншид тэр тийш буцах зориулалтын зам байгаа үед л хэрэгтэй; хувийн байх нь харилцан хүртээмжийн нотолгоо биш бөгөөд шалгах боломжгүй нэр дэвшигчдийг хаяхдаа хөтчүүд үүнийг тийм гэж үздэггүй. Танд орон нутгийн мэт санагдах нэр дэвшигч нөгөө талаас шалгагдахгүй байж болно. Туннель медиаг унагаж байна гэж дүгнэхээс өмнө энэ зөрүүг хасах нь зүйтэй.
VPN гаралтыг TURN релейтэй харьцуул
Хоёулаа пакетыг дамжуулдаг тул андуурдаг, дээрх харьцуулалтын хүснэгтийг онцлогийн жагсаалт гэж бус, багана баганаар унших нь зүйтэй. Релей хуваарилалт нь баталгаажсан хүсэлтээр үүсдэг сесс бүрийн объект; туннель бол маршрут. Нэг нь хугацаа дуусдаг итгэмжлэлтэй, нөгөө нь хүрч болох эсвэл болохгүй түншийн хаягтай.
| Component | What it contributes | What it needs to work | What it cannot do |
|---|---|---|---|
| VPN exit | Changes the observed mapping and the route packets take | A working tunnel and a policy that permits the media transport | Allocate a relay or supply signaling |
| STUN server | Reports the mapped address a peer appears to use | Reachability from the client, on its configured transport | Carry media when a direct path fails |
| TURN server | Relays media through an authenticated allocation | Valid credentials, an allowed transport and sufficient capacity | Fix a missing ICE policy or an unauthorized client |
| Signaling channel | Carries offers, answers and candidate lists | Both peers reaching the same application endpoint | Establish connectivity by itself |
Портын дугаарууд ялгааг тодорхой болгоно. TURN нь анхдагчаар UDP ба TCP-д 3478, TLS-д 5349 дээр сонсдог бөгөөд 443-ыг зөвшөөрөх боловч эдгээр портыг хаядаг сүлжээ нь хөтлөлт хэвийн үргэлжлэх ч релей дуудлагыг бүтэлгүйтүүлнэ. VPN-ийн портыг өөрчлөх нь эдгээрийн алийг ч тохируулахгүй, учир нь чухал портууд туннельд бус релей үйлчилгээнд хамаарна.
Оношилгоог уншиж, дараа нь дуудлагыг турш
Хөтчүүд шаардлагатай мэдээллийг пакет барихгүйгээр харуулдаг. Хөтчийнхөө WebRTC оношилгооны хуудсыг нээж, дуудлага хийгээд, цуглуулсан жагсаалтын оронд сонгосон нэр дэвшигчийн хосыг унш: ямар орон нутгийн ба алслагдсан нэр дэвшигчийн төрөл сонгогдсон, ямар тээвэр, хаягийн бүлгээр, зам нь шууд уу эсвэл релейгээр уу.
Хоёр уншилтыг урьдчилан мэдэх нь зүйтэй. Хэрэв сонгосон хос нь хувийн хаяг дээрх хост-хост бол медиа нь дүгнэлт хийж болох зам дээр үлддэг; хэрэв релей-релей бол дуудлага релейн хүчин чадлыг зарцуулж, тэр үйлчилгээний хүртээмжээс хамаарна. Сонгосон хосгүйгээр «шалгаж байна» дээр зогсдог гэмтэл нь нэр дэвшигчид цугларсан ч нэг ч нь холболтын шалгалтыг давж чадаагүй гэсэн үг.
Дараа нь мөн тэр дуудлагын мөн тэр хоёр үзүүрийг зөвхөн нэг зөвшөөрөгдсөн нөхцөлийг өөрчлөж харьцуул, үр дүнг «холбогдсон» заагчаар бус, хоёр талын медиа эсвэл өгөгдлөөр хүлээж ав. Нэр дэвшигчийн цуглуулалт нь нэг ч аудио фрейм зөөдөггүй олон тохиолдолд амжилттай болдог. Өөрчлөлтийн нөгөө талд дуудлагыг давтаж, хоёр оношилгооны бичлэгийг хадгал, учир нь хоёр гүйлтийг харьцуулах нь аль нэгийг ганцаар уншихаас илүү мэдээлэл өгдөг. Ижил үзүүрүүд, ижил кодек, нэг өөрчлөгдсөн хувьсагч.
ICE тээврийн бодлогыг санаатайгаар relay дээр тавьдаг аппликейшн зөвхөн релей нэр дэвшигчдийг хүсдэг. Тэр тохиргоо релей үүсгэхгүй, дутуу итгэмжлэлийг засахгүй; шаардлагыг тодорхой болгодог, энэ нь хэн нэгэн сайтын сонгосон бодлогын төлөө VPN-ийг буруутгах үед хэрэгтэй.
Нууцлалын мэдэгдлийг нотолгоотой адил нарийн бариарай
Нэр дэвшигчдийн илчлэлт нь зөвхөн туннелийн төлөвөөс бус, хөтөч ба аппликейшний бодлогоос хамаардаг бөгөөд W3C-ийн түнш холболтын тодорхойлолт IP-тэй харьцахыг өөрийн тусдаа асуудал гэж үздэг. Тиймээс холбогдсон VPN нь дуудлага зөвхөн нэг сонгосон хаягийг илрүүлнэ гэж амлах сул үндэс. Нэг туннелийн ард байгаа хоёр түнш хост-оос хэзээ ч гарахгүй зам хүртэл сонгож болно, энэ нь нэгэн зэрэг нууцлалын сайжруулалт ба холболтын хязгаарлалт юм.
Таны нарийн хэлж чадах зүйл илүү нарийн бөгөөд илүү ашигтай: аль нэр дэвшигчийн хос сонгогдсон, ямар тээвэр түүнийг зөөсөн, тэр зам туннелийн дотор үлдсэн эсэх. Эдгээр гурван баримтыг ажиллаж буй болон бүтэлгүйтсэн дуудлагад бичиж ав, ялгаа нь ихэвчлэн засах ёстой компонентийг нэрлэдэг.
Холболт ажилласны дараа гүйцэтгэлийг хүртээмжээс тусгаарла. Алдагдал, саатал, дараалал, MTU бүгд зөв нэр дэвшигчийн хосын доод хэсэгт байрладаг бөгөөд тасарч буй дуудлагыг холболтын гэмтэл гэж үзэх нь таныг шалтгаангүйгээр нэр дэвшигчдийн жагсаалт руу буцаана.