FreeBSD

FREEBSD and two default gw

Автор: GAMER вкл. .

Попалось мне на форуме Лиссяры. Цитирую:

В общем дело обстоит так. В свое время мутил распределение нагрузки между двумя провайдерами. Начитался о setfib, о setfib + ipfw, все понял и все заработало. Но потом, чисто случайно сделал такую хрень ....

# route add default x.x.x.x
# route add 0.0.0.0 y.y.y.y 2

И твою мать что я увидел:

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
0.0.0.0&0x2        y.y.y.y            UGS         0        0    vr0 =>
default            x.x.x.x            UGS         0        0    vr0


И что еще удивительнее, они оба работают, каким то чудом рандомно срабатывает то первый то второй дефолт. Как же так то блеять?! Неужели раньше этого никто не замечал??? Можно хоть 8 таких маршрутов и все срабатывают??? Каким образом выбирается какой маршрут???
P.S.
Во второй таблице маршрутизации, сделал два default и запустил торрент. Работает одновременно через двух провайдеров и качает с сумарной скоростью от обоих провайдеров.

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

 # ipcalc 0.0.0.0 2

Address:   0.0.0.0              00 000000.00000000.00000000.00000000
Netmask:   192.0.0.0 = 2        11 000000.00000000.00000000.00000000
Wildcard:  63.255.255.255       00 111111.11111111.11111111.11111111
Network:   0.0.0.0/2            00 000000.00000000.00000000.00000000
HostMin:   0.0.0.1              00 000000.00000000.00000000.00000001
HostMax:   63.255.255.254       00 111111.11111111.11111111.11111110
Broadcast: 63.255.255.255       00 111111.11111111.11111111.11111111
Hosts/Net: 1073741822           Class A, In Part Private Internet

так что, если адрес пира (в твоем случае) попадает в диапазон 0.0.0.1 - 63.255.255.254, запрос уйдет через один шлюз, иначе - через другой.

Взято здесь:  Форум Лиссяры