Што открива списокот на кандидати на WebRTC за вашиот VPN
Кандидат домаќин, серверски рефлектиран или реле кандидат кажува од каде дошла адресата. Само избраниот ICE пар кажува кој пат медиумот навистина го користел.
Кога тест-страница на WebRTC испечати 172.20.4.15, таа дознала дека во таа мрежа постои локален интерфејс. Тоа е вистинско откривање, и тоа не е истиот наод како «медиумот излезе низ излезот на VPN». Откривањето кандидати и рутирањето пакети се одделни механизми, а повеќето извештаи за истекување ги спојуваат во една пресуда. Кој од двата го гледате го одредува решението.
Собирањето се одвива пред нешто да биде испратено
Прелистувачот ги набројува локалните интерфејси, испраќа барање за поврзување до STUN сервер и бара распределба од TURN сервер, потоа резултатите ги запишува во описот на сесијата како линии на кандидати. Сето тоа завршува без повик, без медиум и без соговорник. Затоа списокот кандидати е запис за откривање, а не за пренос.
Современите прелистувачи можат да ја заменат буквалната адреса на кандидатот домаќин со mDNS име .local, па страницата не може да ја прочита приватната IP. Локалната мрежа сѐ уште ги гледа multicast барањата што го решаваат тоа име, значи адресата е скриена од апликацијата, а не отстранета од мрежата.
И редоследот е важен: ново вчитување на страницата собира ново множество, со друга распределба на TURN и можно различно рефлектирано мапирање. Две спуштања што не се совпаѓаат не се нужно две различни конфигурации.
Три типа кандидати, три вида докази
Секоја линија произлегува од различно набљудување. Секој тип одговара на различно прашање, а табелата ги одделува според тоа што можат и што не можат да утврдат.
| Candidate | Derived from | What it establishes | What it cannot establish |
|---|---|---|---|
| Host | An interface on the device | A local address exists in that network | That the peer can reach it |
| Server-reflexive | A STUN binding response | How a NAT mapped this source | Which exit the media will use |
| Peer-reflexive | A connectivity check that arrived | An address seen by the far side | That it was ever advertised |
| Relay | A TURN allocation | The relay server accepted the session | That the relay carries the call |
Реле кандидатот рутински се меша со интернет-адресата на корисникот. Тој му припаѓа на TURN серверот, а неговото присуство покажува дека реле било достапно, а не дека прелистувачот го избрало. Истата забуна оди во спротивна насока кај кандидатите домаќини, каде mDNS името ја крие адресата од страницата, додека мрежата сѐ уште ги носи барањата. Прочитајте го типот пред да ја прочитате вредноста.
Избраниот пар одговара на прашањето за рутирање
ICE го спарува секој локален кандидат со секој оддалечен, изведува проверки на поврзаност на секој пар и номинира победник. Тој номиниран пар, видлив во дијагностиката на самиот прелистувач, го носи медиумот. Сѐ друго на списокот е можност што загубила.
Победникот ви ја кажува формата на патот. Реле до реле оди преку TURN серверот, пар домаќин останува на локалната мрежа, а серверски рефлектираниот пар оди директно преку NAT. Тоа е фактот што му е потребен на VPN-проверката, и тој е различен факт од списокот адреси. Два повика со идентични списоци кандидати можат да земат различни парови.
Неизбраните кандидати сепак биле собрани, а собирањето е мрежен сообраќај што ја напушта машината. Повик што на крајот го користел релето не значи дека ништо не било откриено додека се градел списокот.
Контролите одговараат на цели, а не на оценка за истекување
Спецификацијата на WebRTC за постапување со IP опишува неколку политики: користење само на интерфејсот што ја носи стандардната рута, користење на сите интерфејси и исклучување на UDP без прокси, така што сообраќајот мора да оди преку реле или прокси. Секоја разменува поврзаност и доцнење за различен вид изложеност. Која ја спроведува прелистувачот и под кое име, зависи од платформата и верзијата.
Изберете политика според целта. Криењето локални адреси од страница е една цел; спречувањето директен сообраќај меѓу рамноправни страни е друга; држењето на секој пакет внатре во тунелот е трета. Првата е главно за тоа што дознава апликацијата, втората за тоа кој пат е дозволен, а третата мора да се спроведе и на границата на платформата или VPN-от.
Која и контрола да изберете, проверете ги двете половини: пуштете го тестот за собирање и запишете ги типовите кандидати, потоа прегледајте го избраниот пар за време на вистинска сесија. Чист список адреси со директен медиумски пат е сѐ уште пат што не сте го сакале.