У меня есть 4 сервера под управлением Centos 5. Все они имеют две сетевые карты Ethernet.
Я настроил 192.168.1.x
IP-адреса на их eth0
открытка. Все они подключены к одному коммутатору с помощью своих eth0
карта и все они рабочие.
Я настроил 10.72.11.x
IP-адреса на их eth1
Все они подключены к одному коммутатору, отличному от коммутатора, используемого с eth0
карта - используя свои eth1
карта и они НЕ все работают.
Их файлы конфигурации выглядят так:
DEVICE=eth1
BOOTPROTO=static
IPADDR=10.72.11.236
BROADCAST=10.72.11.191
NETMASK=255.255.255.192
NETWORK=10.72.11.128
HWADDR=84:2B:2B:55:4B:98
IPV6INIT=yes
IPV6_AUTOCONF=yes
ONBOOT=yes
Интерфейс запускается и настраивается как мне нужно.
[root@sql1 network-scripts]# ifconfig
**eth0** Link encap:Ethernet HWaddr 84:2B:2B:55:4B:97
inet addr:192.168.1.105 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::862b:2bff:fe55:4b97/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2981 errors:0 dropped:0 overruns:0 frame:0
TX packets:319 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:386809 (377.7 KiB) TX bytes:66134 (64.5 KiB)
Interrupt:36 Memory:da000000-da012800
**eth1** Link encap:Ethernet HWaddr 84:2B:2B:55:4B:98
inet addr:10.72.11.236 Bcast:10.72.11.191 Mask:255.255.255.192
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:48 Memory:dc000000-dc012800
Я также добавил route-eth1
файл, который выглядит так:
10.0.0.0/8 via 10.72.11.254
Мне нравится маршрутизация:
[root@sql1 network-scripts]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.72.11.192 0.0.0.0 255.255.255.192 U 0 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
10.0.0.0 10.72.11.254 255.0.0.0 UG 0 0 0 eth1
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
Но я не могу пинговать один сервер с другого.
[root@sql1 network-scripts]# ping 10.72.11.235
PING 10.72.11.235 (10.72.11.235) 56(84) bytes of data.
From 10.72.11.236 icmp_seq=1 Destination Host Unreachable
From 10.72.11.236 icmp_seq=2 Destination Host Unreachable
From 10.72.11.236 icmp_seq=3 Destination Host Unreachable
From 10.72.11.236 icmp_seq=4 Destination Host Unreachable
From 10.72.11.236 icmp_seq=5 Destination Host Unreachable
From 10.72.11.236 icmp_seq=6 Destination Host Unreachable
^C
--- 10.72.11.235 ping statistics ---
7 packets transmitted, 0 received, +6 errors, 100% packet loss, time 6033ms, pipe 3
Что я делаю не так?
Подумайте немного о настройке вашей подсети:
IPADDR=10.72.11.236
BROADCAST=10.72.11.191
NETMASK=255.255.255.192
NETWORK=10.72.11.128
В базе 2:
236 is 1110 1100
191 is 1011 1111
192 is 1100 0000
128 is 1000 0000
Ваши IP-адреса находятся за пределами вашей подсети - 10.72.11.236 не входит в 10.72.11.128/26, а 10.72.11.172 - нет. Ни 17.72.11.235, а 10.72.11.171. Либо измените свои IP-адреса, либо измените вашу трансляцию на .255, а вашу сеть на .192. В качестве альтернативы (если это вам не навязывают) запустите нижнюю половину 10.72.11.0 (т.е. 10.72.11.0/26) или просто используйте / 24 и избавьте себя от лишних хлопот.
Попробуйте использовать ipcalc из http://jodies.de/ipcalc, это большое подспорье при настройке сетей и подсетей.
# ipcalc 10.72.11.236/255.255.255.192
Address: 10.72.11.236 00001010.01001000.00001011.11 101100
Netmask: 255.255.255.192 = 26 11111111.11111111.11111111.11 000000
Wildcard: 0.0.0.63 00000000.00000000.00000000.00 111111
=>
Network: 10.72.11.192/26 00001010.01001000.00001011.11 000000
HostMin: 10.72.11.193 00001010.01001000.00001011.11 000001
HostMax: 10.72.11.254 00001010.01001000.00001011.11 111110
Broadcast: 10.72.11.255 00001010.01001000.00001011.11 111111
Hosts/Net: 62 Class A, Private Internet
Ричард
Следует отметить, что ваши сетевые карты не «работают» должным образом. Ваш вывод ifconfig не показывает «RUNNING», необходимое для правильной работы ссылки. обратите внимание на линию UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
из вашего интерфейса eth0. В выводе eth1 нет очевидного "RUNNING". По моему опыту, это указывает на проблему низкого уровня. например: Плохая / отсоединенная проводка.
Возможно ли, что сетевая карта, к которой вы подключили кабель, НЕ eth1? Серверы могут иметь странные имена. Попробуйте проверить вывод / var / log / messages, чтобы узнать, сообщает ли он о подключении (отключении) интерфейса. Точно так же посмотрите, получаете ли вы какую-либо диагностическую информацию при подключении / отключении или во время загрузки. Проверьте, происходит ли это на всех 5 полях. Вы также можете попробовать графический инструмент настройки на случай, если в файле конфигурации есть опечатка. (system-config-network
)
Я видел эту проблему раньше. Не уверен на 100% в исправлении, но я помню, что в sysctl было что-то, что говорило ARP, чтобы он учитывал эти разные устройства - или что-то в этом роде.
Если я правильно помню, раньше было несколько сообщений о serverfault.
Входящий трафик, который идет на eth0, должен возвращаться через eth0 и наоборот. Попробуйте выполнить TCPdump, чтобы проверить, куда идет трафик.
Для этого вам также потребуется маршрутизация на основе политик: См. Маршрутизация сетевой карты Linux 2 в зависимости от используемого интерфейса