Маршрутизация в другие подсети приводит к неправильным запросам ARP

Я хотел бы вручную настроить маршрутизацию к подсети 95.168.0.0/16 через IP, который является псевдонимом: 94.23.94.161. IP-псевдоним настроен так:

 /sbin/ifconfig eth0:0 94.23.94.161 netmask 255.255.255.255 broadcast 94.23.94.161

В начале я попробовал что-то подобное:

route add -net 95.168.0.0 netmask 255.255.0.0 gw 94.23.94.161 dev eth0

и все работало просто отлично, пока я не получил письмо от моего центра обработки данных о том, что IP-адрес отправляет неправильные пакеты ARP:

Wed Jun 6 08:07:15 2012 : arp who-has 95.168.204.130 tell 94.23.94.161
Wed Jun 6 08:37:13 2012 : arp who-has 95.168.204.130 tell 94.23.94.161
Wed Jun 6 09:07:19 2012 : arp who-has 95.168.204.130 tell 94.23.94.161

Разговор с их поддержкой ни к чему не привел, и теперь я все еще пытаюсь это исправить. Другая настройка, которая работала (но все еще отправляла эти неправильные пакеты ARP), была:

ip route add 95.168.0.0/16 via 94.23.94.161

я думаю, что этот внутренне работал точно так же.

Затем я попытался настроить маршрутизацию через iptables и SNAT. Я включил ip-forwarding и пробовал разные сумасшедшие вещи, такие как:

iptables -t nat -A POSTROUTING -s 94.23.94.161 -o eth0 -j SNAT --to-source 95.168.0.0-95.168.255.255
iptables -t nat -A POSTROUTING -s 94.23.94.161 -o eth0 -j SNAT --to-source 95.168.0.0-95.168.255.254
iptables -t nat -A POSTROUTING -s 95.168.0.0/16 -o eth0 -j SNAT --to 94.23.94.161
iptables -t nat -A PREROUTING -p tcp -d 94.23.94.161 -j DNAT --to-destination 95.168.0.0-95.168.255.254

Ни один из них не изменил маршрутизацию. Может ли кто-нибудь дать мне какой-либо совет, как изменить маршрут к этой подсети, не отправляя запасные / неправильные пакеты ARP?

2 ответа

Решение
ip addr add 94.23.94.161/32 brd 94.23.94.161 dev eth0
ip route add 95.168.0.0/16 src 94.23.94.161 via 176.31.243.253
ip neigth flush

Где 176.31.243.253 - шлюз

Как я понимаю твой вопрос, 94.23.94.161 это IP-адрес какого-либо компьютера в вашей локальной сети, для которого вы хотите перенаправить пакеты 95.168.0.0/16 к. Если это правильно, то любой из ваших двух операторов маршрута выполнит эту работу. Просто избавьтесь от псевдонима eth0:0 интерфейс. Это для локальных IP-адресов, назначенных этой машине.

Другие вопросы по тегам