Перейти до

Раутер на Openbsd


Рекомендованные сообщения

Приветствую!

 

В общем хочу сделать следующее:

Поставить на производительный сервер с хорошими серверными сетевыми карточками OpenBSD

Поднять там OpenBGPD и прикрутить к нему свежо зарегистрированную AS+PI

Юзерам/серверам буду раздавать IP уже со своей AS.

Как сделать выше описанное я себе представляю и знаю хотя никогда не использовал до этого не OpenBSD не OpenBGPD. Но маны глянул... . Все описано доходчиво и лаконично.

Беспокоит меня следующее:

Для каждого отдельного IP и для группы IP нужно нарезать полосы как на вход так и на исход. Сделать я так понимаю это оптимальней при помощи pf+altq.

Также для этих IP нужно подсчитывать трафик. Еще и желательней с делением на Мир/Украина. Я так понимаю нужно копать в сторону Netflow.

 

В общем интересуют советы бывалых на чем это лучше всего сделать. И как :) По возможности с примерами боевых конфигов.

 

Покупку Juniper или Cisco не предлагать. Кризис. Денег нету :)

 

P.S. Заранее спасибо.

Ссылка на сообщение
Поделиться на других сайтах
В общем хочу сделать следующее:

Поставить на производительный сервер с хорошими серверными сетевыми карточками OpenBSD

Поднять там OpenBGPD и прикрутить к нему свежо зарегистрированную AS+PI

 

если Вы не делали этого раньше, скромно порекомендую остановиться на FreeBSD и Quagga

во-первых: OpenBSD специфический продукт. И требует хороших познаний.

во-вторых: Quagga по интерфейсу как Cisco. Легче будет учиться сейчас и переползать на циску потом.

(все IMHO)

Ссылка на сообщение
Поделиться на других сайтах

На FreeBSD/Linux и Quagga такое делал для людей. Благо с FreeBSD дружу более 5 лет.

Да из Cisco знаком. :) У OpenBGPD конфиг очень похож на Juniper. Поэтому проблем с конфигурацией нет. Почему OpenBSD ? Потому что в проект вкладываю свои деньги которые зарабатывались и днем и ночью тяжким трудом. И нужна максимальная стабильность.

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

сильно сомневаюсь, что OpenBSD будет сильно стабильней FreeBSD...

Ссылка на сообщение
Поделиться на других сайтах
сильно сомневаюсь, что OpenBSD будет сильно стабильней FreeBSD...

Сильно сомневаюсь, что Вы детально изучали вопрос.

Сильно сомневаюсь, что Ваш флуд чем-то помог или поможет.

 

Господа. Если пишем то пишем пожалуйста по теме. Для крутых ИТшников с словесным поносом есть ЛОР.

Ссылка на сообщение
Поделиться на других сайтах

Что касается бордера.

У меня был трагичный опыт с квагой. Связывал с сisco по ospf'у, бага была в дропе хелоу пакетов цыски.

Альтернатива: cisco б/у.

* Также не стоит держать bgp маршрутизатор и сервер доступа на одном хосте.

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

 

Для особо одаренных повторяю. Обсуждаем только те вопросы которые я как ТС просил раскрыть:

 

"Для каждого отдельного IP и для группы IP нужно нарезать полосы как на вход так и на исход.

Также для этих IP нужно подсчитывать трафик. Еще и желательней с делением на Мир/Украина."

 

Парить БУ железо мне не нужно.

Ссылка на сообщение
Поделиться на других сайтах
Для особо одаренных повторяю. Обсуждаем только те вопросы которые я как ТС просил раскрыть:

 

"Для каждого отдельного IP и для группы IP нужно нарезать полосы как на вход так и на исход.

Также для этих IP нужно подсчитывать трафик. Еще и желательней с делением на Мир/Украина."

 

Парить БУ железо мне не нужно.

У Вас интонации...

не располагают они к тому, чтоб непринужденно давать вам советы :)

 

однако правильно сказали, что:

- openbsd не на столько стабилен, чтобы аж писец... да и фрибсд не на столько падуч, чтобы свой собственный опыт работы с ней поставить ниже чем мнимая стабильность системы, которую не знаете.

- роутер БГП и сервер доступа должны быть разными физически.

- простенькая циска (например catalyst 2948g-l3, который понты денег стоит) или еджкор es3628ea сделает Вашу жизнь с аплинками по БГП такой спокойной, что пароли на них через полгода позабываете.

 

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

а если Вы уже приняли для себя решение, да еще и отстаиваете его так рьяно, -- так зачем тогда на форуме вопросы задаете?

 

P.S. опен тоже ставили -- не понравилось.

Ссылка на сообщение
Поделиться на других сайтах

fenix-vt спасибо за ответ. Прошу прощения у всех если показался очень резким.

Но флуд просто уже достал. Я хочу получить от комюнити ответ на следующие вопросы:

 

"Для каждого отдельного IP и для группы IP нужно нарезать полосы как на вход так и на исход.

Также для этих IP нужно подсчитывать трафик. Еще и желательней с делением на Мир/Украина."

 

А мне начинают рассказывать какая операционная система лучше. Или что лучше вообще купить железяку. Меня это на данный момент не интересует.

Ссылка на сообщение
Поделиться на других сайтах

как порезать в pf есть доки/примеры идущие прямо с ним во FreeBSD они тут /usr/share/examples/pf

там всё достаточно просто и понятно.

 

по поводу посчитать есть варианты простые и сложные.

если надо просто посчитать сколько ip нарабатывает по направлению то тут лучше и проще использовать таки ipfw

например так

 

---------

 

MYNET="table\(20\)"

ipfw -q del 10020

ipfw -q pipe delete 10020

ipfw -q add 10020 pipe 10020 ip from any to $MYNET out

ipfw -q pipe 10020 config bw 0 queue 5 mask dst-ip 0xffffffff onepass 0 buckets 8192

 

ipfw -q del 10030

ipfw -q pipe delete 10030

ipfw -q add 10030 pipe 10030 ip from $MYNET to any in

ipfw -q pipe 10030 config bw 0 queue 5 mask src-ip 0xffffffff onepass 0 buckets 8192

 

---------

 

затем пайп удалять и поднимать заново например раз в час.

 

если вариант более сложный то это netflow

по подсчёту на нём куча док в интернете.

 

единственно на что бы хотелось там обратить внимание что прийдётся тратить ощутимые ресурсы на регулярный парсинг и выделение/сумирование нужного (уаикс,внешка,локал)

плюсом тут то что это наимболее универсальный вариант ИМХО.

 

 

как считать в pf не знаю, но думаю варианты есть.

Ссылка на сообщение
Поделиться на других сайтах
Может OpenOSPDd кто ставил? Как он в сравнении с квагой?

Конфиг похож на Джунипер. (У квагги он цысконутый).

А также при синтетических тестах значительно меньше грузит машинку.

Ссылка на сообщение
Поделиться на других сайтах
  • 1 month later...

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

 

1. Бесплатное ПО динамической маршрутизации для Unix-Like систем:

- Quagga

- OpenBGPD, OpenOSPFD

- Xorp

 

2. Готовые бесплатные дистрибутивы софт роутеров:

- Xorp

- Vyatta

 

3. Аппаратные платные решения:

- Cisco

- Juniper

- Extrem

- Mikrotik

- Vyatta

- D-Link

- HP

 

На чем я остановился...

 

Построение сети

 

Схема и используемые типы связи:

 

[bgp neighbor]<---bgp--->[bgp router]<---ospf--->[ip shaper]<---static routes--->[servers]<---dhcp--->[workstations]

 

BGP маршрутизатор:

ОС: FreeBSD 7.1

ПО: Quagga 0.99.11 (Используемые демоны: zebra, bgpd, ospfd)

 

Каналы: 2 по 6 Мбит/с. с разными BGP пирами.

Принимаю: Дефолт (0.0.0.0/0) + UA-IX от обоих пиров.

Анонсирую: 1 префикс с маской 24 обоим пирам.

Балансировка: 1 канал - Мир, 1 канал - Украина.

 

Настройка

1. Устанавливаем FreeBSD, обновляем порты

2. Устанавливаем из портов Quagga

3. Проводим базовые настройки для запуска Quagga

 

Файл /etc/rc.conf

defaultrouter="NO"
quagga_enable="YES"
quagga_daemons="zebra bgpd ospfd"
quagga_flags="-d -A 127.0.0.1"
watchquagga_enable="YES"
watchquagga_flags="-dz -R '/usr/local/etc/rc.d/quagga restart' zebra bgpd ospfd"

 

Примечание: Настройка сетевых интерфейсов будет происходить под управлением Quagga а не Ifconfig. Также если планируются Vlan, лучше их задать сразу в rc.conf

У меня BGP маршрутизатор запущен под VMware server 2, пришлось уменьшить mtu до 1482 т.к. VMware где то дополнительно дописывает 8 байт и большие пакеты не проходят.

 

cloned_interfaces="vlan2 vlan3 vlan4"
ifconfig_vlan2="vlan 2 vlandev le0 mtu 1482"
ifconfig_vlan3="vlan 3 vlandev le0 mtu 1482"
ifconfig_vlan4="vlan 4 vlandev le1 mtu 1482"
ifconfig_le0="up"
ifconfig_le1="up"

 

Создаем конфигурационные файлы и лог файл. Расставляем права.

freebsd# touch /usr/local/etc/quagga/bgpd.conf
freebsd# touch /usr/local/etc/quagga/zebra.conf
freebsd# touch /usr/local/etc/quagga/vtysh.conf
freebsd# touch /var/loq/quagga.log
freebsd# chown quagga:quagga /usr/local/etc/quagga/*.conf
freebsd# chmod 600 /usr/local/etc/quagga/*.conf
freebsd# chown quagga:quagga /usr/local/etc/quagga/
freebsd# chmod 755 /usr/local/etc/quagga/
freebsd# chown quagga:quagga /var/log/quagga.log
freebsd# chmod 644 /var/log/quagga.log

 

4. Запускаем Quagga и входим в командный интерпретатор Vtysh для конфигурирования:

freebsd# /usr/local/etc/rc.d/quagga start
[code]freebsd# vtysh

Hello, this is Quagga (version 0.99.11).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

QUAGGA-ROUTER#

 

4. Конфигурируем к виду:

hostname QUAGGA-ROUTER-ZEBRA
log file /var/log/quagga.log
log stdout
log syslog
bgp config-type cisco
hostname QUAGGA-ROUTER
!
service password-encryption
!
password 8 gX6zVEe229lA6
enable password 8 dVMKGSc5Q0aks
!
interface le0
description --==Roditelskiy Interfeys Dlya Vneshnih VLAN==--
ipv6 nd suppress-ra
link-detect
!
interface le1
description --==Roditelskiy Interfeys Dlya Vnutrennih VLAN==--
ipv6 nd suppress-ra
link-detect
!
interface lo0
link-detect
!
interface plip0
ipv6 nd suppress-ra
!
interface vlan2
description --==ASXXXXX==--
ip address xxx.xxx.xxx.xxx/30
ipv6 nd suppress-ra
link-detect
!
interface vlan3
description --==ASYYYYY==--
ip address yyy.yyy.yyy.yyy/30
ipv6 nd suppress-ra
link-detect
!
interface vlan4
description --==ASZZZZZ==--
ip address zzz.zzz.zzz.zzz/30
ipv6 nd suppress-ra
link-detect
!
router bgp ZZZZZ
no synchronization
bgp router-id zzz.zzz.zzz.z
bgp log-neighbor-changes
bgp deterministic-med
network zzz.zzz.zzz.z mask 255.255.255.0
timers bgp 30 90
neighbor xxx.xxx.xxx.xx remote-as XXXXX
neighbor xxx.xxx.xxx.xx description --==ASXXXXX==--
neighbor xxx.xxx.xxx.xx ebgp-multihop 3
neighbor xxx.xxx.xxx.xx soft-reconfiguration inbound
neighbor xxx.xxx.xxx.xx route-map ASXXXXX-IN in
neighbor xxx.xxx.xxx.xx route-map ASXXXXX-OUT out
neighbor yyy.yyy.yyy.yy remote-as YYYYY
neighbor yyy.yyy.yyy.yy description --==ASYYYYY ==--
neighbor yyy.yyy.yyy.yy soft-reconfiguration inbound
neighbor yyy.yyy.yyy.yy route-map ASYYYYY-IN in
neighbor yyy.yyy.yyy.yy route-map ASYYYYY-OUT out
no auto-summary
!
router ospf
ospf router-id zzz.zzz.zzz.zz
log-adjacency-changes
passive-interface default
no passive-interface vlan4
network zzz.zzz.zzz.zz/30 area 0.0.0.0
area 0.0.0.0 authentication message-digest
default-information originate always
!
ip route zzz.zzz.zzz.0/24 Null0 254
ip route xxx.xxx.xxx.xx/32 xxx.xxx.xxx.xxx
!
ip prefix-list ASZZZZZ-NET description --==Anonsiruemie marshruty==--
ip prefix-list ASZZZZZ-NET seq 5 permit zzz.zzz.zzz.0/24
ip prefix-list LOCAL-NET description --==Lokal`nie seti==--
ip prefix-list LOCAL-NET seq 15 permit 0.0.0.0/8 le 32
ip prefix-list LOCAL-NET seq 20 permit 127.0.0.0/8 le 32
ip prefix-list LOCAL-NET seq 25 permit 192.0.2.0/24 le 32
ip prefix-list LOCAL-NET seq 30 permit 10.0.0.0/8 le 32
ip prefix-list LOCAL-NET seq 35 permit 172.16.0.0/12 le 32
ip prefix-list LOCAL-NET seq 40 permit 192.168.0.0/16 le 32
ip prefix-list LOCAL-NET seq 45 permit 169.254.0.0/16 le 32
ip prefix-list LOCAL-NET seq 50 permit 192.42.172.0/24 le 32
ip prefix-list LOCAL-NET seq 55 permit 198.18.0.0/15 le 32
ip prefix-list LOCAL-NET seq 60 permit 192.88.99.0/24 le 32
ip prefix-list LOCAL-NET seq 65 permit 224.0.0.0/4 le 32
ip prefix-list LOCAL-NET seq 70 permit 240.0.0.0/4 le 32
ip prefix-list PEER-NET description --==Anonsirovanye marshruty==--
ip prefix-list PEER-NET seq 5 permit 0.0.0.0/0
!
ip as-path access-list 1 permit _6451[2-9]_
ip as-path access-list 1 permit _645[2-9][0-9]_
ip as-path access-list 1 permit _64[6-9][0-9][0-9]_
ip as-path access-list 1 permit _65[0-9][0-9][0-9]_
ip as-path access-list 2 permit _15645_
ip as-path access-list 3 permit ^XXXXX$
ip as-path access-list 4 permit ^YYYYY$
!
route-map ASXXXXX-IN deny 100
description --==Filtr lokal`nyh avtonomnyh sistem==--
match as-path 1
!
route-map ASXXXXX-IN deny 110
description --==Fil`tr lokalnyh setey==--
match ip address prefix-list LOCAL-NET
!
route-map ASXXXXX-IN deny 120
description --==Fil`tr svoey avtonomnoy sistemy==--
match ip address prefix-list ASZZZZZ-NET
!
route-map ASXXXXX-IN permit 130
description --==Ustanovka prioriteta dlya AS15645 (UA-IX)==--
match as-path 2
set local-preference 200
!
route-map ASXXXXX-IN permit 140
description --==Priem anonsirovanyh marshrutov i ustanovka prioriteta==--
match ip address prefix-list PEER-NET
set local-preference 100
!
route-map ASXXXXX-IN permit 150
description --==Priem marshrutov porojdennyh v AS provaydera i ustanovka prioriteta==--
match as-path 3
set local-preference 300
!
route-map ASYYYYY-IN deny 100
description --==Filtr lokal`nyh avtonomnyh sistem==--
match as-path 1
!
route-map ASYYYYY-IN deny 110
description --==Fil`tr lokalnyh setey==--
match ip address prefix-list LOCAL-NET
!
route-map ASYYYYY-IN deny 120
description --==Fil`tr svoey avtonomnoy sistemy==--
match ip address prefix-list ASZZZZZ-NET
!
route-map ASYYYYY-IN permit 130
description --==Ustanovka prioriteta dlya AS15645 (UA-IX)==--
match as-path 2
set local-preference 100
!
route-map ASYYYYY-IN permit 140
description --==Priem anonsirovanyh marshrutov i ustanovka prioriteta==--
match ip address prefix-list PEER-NET
set local-preference 200
!
route-map ASYYYYY-IN permit 150
description --==Priem marshrutov porojdennyh v AS provaydera i ustanovka prioriteta==--
match as-path 4
set local-preference 300
!
route-map ASXXXXX-OUT permit 100
description --==Razreshenie na anons svoey avtonomnoy sistemy==--
match ip address prefix-list ASZZZZZ-NET
!
route-map ASYYYYY-OUT permit 100
description --==Razreshenie na anons svoey avtonomnoy sistemy==--
match ip address prefix-list ASZZZZZ-NET
!
ip forwarding
!
line vty
!

 

xxx.xxx.xxx.xxx - IP адреса или сеть 1 пира

yyy.yyy.yyy.yyy - IP адреса или сеть 2 пира

zzz.zzz.zzz.zzz - Мой IP адрес или сеть

XXXXX - Автономная система 1 пира

YYYYY - Автономная система 2 пира

ZZZZZ - Моя автономная система

 

В качестве шейпера сети использую Dummynet на FreeBSD. Если в конфиге что то непонятно, могу объяснить по каждой команде. В свое время пришлось разобраться.

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...