The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Использование EXIST-MAP в BGP при наличии двух каналов"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Маршрутизаторы CISCO и др. оборудование. (BGP, ASN)
Изначальное сообщение [ Отслеживать ]

"Использование EXIST-MAP в BGP при наличии двух каналов"  +/
Сообщение от vladadm (ok) on 16-Авг-12, 11:13 
Написал небольшую статью, но её похоже не приняли, отпишусь здесь, т.к материал на самом деле полезный, и в конце у меня есть вопрос (нужны примеры vrf-lite для второго варианта), если кто поможет - буду благодарен :)

Использование BGP при наличии двух каналов в Интернет для выборочного анонсирования
Вводные данные

При наличии двух собственных подсетей /24, столкнулся с необходимостью стандартной работы BGP, и погуглив, обнаружил минимальное количество информации по этой теме. На просторах рунета, в основном рассматриваются случаи, когда имеется одна сетка /24, и 2 провайдера, один из которых используется, как резервный. Да даже и этот случай рассмотрен некорректно, либо разрознено, нормально встретил описания только на англоязычных ресурсах.

Сразу же оговорюсь - рассматриваемые фичи CiscoOS: EXIST-MAP и NON-EXIST-MAP не поддерживаются UNIX-аналогами (типа Quagga)
В данной статье я рассмотрю два примера конфигов, исходя из следующих данных.
*У нас есть два канала: основной рабочий и резервный. Оба провайдера анонсируют нам дефолт. Использование обоих каналов для нас нежелательно. Мы, в свою очередь, будем анонсировать им свои подсети, но если жив основной канал - анонс наших префиксов в резервный канал мы принудительно запретим, и будем анонсировать, только в случае падения рабочего канала
*У нас есть два рабочих канала. И нам необходимо, чтобы через первый канал ВСЕГДА работала (анонсировалась) наша первая подсеть, а через второй канал - наша вторая подсеть. Оба провайдера при этом анонсируют нам дефолты. В случае, если падает один из каналов - мы переносим анонс с этого канала, на оставшийся в живых. При возобновлении работы упавшего канала - возвращаем анонсы в начальный вид - по одной подсети через каждого провайдера

Теория:

"The BGP conditional advertisement feature uses the non-exist-map and the advertise-map keywords of the neighbor advertise-map command in order to track routes by the route prefix. If a route prefix is not present in output of the non-exist-map command, then the route specified by the advertise-map command is announced. This feature is useful for multihomed networks, in which some prefixes are advertised to one of the providers only if information from the other provider is not present (this indicates a failure in the peering session or partial reachability)."
Т.е в если в кратце: фичи EXIST-MAP и NON-EXIST-MAP - это условия проверки наличия в таблице маршрутов, описанного в роут-мапах префикса. Это триггер, срабатывающий, когда какой-то маршрут исчезает из таблицы (NON-EXIST-MAP) или наоборот появляется (EXIST-MAP)

Итак, у Вас есть:
* своя AS;
* две своих подсети класса "С" (префиксы менее /24 - не принимаются провайдерами к анонсу);
* два провайдера, с которым договорились о bgp-сессии;
* cisco с версией операционки не ниже 12.4 (в версиях ниже 12.4 отсутствует нужная нам фича EXIST-MAP, NON-EXIST-MAP);
* оба провайдера отдают Вам дефолтный маршрут и какой-нибудь любой свой префикс (далее объясню зачем этот префикс)

Случай №1: все сети отдаются одному провайдеру (основной канал), анонсирование в резервный канал начинается только в случае падения основного канала

Данный случай является самым простым, разнообразные его решения Вы можете найти где угодно, но почти всегда через [вырезано цензурой], т.е через увеличение path-prepend.
Стандартно, как для Cisco, так и для решений на UNIX-системах (при использовании Quagga), является одновременный анонс в оба канала. Просто в резервный канал идёт анонс с более длинным path prepend, но на мой взгляд это не самое удачное решение. Некоторые провайдеры препенды обрезают (так у меня было, например с ростелекомом) и вместо резервного канала - получаем балансировку между двумя каналами.

Следующее решение является более гибким, но есть два ньюанса:
1. Его нельзя реализовать на Quagga - она не умеет работать с EXIST-MAP
2. Необходимо, чтобы один из провайдеров помимо дефолта отдавал ещё какой-нибудь (любой) свой префикс, по которму будет отрабатывать EXIST-MAP, NON-EXIST-MAP. Для этого, о дополнительном префиксе легко договорится с провайдером - просто скажите NOC'у, что доп.префикс от него необходим, т.к Вы будете использовать EXIST-MAP, и свой доп. префикс провайдер добавит для Вас в анонс, без проблем.

Схема: http://img13.imageshost.ru/img/2012/08/15/image_502bd13f31b7...

Здесь - ComStar (vlan 100) - основной канал, QWERTY (vlan 200) - резервный канал, а Cisco - собственно, наш девайс.
Из логических данных:
* FastEthernet0/0.100 смотрит в основной канал ComStar;
* FastEthernet0/0.200 смотрит в резервный канал QWERTY;
* 88.88.10.0/23 - две наши подсети С-класса (88.88.10.0/24, 88.88.11.0./24), которые будем анонсировать;
* AS11111 - наша автономка;
* 10.10.10.0/24 - дополнительный префикс, который нам анонсирует провайдер основного канала, помимо дефолтного маршрута

Конфиг циски:


!
interface FastEthernet0/0
no ip address
duplex auto
speed auto
!
! Влан №100, который смотрит на ComStar
!
interface FastEthernet0/0.100
encapsulation dot1Q 100
ip address 10.192.0.10 255.255.255.0
!
! Влан №200 - смотрит на QWERTY
!
interface FastEthernet0/0.200
encapsulation dot1Q 200
ip address 192.168.1.10 255.255.255.0
!
!
ip forward-protocol nd
!
! Указываем наш префикс в нуль-интерфейс (если больше на циске эти подсети нигде не описаны),
! иначе BGP не будет делать анонс. Префикс сетей, которые будут анонсироваться - должен быть
! прописан в локальном роутинге.
!
ip route 88.88.10.0 255.255.254.0 Null0
!
! Настройки BGP
!
router bgp 11111
no synchronization
! router-id в принципе может быть какой угодно
bgp router-id 10.192.0.10
no bgp enforce-first-as
bgp log-neighbor-changes
! Сеть, которая пойдёт в анонс
network 88.88.10.0 mask 255.255.254.0
! Первый бгп-линк - комстар
neighbor 10.192.0.200 remote-as 8359
neighbor 10.192.0.200 description ComStar
neighbor 10.192.0.200 next-hop-self
neighbor 10.192.0.200 soft-reconfiguration inbound
! Установим вес для основного (приоритетного) канала
neighbor 10.192.0.200 weight 500
! Фильтруем префиксы, которые мы получаем
neighbor 10.192.0.200 route-map comstar in
! Фильтруем префиксы, которые мы отдаём
neighbor 10.192.0.200 route-map ournets out
! Второй линк - кверти
neighbor 192.168.1.200 remote-as 8615
neighbor 192.168.1.200 description QWERTY
neighbor 192.168.1.200 next-hop-self
neighbor 192.168.1.200 soft-reconfiguration inbound
! Установим вес для резервного (не приоритетного) канала
neighbor 192.168.1.200 weight 100
neighbor 192.168.1.200 route-map qwerty in
! Фильтруем префиксы которые мы отдаём
! Если мы не укажем эту строку, то мы проанонсируем провайдеру всё что есть у нас и всё
! что нам анонсировано другими линками, за исключениемнашей 88.88.10.0/23 (пока
! не сработает срабатывает триггер non-exist-map
neighbor 192.168.1.200 route-map ournets out
! Указываем префиксы, которые мы проанонсируем, если префикс 10.10.10.0/24
! исчезнет из таблицы роутинга, т.е пропадёт связь на основном канале
neighbor 192.168.1.200 advertise-map ournets non-exist-map NONEXIST_MAP
no auto-summary
!
! Опишем префикс, который нам отдаёт дополнительно наш основной провайдер
ip prefix-list NONEXIST seq 5 permit 10.10.10.0/24
!
! Опишем "левые" сети, которые мы точно не будем принимать
! если вдруг провайдер по ошибке начнёт нам их анонсировать
ip prefix-list bogons description Bad-nets
ip prefix-list bogons seq 10 permit 127.0.0.0/8 le 32
ip prefix-list bogons seq 20 permit 172.16.0.0/12 le 32
ip prefix-list bogons seq 25 permit 192.168.0.0/16 le 32
ip prefix-list bogons seq 30 permit 169.254.0.0/16 le 32
ip prefix-list bogons seq 35 permit 224.0.0.0/4 le 32
ip prefix-list bogons seq 40 permit 240.0.0.0/4 le 32
!
! Опишем наш префикс, который мы будем анонсировать
ip prefix-list our-network seq 5 permit 88.88.10.0/23
ip prefix-list our-network seq 10 deny 0.0.0.0/0
!
!
! Настраиваем роут-мапы
! Для резервного линка QWERTY:
! запрещаем приём "левых" префиксов в анонсе
route-map qwerty deny 100
match ip address prefix-list bogons
! Устанавливаем приоритетность маршрутов, т.к дефолт мы всё равно будем получать, и нам
! не надо, чтобы дефолт резервного линка перебил дефолт основного провайдера
route-map qwerty permit 110
set local-preference 200
!
! Аналогично
route-map comstar deny 100
match ip address prefix-list bogons
!
route-map comstar permit 110
set local-preference 100
!
! Мапа для условия NON-EXIST-MAP
route-map NONEXIST_MAP permit 10
match ip address prefix-list NONEXIST
!
! Ну и мапа для анонсирования нашего префикса
route-map ournets permit 100
description Permit our prefixes
match ip address prefix-list our-network

Что при этом происходит?
Основной и резервный провайдер отдают нам себя, в качестве дефолт-гейтвея (основной провайдер дополнительно отдаёт нам ещё свой префикс 10.10.10.0/24). Пока жив рабочий канал, по весу и приоритету он является в таблице маршрутизации главным. И пока в нашей локальной таблице есть его доп.префикс 10.10.10.0/24, мы не будем анонсировать свою сеть 88.88.10.0/23 резервному провайдеру. Но как только происходит разрыв bgp-сессии с основным провайдером, и у нас исчезает роутинг на префикс 10.10.10.0/24, срабатывает условие advertise-map ournets non-exist-map NONEXIST_MAP - и мы отправляем свой анонс в резервный канал (дефолтный маршрут от резерва - у нас уже есть, мы принимаем его всегда.
Вроде бы всё, и на этом, с первым вариантом закончим.


Случай №2: каждому провайдеру отдаётся по одной подсети. В случае падения одного из линков - анонс подсети /24, с упавшего линка, переносится на оставшийся в живых, а при восстановлении канала - анонсы возвращаются к начальному состоянию - по одному в каждый канал
Логические данные оставляем почти те же самые:
* 88.88.10.0/24 - анонсируем в основной канал, 88.88.11.0/24 - в резервный
* помимо дефолтного маршрута, префикс 10.10.10.0/24 получаем дополнительно от первого провайдера, а 20.20.20.0/24 - от второго - по ним будет срабатывать триггер NON-EXIST-MAP


ip forward-protocol nd
! Прописываем локальные роуты наших подсетей
ip route 88.88.10.0 255.255.255.0 Null0
ip route 88.88.11.0 255.255.255.0 Null0
!
router bgp 11111
no synchronization
bgp router-id 10.192.0.10
no bgp enforce-first-as
bgp log-neighbor-changes
! Оба наших префикса по /24
network 88.88.10.0 mask 255.255.255.0
network 88.88.11.0 mask 255.255.255.0
! Первый провайдер
neighbor 10.192.0.200 remote-as 8359
neighbor 10.192.0.200 description ComStar
neighbor 10.192.0.200 next-hop-self
neighbor 10.192.0.200 soft-reconfiguration inbound
! Приоритет на маршруты оставляем за ним
neighbor 10.192.0.200 weight 500
! Фильтруем входящие маршруты
neighbor 10.192.0.200 route-map comstar in
! Фильтруем исходящие маршруты (allournets - разрешаем анонсировать оба наших префикса)
neighbor 10.192.0.200 route-map allournets out
! Пока существует 20.20.20.0/24, получаемый от второго провайдера - мы не анонсируем
! первому провайдеру наш префикс 88.88.11.0/24
neighbor 192.168.1.200 advertise-map ournets11 non-exist-map NONEXIST_MAP2
! Второй провайдер - настраиваем по аналогии
neighbor 192.168.1.200 remote-as 8615
neighbor 192.168.1.200 description QWERTY
neighbor 192.168.1.200 next-hop-self
neighbor 192.168.1.200 soft-reconfiguration inbound
neighbor 192.168.1.200 weight 100
neighbor 192.168.1.200 route-map qwerty in
neighbor 192.168.1.200 route-map allournets out
! Пока существует 10.10.10.0/24, получаемый от первого провайдера - мы не анонсируем
! второму провайдеру наш префикс 88.88.10.0/24
neighbor 192.168.1.200 advertise-map ournets10 non-exist-map NONEXIST_MAP
no auto-summary
!
! Доп.префикс, анонсируемый первым провайдером, для доказательства его живности
ip prefix-list NONEXIST seq 5 permit 10.10.10.0/24
!
! Доп.префикс второго провайдера
ip prefix-list NONEXIST2 seq 5 permit 20.20.20.0/24
!
ip prefix-list bogons description Bad-nets
ip prefix-list bogons seq 10 permit 127.0.0.0/8 le 32
ip prefix-list bogons seq 20 permit 172.16.0.0/12 le 32
ip prefix-list bogons seq 25 permit 192.168.0.0/16 le 32
ip prefix-list bogons seq 30 permit 169.254.0.0/16 le 32
ip prefix-list bogons seq 35 permit 224.0.0.0/4 le 32
ip prefix-list bogons seq 40 permit 240.0.0.0/4 le 32
!
! Описываем оба наших префикса для анонсирования в один канал
ip prefix-list allour-network seq 5 permit 88.88.10.0/24
ip prefix-list allour-network seq 10 permit 88.88.11.0/24
ip prefix-list allour-network seq 15 deny 0.0.0.0/0
!
! Описываем запрещаемый для анонсирования префикс (условие NON-EXIST-MAP)
! для второго канала
ip prefix-list our-network10 seq 5 permit 88.88.10.0/24
ip prefix-list our-network10 seq 10 deny 0.0.0.0/0
!
! Описываем запрещаемый для анонсирования префикс (условие NON-EXIST-MAP)
! для первого канала
ip prefix-list our-network11 seq 5 permit 88.88.11.0/24
ip prefix-list our-network11 seq 10 deny 0.0.0.0/0
!
!
! Настраиваем роут-мапы
route-map qwerty deny 100
match ip address prefix-list bogons
!
route-map qwerty permit 110
set local-preference 200
!
! Роутмапы для отрабатывания NON-EXIST для первого и второго провайдера
route-map NONEXIST_MAP permit 10
match ip address prefix-list NONEXIST
!
route-map NONEXIST_MAP2 permit 10
match ip address prefix-list NONEXIST2
!
! То, что будем разрешать анонсировать при исчезновении доп.префикса провайдера 1 или 2
route-map ournets10 permit 100
description Permit our prefixes
match ip address prefix-list our-network10
!
route-map ournets11 permit 100
description Permit our prefixes
match ip address prefix-list our-network11
!
! Разрешаем анонс обоих префиксов
route-map allournets permit 100
description Permit our prefixes
match ip address prefix-list allour-network
!
route-map comstar deny 100
match ip address prefix-list bogons
!
route-map comstar permit 110
set local-preference 100

Что при этом происходит?
Первый и второй провайдеры отдают нам себя, в качестве дефолт-гейтвея (плюс - отдают нам доп.префиксы: первый провайдер - префикс 10.10.10.0/24, второй - 20.20.20.0/24).
1. Пока живы оба канала, сеть 88.88.10.0/24 анонсируется только первому провайдеру, а сеть 88.88.11.0/24 - анонсируется только второму.
2. Если падает первый канал, из нашей таблицы роутинга исчезает префикс 10.10.10.0/24, срабатывает триггер "neighbor 192.168.1.200 advertise-map ournets10 non-exist-map NONEXIST_MAP", и мы начинаем анонсировать 88.88.10.0/24 во второй канал.
3. Если падает второй канал, из нашей таблицы исчезает префикс 20.20.20.0/24, срабатывает триггер "neighbor 10.192.0.200 advertise-map ournets11 non-exist-map NONEXIST_MAP2", и мы начинаем анонсировать 88.88.11.0/24 в первый канал.
При восстановлении связи с упавшим каналом - всё возвращается к начальной схеме - анонс каждой сети в отдельный канал.

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

Оба эти конфига являются рабочими и благополучно отработали на стендовой виртуалке GNS3.
Один ньюанс - если не использовать vrf-lite, то при текущей настройке трафик будет бегать по дефолтному маршруту.
Т.е на примере второго варианта - сеть 88.88.10.0/24 анонсируется первому провайдеру, 88.88.11.0/24 - второму. Дефолт принимается от первого провайдера. Входящий сигнал в сеть 88.88.11.0/24 пойдёт через второй канал (как и надо), а вот ответ (исходящий трафик) - пойдёт по дефолтному маршруту, через первый канал, что приведёт к ассинхронизации трафика. Чтобы избежать этого, настраивается фича vrf-lite.

Буду весьма благодарен, если кто-то поможет с примерами vrf для второго варианта.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Использование EXIST-MAP в BGP при наличии двух каналов"  +/
Сообщение от AlexDv (??) on 16-Авг-12, 12:36 
> Написал небольшую статью, но её похоже не приняли, отпишусь здесь, т.к материал
> на самом деле полезный, и в конце у меня есть вопрос
> (нужны примеры vrf-lite для второго варианта), если кто поможет - буду
> благодарен :)
>  Использование BGP при наличии двух каналов в Интернет для выборочного анонсирования
>  Вводные данные

[skipped]

> Один ньюанс - если не использовать vrf-lite, то при текущей настройке трафик
> будет бегать по дефолтному маршруту.
> Т.е на примере второго варианта - сеть 88.88.10.0/24 анонсируется первому провайдеру, 88.88.11.0/24
> - второму. Дефолт принимается от первого провайдера. Входящий сигнал в сеть
> 88.88.11.0/24 пойдёт через второй канал (как и надо), а вот ответ
> (исходящий трафик) - пойдёт по дефолтному маршруту, через первый канал, что
> приведёт к ассинхронизации трафика. Чтобы избежать этого, настраивается фича vrf-lite.

Я бы еще добавил, что если у провайдера включен URPF check, то эти пакеты будут дропнуты,
и ничего работать не будет.

> Буду весьма благодарен, если кто-то поможет с примерами vrf для второго варианта.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Использование EXIST-MAP в BGP при наличии двух каналов"  +/
Сообщение от fantom (ok) on 16-Авг-12, 15:04 
>[оверквотинг удален]
>> Один ньюанс - если не использовать vrf-lite, то при текущей настройке трафик
>> будет бегать по дефолтному маршруту.
>> Т.е на примере второго варианта - сеть 88.88.10.0/24 анонсируется первому провайдеру, 88.88.11.0/24
>> - второму. Дефолт принимается от первого провайдера. Входящий сигнал в сеть
>> 88.88.11.0/24 пойдёт через второй канал (как и надо), а вот ответ
>> (исходящий трафик) - пойдёт по дефолтному маршруту, через первый канал, что
>> приведёт к ассинхронизации трафика. Чтобы избежать этого, настраивается фича vrf-lite.
> Я бы еще добавил, что если у провайдера включен URPF check, то
> эти пакеты будут дропнуты,
> и ничего работать не будет.

Асинхронность в BGP - абсолютно нормальное явление, нормальный пров на линке с BGP никогда  URPF check не включит...


>> Буду весьма благодарен, если кто-то поможет с примерами vrf для второго варианта.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Использование EXIST-MAP в BGP при наличии двух каналов"  +/
Сообщение от eek email on 16-Авг-12, 15:14 
> Асинхронность в BGP - абсолютно нормальное явление,
> нормальный пров на линке с
> BGP никогда  URPF check не включит...

Нормальный да, но осведомиться у апстрима (а не включено ли случайно) и заодно предупредить о том, что у вас оно вот так настроено - лишним не будет.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Использование EXIST-MAP в BGP при наличии двух каналов"  +/
Сообщение от fantom (ok) on 16-Авг-12, 15:23 
>[оверквотинг удален]
>>> - второму. Дефолт принимается от первого провайдера. Входящий сигнал в сеть
>>> 88.88.11.0/24 пойдёт через второй канал (как и надо), а вот ответ
>>> (исходящий трафик) - пойдёт по дефолтному маршруту, через первый канал, что
>>> приведёт к ассинхронизации трафика. Чтобы избежать этого, настраивается фича vrf-lite.
>> Я бы еще добавил, что если у провайдера включен URPF check, то
>> эти пакеты будут дропнуты,
>> и ничего работать не будет.
> Асинхронность в BGP - абсолютно нормальное явление, нормальный пров на линке с
> BGP никогда  URPF check не включит...
>>> Буду весьма благодарен, если кто-то поможет с примерами vrf для второго варианта.

Проблема основной/резервный в вашем случае решается намного проще:

В основной канал анонсятся 2 сети по /24, В РЕЗЕРВНЫЙ одна /23, в результате
весь траф всегда уходит в основной пока он жив, и только когда умер - пойдет в резервный.

Какими соображениями оправдано использование веса, а не локал-преференс?
если ваш подход смасштабировать на 2 маршрутизатора (один канал - о один, другой - во второй), то локал-преференс отработает правильно, а вот вес между маршрутизаторами не передается.

Вариант с vrf может быть применим если у вас сети четко разделены на маршрутизаторе, если же трафик валится на него вперемешку от обоих ваших сетей то без PBR-а скорее всего не обойтись.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Использование EXIST-MAP в BGP при наличии двух каналов"  +/
Сообщение от fantom (ok) on 16-Авг-12, 15:33 
>[оверквотинг удален]
> в результате
> весь траф всегда уходит в основной пока он жив, и только когда
> умер - пойдет в резервный.
> Какими соображениями оправдано использование веса, а не локал-преференс?
> если ваш подход смасштабировать на 2 маршрутизатора (один канал - о один,
> другой - во второй), то локал-преференс отработает правильно, а вот вес
> между маршрутизаторами не передается.
> Вариант с vrf может быть применим если у вас сети четко разделены
> на маршрутизаторе, если же трафик валится на него вперемешку от обоих
> ваших сетей то без PBR-а скорее всего не обойтись.

Вариант 2 кстати решается аналогично
1 сеть /24  в один канал, вторая /24 в другой канал и /23 в оба канала.

Вашь метод перекрывает случай, когда есть 2 по /24 сетки, но в /23 ини не обьединяются...

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "Использование EXIST-MAP в BGP при наличии двух каналов"  +/
Сообщение от vladadm (ok) on 16-Авг-12, 15:36 
> Вариант 2 кстати решается аналогично
> 1 сеть /24  в один канал, вторая /24 в другой канал
> и /23 в оба канала.
> Вашь метод перекрывает случай, когда есть 2 по /24 сетки, но в
> /23 ини не обьединяются...

Нееее, поясню - проблема с ИСХОДЯЩИМ трафиком, он идёт вне зависимости от того, куда анонсировалась сеть - идёт он в этот, как его... в ж..., тьфу - в дефолт :)
Мне дали наводку, что меня спасёт vrf-lite, роутинг внутри роутинга, я неделю сижу перевожу маны по нему, но не могу понять как оно работает и как мне vrf применить в моём случае

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

6. "Использование EXIST-MAP в BGP при наличии двух каналов"  +/
Сообщение от vladadm (ok) on 16-Авг-12, 15:33 
>> Буду весьма благодарен, если кто-то поможет с примерами vrf для второго варианта.
> Проблема основной/резервный в вашем случае решается намного проще:
> В основной канал анонсятся 2 сети по /24, В РЕЗЕРВНЫЙ

У меня проблема не "основной-резервный" - у меня второй случай, оба канала рабочие :)
Но исходящий трафик валит по дефолтному маршруту и плюёт на то, что анонируется вторая сеть во второй канал. Она не должна в первый уходить.
Скажу больше - я просто рассмотрел лёгкий пример, в надежде, что мне с ним помогут по настройке vrf, тогда я уже смогу у себя сделать в сложном примере. А сложный в моём понимании сейчас, над которы м я бьюсь:
есть 6 сетей С-класса. Каналы: 1, 2 и М-9. Мне надо чтобы 2 сети ходили во второй канал и М-9, ещё две сети ходили в каналы: м-9, второй и первый, и ещё две сети ходили исключительно в первый канал :)
Я просто не стал такой замут рассмартивать в статье, т.к если кто и поможет с vrf, vrf-lite, то на более лёгком примере, как здесь в статье :)

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "Использование EXIST-MAP в BGP при наличии двух каналов"  +/
Сообщение от fantom (ok) on 16-Авг-12, 15:56 
>[оверквотинг удален]
> с ним помогут по настройке vrf, тогда я уже смогу у
> себя сделать в сложном примере. А сложный в моём понимании сейчас,
> над которы м я бьюсь:
> есть 6 сетей С-класса. Каналы: 1, 2 и М-9. Мне надо чтобы
> 2 сети ходили во второй канал и М-9, ещё две сети
> ходили в каналы: м-9, второй и первый, и ещё две сети
> ходили исключительно в первый канал :)
> Я просто не стал такой замут рассмартивать в статье, т.к если кто
> и поможет с vrf, vrf-lite, то на более лёгком примере, как
> здесь в статье :)

Сколько маршрутизаторов задействовано всего в сети?

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

9. "Использование EXIST-MAP в BGP при наличии двух каналов"  +/
Сообщение от fantom (ok) on 16-Авг-12, 15:56 
>[оверквотинг удален]
>> себя сделать в сложном примере. А сложный в моём понимании сейчас,
>> над которы м я бьюсь:
>> есть 6 сетей С-класса. Каналы: 1, 2 и М-9. Мне надо чтобы
>> 2 сети ходили во второй канал и М-9, ещё две сети
>> ходили в каналы: м-9, второй и первый, и ещё две сети
>> ходили исключительно в первый канал :)
>> Я просто не стал такой замут рассмартивать в статье, т.к если кто
>> и поможет с vrf, vrf-lite, то на более лёгком примере, как
>> здесь в статье :)
> Сколько маршрутизаторов задействовано всего в сети?

И все ли из них поддерживают vrf??

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Использование EXIST-MAP в BGP при наличии двух каналов"  +/
Сообщение от vladadm (ok) on 16-Авг-12, 16:01 
>> Я просто не стал такой замут рассмартивать в статье, т.к если кто
>> и поможет с vrf, vrf-lite, то на более лёгком примере, как
>> здесь в статье :)
> Сколько маршрутизаторов задействовано всего в сети?

Одна моя циска 2821 и дальше уже маршрутизаторы 2ух провайдеров и м-9.
Я надеюсь обойтись vrf-lite.
С анонсами проблем нет, всё нормально работает, анонсируется. Мне надо решить проблему только с исходящим трафиком, только на локальной циске. Чтобы трафик каждой подсети шёл строго в тот канал, куда она проанонсировалась в данный момент. И если анонс перенёсся в другой канал, соответственно, чтобы и трафик этой сети перенёсся тоже в этот же канал, а не как сейчас в дефолт убегает. pbr не подходит в данном случае, т.к он принудительно может завернуть трафик нужной сети в интерфейс, и если он упадёт и её анонс перенесётся на другой интерфейс, то трафик будет продолжать заворачиваться в упавший интерфейс :(
Вот поэтому мне и дали наводку рыть в сторону vrf-lite. Но своего ума мне не хватило освоить и применить vrf здесь, вот и попросил о помощи, заодно поделился конфигом, может кому-то понадобиться, т.к работа с non-exist-map мало где рассмотрена нормально :)

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

11. "Использование EXIST-MAP в BGP при наличии двух каналов"  +1 +/
Сообщение от fantom (ok) on 16-Авг-12, 16:33 
>>> Я просто не стал такой замут рассмартивать в статье, т.к если кто
>>> и поможет с vrf, vrf-lite, то на более лёгком примере, как
>>> здесь в статье :)
>> Сколько маршрутизаторов задействовано всего в сети?
> Одна моя циска 2821 и дальше уже маршрутизаторы 2ух провайдеров и м-9.
> Я надеюсь обойтись vrf-lite, без mpls.

При использовании всего одной железки vrf вроде эквивалентен vrf-lite, но это для вас и не важно.

создаем 2 vrf-а:
vrf_1
vrf_2

В первый запихиваем все интерфейсы из 1-ой подсети и интерфейс 1-ого прова.
Во второй - все интерфейсы из 2-ой подсети и второго прова.

BGP

Router(config)# router bgp 1234

Router(config-router)# address-family ipv4 vrf_1

Router(config-router-af)# neighbor 1.1.1.1 remote-as 1111

Router(config-router-af)# neighbor 1.1.1.1 activate

Router(config-router-af)# network a.a.a.a mask 255.255.255.0

Router(config-router-af)# exit

Router(config-router)# address-family ipv4 vrf_2

Router(config-router-af)# neighbor 2.2.2.2 remote-as 2222

Router(config-router-af)# neighbor 2.2.2.2 activate

Router(config-router-af)# network b.b.b.b mask 255.255.255.0

Router(config-router-af)# end


(Не забываем нужные роутмапы прикрутить)
Первая сеть - только через первого прова, вторая - только через второго.

теперь надо обеспечить связность и резервирование.
Ну по поводу EXIST-MAP - не знаю будет ли сие работать в с vrf-ом....

по поводу связности с резервированием:

Можно поиграться с route leaking между VRF-ами и посмотреть с каким AD маршруты из одного VRF попадут в другой.

Можно поступить "дубово" - на 2821 2x1Г интерфейса, втыкаете их в один коммутатор и что-то типа

int gig0/0.1111
enc dot 1111
ip vrf forw vrf_1
ip add 10.100.100.1 255.255.255.252

int gig0/1.1111
enc dot 1111
ip vrf forw vrf_2
ip add 10.100.100.2 255.255.255.252

и затем мершрутизация
для vrf_1 куда пулять траф для сети 2 и дефолт для резерва
ip route vrf vrf_1 b.b.b.b 255.255.255.0 10.100.100.2 name Net_2
ip route vrf vrf_1 0.0.0.0 0.0.0.0 10.100.100.2 220 name Def_gw

для vrf_2 куда пулять траф для сети 1 и дефолт для резерва
ip route vrf vrf_2 a.a.a.a 255.255.255.0 10.100.100.1 name Net_1
ip route vrf vrf_2 0.0.0.0 0.0.0.0 10.100.100.1 220 name Def_gw


теперь если анонс 0.0.0.0/0 пропадет из bgp, траф уйдет по статике в соседний vrf

как-то так

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "Использование EXIST-MAP в BGP при наличии двух каналов"  +/
Сообщение от vladadm (ok) on 16-Авг-12, 16:39 
> как-то так

Благодарю тебя, добрый человек :) Именно этого я и хотел.
Буду в выходные на GNS3 тестить, по результатам отпишусь.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

14. "Использование EXIST-MAP в BGP при наличии двух каналов"  +/
Сообщение от IZh (ok) on 16-Авг-12, 17:45 
>Асинхронность в BGP - абсолютно нормальное явление, нормальный пров на линке с BGP никогда  URPF check не включит...

По своему опыту:
М9, датаикс - включено
Ретн, комстар - включено
Всё-таки ненормально как раз по-моему разрешать пакеты от любых сетей.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

15. "Использование EXIST-MAP в BGP при наличии двух каналов"  +/
Сообщение от fantom (ok) on 17-Авг-12, 10:39 
>>Асинхронность в BGP - абсолютно нормальное явление, нормальный пров на линке с BGP никогда  URPF check не включит...
> По своему опыту:
> М9, датаикс - включено
> Ретн, комстар - включено
> Всё-таки ненормально как раз по-моему разрешать пакеты от любых сетей.

Вопрос не в разрешении пакетов от любых сетей, а фактически в "маршрутизации от источника".
Неоднократно разбирался с вопросами "почему такой-то ресурс (местного прова по соседству) не доступен от вас, а от соседнего прова или из израиля (китая и т.д.) - доступен" и почти всегда упирались именно в проверку обратного маршрута на BGP линках...

Учите матчасть - маршрутизация КАЖДОГО пакета - процесс независимый и по классике основан ИСКЛЮЧИТЕЛЬНО на адресе получателя....

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "Использование EXIST-MAP в BGP при наличии двух каналов"  +/
Сообщение от IZh (ok) on 17-Авг-12, 11:15 
> Вопрос не в разрешении пакетов от любых сетей, а фактически в "маршрутизации
> от источника".
> Неоднократно разбирался с вопросами "почему такой-то ресурс (местного прова по соседству)
> не доступен от вас, а от соседнего прова или из израиля
> (китая и т.д.) - доступен" и почти всегда упирались именно в
> проверку обратного маршрута на BGP линках...

Неправильная настройка чего-либо не обозначает порочность настроенного.

> Учите матчасть - маршрутизация КАЖДОГО пакета - процесс независимый и по классике
> основан ИСКЛЮЧИТЕЛЬНО на адресе получателя....

Эвона сколько спеси напущено, всего-то в одном предложении.

RFC?

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

17. "Использование EXIST-MAP в BGP при наличии двух каналов"  +/
Сообщение от fantom (ok) on 17-Авг-12, 12:07 
>> Вопрос не в разрешении пакетов от любых сетей, а фактически в "маршрутизации
>> от источника".
>> Неоднократно разбирался с вопросами "почему такой-то ресурс (местного прова по соседству)
>> не доступен от вас, а от соседнего прова или из израиля
>> (китая и т.д.) - доступен" и почти всегда упирались именно в
>> проверку обратного маршрута на BGP линках...
> Неправильная настройка чего-либо не обозначает порочность настроенного.

А я и не говорю о порочности этого метода, я лишь указываю на порчность его бездумного применения везде и всюду.

>> Учите матчасть - маршрутизация КАЖДОГО пакета - процесс независимый и по классике
>> основан ИСКЛЮЧИТЕЛЬНО на адресе получателя....
> Эвона сколько спеси напущено, всего-то в одном предложении.
> RFC?

Загляните в таблицу маршрутов любого маршрутизатора и найдите там параметры, отличные от сети назначения (естественно метрики,AD, типы протоколов из которых маршруты получены - все это не в счет... нужно что-то, что можно "взять" исключительно из IP заголовка)

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

13. "Использование EXIST-MAP в BGP при наличии двух каналов"  +/
Сообщение от IZh (ok) on 16-Авг-12, 17:42 
"Его нельзя реализовать на Quagga - она не умеет работать с EXIST-MAP"

bird ?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру