2

Итак, у меня есть две сетевые карты:

eth0
eth1

и у меня есть несколько IP-адресов, назначенных каждому:

auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet static
    address 10.0.0.194
    netmask 255.255.255.0
    gateway 10.0.0.1
    network 10.0.0.0

auto eth0:0
allow-hotplug eth0:0
iface eth0:0 inet static
    address 10.0.0.253
    netmask 255.255.255.0

auto eth0:1
allow-hotplug eth0:1
iface eth0:1 inet static
    address 10.0.0.252
    netmask 255.255.255.0

auto eth0:2
allow-hotplug eth0:2
iface eth0:2 inet static
    address 10.0.0.251
    netmask 255.255.255.0

auto eth1
allow-hotplug eth1
iface eth1 inet static
    address 10.0.0.74
    netmask 255.255.255.0
    gateway 10.0.0.1
    network 10.0.0.0

auto eth1:0
allow-hotplug eth1:0
iface eth1:0 inet static
    address 10.0.0.105
    netmask 255.255.255.0

auto eth1:1
allow-hotplug eth1:1
iface eth1:1 inet static
    address 10.0.0.104
    netmask 255.255.255.0

auto eth1:2
allow-hotplug eth1:2
iface eth1:2 inet static
    address 10.0.0.106
    netmask 255.255.255.0

Я также настроил IP-маршрут так:

sudo ip route add 10.0.0.0/24 dev eth0 table eth0
sudo ip route add default via 10.0.0.1 dev eth0 table eth0

sudo ip route add 10.0.0.0/24 dev eth1 table eth1
sudo ip route add default via 10.0.0.1 dev eth1 table eth1

sudo ip rule add from 10.0.0.194 table eth0
sudo ip rule add from 10.0.0.74 table eth1

Теперь, когда я выполняю следующие команды, все работает нормально, я возвращаю свой внешний IP:

curl --interface eth0  http://ipecho.net/plain ; echo
curl --interface eth0:0  http://ipecho.net/plain ; echo
curl --interface eth0:1  http://ipecho.net/plain ; echo
curl --interface eth0:2  http://ipecho.net/plain ; echo
curl --interface eth1  http://ipecho.net/plain ; echo

Тем не менее, когда я бегу:

curl --interface eth1:0  http://ipecho.net/plain ; echo

Ничего не произошло. Я явно испортил свои маршруты или что-то в этом роде. Может кто-нибудь мне помочь? Благодарю.

IP-маршрут

default via 10.0.0.1 dev eth0 
10.0.0.0/24 dev eth0  proto kernel  scope link  src 10.0.0.194 
10.0.0.0/24 dev eth1  proto kernel  scope link  src 10.0.0.74

маршрут -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.1        0.0.0.0         UG    0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth1

РЕДАКТИРОВАТЬ:

Итак, я нашел это, что я и пытаюсь сделать, однако я не хочу указывать какие-либо подсети. Я просто хочу, чтобы это разбросало запросы.

https://unix.stackexchange.com/questions/111293/load-balancing-among-multiple-virtual-network-interfaces

3 ответа3

1

Я думаю, вы должны прочитать о связующих интерфейсах.

Если вы хотите сбалансировать нагрузку, используя два интерфейса, то система, к которой вы подключаетесь, должна "говорить" точно по тому же LB-протоколу, что и вы.

Иначе вы потеряете пакеты.

0

Если вы пытаетесь сбалансировать нагрузку между двумя физическими сетями, вам может понадобиться мостовое соединение. Причина, по которой вы, ваш второй ник, не отвечаете, состоит в том, что у вас есть тот же маршрут, что и у вашего первого. Итак, все виртуальные интерфейсы в nic 2, включая сам nic, пытаются проложить маршрут через первый nic, что невозможно, если вы не соедините nic. В Linux легко создавать мостовые соединения, и вы даже можете создавать виртуальные мосты для виртуальных интерфейсов.

-2

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

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

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