Я использую Debian 7.0.

У меня есть один компьютер с двумя сетевыми картами, и я хочу назначить этому компьютеру два статических IP-адреса.

Вот моя конфигурация в /etc/network/interfaces :

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet dhcp

Вот результат из /sbin/ifconfig:

Как видите, обе сетевые карты получили статический IP-адрес.

Странная проблема в том, что вы можете пропинговать / получать доступ только по IP от eth1 . Опять же, даже когда у меня есть две сетевые карты, у меня есть только один IP для этой машины.

Где моя ошибка, почему я не могу получить / получить доступ / пропинговать IP с eth0 с другого компьютера?

Вы также можете попробовать пинг, и вы увидите.

Я надеюсь, что вы можете помочь мне!

2 ответа2

2

Возможно, потому что система с двумя сетевыми картами пытается отправить ответное ICMP-сообщение ping с eth0 из eth1 .

Когда ваша система отправляет трафик в сеть, она обращается к своей локальной информационной базе пересылки (FIB) или таблице маршрутизации.

Таблица маршрутизации будет иметь список подсетей и интерфейсов, в которых эта подсеть может быть достигнута. Каждый исходящий пакет сравнивается с каждой записью в этой таблице, и тот, который имеет наибольший номер CIDR в подсети, "выиграет" и будет использоваться для отправки трафика. Если победителей нет, используется шлюз по умолчанию.

У вас есть 2 записи с той же CIDR подсети, идущие в ту же подсеть. По сути, что касается вашей системы, они идут в одно и то же место, поэтому не имеет значения, какой из них используется. Ваш сетевой стек будет использовать первый, с которым сталкивается, отправлять трафик из него, а затем покончить с этим. Возможно, сетевой адаптер с наименьшим номером IP появляется первым в вашей таблице маршрутизации.

Вам нужно посмотреть на особенности маршрутизации политик в Linux ("политическая маршрутизация" в Google и удачи, потому что я сам изучаю это) или изучить перенаправление трафика с помощью iptables если вы действительно хотите это сделать.

0

Простой способ

На вашем уровне знаний может быть лучше игнорировать второй сетевой адаптер (т.е. отключить его) и иметь 2 IP-адреса, связанных с первым сетевым адаптером. Недостатками являются отсутствие избыточности, и вы ограничены скоростью 1 NIC.

Чтобы сделать это (для eth0), измените ваш файл /etc /network /interfaces так:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address A.A.A.A
netmask 255.255.252.0
gateway X.X.X.X

auto eth0:1
iface eth0:1 inet static
address B.B.B.B
netmask 255.255.252.0

Обратите внимание, что вам нужно будет ввести правильный адрес шлюза для XXXX Вам также необходимо убедиться, что IP-адреса (AAAA и BBBB) не находятся в диапазоне DHCP.

Трудный путь

Идея состоит в том, чтобы заставить эти 2 интерфейса действовать как 1 двойной интерфейс скорости (с возможностью продолжить работу, если интерфейс отключен), а затем вызвать IP-адреса, аналогичные приведенным выше.

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

Вам нужно создать файл, такой как /etc/modprobe.d/bonding.conf, чтобы сообщить системе о том, как вы хотите связать

alias bond0 bonding
options bond0 mode=0 miimon=100

(Выше предполагается, что вы используете режим 0).

Самый простой способ сделать это изменение вступившим в силу - перезагрузить компьютер.

Теперь у вас будет новый интерфейс, доступный в вашей системе "bond0". Используя /etc /networks /interfaces, вы теперь порабощаете 2 интерфейса Ethernet, а затем запускаете виртуальные интерфейсы, как в примере 1 выше.

Таким образом, файл будет выглядеть

# The loopback network interface
auto lo
iface lo inet loopback

# Enslave the ethernet drivers
auto eth0
iface eth0 inet manual
bond-master bond0
bond-primary eth0

auto eth1
iface eth1 inet manual
bond-master bond0
bond-primary eth1

# The primary network interface
auto bond0
iface bond0 inet static
address A.A.A.A
netmask 255.255.252.0
gateway X.X.X.X

auto bond0:1
iface bond0:1 inet static
address B.B.B.B
netmask 255.255.252.0

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .