The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"как в ipfw пероверить next-hop исходящего пакета?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"как в ipfw пероверить next-hop исходящего пакета?"  
Сообщение от freeBSDun (ok) on 16-Дек-08, 19:42 
Дано: Плоский Ethernet-сегмент, в который входит несколько роутеров (рассчитываем на ~10 штук), типа точки обмена трафиком, но не она.  Есть IBGP, OSPF, куча маршрутов. IPv4 Only (пока). Маршрутизаторы разные - Cisco, PS.... в перспективе - что угодно.

В эту сеть смотрит ОДНИМ ИНТЕРФЕЙСОМ маршрутизатор на базе FreeBSD 7.0 (бордер между OSPF-сегментом и BGP).

Задача:

В исходящей цепочке правил проверять next-hop пакета.
Подробнее:
Через интерфес выходят пакеты, которые дальше пойдут через разные маршрутизаторы. Кто-то через 192.168.1.1, кто-то через 192.168.1.2 и т.д.  В зависимости от того, через какой маршрутизатор они дальше пойдут должна проводиться различная обработка - где-то нужен NAT, где-то нет. Где-то надо считать трафик, где-то нет, разные правила шейпинга и т.д.

Нужно в ipfw ввести условие типа
ipfw add 7000 skipto 8000 ip from any to any out via em0 next-hop 192.168.1.1
для пакетов, которые будут направлены через 192.168.1.1

Тупые идеи:
1. Сделать столько интерфейсов, сколько в сегмента маршрутизаторов... ужасно;
2. Периодически выгружать таблицу маршрутизации в ipfw table. Не уютно - маршруты могут меняться достаточно часто, производительность упапдет (второй раз просамтривать таблицу маршрутизации);
3. Включить пропуск через ipfw L2-пакетов, и работать с мак-адресами роутеров... жалко производительность на второй заход в ipfw;
4. Прохачить route.c на предмет навешивания mbuf_tag на каждый прошедший пакет... обновляться будет противно;
5. Нарисовать модуль netgraph, который будет выдирать откуда-то информацию про next-hop, и навешивать ее в виде tag'а... откуда выдирать информацию?

Есть ли какие-то стандартные средства?

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "как в ipfw пероверить next-hop исходящего пакета?"  
Сообщение от freeBSDun (ok) on 17-Дек-08, 09:51 
Поправка к пункту 4: прохачить net/ip_output.c

Почитал коды ядра... маршрутная информация по текущему пакету нигде не сохраняется, кроме как в стеке процедуры ip_output. Если пакет возвращается из divert'а, например, - маршруты по нему вичисляются заново. Разочаровался...  

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "как в ipfw пероверить next-hop исходящего пакета?"  
Сообщение от Pahanivo email(??) on 17-Дек-08, 11:42 
мдаа - плоский сегмент езернет )))


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "как в ipfw пероверить next-hop исходящего пакета?"  
Сообщение от freeBSDun (ok) on 17-Дек-08, 15:13 
>мдаа - плоский сегмент езернет )))

плоский - в смысле без "выпуклостей" в виде вланов, маршрутизаторов в середине, хировыдуманных ACL и прочего. Ну такой уж у нас внутренни слэнг...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру