Я настроил этот сервер:
serverA
ip 200.200.200.100
ip 200.200.200.101
ip 200.200.200.102
ip 200.200.200.103
В связи с обстоятельствами мне пришлось перенести ip 200.200.200.102 и 200.200.200.103 на serverB, это нормально сработало. К сожалению, serverA и serverB больше не могут видеть друг друга через диапазон IP 200. *. Я подумал, что это может быть связано с сетевой маской, которая в настоящее время установлена для всех IP-адресов на 255.255.255. *.
Любые предложения о том, что я могу сделать, чтобы это исправить?
ServerA eth0
BROADCAST=200.200.200.255
IPADDR=200.200.200.100
NETMASK=255.255.255.0
СерверB eth0: 2
BROADCAST=200.200.200.255
IPADDR=200.200.200.102
NETMASK=255.255.255.0
Обратите внимание, что и serverA, и serverB имеют несколько IP-адресов в диапазоне 200.200.200. *.
ip ad sh output serverA
2: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0b:cd:fe:b9:98 brd ff:ff:ff:ff:ff:ff
inet 200.200.200.100/24 brd 200.200.200.255 scope global eth0
inet 200.200.200.101/24 brd 200.200.200.255 scope global secondary eth0:cp1
inet6 fe80::20b:cdff:fefe:b998/64 scope link
valid_lft forever preferred_lft forever
1: sit0: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
serverB:
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:14:38:4b:cb:64 brd ff:ff:ff:ff:ff:ff
inet 200.200.300.100/24 brd 200.200.300.255 scope global eth0
inet 200.200.200.102/24 brd 200.200.200.255 scope global eth0:cp1
inet 200.200.200.103/24 brd 200.200.200.255 scope global secondary eth0:cp2
маршрут -n на serverA
Destination Gateway Genmask Flags Metric Ref Use Iface
200.200.200.105 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
200.200.200.106 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
200.200.200.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 200.200.200.1 0.0.0.0 UG 0 0 0 eth0
маршрут -n на serverB
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
200.200.300.100 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
200.200.200.102 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
200.200.200.103 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
200.200.200.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 200.200.300.1 0.0.0.0 UG 0 0 0 eth0
Это потому, что сервер A и сервер B имеют один и тот же первичный IP-адрес 200.200.200.100 в соответствии с опубликованным вами выводом.
Извините, я неправильно прочитал основной IP-адрес B.
Проблема в том, что ваша сетевая маска слишком узкая. Измените маску сети на 255.255.0.0, и они смогут разговаривать без маршрутизатора.
Как я понял у вас там 2 шлюза, а теперь у вас разрозненная сеть. Это означает, что когда сервер A отправляет пакет на адрес 200.200.200.102, этот пакет отправляется на шлюз 200.200.200.1, шлюз думает, что 200.200.200.102 находится в его локальной сети и ищет этот ip в локальной сети 200.200.200.0/ 24 он не знает, что такой же диапазон ip настроен на других шлюзах.
То же самое для сервера B, когда он отправляет пакеты в таблицу маршрутизации 200.200.200.101, говорит, что нужно отправить этот пакет на 0.0.0.0, который идет на 200.200.300.1, который полностью из другого сегмента сети. Чтобы исправить это, вы должны добавить некоторые статические правила в таблицы маршрутизации на обоих серверах, но это не лучший способ. лучший способ - подключить оба сервера к одному шлюзу. Или настроить несмежную сеть на обоих шлюзах, но здесь вы должны быть осторожны, какой протокол маршрутизации вы используете, потому что некоторые протоколы маршрутизации не поддерживают несмежную сеть.
Чтобы помочь вам, я должен увидеть вашу схему сети, и после этого я могу сказать вам, какие изменения лучше внедрить.
Вы имеете в виду, что подсеть установлена на 255.255.255.0? 255.255.255. * Недействителен. Попробуйте. Также убедитесь, что нет конфликтов IP-адресов.
А что дальше, пакет придет в интерфейс и что потом интерфейс будет с ним делать. Вы не правы, для отправки пакета на интерфейс сервер должен иметь IP-адрес назначения. Процесс поиска в корневой таблице: если сеть соответствует 200.200.200.0/24, сервер ищет маршрут для этой сети, таблица маршрутизации сообщает, что нужно отправить пакет на 0.0.0.0, который не является IP-адресом, настроенным для интерфейса. не имеет на локальных интерфейсах этого IP-адреса, снова проверит таблицу маршрутизации на соответствие. 0.0.0.0 200.200.300.1 0.0.0.0 UG 0 0 0 eth0
Это маршрут по умолчанию, и 200.200.300.1 кажется шлюзом. 200.200.200.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 Это означает, что пакет будет отправлен на маршрут по умолчанию, а не на интерфейс
Это решено. На serverB я изменил все маски подсети IP-адресов в диапазоне 200.200.200. * На 255.255.255.255 вместо 255.255.255.0, что заставило все это работать. Спасибо всем за вашу помощь.