Пренасочувањето на TCP 1723 често го отвора првиот дел од PPTP и го остава остатокот скршен, па Windows при обидот сепак враќа грешка 807. Следниот импулс е да се додаде правило за портата 47, и токму тој чекор троши половина ден: GRE е број на протокол во IP заглавието, а не порта што табелата за пренасочување може да ја совпадне. Додека рутерот не го пропушти протоколот 47 и не го врзе за истиот повик, тунелот не може да започне. Следните делови ги раздвојуваат двата канала, а потоа ги тестираат еден по еден.

Табелата со порти нема ред за број на протокол

PPTP користи два разговора што пропаѓаат на различен начин. Тој на TCP 1723 го започнува повикот, пренесува информации за врската и го прекинува кога корисникот ќе се исклучи. Страната на товарот работи внатре во GRE, што IP заглавието го означува со број на протокол 47, а во тој тунел PPP се договара за врската додека MS-CHAPv2 ги проверува акредитивите.

Бидејќи GRE не носи заглавие за транспорт, не изложува никакви порти, па правило напишано за порти нема што да совпадне. Рутер што пренасочува 1723 создава мапирање за таа TCP сесија и застанува таму. Фирмверот што се занимава со втората половина ја нарекува оваа функција PPTP пропуштање или PPTP ALG, а некои фирмвери не нудат ниту едно од двете и никогаш не ја спомнуваат празнината. Ознаката на квадратчето е помалку важна од тоа дали протоколот 47 воопшто се препознава.

Што пријавува Windows кога патеката за податоци умира

Грешката 807 вели дека врската не можела да се заврши, што во практика значи дека повикот стигнал до серверот, а податочниот канал не се кренал. Тоа е пресуда за транспортот, а не за сметката. Грешката 691 е таа што укажува на акредитиви или на несовпаѓање на протоколот за автентикација, па ве праќа сосема на друго место.

Работете на транспортот пред да ја допрете лозинката. Менувањето акредитиви за да се брка 807 го остава вистинскиот дефект на место и го прави следниот обид потешко читлив.

Зошто втор клиент го крши тунелот што работи

Бидејќи нема порти што би ги разликувале, NAT уредот не може да одвои два PPTP клиента како што одвојува две HTTPS сесии. Затоа многу потрошувачки уреди дозволуваат еден PPTP повик и го следат по изворната адреса. Пренослив компјутер што работел сам престанува да завршува штом втора машина ќе заѕвони, а од страната на клиентот дефектот изгледа случајно. Овој образец им припаѓа на фирмверот и никаква промена на профилот нема да го смени.

Набљудувајте ја табелата со врски додека ѕвонат двата клиенти. Ако само првиот домаќин некогаш држи мапирање, рутерот ја достигнал границата на поддршката и никакво поставување на клиентот нема да го помести.

Докажете која половина пропаѓа

Потврдете дека TCP 1723 пристигнува пред да смените нешто на рутерот, зашто тој одговор одлучува која половина ја тестирате. Извршете ги овие од Windows клиентот кон сопственото име на серверот. Првата печати дали портата одговорила, а втората ѕвони без дијалог, што ги прави повторените обиди споредливи.

Test-NetConnection vpn.example.com -Port 1723
rasdial "Work VPN"

Вистински резултат во тестот на портата значи дека контролниот канал е отворен и GRE е преостанатиот осомничен. Лажен резултат значи дека рутирањето, филтерот или пренасочувањето се скршени, и никаква промена на GRE нема да го спаси тоа. Податочната страна мора да се набљудува таму каде што е видлива, на серверот или на рутерот.

tcpdump -ni any proto 47

Еквивалентот во Wireshark е филтерот за приказ ip proto 47, што е полесно да се предаде на некој кому командната линија не му е удобна. GRE што пристигнува без ништо да излезе во одговор значи дека повратната патека треба да се поправи.

Што всушност ја поправа грешката

Онаму каде што рутерот го покажува поставувањето, вклучете PPTP пропуштање или експлицитно дозволете протокол 47 на фирмвер што прифаќа правила. На RouterOS правилото за пренасочување директно го совпаѓа протоколот, што пренасочување засновано на порти никогаш не би можело. Потрошувачкиот фирмвер обично ја крие истата одлука зад квадратче, понекогаш под безбедносни поставувања, а не под пренасочување на порти. Ако не постои таква контрола, ништо на клиентот нема да го надомести тоа.

/ip firewall filter add chain=forward protocol=gre action=accept
/ip firewall filter print where protocol=gre

Замената на PPTP е другата опција и често поевтината. Рутер што сам го завршува VPN-от избегнува двоен NAT за дојдовните клиенти, а протоколот што NAT заснован на порти веќе го обработува воопшто не бара пропуштање: OpenVPN преку UDP, SSTP преку TCP 443 или L2TP/IPsec со NAT-T што го завиткува ESP во UDP 4500. PPTP зависи и од MS-CHAPv2, чии документирани слабости го прават лош избор за ново распоредување дури и откако грешката ќе исчезне.

Запишете кое правило ја направило разликата, зашто истото место ќе ја сретне истата граница кога вториот корисник ќе побара пристап. Исправка на ниво на протокол припаѓа во мрежните белешки, каде што ќе погледне следниот инженер.

Поврзани статии