Очень важным достоинством quagga или zebra, когда zebra
развивалась
на некоммерческой основе, является то, что синтаксис у нее полностью
совместим с синтаксисом CLI Cisco и когда наконец то заработала
командная строка quagga, называемая vtysh, удобство настройки quagga
стало максимальным. В этой статье я коснусь только самых основ
настройки bgp сессий, а в следующих статьях, уже разберем вполне
работоспособные примеры.
Для начала установим quagga:
cd/usr/ports/net/quagga makeinstall clean
в меню настройки порта выберем только последний пункт, а именно
использование dmalloc, этот пункт рекомендуют для ускорения работы
quagga, диалог будет иметь такой вид:
Options for
quagga 0.99.12 [] ISISD Enable experimental ISIS daemon [] PAM PAM authentication for vtysh [] OSPF_NSSA NSSA support (RFC1587) [] OSPF_OPAQUE_LSA OSPF Opaque-LSA support (RFC2370) [] RTADV IPv6 Router Advertisements [] SNMP SNMP support [] TCPSOCKETS Use TCP/IP sockets for protocol daemons [X] DLMALLOC Use dlmalloc (makes bgpd much faster) [ OK ] Cancel
После того, как вы запустите quagga, можно переходить к настройке, для этого я предпочитаю использовать vtysh.
Запустим его:
vtysh
появится командная строка в которой можно начинать настройку.
А прежде чем начать настройку, чуть чуть теории, самый минимум. BGP – аббревиатура означающая протокол граничных маршрутизаторов
Маршрутизация в интернет основана на протоколе bgp, обмен информации о
маршрутах происходит между граничными маршрутизаторами автономных
систем. Автономная система или AS, это совокупность сетей объедененных
под одним управлением и имеющий выделенный идентификатор. Идентификатор
– это целое число, которое как и ip в европе выдает RIPE. Для своих
тренировок мы воспользуемся специально зарезервироваными номерами AS
для локальных сетей. Схема взаимодействия двух автономных систем будет
выглядеть так:
Поскольку это взаимодействие граничных маршрутизаторов, то между
ними сеть будет 192.168.0.0/30, этого достаточно для построения
взаимодействия.
Поскольку со схемой, принципами и терминологией разобрались приступим к
настройке первого маршрутизатора, анонсирующего сеть 192.168.1.0/24 под
автономной системой 65534 и интерфейсом взаимодействия с пиром
192.168.0.1, второй интерфейс его соответственно является шлюзом для
сети 192.168.1.0/24
В командной строке vtysh начнем последовательно вводить команды:
Команда no router bgp 7675 удалает конфигурацию bgp созданную по умолчанию в файле примере bgpd.conf
Теперь переходим ко второму маршрутизатору, на нем точно так же должна быть установлена и запущена quagga.
Теперь на первом роутере выходим из режима настройки bgp сессии
нажатием комбинации Ctrl-Z и оставшись в командной строке vtysh
выполнить немного команд что бы убедится в том что сессия установилась:
show ip bgp summary
Увидим такой вывод этой комманды:
BGP router identifier 192.168.0.1, local AS number 65534 RIB entries 3, using 192 bytes of memory Peers 1, using 2520 bytes of memory
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.0.2 465535511000 00:03:04 1
Total number of neighbors 1
В этой информации видно что мы приняли 1 префикс(одну сеть) от
нашего партнера 192.168.0.2 с удаленной автономной системы 65535.
Настройки сделаны правильно.
Подробную информацию о партнере по bgp можно увидеть так:
show ip bgp neighbors 192.168.0.2
И подробная информация выглядит так:
BGP neighbor is 192.168.0.2, remote AS 65535, local AS 65534, external link BGP version 4, remote router ID 192.168.0.2 BGP state = Established,
up for 00:08:29 Last read 00:00:29, hold time is 180, keepalive interval is 60 seconds Neighbor capabilities: 4 Byte AS: advertised and received Route refresh: advertised and received(old & new) Address family IPv4 Unicast: advertised and received Message statistics: Inq depth is 0
Outq depth is 0
Sent Rcvd Opens: 50 Notifications: 00 Updates: 11 Keepalives: 109 Route Refresh: 00 Capability: 00 Total: 1610 Minimum time between advertisement runs is 30 seconds
For address family: IPv4 Unicast Community attribute sent to this neighbor(both) 1 accepted prefixes
Connections established 1; dropped 0 Last reset never Local host: 192.168.0.1, Local port: 179 Foreign host: 192.168.0.2, Foreign port: 59783 Nexthop: 192.168.0.1 Nexthop global: fe80::21c:f0ff:fe9e:56ba Nexthop local: :: BGP connection: non shared
network Read thread: on Write thread: off
Тут мы видим, что BGP state = Established, up for 00:08:29 –
состояние сессии установлено 8 минут 29 секунд назад, Видим локальную
автономную систему и удаленную, к слову сказать эта информация
повторяет инофрмацию на маршрутизаторах Cisco, а там можно держать не
одну автономку, а много и информация по локальному асу для
определенного нейджбора является полезной. Далее видим что приняли 1
сеть(префикс): 1 accepted prefixes и видим
Nexthop, следующий адрес в маршруте. В общем все нормально.
Теперь проверим анонс какой же сети мы принимаем:
show ip route bgp
и видим:
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - ISIS, B - BGP, > - selected
route, * - FIB route
B>* 192.168.2.0/24[20/0] via 192.168.0.2, em0, 00:19:40
Тут мы видим что 192.168.2.0/24 анонсирована по протоколу bgp через маршрутизатор 192.168.0.2, маршрут известен 00:19:40.
И выйдя из vtysh нажатием Ctrl-D можно проверить таблицу маршутизации хоста:
netstat-rn
и увидим:
192.168.2.0/24 192.168.0.2 UG1 051 em0
Сеть попала в таблицу маршрутизации роутера. Все настроено.
Буду рад комментариям, постараюсь ответить на вопросы. Заходите на сайт http://www.hilik.org.ua/