У меня в частной сети два устройства. У одного компьютера IP 10.42.0.1, у другого IP 10.42.0.173.
Я могу пинговать с одного компьютера на другой и наоборот.
Если я хочу изменить IP с 10.42.0.173, например, на 10.42.0.43 с помощью ifconfig:
ifconfig eth0 10.42.0.43 netmask 255.255.255.0 broadcast 10.42.0.255
У меня все еще есть пинг.
Но когда я хочу изменить его с 10.42.0.173, например, на 10.42.1.43,
ifconfig eth0 10.42.1.43 netmask 255.255.0.0 broadcast 10.42.1.255
Я могу пинговать с 10.43.1.43 до 10.42.0.1, но не могу пинговать с другой стороны (с 10.42.0.1 до 10.42.1.43)
Может проблема с таблицей маршрутизации. Но я не знаю, как ее настроить.
решение1
Ваше первое устройство имеет IP-адрес 10.42.0.1
скорее всего с маской подсети 24 бита ( 255.255.255.0
). Для того, чтобы оно увидело 10.42.1.255
без шлюза, вы должны установить маску подсети 24 бита или меньше ( 255.255.254.0
или меньше) наобамашины
решение2
Ошибка маски сети.
ifconfig eth0 10.42.0.43 netmask 255.255.255.0 broadcast 10.42.0.255
I can still have ping.
Это сеть 10.42.0
с 254 хостами, начинающимися с 10.42.0.1 и заканчивающимися на 10.42.0.254.
Трансляция 10.42.0.255
But when I want change it from 10.42.0.173 for example to 10.42.1.43 by
ifconfig eth0 10.42.1.43 netmask 255.255.0.0 broadcast 10.42.1.255
Это совершенно другая сеть. Трансляция идет по адресу 10.42.1.255,
а 10.42.0.255 — это просто обычный IP-адрес хоста.
Пожалуйста, подключите оба устройства к одной локальной сети. С одинаковой маской сети.
решение3
Компьютер 10.42.1.43/255.255.0.0
думает, что другой находится в его сети
10.42.x.x/255.255.0.0
. Он предположит, что другой находится в ,
10.42.0.1/255.255.0.0
и поэтому с радостью запустит пакет ping.
Однако, наоборот, поскольку 10.42.0.1/255.255.255.0
IP
10.42.1.43
не находится в его сети и у него нет правила маршрутизации для передачи пакетов в 10.42.1.x
. Поэтому ping не будет выполнен, поскольку для него нет сетевого маршрута. Другими словами, 10.42.0.1
не знает, как отправить сетевой пакет в 10.42.1.x
.
Пакет, запущенный в физической сети, будет получен каждым подключенным устройством. Каждое устройство будет проверять каждый пакет, чтобы узнать, адресован ли он ему. Поэтому смысл в том, чтобы запустить пакет, что произойдет в первом случае, но не во втором.