У меня есть debian 8 с двумя сетевыми картами, eth0
и eth1
.
eth0
- 192.168.3.43, а eth1
- 192.168.3.44.
Оба настроены dhcp:
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet dhcp
Вот таблица маршрутизации:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.3.1 0.0.0.0 UG 0 0 0 eth0
192.168.3.0 0.0.0.0 255.255.255.128 U 0 0 0 eth0
192.168.3.0 0.0.0.0 255.255.255.128 U 0 0 0 eth1
Проблема в том, что если я отключу кабель от eth0, я не смогу пропинговать eth1 даже с машины в том же 192.168.3.x сегмент.
Я бы понял, если бы один из них находился в другом сегменте, поскольку таблица маршрутизации показывает, что шлюз по умолчанию находится на eth0, но не тогда, когда это происходит в том же сегменте, что и моя основная машина.
что мне нужно, чтобы обе карты работали независимо друг от друга?
Для эмуляции поведения Windows мне пришлось создать вторую таблицу маршрутизации с помощью iproute2 после настоящего руководства.
echo "1 my_route" >> /etc/iproute2/rt_tables
ip route add 192.168.x.0/24 dev eth1 src 192.168.x.y table my_route
ip route add default via 192.168.x.1 dev eth1 table my_route
ip rule add from 192.168.x.y/32 table my_route
ip rule add to 192.168.x.y/32 table my_route
После этого я мог пинговать ip eth1, даже если я удалил кабель к eth0. Связанное руководство также объясняет, как сделать эти изменения постоянными
. Вы идете по неправильному пути. Вы хотите, чтобы channel-bond два интерфейса были объединены в один виртуальный интерфейс, bond0
, и чтобы все ваши IP-адреса были соединены в bond0
. Если соединение сконфигурировано в простейшем режиме, active-backup, то специальной конфигурации коммутатора не требуется; один из двух физических интерфейсов будет использоваться для всего трафика до тех пор, пока соединение не перестанет работать, и в это время ядро переключится на использование другого интерфейса. Если я вас правильно понял, то это то, что вам нужно.
С помощью более интеллектуального коммутатора, который вы правильно настроили, вы можете настроить более сложные режимы связывания, которые приводят к использованию обеих сетевых карт, и распределению трафика между ними в соответствии с различными алгоритмами.
Если вам нужно, чтобы система имела адреса в нескольких различных подсетях, вы должны использовать VLANning поверх bond0
; опять же, потребуется подключение коммутатора.
Существует множество руководств по настройке связывания каналов в debian; вики-группа Debian также имеет страницу по этому вопросу.
.Я думаю, что таблица маршрутизации рассказывает историю: несмотря на то, что кабель протянут, компьютер все равно предпочитает сейчас мертвый маршрут через eth0, а не через eth1. Без NetworkManager или чего-то подобного Linux не является надежным средством перемаршрутизации. Даже несмотря на то, что вы пинговалите IP-адрес eth1, компьютер не обязательно использует этот интерфейс для возврата пакета; вместо этого он строит ответ на IP-адрес источника ping и посылает, который будет использовать таблицу маршрутизации, чтобы решить, как возвращать.
.