Решение на самом деле немного более прямолинейно.
Игнорировать iptables команды на машина А пока речь идет о сокрытии вашей подсети 192.168.2.0/24 за NAT.
Вместо этого сосредоточьтесь на том, что на самом деле происходит, когда вы выполняете команду ping.
Когда вы отправляете пинг на удаленный IP-адрес, вам действительно нужно сообщить обоим машина А и машина Б как получить соответствующие сети 192.168.0.0/24 и 192.168.2.0/24.
Вы правильно поняли первую часть о рассказе машина Б что для того, чтобы пинговать что-либо на 192.168.2.0/24 это должно пройти 25.61.150.71.
Это то, что вы сделали в команде:
machineB> sudo ip route добавить 192.168.2.0/24 через 25.61.150.71
Это возможно, поскольку машина А и машина Б находится в той же подсети, что и Hamachi.
Но любая команда ping также должна отправить ответ, так как же машина А знать, где сеть 192.168.0.0/24 расположен?
Ты можешь сказать машина А что подсеть 192.168.0.0/24 находится позади 25.72.151.72.
Это приводит к следующей команде:
machineA> sudo ip route добавить 192.168.0.0/24 через 25.72.151.72
Однако мы еще не совсем вышли из леса, поскольку, хотя машина А и машина Б знает, куда направить трафик на любой хост, принадлежащий любой сети, у нас все еще есть проблема, как любой другой хост принадлежащий 192.168.0.0/24 знать, как связаться 192.168.2.0/24?
Если машина А и машина Б не является шлюзом по умолчанию для их сетей, тогда нам нужно добавить статический маршрут к шлюзу по умолчанию в любой сети.
За машина Амаршрутизатор по умолчанию, нам нужно сказать, что 192.168.0.0/24 доступен через 192.168.2.160.
Подобные мы должны сказать машина Бмаршрутизатор по умолчанию, который 192.168.2.0/24 доступен через 192.168.0.103.
После того, как все это будет сделано, вы сможете выполнить эхо-запрос с любого хоста, принадлежащего любой сети, на любой хост, принадлежащий другой сети.