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

Связывание сетевых интерфейсов, можно ли назначать IP-адреса подчиненным интерфейсам?

В настоящее время у меня есть 2-гигабитные сетевые интерфейсы, связанные как bond0. Возможно ли, чтобы подчиненным интерфейсам eth0 и eth1 были назначены IP-адреса, и трафик перенаправлялся напрямую на любой из них, как если бы они не были закреплены в настройке связывания?

Я использую режим связывания balance-alb, а интерфейс eth1 разделяет MAC-адрес с bond0.

ifconfig выглядит следующим образом:

bond0     Link encap:Ethernet  HWaddr 00:1e:c9:b8:61:3e  
          inet addr:x.x.x.x  Bcast:x.x.x.255  Mask:255.255.255.0
          inet6 addr: fe80::21e:c9ff:feb8:613e/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:27055 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1181 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1764025 (1.6 MiB)  TX bytes:96662 (94.3 KiB)

eth0      Link encap:Ethernet  HWaddr 00:1e:c9:b8:61:3c  
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:11258 errors:0 dropped:0 overruns:0 frame:0
          TX packets:506 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:723893 (706.9 KiB)  TX bytes:33394 (32.6 KiB)
          Interrupt:16 Memory:f8000000-f8012800 

eth1      Link encap:Ethernet  HWaddr 00:1e:c9:b8:61:3e  
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:15797 errors:0 dropped:0 overruns:0 frame:0
          TX packets:675 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1040132 (1015.7 KiB)  TX bytes:63268 (61.7 KiB)
          Interrupt:16 Memory:f4000000-f4012800 

/ etc / network / interfaces выглядит следующим образом:

auto bond0
iface bond0 inet static
address x.x.x.x
gateway x.x.x.254
broadcast x.x.x.255
netmask 255.255.255.0
up /sbin/ifenslave bond0 eth1 eth0
down /sbin/ifenslave -d bond0 eth1 eth0

Некоторая предыстория того, почему я хотел бы сделать это:

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

Эта настройка с многоканальной маршрутизацией, похоже, нормально работала для входящего, конечно, не такого улучшения производительности, которое я получил от связывания исходящего трафика, но лучше, чем 1 Гбит.

Так что я пытаюсь достичь лучшего из обоих миров.

Это возможно?

Еще один быстрый вопрос, почему балансировка входящего / принимаемого никогда не работает на balance-alb? Похоже, это единственное преимущество перед balance-tlb, и, похоже, он никогда не работает.

Балансировка нагрузки приема работает путем настройки ответов ARP, отправляемых каждому одноранговому узлу в домене Ethernet, таким образом, чтобы узлы распределялись по подчиненным интерфейсам. Это означает, что каждый партнер использует только один подчиненный интерфейс. Если вы общаетесь только с одним одноранговым узлом (которым может быть маршрутизатор), вы не будете использовать оба ведомых устройства для приема пакетов.

Я сомневаюсь, что назначение IP-адресов подчиненным сработает, потому что модуль связывания довольно агрессивен и выполняет такие действия, как перехват ARP-ответов. Вы всегда можете протестировать это и сообщить нам об этом ;-)