Множественные таблицы маршрутизации Freebsd 7.0

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

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Гость
проходил мимо

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение Гость » 2008-11-02 4:24:30

kharkov_max писал(а):И еще один глупый вопрос. Как дать таблице 1 имя т.е. что б обращаться к таблице не по номеру а по имени.
По сути я хочу добавить в rc.conf статические маршруты для нескольких таблиц.
Имена вместо цифр можно сделать на основе переменных sh(1), напр.: sun=1; setfib $sun route add default 10.1.1.1. Но чтобы добавлять из rc.conf, надо похакать /etc/rc.d/routing чуток. Если будешь хакать то может пригодится:

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

> sysctl -a | fgrep fib
net.my_fibnum: 0
net.add_addr_allfibs: 1
net.fibs: 2
> sysctl -d net.my_fibnum
net.my_fibnum: default FIB of caller
> fgrep -m1 -B7 rt_add_addr_allfibs /sys/net/route.c
/*
 * By default add routes to all fibs for new interfaces.
 * Once this is set to 0 then only allocate routes on interface
 * changes for the FIB of the caller when adding a new set of addresses
 * to an interface.  XXX this is a shotgun aproach to a problem that needs
 * a more fine grained solution.. that will come.
 */
u_int rt_add_addr_allfibs = 1;
Нумерация fib'ов начинается с нуля.

Хостинговая компания 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/

Гость
проходил мимо

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение Гость » 2008-11-02 4:28:02

Гость писал(а):Но чтобы добавлять из rc.conf, надо похакать /etc/rc.d/routing чуток
Впрочем для jail'ов уже есть:

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

> fgrep fib /etc/defaults/rc.conf
#jail_example_fib="0"                           # routing table for setfib(1)

Аватара пользователя
kharkov_max
капитан
Сообщения: 1811
Зарегистрирован: 2008-10-03 14:56:40

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение kharkov_max » 2008-11-02 8:50:32

1. А можно просто создать скрипт и при старте системы его запустить
В скрипте будет:
setfib $sun route add default 10.1.1.1. и т.д.

2. Не свсем понятно как хакать...
Нет у Вас статейки ?

Гость
проходил мимо

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение Гость » 2008-11-02 11:26:44

kharkov_max писал(а):1. А можно просто создать скрипт и при старте системы его запустить
В скрипте будет:
setfib $sun route add default 10.1.1.1. и т.д.
/usr/local/etc/rc.d/fibs:

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

#!/bin/sh

# REQUIRE: routing
# BEFORE: NETWORKING
# KEYWORD: nojail

sun=   1
venus= 2
pluto= 3

setfib $sun   route add default 10.1.1.1
setfib $venus route add default 10.1.2.1
setfib $pluto route add default 10.1.3.1
и не забудь сделать chmod +x.
kharkov_max писал(а):2. Не свсем понятно как хакать...
Расширяешь static_routes до static_routes_${i} (по аналогии с route_${i}), где ${i} - номер fib'а, добавляешь новую переменную, в которой указывается список fib'ов с дефолтом на net.my_fibnum и расширяешь очистку (route flush), чтобы она удаляла все маршруты рекурсивно из net.fibs кол-ва fib'ов.

Ничего сверхъестественного, что могло бы занять больше 10 мин. для знающего sh(1).

Аватара пользователя
savio
лейтенант
Сообщения: 813
Зарегистрирован: 2007-11-08 15:46:43
Откуда: UA
Контактная информация:

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение savio » 2008-11-13 16:21:17

как это добро заюзать??? (когдато давно на ред хате я нарадоваться не мог этой штуковине)

ядро и мир скомпилил. добавил 5 таблиц на всяк случай.
на серваке два канала инет от двух разных провов.
маршрут по умолчанию - на первого провайдера

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

setfib -0 route add default XXX.XXX.XXX.XXX
добавляю в следующую таблицу для второго прова

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

setfib -1 route add default YYY.YYY.YYY.YYY
второй пров выдал подсеть реальных айпишек. пробую с рабочей машины подключиться по впн.
подключился. получил айпишку. роутинг на данную айпишку добавилсчя во все таблицы. это так должно быть или как?
ради интереса грохнул роутингы в всех таблицах кроме "1". теперь пингуэться впн клиент тоба если делать

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

 setfib -1 ping yyy.yyy.yyy.yyy
правда с мира на эту айпишку попасть пока не могу, думаю шото напартачил сам, но это не важно.

почему когда по впн законектился маршрут добавилсяч в каждую табличу. как то можно привязать к таблицам диапазоны айпиадресов?
Помни о смерти, все суета сует....

Аватара пользователя
savio
лейтенант
Сообщения: 813
Зарегистрирован: 2007-11-08 15:46:43
Откуда: UA
Контактная информация:

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение savio » 2008-11-13 16:35:47

слегка разобрался........ (по поводу почему с мира на айпишку зайти не мог)
нада в фаерволе поразпихивать какие айпишки в какую таблицу.
у меня выгллядит так

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

[root@games /#/etc/mpd4]# ipfw list
00100 setfib 1 ip from any to any via gif0
00200 setfib 0 ip from any to any via ng0
00300 setfib 1 ip from any to yyy.yyy.yyy.yyy
00400 setfib 1 ip from yyy.yyy.yyy.yyy to any
65535 allow ip from any to any
[root@games /#/etc/mpd4]#
Помни о смерти, все суета сует....

Гость
проходил мимо

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение Гость » 2008-11-13 19:50:11

не пробовал vpn-сервер запускать с setfib? Например, setfib -1 mpd5?

Аватара пользователя
savio
лейтенант
Сообщения: 813
Зарегистрирован: 2007-11-08 15:46:43
Откуда: UA
Контактная информация:

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение savio » 2008-11-14 0:43:56

не пробовал. но не пайдет такой вариант даже если и сработает. завтра скажет начальство выдавать реальные+серый айпишки и что тогда? или еще плюс ко всему айпишли локалки, что б с инета в сетку доступ иметь.... одним словом такой вариант не подходит.... нда... к линуксу в этой части еще далековато, но будем юзать, разбираться в том что есть ...
Помни о смерти, все суета сует....

KES
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-25 21:48:43

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение KES » 2008-11-25 21:52:22

Это всё прикольно, что появилась такая мега фишка как setfib
А не подскажете ли Вы господа, как установить таблицу для маршрутизации для пакетов с локального хоста?
т.к. пакет уже имеет статус out
правила вида:
setfib 1 proto all
не помогают, пакет тупо уходит через тот интерфейс, через какой собирался уйти :st: ((

Sadok123
сержант
Сообщения: 177
Зарегистрирован: 2008-09-04 10:59:32

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение Sadok123 » 2008-11-27 16:32:19

Yam писал(а):примерный sup-файл выглядеть будет так:

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

*default tag=RELENG_7
*default host=cvsup2.ru.FreeBSD.org
*default release=cvs delete use-rel-suffix compress
src-all
Ну а дальше как обычно, правите конфиг ядра, пересобираете, ставите и перезагружаетесь.
Угу. И получит он не STABLE, а 7.1-PRERELEASE :)

Yam
сержант
Сообщения: 226
Зарегистрирован: 2008-10-11 19:19:24
Откуда: 2:5093/41

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение Yam » 2008-11-27 18:20:22

Научите, как до STABLE?

ЗЫ http://www.freebsd.org/doc/en_US.ISO885 ... -tags.html

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение paradox » 2008-11-27 18:24:06

Угу. И получит он не STABLE, а 7.1-PRERELEASE
ну если 7 то пофиг какая
главное та что в развитии
последняя

RELENG_7_0

Sadok123
сержант
Сообщения: 177
Зарегистрирован: 2008-09-04 10:59:32

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение Sadok123 » 2008-11-27 19:49:50

Yam писал(а):Научите, как до STABLE?

ЗЫ http://www.freebsd.org/doc/en_US.ISO885 ... -tags.html
как я понял, на "семерке" никак. по тэгу RELENG_7_0 ты получишь 7.0-RELEASE-p6. на CURRENT я вообще пока не заглядываюсь :) сам живу на RELENG_7 - проблем не вижу. впрочем, машинка в роли домашней файлопомойки и ssh-тунели в домашнюю сеть на ней живут. а, ntpd еще...

Аватара пользователя
savio
лейтенант
Сообщения: 813
Зарегистрирован: 2007-11-08 15:46:43
Откуда: UA
Контактная информация:

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение savio » 2008-12-08 12:43:07

так и не смог на данный момент разобраться как запихивать трафик в таблицы....
продолжение темы, но более шире по ссылке ниже
http://forum.lissyara.su/viewtopic.php?f=4&t=13102
у кого-то получилось? напишите как плиз . гугл не помог.......
Помни о смерти, все суета сует....

KES
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-25 21:48:43

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение KES » 2008-12-08 21:10:15

собрать ядро с

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

options         ROUTETABLES=3

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

#setfib 0 route add default <I.S.P.1>
#setfib 1 route add default <I.S.P.2>
#setfib 0 traceroute ya.ru
#setfib 1 traceroute ya.ru

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1330
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение dekloper » 2008-12-25 15:24:13

kharkov_max писал(а):День добрый.

Пытаюсь включить на Freebsd 7.0 поддержку множественных таблиц маршрутизации.
Пытаюсь компилить ядро с опцией options ROUTETABLES=2, но выдает ошибку.

Не подскажете поддерживает Freebsd 7.0 данную функцию ?
И если поддерживает, то чего может не хватать.
Мое ядро перекомпиляно для поддержки IPFW и PF.

Заранее спасибо.
присоединюсь к вопросу..

а че делать, ежели надо более двух таблиц?
опять ядро компилять..?
через сисцтл оно не рулится?
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Гость
проходил мимо

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение Гость » 2008-12-25 23:54:42

dekloper писал(а):а че делать, ежели надо более двух таблиц?
опять ядро компилять..?
через сисцтл оно не рулится?
loader tunable, net.fibs:

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

sys/net/route.c:
/*
 * Allow the boot code to allow LESS than RT_MAXFIBS to be used.
 * We can't do more because storage is statically allocated for now.
 * (for compatibility reasons.. this will change).
 */
TUNABLE_INT("net.fibs", &rt_numfibs);




sys/net/route.h:
/* MRT compile-time constants */
#ifdef _KERNEL
 #ifndef ROUTETABLES
  #define RT_NUMFIBS 1
  #define RT_MAXFIBS 1
 #else
  /* while we use 4 bits in the mbuf flags, we are limited to 16 */
  #define RT_MAXFIBS 16
  #if ROUTETABLES > RT_MAXFIBS
   #define RT_NUMFIBS RT_MAXFIBS
   #error "ROUTETABLES defined too big"
  #else
   #if ROUTETABLES == 0
    #define RT_NUMFIBS 1
   #else
    #define RT_NUMFIBS ROUTETABLES
   #endif
  #endif
 #endif
#endif

Аватара пользователя
Bormental
сержант
Сообщения: 267
Зарегистрирован: 2008-09-26 21:26:35
Откуда: подмордорье
Контактная информация:

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение Bormental » 2008-12-28 21:04:17

А где можно прочитать про алгоритм разделения по какому каналу пакет пойдет?просто немного не понимаю как это работает и для чего? Как ОС выбирает с каким маршрутом работать если у него два по дефолту..., а если пакет проходящий через маршрутизатор... получается есть вероятность его дублирования или клонирования?
:evil:

KES
рядовой
Сообщения: 28
Зарегистрирован: 2008-11-25 21:48:43

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение KES » 2008-12-29 17:02:45

все процессы в системе имеют FIB 0, т.е. если ничего конкретно не сказано, то пакет уйдет по дефолт маршруту таблицы 0
Если даже в каких либо других таблицах есть дефолт маршрут, а в 0 нет, то пакеты от процессов с FIB 0 идти никуда не будут

Например, представим что у нас нет никаких маршрутов ни в каких таблицах
setfib 1 route add default .....

setfib 0 ping ya.ru -- network unreachable
setfib 1 ping ya.ru -- пакет уйдет по дефолт маршруту в таблице 1

Аватара пользователя
Bormental
сержант
Сообщения: 267
Зарегистрирован: 2008-09-26 21:26:35
Откуда: подмордорье
Контактная информация:

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение Bormental » 2008-12-29 21:04:06

Понял, т.е. ждем заточку ПО под поддержку данных фич, иначе смысла в этом всем мало, либо рожание скриптов под это дело.... хотя применить это можно под несколько подсистем на одной платформе.... я просто сейчас вожусь с рациональным распределением нагрузки на два канала интернета ,вот поиски навели на iproute2 но как это дело применить пока ума не приложу
:evil:

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1330
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение dekloper » 2008-12-29 22:29:37

Bormental писал(а):поиски навели на iproute2 но как это дело применить пока ума не приложу
эта бадяга (а также iptables) готовилась исключительно для поедания пингвином..
под фрей врядли это когданибудь заработает, поскольку их ядра мало имеют общего (если не сказать, что НИЧЕГО)
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Аватара пользователя
Fioktist
мл. сержант
Сообщения: 84
Зарегистрирован: 2007-04-06 4:06:28
Откуда: Россия

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение Fioktist » 2009-07-21 0:59:24

KES писал(а):собрать ядро с

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

options         ROUTETABLES=3
Гость писал(а): /usr/local/etc/rc.d/fibs

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

#!/bin/sh

# REQUIRE: routing
# BEFORE: NETWORKING
# KEYWORD: nojail

sun=   1
venus= 2
pluto= 3

setfib $sun   route add default 10.1.1.1
setfib $venus route add default 10.1.2.1
setfib $pluto route add default 10.1.3.1
и не забудь сделать chmod +x.
скажите а в Freebsd 7.2 тоже из /usr/local/etc/rc.d/{скрипт}а запускать, или стало возможным из /etc/rc.conf ???
Самое возмутительное в аргументах оппонента - это изобилие правды.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение terminus » 2009-07-21 9:28:00

через rc.conf пока нельзя :(
Причем где-то в PR были патчи на rc добавляющие этот функционал, но как обычно никто не шевелится его мерджить...
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
Fioktist
мл. сержант
Сообщения: 84
Зарегистрирован: 2007-04-06 4:06:28
Откуда: Россия

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение Fioktist » 2009-07-22 19:12:16

=\
при использовании multi routing tables + 3 NAT (2isp+1raionnet(static route)) + 1 dmz + 1 localnet (static route)= 5 net cards

ядро с

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

options         ROUTETABLES=2
/usr/local/etc/rc.d/fibs

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

#!/bin/sh

# REQUIRE: routing
# BEFORE: NETWORKING
# KEYWORD: nojail

isp1=1
isp2=2

setfib $isp1 route add default i.s.p.ip1
setfib $isp2 route add default i.s.p.ip2

имеется-ли необходимость вписывать в /etc/rc.conf строку с defaultrouter="I.S.P.ME"
или-же надо привести запись в /etc/rc.conf к defaultrouter="NO"
Последний раз редактировалось Fioktist 2009-07-23 20:18:09, всего редактировалось 1 раз.
Самое возмутительное в аргументах оппонента - это изобилие правды.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Множественные таблицы маршрутизации Freebsd 7.0

Непрочитанное сообщение terminus » 2009-07-23 20:10:01

defaultrouter в rc.conf влияет на установку маршрута по-умолчанию для нулевой таблицы маршрутизации. Если хотите - вписывайте, а если не хотите то тогда не вписывайте в rc.conf, а используйте тот отдельный скрипт в котором и перечисляйте все номера fib-ов какие надо... По-моему разници не будет. Специально выставлять defaultrouter="NO" не надо - просто не писать или закомментировать.


---

к стати - после того как ядро уже собранос опцией

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

options         ROUTETABLES=2
появляется возможность менять количество таблиц через /boot/loader.conf

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

net.fibs=6
http://www.freebsd.org/releases/7.1R/errata.html
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.