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

Тайна века. FREEBSD and two default gw.

Добавлено: 2013-06-24 18:19:59
fessoga5
В общем дело обстоит так. В свое время мутил распределение нагрузки между двумя провайдерами. Начитался о 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 и запустил торрент. Работает одновременно через двух провайдеров и качает с сумарной скоростью от обоих провайдеров.

Re: Тайна века. FREEBSD and two default gw.

Добавлено: 2013-06-24 18:42:43
rmn
если таргет находится в нескольких записях таблицы маршрутизации, выбирается та, в которой наименьшее число хостов.

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

root@vhost1:/root # 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, запрос уйдет через один шлюз, иначе - через другой.

Re: Тайна века. FREEBSD and two default gw.

Добавлено: 2013-06-24 18:49:22
fessoga5
rmn писал(а):если таргет находится в нескольких записях таблицы маршрутизации, выбирается та, в которой наименьшее число хостов.

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

root@vhost1:/root # 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, запрос уйдет через один шлюз, иначе - через другой.
Мм. Однако проще говоря, я побил 0.0.0.0 на две подсети и внес их в таблицу маршрутизации ?

Re: Тайна века. FREEBSD and two default gw.

Добавлено: 2013-06-24 18:53:38
rmn
fessoga5 писал(а):Мм. Однако проще говоря, я побил 0.0.0.0 на две подсети и внес их в таблицу маршрутизации ?
именно

Re: Тайна века. FREEBSD and two default gw.

Добавлено: 2013-06-24 19:12:33
rmn
fix: ты поделил сети не по маске /2, а по маске 255.255.255.253 (она же 2, она же 0xfffffffd). Хотя это и не валидная маска, route ее почему то принимает. И через второй шлюз пакеты пойдут для тех адресов, у которых второй бит в последнем октете равен 1.

Re: Тайна века. FREEBSD and two default gw.

Добавлено: 2013-06-24 22:53:28
res251
напишу не в тему, но у меня тоже было чудо, фря подключилась к вайфаю с неправильным логином и паролем, каким чудом )))))))))))

Re: Тайна века. FREEBSD and two default gw.

Добавлено: 2013-06-27 11:40:14
vadim64
ТС - опасный тип