Мы пытаемся настроить 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, и поэтому обмен все маршруты, только лучшие маршруты, и все будет работать не так, как вы ожидаете, если на самом деле разные маршрутизаторы не являются частью одной внутренней сети / автономной системы.