Я пытаюсь найти инструмент, который позволит мне найти маршрут, по которому будет идти пакет, который поступает на устройство и имеет конкретный адрес назначения.
ip route get
буду делать большую часть того, что я ищу.
Проблема в том, что я хотел бы проверить, находят ли пакеты правильные маршруты, когда у них есть метка fwmark в довольно сложной среде маршрутизации.
Идеальный инструмент позволил бы подделать общий пакет с помощью fwmark (или других свойств) и мог бы либо отправить его через все цепочки IpTables и наборы правил ip route / ip, либо просто найти маршрут, который будет возвращен.
Я хотел бы иметь возможность запустить команду, чтобы убедиться, что определенный набор маршрутов работает должным образом.
Минимальные требования будут примерно такими: ip route get
но с поддержкой fwmark.
Хотя на этом этапе любые предложения по тестированию утилит маршрутизации были бы очень признательны! Это довольно быстро усложняется, так как маршруты накапливаются.
Вы можете использовать опцию mark в команде ip route get. Также вы можете указать в этой команде адрес источника и интерфейсы ввода и вывода.
Примеры:
ip route get 8.8.8.8 mark 0x20
- проверить маршрут отмеченных пакетов на адрес 8.8.8.8.
ip route get 8.8.8.8 from 192.168.0.200 iif eth1
- проверить маршрут пересылаемых пакетов с хоста 192.168.0.200, полученных через интерфейс eth1. В этом случае вы должны указать iif, если адрес отправителя отсутствует на этом хосте (не локальном).
ip route get 8.8.8.8 from 192.168.0.100 iif eth1 mark 0x30
- аналогично предыдущему примеру, но с указанием отметки.
Чтобы проверить путь пакетов через набор правил netfilter, вы можете использовать цель TRACE и scapy для создания желаемых пакетов.
Техническое название инструмента, который вы ищете, - "создатель пакетов"
Конкретные рекомендации по продукту не относятся к теме ServerFault, но один такой список с инструментами, альтернативными их собственному nping, поддерживается проект nmap и можно найти на http://SecTools.org/tag/packet-crafters/ а другой на Википедия.