Отправить пакет (icmp или другой) через сетевой интерфейс, минуя таблицу маршрутизации

Я хочу отправить пакет (icmp или другой) через определенный сетевой интерфейс, минуя таблицу маршрутизации.

Контекст: я подключен через несколько интерфейсов к разным конечным точкам. Некоторые из них могут направлять мой трафик в Интернет, если я добавлю к ним маршрут. Я не хочу трогать таблицу маршрутизации (поскольку это глобальная системная функция, и я параллельно тестирую устройства из соображений скорости).

Сначала я думал, что достаточно простого ping -I DEVICE -r ANY_IP_ONINTERNET. Но это не так: пакеты НЕ отправляются на выбранное устройство, как я ожидал, и команда завершается ошибкой... tcpdump на другом конце не перехватывает пакеты: пакеты не перехватываются даже быть отправленным в интерфейс в первую очередь, несмотря на мою явную команду.

Когда я добавляю маршрут перед пингом, все работает как положено. Но хотелось бы этого избежать... И потом, -I DEVICE -r больше не требуется.

  • может ли кто-нибудь объяснить мне, почему это не работает? и
  • в каком случае использование -I DEVICE или -r действительно работает и полезно?

Примечание. Я тестирую это с разными VPN с tapX и tunX устройствами.

EDIT: я пробовал комбинацию с/без -r и с использованием -I DEVICE или -I IP_ADDR_DEVICE. Без большего успеха.


person vaab    schedule 25.02.2016    source источник


Ответы (1)


Я предлагаю использовать вариант -I с IP-адресом вашего устройства.

person Cyrus    schedule 25.02.2016
comment
Я забыл упомянуть, что пробовал это, и это тоже не сработало... Я добавил эту информацию к основному вопросу. Спасибо, что помогли мне завершить мой вопрос. - person vaab; 25.02.2016