Привет, сетевой друг!
Сегодня поделюсь лайфхаком, который спасает, когда пакеты доходят, а ответы - нет. Да, это та самая скрытая асимметрия маршрутов, которая ломает firewall, балансировку и stateful-фильтры.🟣Смысл проблемы: Асимметрия случается, когда запрос идёт по одному пути, а ответ по другому. На L3 всё работает, но firewall теряет состояние, NAT не совпадает, а IDS видит “обрыв”. И вот тут помогает точечный метод: сравнение Forward/Reverse-path через промежуточные хопы.
🟣Как быстро вычислить асимметрию без дебага и огромных трассировок:
Делаем trace на путь туда:
traceroute -T -p 443 <dst>
Флаг -T (TCP) точнее отражает реальный маршрут, чем UDP-пакеты.
🟣Делаем trace назад - но НЕ с целевого хоста (не всегда доступен), а с ближайшего к нему маршрутизатора через source-address:
traceroute <source> -s <client-IP>
Это дает маршрутизатору построить “обратный” маршрут точно так же, как пакет бы отвечал клиенту.
🟣И сравниваем два списка хопов. Если хотя бы один сегмент отличается - у вас асимметрия.
🟣Еще фишка: Проверка RPF прямо на маршрутизаторе
На Cisco:
show ip cef <client-IP> detail
Если флаг RPF: failed - привет, асимметрия или странный ECMP.
На JunOS:
show route <client-IP> extensive | match RPF
Серверная Админа | #Cisco
