Перейти до

Раутер на Openbsd


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

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

 

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

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

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

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

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

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

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

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

 

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

 

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

 

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

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

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

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

 

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

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

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

(все IMHO)

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

Ссылка на сообщение
Поделиться на других сайтах
  Credo_ сказав:
Ну блин… :)

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

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

 

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

 

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

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

 

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

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

 

"Для каждого отдельного 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 не знаю, но думаю варианты есть.

Ссылка на сообщение
Поделиться на других сайтах
  assasinwar сказав:
Может 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 користувачів

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

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