Я работаю в Linux.
Я добавил маршрут к виртуальному IP, скажем: 100.10.10.2
выполнив команду:
route -n add 100.10.10.2 gw 127.0.0.1
Он был перенаправлен на мою локальную кольцевую проверку. Я проверил таблицу IP-адресов ядра, и она правильно настроила путь. Теперь я запускаю скрипт, который привязывается к тому же IP, а затем пытаюсь пропинговать IP с моей машины, он правильно получает ответ ping.
Но другой компьютер в той же сети не может проверить связь с этим виртуальным IP-адресом. Я проверил в Интернете, и там говорится, что у меня может быть несколько IP-адресов в моей локальной кольцевой проверке, и их можно просматривать с одноранговых узлов в той же сети.
Я попытался добавить путь к интерфейсу eth0, заменив 127.0.0.1
по моим eth0
Айпи адрес. Информация была добавлена в таблицу маршрутов правильно, но затем произошло то же самое: я смог выполнить эхо-запрос с моей собственной машины, но партнер не смог.
Я искал то же самое, но ни одно из решений мне не помогло.
Сценарий (он отправляет обратно ответы на пакеты ICMP) верен (я в этом уверен), поскольку я получаю ответы ping со своей машины для IP, для которого я настроил маршрут.
Где я ошибаюсь? Или я упускаю какую-то конфигурацию?
Любая помощь высоко ценится!
РЕДАКТИРОВАТЬ:
Это таблица маршрутов
Destination Gateway Genmask Flags Metric Ref Use Iface
100.10.10.2 localhost.local 255.255.255.255 UGH 0 0 0 lo
192.168.1.0 * 255.255.255.0 U 1 0 0 eth0
link-local * 255.255.0.0 U 1000 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
и конфигурация интерфейса:
eth0 Link encap:Ethernet HWaddr 00:22:19:ec:ee:50
inet addr:192.168.1.2 Bcast:10.200.200.255 Mask:255.255.255.0
inet6 addr: fe80::222:19ff:feec:ee50/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
Я не понимаю, почему вы в любом случае возитесь с командами маршрута в локальной системе. Если у вас есть адрес, настроенный на одном из ваших локальных интерфейсов, вам не нужно указывать явный маршрут; ваша система уже знает, как с ней связаться.
Так, например, если у вас уже есть eth0
настроенный, как указано выше, вы сможете сделать это:
ifconfig eth0:0 100.10.10.2 netmask 255.255.255.0
И теперь ваша локальная система будет готова.
Чтобы другие системы в вашей сети могли связываться с вашей системой по этому IP-адресу, должно выполняться одно из трех условий. Либо:
Итак, если у вас есть другая система с «реальным» адресом 192.168.1.3, вы должны либо сделать это:
ifconfig eth0:0 100.10.10.3 netmask 255.255.255.0
Или это:
route add -net 100.10.10.0/24 dev eth0