Блиски DNS одговор изгледа као решен проблем све док веза не слети негде другде. Географски DNS и anycast обоје покушавају да скрате пут и ту одлуку доносе на основу различитих информација. Ниједан не гарантује да је приступна тачка до које стижете доступна, да представља идентитет који ваш клијент очекује или да ваша сесија преживљава промену чвора. Провере испод раздвајају та четири питања.

Проверите чију локацију резолвер заиста пријављује

Ауторитативни сервер који одговара на упит осетљив на топологију обично види адресу рекурзивног резолвера који је питао, а не адресу особе која је откуцала име. Централизовани резолвер може стајати далеко од клијената којима служи, а одговор одражава резолвер, а не њих. То није дефект; тако се протокол понаша осим ако се не доставе додатне информације. Спецификација EDNS Client Subnet описује и ограничење и опционално решење.

EDNS Client Subnet може носити информације о изворној мрежи када сваки учесник то подржава и укључи. Опционалан је, има последице по приватност и кеширање и није дозвола да се претпостави да било који јавни резолвер пријављује тачну локацију корисника. Питајте оператере резолвера пре него што дизајнирате на основу тога.

dig +short vpn.example.com @1.1.1.1
dig +short vpn.example.com @9.9.9.9
dig +subnet=203.0.113.0/24 +short vpn.example.com

Проверите шта је одлучило anycast рутирање

Уз anycast, неколико локација оглашава доступност једне адресе услуге, а мрежа доставља сваког клијента оном чвору који његово рутирање преферира. Ту одлуку доносе BGP и околна политика, а не удаљеност на мапи. Тополошка близина такође генерално не значи боље перформансе повратног пута, јер пут који изгледа кратко може бити загушен или асиметричан. Адреса коју сте добили не говори ништа о томе који је чвор одговорио.

Потврдите локацију која услужује са стране услуге или из одговора који је именује, а не само из DNS одговора. traceroute -n 198.51.100.20 приказује пут којим сте ишли и даље не именује хост на његовом крају, па га читајте као пут, а не као одговор.

Проверите да ли сесија преживљава промену чвора

DNS упит је кратак, а VPN сесија дуга, и оба имају потпуно различите захтеве за стањем. Рутирање се може померити усред сесије, а када се то догоди, каснији пакети могу стићи на чвор који никада није видео ваш тунел. Да ли је то преживљиво зависи од имплементације: дељено стање, намерно поновно повезивање или документовани квар. Сама адреса не пружа ниједно од тога.

Посматрајте помак уместо да га претпостављате. sudo tcpdump -ni any -c 20 esp приказује спољне пакете док се пут мења, а нагла промена адресе партнера је помак који се дешава. Експлицитно дефинишите намеравано понашање за имплементацију коју покрећете, а затим је тестирајте присиљавањем промене пута. Ако дизајн претпоставља репликацију сесије, именујте механизам и именујте квар који не покрива.

Проверите да ли се идентитет још увек поклапа

Свака улазна тачка мора представити идентитет који ваш клијентски профил очекује. Сертификат издат за име услуге ради преко чворова, док сертификати по чвору присиљавају клијента да прихвати нешто ново, и ту корисници уче да кликћу кроз упозорења. Држите очекивани идентитет и профил усклађене са моделом улаза.

Проверите то са клијента који је стигао на необичан чвор, јер то је случај у којем сертификат по чвору постаје видљив. openssl s_client -connect vpn.example.com:443 -servername vpn.example.com исписује ланац и имена, што је тачно оно што клијент пореди. Затим одлучите да ли профил треба сузити или модел сертификата променити.

Проверите запис, не само први одговор

Процените три сценарија и запишите четири чињенице за сваки: нормалан улаз, једна локација недоступна и договорени случај опоравка. Четири чињенице су коришћени резолвер, враћена адреса, локација која је услужила и свеж резултат апликације. Тај запис раздваја проблем DNS избора од проблема улазне тачке, проблема рутирања или проблема стања сесије. Без њега, сва четири изгледају идентично са клијента.

dig +short vpn.example.com
getent hosts vpn.example.com
curl -s -o /dev/null -w "%{http_code}
" https://vpn.example.com/health

Покрећите сценарије из репрезентативних приступних мрежа, а не само из канцеларије, јер цело питање је до које улазне тачке различити клијенти заиста стижу. Једна мрежа је узорак од једне.

Повезани чланци