Примечание. Эти машины подключены к локальной сети.
Я настроил статический IP-адрес для интерфейса Ethernet каждой машины, как указано выше в файле / etc / network / interfaces, чтобы сохранить IP-адрес даже после перезагрузки системы.
Я установил шлюз по умолчанию как 172.30.11.97 на машине 4 (чтобы добраться до него с рабочего стола пользователя через диспетчер соединений с замазкой)
allow-hotplug eth0
iface eth0 inet static
address 172.30.11.122
netmask 255.255.255.0
gateway 172.30.11.97
Но на других 3 машинах я не установил шлюз по умолчанию, как это было сделано для 122. Вместо этого я попробовал маршрутизацию политик на этих 3 машинах, как показано ниже в файлах «interfaces» и «rt_table»:
echo "1 policy_gw" >> /etc/iproute/rt_table
In /etc/iproute/rt_table:
1 policy_gw
В / etc / network / interfaces:
allow-hotplug eth0
iface eth0 inet static
address 172.30.11.121
netmask 255.255.255.0
post-up ip rule add dev eth0 table policy_gw
post-up ip route add default via 172.30.11.97 dev etho src 172.30.11.121/24 table policy_gw
Сделано так для 120/119 машин. Теперь я могу добраться до этих машин напрямую через замазку.
Проблема возникла: Я могу пинговать каждую машину в этой локальной сети с другой машины в той же локальной сети. Но ssh выдает ошибку port 22: no route to host
Предположим, что если я нахожусь в машине 121: ssh 172.30.11.120 выдает вышеуказанную ошибку.
шлюз по умолчанию - это системный маршрутизатор / коммутатор cisco. Они блокируют порты для протоколов SSH, telnet, но не для ICMP.
Маршрутный стол станка 122:
root@debian:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.30.11.97 0.0.0.0 UG 0 0 0 eth1
172.30.11.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Содержимое файла ssh_config:
Host *
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no
У вас хосты, расположенные в одной физической сети?
«нет маршрута к хосту» - похоже, это ответ ICMP от вашего маршрутизатора, вы можете проверить его с помощью сетевого анализатора. Кажется, ваш трафик ssh проходит через маршрутизатор, несмотря на то, что хосты расположены в одной сети, возможно, ваша таблица policy_gw имеет более высокий приоритет, чем встроенная локальная таблица. Маршрутизатор отказывается пересылать его (но в то же время как-то разрешает icmp) или у него действительно нет маршрута к месту назначения. Просмотрите таблицы своего маршрутизатора или исправьте политику маршрутизации, чтобы хосты общались напрямую, как и должно.