Я хотел бы вручную настроить маршрутизацию в подсеть 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?
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-адреса, назначенные этот машина.