Страница 1 из 1

Распределение нагрузки м/ду сетевыми интерфейсами

Добавлено: 2011-07-05 15:56:21
arty777
ПРОБЛЕМА : Весь трафф инетовский ходит через 1 сетевуху eth0 , хочеться что бы все что бы работало по принципу "Куда пришло оттудаи ушло" , к примеру , один из вебсерверов пашет на eth3, весь трафф , который крутиться на этом вебсервере - должен ходить сугубо по eth3 и т.п.


Хочеться простое и надежное решение , помогите кто чем может :)

Коллеги , ситуация следующая:

имеется тазик с 4 мя сетевыми интерфейсами:

Код: Выделить всё

root@www:/usr/local/www/uakino# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:02:a5:4e:db:04
          inet addr:94.154.222.33  Bcast:94.154.222.255  Mask:255.255.255.0
          inet6 addr: fe80::202:a5ff:fe4e:db04/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2380779831 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4404551233 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:302892729170 (302.8 GB)  TX bytes:6445661615221 (6.4 TB)

eth1      Link encap:Ethernet  HWaddr 00:18:fe:26:bd:0a
          inet addr:94.154.222.34  Bcast:94.154.255.255  Mask:255.255.255.0
          inet6 addr: fe80::218:feff:fe26:bd0a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:218580 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:16100270 (16.1 MB)  TX bytes:492 (492.0 B)
          Interrupt:70 Base address:0xc000

eth2      Link encap:Ethernet  HWaddr 00:02:a5:4e:db:05
          inet addr:192.168.1.8  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::202:a5ff:fe4e:db05/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6607379 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19126531 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:505997682 (505.9 MB)  TX bytes:27498780557 (27.4 GB)

eth3      Link encap:Ethernet  HWaddr 00:18:fe:26:bd:0b
          inet addr:94.154.222.36  Bcast:94.154.255.255  Mask:255.255.255.0
          inet6 addr: fe80::218:feff:fe26:bd0b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:217058 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:15795903 (15.7 MB)  TX bytes:492 (492.0 B)
          Interrupt:69
eth0, eth1,eth3 - смотрят в инет , на одного и того же провайдера . eth2 - смотрит в мою маленькую локальную сеть .

Конфиг следующий:

Код: Выделить всё

root@www:/# cat /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 94.154.222.33
        netmask 255.255.255.0
        network 94.154.222.0
        broadcast 94.154.222.255
        gateway 94.154.222.1
# dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 94.154.223.243
        dns-search uakino.net

auto eth1
iface eth1 inet static
    address 94.154.222.34
    netmask 255.255.255.0
    network 94.154.222.0
    broadcast 94.154.255.255
    dns-nameservers 94.154.223.243

auto eth2
    iface eth2 inet static
    address 192.168.1.8
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
dns-nameservers 94.154.223.243

auto eth3
iface eth3 inet static
    address 94.154.222.36
    netmask 255.255.255.0
    network 94.154.222.0
    broadcast 94.154.255.255
    dns-nameservers 94.154.223.243
Актуальная таблица маршрутов:

Код: Выделить всё

root@www:/# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth2
94.154.222.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
94.154.222.0    0.0.0.0         255.255.255.0   U     0      0        0 eth3
94.154.222.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
0.0.0.0         94.154.222.1    0.0.0.0         UG    100    0        0 eth0
Да, возможно тупая таблица, но так "оно само" сделало :)
так тоже работает аналогичным образом:

Код: Выделить всё

root@www:/# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth2
0.0.0.0         94.154.222.1    0.0.0.0         UG    100    0        0 eth0

Re: Распределение нагрузки м/ду сетевыми интерфейсами

Добавлено: 2011-07-05 16:06:43
arty777
ах да

Код: Выделить всё

root@www:/# uname -a
Linux www 2.6.38-8-server #42-Ubuntu SMP Mon Apr 11 03:49:04 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

Re: Распределение нагрузки м/ду сетевыми интерфейсами

Добавлено: 2011-07-05 21:30:09
Dark_ASU
Ставь религиозную ос тогда подскажу. Или кури ман по iptables.

Re: Распределение нагрузки м/ду сетевыми интерфейсами

Добавлено: 2011-07-05 21:58:07
arty777
Бугагаг , фашист?
Не фашисты , подскажите . Вариант с маркировкой пакетов iptables-ом я знаю . Он геморный , другие варианты подскажите

Re: Распределение нагрузки м/ду сетевыми интерфейсами

Добавлено: 2011-07-05 22:21:55
FiL
arty777 писал(а): Актуальная таблица маршрутов:

Код: Выделить всё

root@www:/# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         94.154.222.1    0.0.0.0         UG    100    0        0 eth0
                                                                        ^^^^
куда сказали - туда и посылается. А по уму, если все адреса из одной сети, то надо аггрегировать линки и вешать все адреса на аггрегированный канал.

Re: Распределение нагрузки м/ду сетевыми интерфейсами

Добавлено: 2011-07-05 22:33:29
arty777
О, вот хорошая идея .... Попробую на днях забондить в один логический . спасибо за подсказку :)

Re: Распределение нагрузки м/ду сетевыми интерфейсами

Добавлено: 2011-07-06 1:54:32
homoadminus
только агрегацию еще и со стороны провайдера надо настроить ;))) И зачем ТС хотеть чтобы всё бегало через разные интерфейсы? Трафик несколько гигабит? 8)

Re: Распределение нагрузки м/ду сетевыми интерфейсами

Добавлено: 2011-07-06 7:32:34
arty777
Канал провайдер дает гигабит . Да , вебсервер вечерами сильно гагружен 500-600 мегабит , 3-4 к соединений , мне кажеться не совсем правильным что 1 сетевуха напрягается .
олько агрегацию еще и со стороны провайдера надо настроить
Я ж вроде могу у себя на тазике в 1 логический сделать .... , и нет? :)
PS Свитч у меня Cisco 2960G 48

Re: Распределение нагрузки м/ду сетевыми интерфейсами

Добавлено: 2011-07-06 13:14:11
homoadminus
вы конечно можете на каталисте сделать агрегацию, но это как был гигабит, так им и останется.

Re: Распределение нагрузки м/ду сетевыми интерфейсами

Добавлено: 2011-07-06 13:27:26
arty777
То понятно . Что выше того что провайдер дает не прыгнешь . зато будет нагрузка распределяться м/ду моими физическими сетевухами .

Вот кстати ман для бондинга нашел для убунты (вдруг кому надо) https://help.ubuntu.com/community/UbuntuBonding

Re: Распределение нагрузки м/ду сетевыми интерфейсами

Добавлено: 2011-07-06 17:06:05
homoadminus
зачем тут оно? ман найти не проблема, как и документашку на /etc/network/interfaces. вы можете объяснить чем лучше вариант с агрегацией?

Re: Распределение нагрузки м/ду сетевыми интерфейсами

Добавлено: 2011-07-06 17:24:46
arty777
Как я понял , что при бондинге, будет 1 логический канал , в который будет объеденено в моем случае 3 сетевухи , и система будет нагружать в равных частях все сетевые карты . т.к. в таблице маршрутизации будет прописано примерно следующее:

Код: Выделить всё

root@www:/# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         94.154.222.1    0.0.0.0         UG    100    0        0   bond0
т.е все железо будет юзаться в равных частях , мне это подходит , лучше чем юзать из 3 только 1 сетевуху по полной .

Я еще это не сделал , это все пока предположения , на вых попробую

Re: Распределение нагрузки м/ду сетевыми интерфейсами

Добавлено: 2011-07-06 20:20:57
homoadminus
т.е все железо будет юзаться в равных частях , мне это подходит , лучше чем юзать из 3 только 1 сетевуху по полной .
так ведь чем лучше то? :)

Re: Распределение нагрузки м/ду сетевыми интерфейсами

Добавлено: 2011-07-06 21:34:44
arty777
В перспективе , когда канал будет юзаться вечерами по полной (1 гигабит и много "к" соединений) не уверен что работать через 1 сетевуху будет лучше чем с 3мя . Т.е. что б не упираться в сеть...

Лучше чем что? :)

Re: Распределение нагрузки м/ду сетевыми интерфейсами

Добавлено: 2011-07-09 11:37:49
arty777
Ну в общем, вот теперь какая картинка , балансировку использовал round-robin:

Код: Выделить всё

 #   Interface                RX Rate         RX #     TX Rate         TX #
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
www (source: local)
  0   lo                         0.00B            0       0.00B            0
  1   eth1                      12.11MiB      10651       6.80MiB       2534
  2   eth0                      14.33MiB      13048       6.80MiB       6179
  3   eth3                      13.45MiB      12535       7.18MiB       2534
  4   eth2                      59.00B            0     297.00B            0
  5   bond0                     39.89MiB      36235      20.79MiB      11248
Короче, получил то что хотел , весь сетевой трафф равномерно распределяется по интерфейсам внешним ! Супер