Назад | Перейти на главную страницу

Простой роутер Quagga BGP

Мы пытаемся настроить Gentoo Linux для запуска маршрутизатора Quagga BGP для нашего подключения к Интернету. Мы пробовали много вещей, но все, что мы пробовали, приводит к тому, что Quagga сообщает, что нет доступной сети BGP и никогда не подключается к соседнему маршрутизатору. Я думаю, что лучше всего будет начать с чистого листа, поэтому наш вопрос:

Какую конфигурацию нам нужно использовать (bgpd.conf / zebra.conf) для работы следующей настройки:
(обратите внимание: я просто выбрал пару случайных диапазонов IP-адресов Google, это не настоящие IP-адреса)

В настоящее время у нас есть эта настройка и работает через домашний маршрутизатор Linksys с прошивкой DD-WRT. Работает как чемпион, но нагрузка становится для него слишком большой. Мы рассмотрели несколько вариантов маршрутизаторов, и по разным причинам, которые я не буду вдаваться в подробности, использование собственного маршрутизатора, созданного на заказ, кажется предпочтительным выбором.

Заранее благодарим вас за помощь, мы выдергивали волосы, пытаясь понять это!

Вот еще один пример с базовой фильтрацией (без входящих маршрутов RFC1918, объявляется только ваш локальный префикс:

router bgp YOURASN
 bgp router-id BGP_ROUTER_IP_ADDRESS
 network 209.85.171.0/24
 neighbor myisp peer-group
 neighbor myisp remote-as ISPASN
 neighbor myisp distribute-list 3 in
 neighbor myisp distribute-list 4 out
 neighbor myisp filter-list 2 out
 neighbor ISP_ROUTER_IP_ADDRESS peer-group myisp
 distance bgp 150 150 150
!
access-list 3 deny 10.0.0.0 0.0.0.255
access-list 3 deny 192.168.0.0 0.0.255.255
access-list 3 deny 172.16.0.0 0.15.255.255
access-list 3 permit any
access-list 4 permit 209.85.171.0 0.0.0.255
!
ip as-path access-list 2 permit ^$

Это вероятный минимум, который вам нужен в вашем bgpd.conf.

router bgp YOURASN
bgp router-id 74.125.53.103
  network 209.85.171.0/24
  neighbor 74.125.53.104 remote-as ISPASN

Это некрасиво, и вам действительно стоит добавить несколько списков префиксов и т. Д., Прежде чем вы начнете смотреть на добавление нескольких восходящих потоков, просто чтобы случайно не объявить всю глобальную таблицу между двумя интернет-провайдерами. При этом, если ящик gentoo используется только как маршрутизатор и ничего больше, возьмите копию vyatta community edition и используйте ее.

Я работал над публикацией некоторых статей о Anycast DNS с использованием Quagga, поэтому я хорошо с ним знаком. Статья, над которой я сейчас работаю, была OSPF, и одна из ошибок, с которыми я столкнулся, заключалась в том, что мой Quagga Box НЕ видел смежности OSPF или восходящие маршрутизаторы. Мне пришлось добавить правила брандмауэра в IPtables, чтобы протокол OSPF работал. Вы уверены, что у вас есть правильные правила брандмауэра для работы bgp-пиринга? Я думаю, это TCP-порт 179 для BGP ...

Хорошая статья:
Настройка и тестирование BGP на базе оборудования Cisco и Linux Gentoo с пакетом Quagga
(ссылка на архив, оригинал перенаправляет на русскую версию)

Есть образец генератора конфигурации BGP в http://www.oriontechnologysolutions.com/administration/basic-bgp-config-generator/ Заполните форму, и вы получите следующее:

!
router bgp 9283
bgp router-id 74.125.53.103
bgp log-neighbor-changes
network 209.85.171.0/24
!
# Begin configuration for Peer 1
neighbor 74.125.53.104 remote-as 9283
neighbor 74.125.53.104 soft-reconfiguration inbound
neighbor 74.125.53.104 description Peer 1
neighbor 74.125.53.104 next-hop-self
!

Обратите внимание, что в вашем примере вы использовали одну и ту же AS для своей сети и вышестоящей сети. Это не совсем обычная конфигурация, потому что обычно ваш интернет-провайдер - это одна AS, а у вас - другая. Эта конфигурация - более распространенный сценарий.

!
router bgp 9283
bgp router-id 74.125.53.103
bgp log-neighbor-changes
network 209.85.171.0/24
!
# Begin configuration for Peer 1
neighbor 74.125.53.104 remote-as 9281
neighbor 74.125.53.104 soft-reconfiguration inbound
neighbor 74.125.53.104 description Peer 1
neighbor 74.125.53.104 route-map rm_peer_1_in in
neighbor 74.125.53.104 route-map rm_peer_1_out out
!
ip prefix-list pl_peer_1_out seq 5 permit 209.85.171.0/24
!
route-map rm_peer_1_out permit 5
 match ip address prefix-list pl_peer_1_out
 set as-path prepend 9283
!
route-map rm_peer_1_in permit 5
 # Adjust this to favor some peers over others.
 # Higher number is more preferred
 # 0 - 255 with 100 being the default
 set local-preference 100
!

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

Если оба маршрутизатора имеют одинаковую AS, вы будете использовать iBGP, и поэтому обмен все маршруты, только лучшие маршруты, и все будет работать не так, как вы ожидаете, если на самом деле разные маршрутизаторы не являются частью одной внутренней сети / автономной системы.