setfib и 2 канала с одинаковыми основными шлюзами

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
hsasha
проходил мимо
Сообщения: 4
Зарегистрирован: 2009-09-26 22:46:16

setfib и 2 канала с одинаковыми основными шлюзами

Непрочитанное сообщение hsasha » 2012-12-12 20:45:43

Есть 1 провайдер и 2 одинаковых ADSL канала от него и раздачей IP адресов через DHCP.
На FreeBSD 8.2 соответственно поднимаем 2 таблицы маршрутизации и через setfib 1 и 2 запускаем dhcpd демон. Адреса выдаються но с одинаковыми основными шлюзами и весь трафик который должен ходить через шлюз 2 канала setfib 2 таблицы, почему-то ходит через основной шлюз 1 канала.
В чём проблема? Как разрулить трафик по по разным интерфейсам?
Вот так запускаю dhclient:

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

setfib -1 /sbin/dhclient -c /etc/dhclient.conf vlan3002
setfib -2 /sbin/dhclient -c /etc/dhclient.conf vlan3003
потом скрипт /etc/dhclient-exit-hooks

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

#!/bin/sh

case $reason in
BOUND|RENEW|REBIND|REBOOT)
   if [ "$interface" = "vlan3002" ]
then
        /sbin/ipfw nat 1 delete
        /sbin/ipfw nat 1 config ip $new_ip_address reset same_ports deny_in unreg_only
        /usr/sbin/setfib -1 /sbin/route delete default
        /usr/sbin/setfib -1 /sbin/route add default $new_routers
fi
if [ "$interface" = "vlan3003" ]
then
        /sbin/ipfw nat 2 delete
        /sbin/ipfw nat 2 config ip $new_ip_address reset same_ports deny_in unreg_only
        /usr/sbin/setfib -2 /sbin/route delete default
        /usr/sbin/setfib -2 /sbin/route add default $new_routers
fi
esac
В итоге весь трафф идет через vlan3002 т.е. через тот интерфейс который раньше получил default gateway.
Как сделать чтобы работало с одинаковыми шлюзами?
Подозреваю что это баг либо недоработка setfib.
Подскажите как исправить?


P.S. Проблему обсуждал уже на форуме http://www.opennet.ru/openforum/vsluhfo ... 93726.html но так и не смог решить. Очень надеюсь что тут поможете или хотябы скажите куда копать?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

fessoga5
рядовой
Сообщения: 28
Зарегистрирован: 2011-11-22 20:04:00

Re: setfib и 2 канала с одинаковыми основными шлюзами

Непрочитанное сообщение fessoga5 » 2012-12-16 19:44:45

У тебя же конфиг dhcp прописывает шлюз, тебе надо оптион 82 замутить в dhcp, или два dhcp держать.

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: setfib и 2 канала с одинаковыми основными шлюзами

Непрочитанное сообщение skeletor » 2012-12-17 14:41:40

Если шлюз одинаковый, то попробуй использовать lagg (а там и отказоустойчивость, и балансировка)

hsasha
проходил мимо
Сообщения: 4
Зарегистрирован: 2009-09-26 22:46:16

Re: setfib и 2 канала с одинаковыми основными шлюзами

Непрочитанное сообщение hsasha » 2012-12-23 21:08:30

Удалось таки запустить мою конфигурацию, однако появились проблемы с arp таблицей.
Во-первых, для того чтобы конфигурация заработала пришлось добавить строки для пингования любого хоста в интернете через соответствующую таблицу маршрутизации для резольва MAC адреса основного шлюза, для этого были добавлены команды в /etc/dhclient-exit-hooks в итоге получился такой файл:

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

#!/bin/sh

case $reason in
BOUND|RENEW|REBIND|REBOOT)
   if [ "$interface" = "vlan3002" ]
then
        /sbin/ipfw nat 1 delete
        /sbin/ipfw nat 1 config ip $new_ip_address reset same_ports deny_in unreg_only
        /usr/sbin/setfib -1 /sbin/route delete default
        /usr/sbin/setfib -1 /sbin/route add default -ifp vlan3002 $new_routers
        /usr/sbin/setfib -1 /sbin/ping -c 4 8.8.8.8
fi
if [ "$interface" = "vlan3003" ]
then
        /sbin/ipfw nat 2 delete
        /sbin/ipfw nat 2 config ip $new_ip_address reset same_ports deny_in unreg_only
        /usr/sbin/setfib -2 /sbin/route delete default
        /usr/sbin/setfib -2 /sbin/route add default -ifp vlan3003 $new_routers
        /usr/sbin/setfib -2 /sbin/ping -c 4 8.8.8.8
fi
esac
Во-вторых, не всегда такая конфигурация стартует успешно, бывает что через 3-й 4-й раз перезагрузки через один из каналов трафик не проходит, из-за отсутствия соответствующей записи в arp таблице.

вот пример arp таблицы с которой всё работает:
testing# arp -a -nn
1. (37.54.160.249) at b0:48:7a:85:c1:4c on vlan3003 permanent [vlan]
2. (37.54.160.1) at 00:24:dc:44:7f:c0 on vlan3003 expires in 738 seconds [vlan]
3. (37.54.166.124) at b0:48:7a:85:b1:4f on vlan3002 permanent [vlan]
4. (37.54.167.255) at (incomplete) on vlan3002 expired [vlan]
5. (37.54.160.1) at 00:24:dc:44:7f:c0 on vlan3002 expires in 260 seconds [vlan]

Но бывает что отсутствует одна из-записей 2 или 5, тогда пинг не проходит через соответствующий канал.
Как побороть эту проблему?

fessoga5
рядовой
Сообщения: 28
Зарегистрирован: 2011-11-22 20:04:00

Re: setfib и 2 канала с одинаковыми основными шлюзами

Непрочитанное сообщение fessoga5 » 2012-12-25 17:09:38

Если я все верно понял у тебя нет arp записей шлюз - mac, так если ты знаешь его ip то ты же можешь добавить статический arp и наслаждаться, делать можно такой командой. arp -s ipaddress macaddress

hsasha
проходил мимо
Сообщения: 4
Зарегистрирован: 2009-09-26 22:46:16

Re: setfib и 2 канала с одинаковыми основными шлюзами

Непрочитанное сообщение hsasha » 2012-12-26 22:11:00

Так вся проблема в том что IP шлюза не всегда может быть одинаковый, и соответственно нельзя статически привязывать IP к MAC.

hsasha
проходил мимо
Сообщения: 4
Зарегистрирован: 2009-09-26 22:46:16

Re: setfib и 2 канала с одинаковыми основными шлюзами

Непрочитанное сообщение hsasha » 2013-01-01 14:50:40

Переодически в /var/log/messages появляються такие ошибки:
Jan 1 11:17:17 testing routed[951]: vlan3003 (37.54.160.249/21) is duplicated by vlan3002 (37.54.166.124/21)
Jan 1 11:17:17 testing routed[951]: 0.0.0.0 (mask 0x10120000) --> 37.54.160.1 disappeared from kernel

fessoga5
рядовой
Сообщения: 28
Зарегистрирован: 2011-11-22 20:04:00

Re: setfib и 2 канала с одинаковыми основными шлюзами

Непрочитанное сообщение fessoga5 » 2013-01-12 15:06:54

Стартовый скрипт при запуске pppoe в mpd