Збой DNS ці праблема MTU? Дзе запыт сапраўды спыняецца
Імя, якое ніколі не развязанае, збойвае яшчэ да любога злучэння; затрымка MTU пачынаецца пасля рукапаціску. Спачатку знайдзіце этап, потым змяніце адзін узровень і пераправерце.
Два збоі даюць ад карыстальніка адну і тую ж фразу: сайт не працуе. Яны адбываюцца на розных узроўнях, і гэтая розніца вызначае, што трэба змяніць. Збой развязання імя спыняецца раней, чым існуе хоць якое злучэнне. Збой памеру пакета адбываецца пасля развязання імя і пасля завяршэння рукапаціску, таму старонка пачынае грузіцца і затым завісае. Знайдзіце этап раней, чым наладу.
Два збоі на розных узроўнях
Развязанне ператварае імя ў адрас, і нішта іншае ў злучэнні не можа пачацца, пакуль яно не атрымаецца. Праблемы MTU шляху ўзнікаюць пазней, калі пакет, большы за мяжу нейкага звяна, адкідваецца і адпраўнік пра гэта не даведваецца. Адно — гэта пошук; другое — збой дастаўкі, які праяўляецца толькі вышэй за пэўны памер.
Сімптомы адрозніваюцца так, што гэта можна заўважыць без любых інструментаў. Збой DNS імгненны і пастаянны: браўзер паведамляе, што сервер не знойдзены. Збой MTU частковы: старонка пачынаецца, некаторыя рэсурсы прыходзяць, а вялікі адказ або выгрузка затынаюцца.
Калі ваш сімптом частковы, перастаньце глядзець на DNS.
Этап 1: ці развязваецца імя наогул
Выкарыстоўвайце інструменты пошуку платформы з дакладным імем хоста, якое выкарыстоўвае праграма. Прыватнае імя у офісе можа патрабаваць унутранага развязальніка, а ўласны бяспечны DNS браўзера можа паводзіць сябе інакш, чым развязальнік аперацыйнай сістэмы, таму яны могуць разыходзіцца адносна аднаго і таго ж імя.
Спытайце развязальнік, які выкарыстоўвала б аперацыйная сістэма, затым параўнайце:
dig +short vpn.example.com
dig +short vpn.example.com @10.0.0.53
Калі развязанне не ўдалося, праблема ў гэтай палітыцы і яе дасяжнасці. Не адпраўляйце прыватныя імёны на адвольныя публічныя развязальнікі толькі дзеля параўнання, бо само параўнанне выдае імёны, якія вы хацелі трымаць унутры.
Этап 2: дзе спыняецца перадача
Калі імя развязалася і злучэнне пачалося, запішыце, дзе спыняецца аперацыя. Старонка, якая адлюстроўваецца і затым завісае на адным рэсурсе, выгрузка, якая памірае ў пэўным месцы, або вялікая спампоўка, якая ніколі не завяршаецца, пакуль малыя запыты працуюць, — усё гэта сімптомы формы памеру. Адказ, які зусім не пачынаецца, мае іншую форму.
Трымайце канчатковы пункт і прызначэнне праграмы нязменнымі, пакуль параўноўваеце, інакш вы вымяраеце дзве зменныя адначасова. На гэтым этапе магчымыя і іншыя прычыны: памылкі службы, страты, паводзіны фільтра і перападлучэнні тунэля — усе яны даюць затрымкі.
Адна паўторная затрымка каштоўнейшая за дзесяць анекдатычных.
Чаму MTU шкодзіць толькі пасля рукапаціску
Рукапаціск TCP выкарыстоўвае малыя пакеты, таму ён атрымліваецца на шляху, які не можа пранесці сегмент поўнага памеру. Збой з'яўляецца, калі адпраўнік выпускае вялікі пакет з бітам забароны фрагментацыі, звяно яго адкідвае, а паведамленне ICMP, якое паведаміла б пра мяжу, не прыходзіць, бо фільтр яго з'еў. Затым адпраўнік паўтарае той жа памер, і перадача затынаецца.
Менавіта таму сімптом залежыць ад памеру і паўтараецца, а не з'яўляецца выпадковым. Гэта таксама тлумачыць, чаму пінг хоста нічога не даказвае: малы ICMP-водгук можа прайсці па шляху, які не пранясе карысную навалотку поўнага памеру. Праверце памер з абодвух канцоў шляху, калі можаце. Мяжа, якая з'яўляецца толькі ў адным кірунку, — гэта асіметрыя маршрутызацыі, а не MTU тунэля.
Праверце памер яўна, замест таго каб выводзіць яго:
ping -M do -s 1472 203.0.113.20
tracepath 203.0.113.20
Змяніце адзін узровень, затым дакажыце
Для імён змяніце палітыку развязальніка і паўтарыце той жа пошук. Для памеру выкарыстоўвайце працэдуру MTU з запісанымі зыходнымі значэннямі і гатовай адкатнай копіяй, бо абмежаванне MSS без ведання рэальнага MTU тунэля мяняе адну затрымку на іншую.
Старонка, якая загрузілася адзін раз пасля змены некалькіх налад, не вызначае выпраўленне. Змяніце адно, паўтарыце той жа тэст і захавайце вынік побач з першым зафіксаваным этапам збою.
Менавіта гэты запіс перашкаджае таму, каб DNS, памер пакетаў і аўтэнтыфікацыя ператварыліся ў кучу пастаянных абыходаў, якія ніхто не можа растлумачыць. Тэставанне па сырым IP — добры прыклад шляху-абыходу, які змяняе ідэнтычнасць TLS, а адключэнне праверкі сертыфіката, каб параўнанне ўдалося, — гэта не дыягностыка.