Паўторныя перадачы TCP і скіды паўтору IPsec: чытайце кожны ўзровень
Сцяг паўторнай перадачы, дублікат ACK і лічыльнік скідаў паўтору ESP вымяраюць розныя падзеі на розных узроўнях. Чытайце кожны лічыльнік там, дзе ён узнікае.
Тры розныя інструменты паведамляюць пра тры розныя дублікаты, і толькі адзін з іх — сеткавая падзея, на якую вы можаце паўплываць. Паўторная перадача TCP — гэта адпраўнік, які зноў ставіць дыяпазон у сетку, дублікат ACK — гэта атрымальнік, які паўтарае пацверджанне, а скід паўтору ESP — гэта асацыяцыя бяспекі, якая адмаўляецца ад нумара паслядоўнасці, ужо прынятага ёй. Ні адзін з трох не вынікае з іншых. Чытайце кожны лічыльнік на тым узроўні, які яго стварае, перш чым звязваць іх у адну гісторыю.
Тры лічыльнікі, якія ніколі не вымяраюць адну і тую ж падзею
Анатацыя паўторнай перадачы TCP азначае, што адпраўнік зноў змясціў дыяпазон паслядоўнасці ў сетку. Страта — адна з прычын гэтага, а запіс, які вы маеце, можа проста не ўтрымліваць зыходны пакет або пацверджанне, якое б патлумачыла час. Дублікат ACK — гэта атрымальнік, які паўтарае кумулятыўнае пацверджанне паводле правіл аднаўлення TCP, і гэта не дублікат запісу праграмы і не другая копія даных.
ESP працуе ў сваёй прасторы паслядоўнасці. Кожная асацыяцыя бяспекі нумаруе пакеты, якія яна адпраўляе, а атрымальнік трымае акно нумароў, якія ён ужо прыняў, таму ESP пакет, які прыйшоў двойчы, адкідаецца на гэтай падставе. Таму паўторна перададзены TCP сегмент ідзе ў новым ESP пакеце з новым нумарам паслядоўнасці, і гэта правільныя паводзіны на абодвух узроўнях. Адны і тыя ж байты могуць выглядаць новымі ў адным лічыльніку і старымі ў другім, і ніводзін узровень не хлусіць.
Што аналізатар можа і чаго не можа бачыць
Пачніце са слоўніка аналізатара, бо назвы фільтраў апісваюць назіранні, а не ўнутранасці канчатковых пунктаў. Падлік з тымі ж назвамі, якія выкарыстоўвае інструмент, трымае вас сумленнымі адносна таго, што насамрэч вымерана. Падлік з няпоўнага запісу — гэта падлік таго, што выжыла, а не таго, што адбылося ў сетцы.
tshark -r trace.pcap -Y "tcp.analysis.retransmission" | wc -l
tshark -r trace.pcap -Y "tcp.analysis.duplicate_ack" | wc -l
Чытайце экспертную інфармацыю побач з гэтымі лічбамі, бо папярэджанні пра кантрольную суму і парадак змяняюць вагу, якую яны заслугоўваюць. Аб'яднаны запіс з двух сенсараў можа паказаць адзін кадр двойчы, і падлік абедзвюх копій выдумляе падзею аднаўлення, якой ніколі не было.
Лічыльнікі ESP жывуць у стане ядра
Нумары паслядоўнасці ESP належаць асацыяцыі бяспекі, а не TCP патоку, таму шлюз — гэта месца, дзе трэба пытаць. Спіс стану паведамляе лічыльнікі пакетаў і памылак для кожнай асацыяцыі, якія не можа аднавіць ніводзін запіс.
ip -s xfrm state
tshark -r trace.pcap -Y "esp" -T fields -e esp.seq | head
RFC 4303 вызначае нумар паслядоўнасці і акно супраць паўтору, якое яго спажывае, і таму лічыльнік расце нават калі нічога не так. Манатонныя вонкавыя нумары паслядоўнасці без адпаведнай TCP анамаліі паказваюць на іншага адпраўніка або дубляваны шлях, а не на буру паўторных перадач. Вонкавы запіс зашыфраванага тунэлю звычайна хавае ўнутраныя нумары паслядоўнасці TCP, така што ён не можа даказаць, што зрабіў унутраны стек. Рабіце запіс унутры тунэлю толькі там, дзе дазваляе палітыка, і ніколі не адключайце абарону ад паўтору, каб заглушыць непавязанае папярэджанне.
Дзе пункт назірання змяняе адказ
Перад эскалацыяй запішыце, як рабіўся запіс: інтэрфейс, ці паведамляў працэс запісу пра страты і ці параўнальныя адзнакі часу паміж сенсарамі. Адна кропка назірання не можа бачыць абодва канцы шляху, таму любое сцвярджэнне пра паводзіны атрымальніка — гэта выснова, а не вымярэнне. Запіс, зроблены на шлюзе, і запіс, зроблены на хосце, будуць разыходзіцца ў парадку пад нагрузкай, і гэтае разыходжанне звычайна належыць запісу, а не тунэлю. Суаднясенне двух поглядаў — гэта тое, што ператварае падлік у доказ.
Выкарыстайце адзін дазволены паток праграмы і запішыце лічыльнікі канчатковых пунктаў побач з падлікамі запісу ў той самы момант. Калі лічбы разыходзяцца, давярайце ўзроўню, які валодае падзеяй, а другі лічыце артэфактам назірання, пакуль не даказана адваротнае. Гэтае правіла вырашае большасць такіх выпадкаў, не кранаючы канфігурацыю тунэлю.
Чытанне лічбаў у правільным парадку
Пачніце з узроўню, дзе было зададзена пытанне: на папярэджанне TCP адказваюць з запісу TCP, а на скід ESP адказваюць з лічыльнікаў асацыяцыі бяспекі на шлюзе. Толькі тады пытайце, ці апісваюць два погляды адзін і той жа пакет. Выснова, якая патрабуе абодвух узроўняў, павінна назваць абодва, бо сцвярджэнне пра тунэль, якое абапіраецца толькі на анатацыю TCP, — гэта здагадка.
Запісвайце ўзровень, лічыльнік і кропку назірання для кожнай знаходкі, і наступны чытач не зліе тры падзеі ў адну ўяўную няспраўнасць. Эскаліруйце з гэтымі трыма палямі, і выпраўленне звычайна вынікае з першага.