Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...
OSzone.net Видео Unix Интернет Маршрутизация, NAT Policy Routing на 2-х каналах Cronyx TAU-PCI RSS

Policy Routing на 2-х каналах Cronyx TAU-PCI

Текущий рейтинг: 5 (проголосовало 2)
 Посетителей: 853 | Просмотров: 1097 (сегодня 0)  Шрифт: - +
Написанием данной статьи послужила следующая поставленная задача:
Имеем 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

Вот собственно и все - осталась перезагрузка и благодарности: огромное
спасибо всему форуму, ответы на многие вопросы были найдены именно там.


Иcточник: http://www.opennet.ru  •  Опубликована: 05.03.2005
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:  


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.