Документация по ОС FreeBSD
Понедельник, 08.12.2025, 17:03
Главная
Регистрация
Вход
Приветствую Вас
Гость
|
RSS
Меню сайта
Главная страница
Новости в мире Unix
NEW
Каталог файлов
NEW
Установка и настройка
Ports & Packages
cvs
Безопасность
Работа с железом
X Window
Multimedia
Man pages
Net
Apache
DNS
FTP
Mail
Samba
Squid
SSH
VPN
РРР
Shell
IPFW
Tips'n'tricks
RFC
Книги по FreeBSD
Темы экзамена BSDA
Гостевая книга
Форум на bsdportal.ru
Каталог сайтов
Самый свежий софт
Каталог ссылок
Категории каталога
Apache
[58]
DNS
[25]
FTP
[27]
Mail
[74]
Samba
[24]
Squid
[46]
SSH
[23]
VPN
[35]
РРР
[20]
Net
[173]
Главная
»
Статьи
»
Сеть
»
Net
Куда хотим, туда и рулим [2010]
Начиная с версии 7.0, во FreeBSD появились множественные таблицы маршрутизации, или Forward Information Base. Возможно, кому-то они кажутся излишеством, однако, с учетом того, что софт-роутеры на FreeBSD во многом превосходят аппаратные а-ля Cisco (для сомневающихся - попробуйте в самую топовую 7600 циску впихнуть 3-4 BGP Full View, чтоб она не загнулась), постройка таких маршрутизаторов не теряет актуальности. Но это все лирика, перейдем к делу. Итак, где могут пригодиться FIB? Исходя из определения, там, где надо часть трафика пускать не по основным каналам, да и вообще, везде, где надо более гибкое управление сетевым трафиком. FreeBSD предлагает для этого мощные и гибкие средства.
В частности, это утилита setfib(8). Она проста в лучших традициях Unix Way и вызовается командой
setfib [-F] fib utility [argument ...]
(мне больше нравится просто setfib <номер таблицы маршрутизации> <нужная программа с параметрами>) позволяет запустить нужную программу с той либо другой таблицей маршрутизации. Таким образом, например, мы можем пустить трафик Apache по одному интернет-каналу, а ftp-демон - по другому.
Однако, остается вопрос, что делать с транзитным трафиком в случае, если наша FreeBSD-система является маршрутизатором. Тут также все просто: в штатном фаерволе ipfw(8) есть команда setfib.
В моем случае, надо было на маршрутизаторе, отвечающем за взаимодействие с другими провайдерами, направить VOIP-трафик из сети, выделенной VOIP-провайдером на его софт-свитч. В классическом случае для этого надо было бы использовать Policy-Based Routing (PBR), писать правила fwd в фаерволе, однако все решилось просто:
# /usr/sbin/setfib 1 /sbin/route add 10.80.4.6 10.80.4.17
# /sbin/ipfw add 1000 setfib 1 ip from 10.80.16.0/22 to 10.80.4.17
где 10.80.4.17 - голосовой шлюз VOIP-провайдера, а 10.80.16.0/22 - сеть, выделенная им для предоставления IP-телефонии нашим клиентам.
Аналогично решается задача классического PBR - для одного провайдера воздаем одну таблицу маршрутизации, для другого - другую, потом нужным пакетом указываем, по которой из них идти.
Теперь нюансы.
Для того, чтобы включить поддержку множественных таблиц маршрутизации, в ядро надо добавить опцию
options ROUTETABLES=2
где 2 - желаемое количество таблиц маршрутизации.
Если используется несколько таблиц, для носновной таблицы (номер 0) необходимо задать default route, иначе пакеты побегут по default route из других таблиц.
Вот вроде и все, просто как все гениальное.
Источник:
http://www.net-admins.org/index.php?ind=reviews&op=entry_view&iden=57
Категория:
Net
| Добавил:
oleg
(16.04.2010) | Автор:
Jared
Просмотров:
941
| Рейтинг:
0.0
/
0
|
- Оценить -
Отлично
Хорошо
Неплохо
Плохо
Ужасно
Всего комментариев:
0
Добавлять комментарии могут только зарегистрированные пользователи.
[
Регистрация
|
Вход
]
Форма входа
Друзья сайта
Google+
Copyright MyCorp © 2025