У меня есть два маршрутизатора, которые я настраиваю в настоящее время, и они будут снабжать мою сеть серверов частным номером AS, предоставленным центром обработки данных.
Что я хочу сделать, так это предоставить как маршрут по умолчанию для отработки отказа VRRP для серверов в сети, так и убедиться, что исходящая и входящая маршрутизация всегда будет предпочтительнее по одному пути и использовать другой путь только тогда, когда основной предпочтительный путь не работает. . то есть настройка МАСТЕР / РЕЗЕРВНОЕ КОПИРОВАНИЕ.
Я уже разобрался с VRRP. Но мои знания BGP очень базовые.
Позвольте мне нарисовать немного ascii-арта топологии, чтобы было немного понятнее.
ISPA (AS 1) ISPB (AS 1)
| |
| |
R1 --- P2P (ethernet) --- R2 (AS65007)
| |
+------- LAN (ipoib) -----+
Маршрутизаторы ISP A и B - это удаленные маршрутизаторы в одном центре обработки данных. Предположим, у них есть AS 1. А еще у меня есть частный AS 65007.
А теперь давайте сформулируем это снова. Я хочу, чтобы трафик из AS 1 всегда приходил ко мне через R1 и никогда через R2, если только путь R1 к ISP A не отключен.
Предположим, ISPA и R1 имеют IP-адреса 10.1.1.1/30 и 10.1.1.2/30 соответственно. И предположим, что ISPB и R2 имеют IP-адреса 10.1.1.5/30 и 10.1.1.6/30 соответственно.
Также предположим, что диапазон сети, который я хочу рекламировать, равен 192.168.1.0/25.
Моя текущая конфигурация без смещенной маршрутизации в настоящее время работает и выглядит так:
Для R1 (R2 - почти то же самое).
ip prefix-list Net:Out seq 5 permit 192.168.1.0/25
router bgp 65007
bgp router-id 10.1.1.2
redistribute connected route-map Redist:BGP
neighbor 10.1.1.1 remote-as 558
neighbor 10.1.1.1 description Net
neighbor 10.1.1.1 soft-reconfiguration inbound
neighbor 10.1.1.1 prefix-list Net:Out out
route-map Redist:BGP permit 10
match ip address prefix-list Net:Out
** Что также имеет проблему, потому что R1 не знает, что он может достичь R2 в 10.1.1.6. IBGP отсутствует. Как мне это исправить? **
Мне сказали, что я могу искажать данные несколькими способами. Из моего NOC мне сказали, что я могу использовать localpref и добавить свою AS на резервный маршрутизатор.
Если бы я правильно понял, это выглядело бы примерно так. Где конфигурация R1 останется прежней. Это правильный синтаксис для quagga и будет ли это работать?
ip prefix-list Net:Out seq 5 permit 192.168.1.0/25
router bgp 65007
bgp router-id 10.1.1.6
redistribute connected route-map Redist:BGP
neighbor 10.1.1.5 remote-as 558
neighbor 10.1.1.5 route-map Net:In in
neighbor 10.1.1.5 description Net
neighbor 10.1.1.5 soft-reconfiguration inbound
neighbor 10.1.1.5 prefix-list Net:Out out
route-map Redist:BGP permit 10
match ip address prefix-list Net:Out
set as-path prepend 65007 65007
route-map Net:In
set local-preference 10
Однако, когда я описал свою проблему знакомому, который работает в области сетевых технологий, он сказал мне, что все еще существует большая вероятность того, что данные все равно будут передаваться через R2 от провайдера, и описал другой способ сделать это. Он сказал, что я также могу использовать MED, если провайдер примет это. Или же, поскольку обе линии исходят от одного и того же провайдера, он сказал мне, что маршрутизация очень детерминирована и всегда будет выбирать наиболее специализированный путь. Поэтому он предложил на моем основном маршрутизаторе R1 рекламировать две сети. то есть два / 26-х. Это правильно и будет ли это работать. Может, стоит комбинировать оба метода?
ip prefix-list Net:Out seq 5 permit 192.168.1.0/26
ip prefix-list Net:Out seq 10 permit 192.168.1.64/26
router bgp 65007
bgp router-id 10.1.1.2
redistribute connected route-map Redist:BGP
neighbor 10.1.1.1 remote-as 558
neighbor 10.1.1.1 route-map in Net:In
neighbor 10.1.1.1 description Net
neighbor 10.1.1.1 soft-reconfiguration inbound
neighbor 10.1.1.1 prefix-list Net:Out out
route-map Redist:BGP permit 10
match ip address prefix-list Net:Out
Итак, что бы вы мне посоветовали, эксперты BGP, и как мне определить после внесения необходимых изменений, что он действительно работает.
Обновление: указанный выше метод подсети не работал. Я предполагаю, что мой провайдер отвергает все, что меньше 25. Подтверждено, когда я попробовал это на одном маршрутизаторе. show ip bgp вообще не распространял маршрут. Может, я могу использовать MED? будет ли это лучше, чем первый метод?
Есть несколько способов выполнить то, что вы хотите, и да, добавление вашей собственной AS к маршрутам (префиксам), которые вы объявляете ISP, наряду с установкой LOCAL_PREF для тех, которые вы (будете) повторно рекламировать внутри, является хорошим моментом.
В основном вам необходимо:
Для точки 1, MED, добавление AS, сообщества и т. Д. Являются возможными метриками (например, атрибутами BGP) для настройки, но тот, который будет работать без изменений с удаленной стороны, скорее всего, будет добавлен AS (например, для MED может потребоваться инструкция например, "bgp always-compare-med" в маршрутизаторе ISP, возможно, в зависимости от их конфигурации).
Для пункта 2 можно использовать LOCAL_PREF и WEIGHT (а также сообщества и другие методы, которые нас не волнуют в этом случае). WEIGHT является собственностью Cisco (но Quagga использует его), также он не включен в обновления BGP (локально значимые), поэтому я бы выбрал LOCAL_PREF (который работает с iBGP, которого у вас еще нет).
Сказав это, чтобы попасть на netdc.com, как вы хотите, один из вариантов:
#
# R1
#
router bgp 65007
bgp router-id 10.1.1.2
network 192.168.1.0/25
neighbor 10.1.1.1 remote-as 558
neighbor 10.1.1.1 description Net
neighbor 10.1.1.1 soft-reconfiguration inbound
neighbor 10.1.1.1 route-map Net:In in
neighbor 10.1.1.1 route-map Net:Out out
neighbor iBGP_peers peer-group
neighbor iBGP_peers remote-as 65007
neighbor iBGP_peers password $whatyouwant
neighbor iBGP_peers update-source $IP #The interface in the common subnet 192.168.1.0/25, otherwise you need an internal routing protocol (IGP) also
neighbor iBGP_peers next-hop-self # Otherwise you need to advertise the p2p network between you and ISP
neighbor $IP_R2_in_192.168.1.0 peer-group iBGP_peers
neighbor $IP_R2_in_192.168.1.0 description R2
ip prefix-list local-allocations seq 10 permit 192.168.1.0/25
route-map Net:In
description allow everything
route-map Net:Out
description announce allocated routes sourced from our AS only (avoid to become a transit AS)
match ip address prefix-list local-allocations
#
# R2
#
router bgp 65007
bgp router-id 10.1.1.6
network 192.168.1.0/25
neighbor 10.1.1.5 remote-as 558
neighbor 10.1.1.5 description Net
neighbor 10.1.1.5 soft-reconfiguration inbound
neighbor 10.1.1.5 route-map Net:In_backup in
neighbor 10.1.1.5 route-map Net:Out_backup out
neighbor iBGP_peers peer-group
neighbor iBGP_peers remote-as 65007
neighbor iBGP_peers password $whatyouwant
neighbor iBGP_peers update-source $IP #The interface in the common subnet 192.168.1.0/25, otherwise you need an internal routing protocol (IGP) also
neighbor iBGP_peers next-hop-self # Otherwise you need to advertise the p2p network between you and ISP
neighbor $IP_R1_in_192.168.1.0 peer-group iBGP_peers
neighbor $IP_R1_in_192.168.1.0 description R1
ip prefix-list local-allocations seq 10 permit 192.168.1.0/25
route-map Net:In_backup
description iBGP will de-prefer all the prefixes
set local-preference 10
route-map Net:Out_backup
description announce allocated routes sourced from our AS only
match ip address prefix-list local-allocations
set as-path prepend 65007 65007 65007
Кстати, перераспределение - это плохо, если его можно избежать. Используйте команду 'network', чтобы рекламировать свой префикс (в Quagga вам не нужна подсеть в RIB, в отличие от Cisco, даже лучше).