Назад | Перейти на главную страницу

CentOS 6, 2 NIC, 1 шлюз, 1 NIC не работают

У меня установлена ​​CentOS 6 с 1 сетевой картой, eth0, работает нормально

Я добавил еще одну сетевую карту, eth1. Обе сетевые карты находятся на одном коммутаторе и в одной локальной сети.

Я скопировал ifcfg-eth0 к ifcfg-eth1, а затем просто изменил DEVICE=, IPADDR=, и HWADDR= iines.

После настройки /etc/sysconfig/network-scripts/ifcfg-eth1, Я могу пинговать eth1 с внешней машины целый день и нормально.

Но если я попытаюсь выполнить пинг изнутри сервера (ping -Ieth1 google.com), Я не получаю ответа, тогда как ping -Ieth0 google.com работает отлично.

Я удалил GATEWAY= линии из обоих ifcfg-eth0 и ifcfg-eth1, и положи GATEWAY= в /etc/sysconfig/network.

Вот мои обфусцированные файлы конфигурации:

eth0
УСТРОЙСТВО = eth0
BOOTPROTO = статический
IPADDR = 192.168.1.40
NETMASK = 255.255.255.0
HWADDR = 00: 00: 23: 45: 67: 8F
NM_CONTROLLED = нет
ONBOOT = да
ТИП = Ethernet
IPV6INIT = нет
DNS1 = 192.168.1.240
DNS2 = 192.168.1.244

eth1
УСТРОЙСТВО = eth1
BOOTPROTO = статический
IPADDR = 192.168.1.41
NETMASK = 255.255.255.0
HWADDR = 00: 00: 23: 45: 67: 99
NM_CONTROLLED = нет
ONBOOT = да
ТИП = Ethernet
IPV6INIT = нет
DNS1 = 192.168.1.240
DNS2 = 192.168.1.244

сеть
NETWORKING_IPV6 = нет
HOSTNAME = myserver
СЕТЬ = да
ШЛЮЗ = 192.168.1.2

Мой iptables -L -v в настоящее время полностью пусты. И я не использую SELinux.

Никогда не устанавливайте два интерфейса в одну подсеть, это, вероятно, не будет работать должным образом. Если вы изучите вывод ip ro, вы поймете, что Linux преимущественно основан на маршрутизации по месту назначения. Хотя возможна маршрутизация на основе источника, на практике это очень редко. Я могу вспомнить только один раз, когда мне нужно было это сделать в моей жизни, какой бы ни была причина.

Вы неправильно поняли, что ping -I делает, отсюда и путаница. От мужчины:

-I адрес интерфейса

Set source address to specified interface address.

Ping не отправляет пакет через интерфейс -I. Когда пакет готов к отправке, ядро ​​смотрит на IP-адрес назначения и ip ro, и на основе этих двух вещей он решает, какой интерфейс использовать. Он не смотрит на пакеты исходный IP.

-I, если для установки IP-адреса источника пакета. Когда пакет исходит, коммутатор знает, что оба ваших IP-адреса пришли с MAC-адреса eth0, поэтому он отправляет туда ответы. Но eth0 отбрасывает все, что не адресовано его собственному IP (или трансляции). Между eth0 и eht1 нет «волшебного внутреннего моста», кроме того, что вы видите в ip ro. Так что ответ никогда не дойдет до eth1.

В ip ro это современная замена устаревшим route.

Поскольку вы используете тот же коммутатор / шлюз, вы, вероятно, захотите связь из eth0 и eth1. Затем установите два ваших IP-адреса на интерфейсе bond0 (ifcfg-bond0). Это стандартная практика, и она сработает как амулет.

Чтобы полностью разделить трафик между eth0 и eth1, лучше всего установить eth1 в другую IP-подсеть, например 192.168.2.40, и использовать другой маршрутизатор / шлюз :)

Даниэль -

Похоже, что ваша проблема существует из-за ограничения заданной конфигурации. У вас есть два интерфейса в одной локальной сети / подсети, но один из них должен быть маршрутом по умолчанию. Запустите эту команду, чтобы убедиться, что ваш маршрут по умолчанию - eth0, это будет указывать на то, что вы не сможете подключиться к каким-либо устройствам за пределами вашей сети, когда попытаетесь принудительно направить трафик через eth1.

route

Это должно выглядеть примерно так:

Таблица IP-маршрутизации ядра Шлюз назначения Флаги Genmask Метрика Ссылка Использование Iface

192.168.1.0 * 255.255.255.0 U 0 0 0 eth0

локальная ссылка * 255.255.0.0 U 1002 0 0 eth0

по умолчанию 192.168.1.0 0.0.0.0 UG 0 0 0 eth0

Для проверки работоспособности попробуйте пропинговать что-то локальное в вашей локальной сети через этот порт:

ping -Ieth1 192.168.1.2