The OpenNET Project / Index page

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

Policy Routing на 2-х каналах Cronyx TAU-PCI. (cronyx link policy route balance bandwidth freebsd ipfw ifconfig driver)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: cronyx, link, policy, route, balance, bandwidth, freebsd, ipfw, ifconfig, driver,  (найти похожие документы)
From: dawnshade <h-k@mail.ru> Newsgroups: email Date: Mon, 1 Sep 2003 14:31:37 +0000 (UTC) Subject: Policy Routing на 2-х каналах Cronyx TAU-PCI. Policy Routing на 2-х каналах Cronyx TAU-PCI. Написанием данной статьи послужила следующая поставленная задача: Имеем 2-х операторов предоставляющих канал в конечном формате V.35, у каждого оператора есть свои реальные IP адреса, пропускает наружу оператор только свои IP. Клиентам же, в свою очередь, раздаются ТОЛЬКО реальные IP (т.к.) практически у каждого есть свои VPN, IPSEC, SQL-сервера и еще черти-знает что. Собственно формулировка задачи: половине клиентов раздать IP из блока одного оператора, половине - из блока другого. Отступление: Канал точка-точка между оператором1 и нами будет использовать следующие IP адреса: 192.168.0.1 (наш IP), 192.168.0.2 (оператора), маска подсети 255.255.255.252. Блок IP адресов оператора1: 192.168.1.128-192.168.1.255. Канал точка-точка между оператором2 и нами будет использовать следующие IP адреса: 192.168.50.1 (наш IP), 192.168.50.2 (оператора), маска подсети 255.255.255.252. Блок IP адресов оператора1: 192.168.51.128-192.168.51.255. Как понимаете, все IP реальные, в примере просто изменены. Итого нам понадобится: - Плата TAU-PCI фирмы Cronyx (представляет собой адаптер с двумя каналами V.35, есть модификация с 4-мя) - Два кабеля к ней M34/M26 (в стандартный комплект поставки не входят) - Роутер с установленной FreeBSD 4.8 (опыты проводились именно на ней, но работать должно на всей ветке 4.X) Подготовка: Скачиваем драйвера с http://www.cronyx.ru (на момент написания статьи последняя версия 4.3.2), т.к. в комплекте поставки идут, мягко говоря, не совсем новые драйвера - в них есть недоработки, приводящие к "залипанию" буфера чипа. Распаковываем. Далее необходимо поправить немного в драйверах, чтобы tcpdump мог работать с картой: файлик if_cp.c пропатчить следующим образом: 469c469 < bpfattach (&d->pp.pp_if, DLT_CHDLC, 4); --- > bpfattach (&d->pp.pp_if, DLT_PPP, 4); (совет вполне официальный и получен от техподдержки Кроникс'а). Ставим их, как написано в readme. Добавляем в ядро ОБА канала: cp0 и cp1. Компилируем, ставим ядро. Редактируем /etc/rc. Маленькое лирическое отступление: зачем это надо - канал при загрузке системы надо отконфигурировать утилитой sconfig (идущей в поставке драйвера), а потом уже применять стандартный ifconfig. После строк # Start up the initial network configuration. # if [ -r /etc/rc.network ]; then . /etc/rc.network # We only need to do this once. network_pass1 fi вставляем следующее: echo 'Star up TAU-PCI...' sconfig cp0 cisco #оператор1 sconfig cp1 cisco #оператор2 ifconfig cp0 192.168.0.1 192.168.0.2 netmask 255.255.255.252 up ifconfig cp1 192.168.50.1 192.168.50.2 netmask 255.255.255.252 up route add default 192.168.0.2 Допустим, что default route у нас будет оператор1. По большому счету следуя BSD-style надо было поместить все это в отдельный файл /etc/rc.cronyx и написать подобный вышеприведенному if... Главное потом при mergemaster вспомнить что и где мы правили! Остальные сетевые настройки оставляю на вашу совесть, отмечу только необходимое в данном примере. В rc.conf: firewall_enable="YES" firewall_quiet="NO" firewall_logging="YES" firewall_script="/etc/gw.fw" gateway_enable="YES" network_interfaces="fxp1 fxp2 fxp3 lo0" ifconfig_fxp1="inet 192.168.1.129 netmask 255.255.255.224" ifconfig_fxp2="inet 192.168.1.161 netmask 255.255.255.224" ifconfig_fxp3="inet 192.168.1.193 netmask 255.255.255.224" ifconfig_fxp3_alias0="inet 192.168.51.193 netmask 255.255.255.224" ifconfig_fxp2_alias0="inet 192.168.51.161 netmask 255.255.255.224" ifconfig_fxp1_alias0="inet 192.168.51.129 netmask 255.255.255.224" Как видите, блоки адресов разбиты по 3-м сетевым картам и остаеться еще один блок в резерве. ipfw в ядре default to deny. Далее правила ipfw, находящиеся в файле gw.fw: fwcmd="/sbin/ipfw" ${fwcmd} -f flush # Счетчика для траффика клиентов # Для клиентов оператора1 ${fwcmd} add 500 count ip from 192.168.1.130 to any in recv fxp1 ${fwcmd} add 501 count ip from any to 192.168.1.130 out xmit fxp1 # Для клиентов оператора2 ${fwcmd} add 502 count ip from 192.168.51.130 to any in recv fxp1 ${fwcmd} add 503 count ip from any to 192.168.51.130 out xmit fxp1 # Остальные аналогично со сменой интерфейса и IP адресов #Разрешение клиентов оператора1 ${fwcmd} add 1000 pass all from 192.168.1.130 to any ${fwcmd} add 1001 pass all from any to 192.168.1.130 #Разрешение клиентов оператора2 ${fwcmd} add 1003 allow ip from any to 192.168.51.130 ${fwcmd} add 1004 fwd 192.168.50.2 ip from 192.168.51.130 to any out xmit cp0 ${fwcmd} add 1005 allow ip from 192.168.51.130 to any Вот собственно и все - осталась перезагрузка и благодарности: огромное спасибо всему форуму, ответы на многие вопросы были найдены именно там.

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, poige (?), 10:35, 03/09/2003 [ответить]  
  • +/
    а если сначала выучить как правильно пишется слово "трафик"? ;-)

    /poige
    --
    http://www.i.morning.ru/~poige/

     
  • 2, damnedbird (?), 11:31, 05/09/2003 [ответить]  
  • +/
    BTW, зачем корячить /etc/rc, когда можно создать файлы /etc/start_if.cp0 и /etc/start_if.cp1, которые а) Будут сами вызываться при старте интерфейса и б) переживут mergemaster только в путь?
     
  • 3, dawnshade (?), 09:57, 22/09/2003 [ответить]  
  • +/
    Гм, а каким образом вы реализуете п. а)?
    Просвятите, плиз.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




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

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