CentOS 6, 2 сетевых адаптера, 1 шлюз, 1 сетевой адаптер не выполняет t работает правильно

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

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

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

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

Но если я попытаюсь выполнить эхо-запрос изнутри сервера ( ping -Ieth1 google.com ), я не получу ответа, BOOTPROTO = статический
IPADDR = 192.168.1.40
NETMASK = 255.255.255.0
HWADDR = 00: 00: 23: 45: 67: 8F
NM_CONTROLLED = нет
ONBOOT = да
ТИП = Ethernet
IPV6INIT = no
DNS1 = 192.168.1.240
DNS2 = 192.168.1.244

eth1
DEVICE = 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
СЕТЬ = да
GATEWAY = 192.168.1.2

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

1
задан 19 November 2015 в 04:49
3 ответа

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

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

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

 Установить адрес источника на указанный адрес интерфейса.
 

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

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

ip ro является современной заменой устаревшего маршрута .

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

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

2
ответ дан 3 December 2019 в 18:37

Даниэль -

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

route

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

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

192.168.1.0 * 255.255.255.0 U 0 0 0 eth0

link-local * 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
0
ответ дан 3 December 2019 в 18:37

Теги

Похожие вопросы