LINUX.ORG.RU
ФорумAdmin

Bird bgp

 


1

1

Здравствуйте! Скажите пожалуйста какой конфиг сервера достаточный под bird ? Какова нагрузка на сеть при использовании bird ? Дело в том что впервые сталкиваюсь с bgp и не совсем пока понимаю принцип работы. Мы получили блок ip и AS теперь необходимо поднять bird так как сетевого оборудования нет. Насколько это вообще надёжно работает ? Если кто может помочь разобраться в данном вопросе на платной основе буду очень рад …)

1. Достаточный конфиг определяется решаемыми задачами. bird - это несколько протоколов маршуртизации. Возможно Вам потербуется кроме BGP еще и OSPF или еще какой нибудь протокол.
2. нагрузку на сеть и на linux box будет создавать трафик который будет проходить через Ваш linux box. bird создает нагрузку на сеть только связанную с работой проколов маршрутизации - а именно обменом информации о маршрутах.
Оперативки сожрет примерно 700МБайт на две fullview таблицы. Требования к linux box будут определятся только из числа маршрутизируемых пакетов в секунду, с поправкой на полосу трафика - чтобы выбрать подходящую сетевую карту и процессор(ы).

3. Bird достаточно надежен. Использую версию 1.6

Нарисуйте сеть в которую Вы хотите внедрить Linux box + bird, сколько аплинков? Где будут(ет) размещаться шлюз для хосов/абонентов под которых Вы взяли ip? на том же linux box для bird Или на l3 свиче?
IPv4 адреса? Трафик на сети какой планируете через linux box + bird форвардить? 100,1000,10000,40000Мбит/с?

для тренировки можно несколько виртуальных машин с linux запустить и поконфигурить bird

Vlad-76 ★★★ ()
Последнее исправление: Vlad-76 (всего исправлений: 4)
Ответ на: комментарий от Vlad-76

Попробую объяснить задачу и как мы хотели бы решить.

Есть в цоде арендованная подсеть 192.168.1.1 - 192.168.1.8 На ней хотим поднять сервак 192.168.1.5 для bgp (провайдер уже сделал проброс)

Есть вторая подсеть 192.168.200.1 - 192.168.200.254 и АS 50500- вот нам нужно просто чтобы эта подсеть заработала и сервера могли через нее ходить во внешку ) эта подсеть подключена к отдельному физическому порту в цоде.

Serjjj ()
Ответ на: комментарий от Serjjj

Поднимайте linux, настраивайте сетевые интерфейсы - к оператору и в ЦОД , качайте bird компилите

в /etc/sysctl.conf нужно разрешить Linux форвардить пакеты с интерфейса на интерфейс

# Controls IP packet forwarding
net.ipv4.ip_forward = 1

Собрал конфиг для bird, может с ошибками, тестить надо. Но суть попытался отразить.

#  решетка в начале строки - отключает действие строки в конфиге, получается типа комментарий

log syslog all;

#router id 192.168.1.5;    

protocol device {
        scan time 10;
}

debug commands 2;

timeformat route "%F %T";

#здесь поправите на интерфейсы какие необходимы для работы bird c учетом того какой и куда смотрит интерфейс в системе. Возможно у Вас будут интерфейсы в linux которые не нужно здесь указывать вовсе
protocol direct {
    interface "eth0";      #   Допустим этот интерфейс к провайдеру
    interface "eth1";      #   Допустим этот интерфейс к физическому порту в ЦОД
#   interface "eth2.120";  # это для пирмера если будете использовать VLANы 
#   interface "eth2.121";
}

protocol kernel {
        export all; #  Запихнем все маршруты известные bird (в таблице master) в TM linux в т.ч. default 
        scan time 15;
}

protocol static static1 {
#       disabled;               # Disable by default
#       table testable;         # Connect to a non-default table
        preference 254; # Default preference of routes
#       debug { states, routes, filters, interfaces, events, packets };
#       debug all;
        route 192.168.200.1.0/24 via "lo";  #  В таблицу с маршрутами master (которая внутри bird) будет воткнут маршрут 
}


filter BGP_ISP1_in {
        if  net =  0.0.0.0/0  then {# Разрешаем получать default route
	    print "BGP_ISP1 : default route accepted:", net;
            accept;
        }
        reject; # остальные маршруты отбрасываем
};

filter BGP_ISP1_out {
        if net = 192.168.200.1.0/24 then { # Разрешаем объявить сеть
            accept;
        }
        reject;  #остальные маршруты отбрасываем
};

protocol bgp BGP-ISP1{ # BGP-ISP1  - имя оператора внутри bird
        table master; # Таблица с маршрутами внутри bird с которой будет взаимодействовать данный протокол. Вообще master это название по умолчанию в bird если не указывать
        router id 192.168.1.5;
#       disabled;
        description "BGP-ISP1";
        local as 50500;             # AS Ваша
        neighbor W.X.Y.Z as YYYY;   # IP провайдера и AS Провайдера
#       bfd;
        hold time 240;
        startup hold time 240;
        connect retry time 120;
        keepalive time 80;      # defaults to hold time / 3
#        keepalive time 10;      # defaults to hold time / 3
        connect delay time 5;     # How long do we wait before initial connect
        error wait time 60, 300;# Minimum and maximum time we wait after an error (when consecutive
                                # errors occur, we increase the delay exponentially ...
        error forget time 300;  # ... until this timeout expires)
#       disable after error;    # Disable the protocol automatically when an error occurs
        next hop self;          # Disable next hop processing and always advertise our local address as nexthop
        path metric 1;          # Prefer routes with shorter paths (like Cisco does)
        default bgp_med 0;      # MED value we use for comparison when none is defined
#        default bgp_local_pref 100;       # The same for local preference
        source address 192.168.1.5;    # What local address we use for the TCP connection
        export filter BGP_ISP1_out; # фильтр на объявление маршрутов оператору
        import filter BGP_ISP1_in;  # фильтр на получение маршрутов от оператора
}

Vlad-76 ★★★ ()
Последнее исправление: Vlad-76 (всего исправлений: 4)
Ответ на: комментарий от Serjjj

любой комп с двумя ядрами и частотой 2-3 ГГЦ прожует такой трафик, сетевуху лучше поставить двухголовую Intel с радиатором какой нить(Intel Pro/1000 PT dualport). Дешман и встройку ну его нафиг. Памяти поставите столько сколько при инсталляции linux попросит

Vlad-76 ★★★ ()
Последнее исправление: Vlad-76 (всего исправлений: 3)
Ответ на: комментарий от Serjjj

Под Ваши требования попробуйте пообщаться с ребятами, которые торгуют БУ https://nag.ru на предмет подходящей Вам железки.
И поспрашивайте про БУ железяки Cisco вот здесь https://forum.nag.ru.

PS Даже если предположить для решения Вашей задачи Cisco 3845 с 1ГБ RAM, она все равно будет стоить больше чем БУ шный 1U сервер с норм сетевкой.

Vlad-76 ★★★ ()
Ответ на: комментарий от stels

Да мне просто интересно как подбирать железки под фулл. Так как возможно предстоит в офисе делать балансир и один оператор даёт фул а другой деф.

Под данную задачу я и думаю чуть позже взять джунипер или циску

Serjjj ()
Ответ на: комментарий от Serjjj

817637 роутов +- сегодня IPv4 FV
Если чтобы просто несколько фулл влезло, то соответственно по ОЗУ будут требования.
Другое дело кроме нескольких фулл - с какой скоростью нужно форвардить пакеты - это другие требования.
Есть роутеры софтовые и типа аппаратные с TCAM в которую влезает миллион допустим маршрутов IPv4 и эта TCAM позволяет оч быстро форвардить пакеты.
Не ясно что вы имеете ввиду под словом балансир, упомниная при этом про FV и дефлот
Если у Вас будет FV и дефолт, исходящий из Вашей AS пакет уйдет по more specific маршруту, а не дефолту. Только если маршрута не будет исх из Вашей AS пакет уйдет по дефолт маршруту.
Управление входящими пакетами в Вашу AS через BGP не тривиальная задача, зависит от многих вещей.
Cisco IOS удобная штука (опять же когда знаешь), но деньги только для бордера на Cisco я бы не стал тратить.
У Вас планируются стыки с операторами всего лишь 100Мбит/с. Можно купить сервер и сетевку на авито за 6500 рублей

Vlad-76 ★★★ ()