Я пытаюсь протестировать шлюз, который я написал (см. Какой самый простой способ проверить шлюз? для контекста). Из-за проблемы, в которую я бы лучше не попал, шлюз и «отправитель» должны быть на одной машине. У меня есть приемник (скажем, 9.9.9.9), который шлюз может достичь.
Итак, я запусту приложение ./sendStuff 9.9.9.9
, которое отправит несколько пакетов на этот IP-адрес.
Проблема заключается в следующем: как заставить пакеты, предназначенные для 9.9.9.9, перейти на шлюз на локальном хосте? Я пробовал:
sudo route add -host 9.9.9.9 gw 127.0.0.1 lo
sudo route add -host 9.9.9.9 gw <machine's external IP address> eth0
но ни один из этих пакетов не проходит через шлюз. Я проверил, что правильные IP-адреса присутствуют в sudo route
. Что я могу сделать?
Для запроса, здесь приведена таблица маршрутов после выполнения второй команды (IP-адреса изменены в соответствии с вопросом. X.y.z.t - это IP-адрес компьютера, на котором я работаю):
Destination Gateway Genmask Flags Metric Ref Use Iface
9.9.9.9 x.y.z.t 255.255.255.255 UGH 0 0 0 eth0
x.y.z.0 0.0.0.0 255.255.254.0 U 0 0 0 eth0
0.0.0.0 <gateway addr> 0.0.0.0 UG 100 0 0 eth0