As override bgp что это
BGP как это работает на оборудовании Juniper
BGP — Border Gateway Protocol — динамический протокол маршрутизации, используется для передачи маршрутной информации между автономными системами, или в пределах одной автономной системы ( iBGP ), на ядре сети, для обеспечения сервисов MPLS — TE.
На оборудовании Juniper Networks настройка протокола BGP выглядит следующим образом:
!
protocols <
bgp <
local-as ASxxxx;
group groupname <
type internal;
neighbor 10.10.10.1 <
description Description;
import [ policy-list ];
export [policy-list];
peer-as ASxxxx;
>
>
!
Это минимальная конфигурация, которая позволит вашему протоколу BGP начать работать.
Теперь рассмотрим как это все настраивается, какие частные случаи бывают, и как с ними работать.
Существует два варианта объявления двух важных параметров протокола BGP: номера нашей автономной системы, и параметра RiD ( адрес от которого наше оборудование будет строить все сессии с соседями).
Настроить непосредственно:
под уровнем protocols bgp/group/neighbor для частных случаев
под уровнем routing-options глобально для всей железки.
Рассмотрим сначала второй вариант:
!
lab@mxA-1# edit routing-options
[edit routing-options]
lab@mxA-1#set local-as 65535
[edit routing-options]
lab@mxA-1#set router-id 10.10.10.3
!
В данном случае мы указали что глобально наш маршрутизатор имеет номер автономной системы 65535 и параметр RiD 10.10.10.3
Теперь рассмотрим первый вариант, настройка на уровне protocols:
!
lab@mxA-1# edit protocols bgp
[edit protocols bgp]
lab@mxA-1#
!
Мы находимся на уровне конфигурирования протокола BGP начнем настройку с объявления, номера нашей AS:
!
[edit protocols bgp]
lab@mxA-1# set local-as 65535
[edit protocols bgp]
lab@mxA-1#
!
Мы указали что наш маршрутизатор будет общаться от номера AS65535 со всеми соседями указанными под данным уровнем конфигурации.
Зададим параметр RID
!
[edit protocols bgp]
lab@mxA-1# set local-address 10.10.10.10.3
!
Данный параметр может быть настроен так же на уровне Group и уровне Neigbor об этом так же будет сказано ниже.
Теперь нам необходимо описать соседей с которыми будет общаться наш маршрутизатор посредством BGP. В OS Junos все соседи объединяются в группы (в данном случае группа, в конфигурации протокола — необходимый раздел, без него нельзя настраивать соседа), которым присваиваются свои общие свойства.
!
lab@mxA-1# edit group MAIN
[edit protocols bgp group MAIN]
lab@mxA-1# edit neighbor 10.10.10.1
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1#
!
мы находимся на уровне конфигурирования соседа, который имеет адрес 10.10.10.1. Так же есть возможность настройки параметров целой группы, или целиком протокола. Приоритет настроек идет следующим образом: сосед, группа, протокол.
В данном случае все параметры, настроенные на этом уровне будут более приоритетными чем те, которые настроены на уровне группы или самого протокола.
Настроим номер автономной системы в которой находится сосед:
!
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set peer-as 65534
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1#
!
Так же можно указать следующие параметры:
!
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set as-override
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set remove-private
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set multipath
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set export Export
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set import Import
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set advertise-inactive
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set multihop
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set passive
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set type
!
as-override — используется для замены номера AS соседа в параметре AS-PATH на свой собственный номер AS
remove-private используется для того, что бы убрать все известные номера private AS из параметра AS-PATH
multipath — данный параметр позволяет отключить проверку параметра RiD при выборе активных маршрутов принимаемых по BGP. если указать параметр multiple-as то это позволит отключить проверку того, что маршрут приходит от двух различных AS. Данный функционал необходим для организации балансировки трафика приходящего двум различным путям.
export, import [polycy name] — позволяет использовать различные политики для обработки трафика, приходящего от данного соседа. Все политики выбираются и настраиваются в разделе политик.
advertise-inactive — говорит маршрутизатору передавать через BGP все маршруты, даже те, которые не отмечены как активные и не находятся в таблице маршрутизации.
multihop — данный параметр указывает что сосед не является подключенным напрямую к нашему маршрутизатору, а находится за несколько hop от него. Данный параметр дает возможность установить ttl hello пактов bgp сессии больше чем 1, и позволить сессии подняться.
passive — данный параметр позволят нам сказать, что к данному соседу не будут отправляться сообщения о начале установки BGP сессии.
type — internal /external, протокол BGP имеет два вида: eBgp и iBgp. eBgp работает между автономными системами, iBgp работает внутри одной автономной системы. В зависимости от вида протокола, необходимо указать внешний это сосед (external) или внутренний (internal).
из примера видно что мы можем настроить тип пакетов передаваемых по BGP сессии в зависимости от того, для чего будет использоваться данная сессия. Например для передачи информации VPN L2 или VPN L3. Через данный параметр можно настроить передачу меток MPLS между AS посредством BGP или ограничить количество префиксов, приходящих от соседа.
!
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set family inet labeled-unicast prefix-limit maximum 20 teardown
!
Этот простой пример показал что мы настроили максимально возможное количество префиксов от соседа 20 штук, и что сессия используется для передачи MPLS меток IPv4.
Детальный разбор как работает и когда необходима данная настройка это отдельная задача.
В конце хотелось бы сказать что, на любом уровне настройки протокола BGP есть такой важный параметр как Description: который позволяет нам оставить небольшие комментарии, описывающие данную группу соседей или конкретного соседа, для того что бы нам самим потом не потеряться в нашей конфигурации.
Я рассказал про основные параметры которые могут потребоваться при базовой настройке протокола BGP и его корректной работы.
Дополнительные фишки достигаются применением различных политик меняющих принцип маршрутизации и работы протокола.
BGP как это работает на оборудовании Juniper
BGP — Border Gateway Protocol — динамический протокол маршрутизации, используется для передачи маршрутной информации между автономными системами, или в пределах одной автономной системы ( iBGP ), на ядре сети, для обеспечения сервисов MPLS — TE.
На оборудовании Juniper Networks настройка протокола BGP выглядит следующим образом:
!
protocols <
bgp <
local-as ASxxxx;
group groupname <
type internal;
neighbor 10.10.10.1 <
description Description;
import [ policy-list ];
export [policy-list];
peer-as ASxxxx;
>
>
!
Это минимальная конфигурация, которая позволит вашему протоколу BGP начать работать.
Теперь рассмотрим как это все настраивается, какие частные случаи бывают, и как с ними работать.
Существует два варианта объявления двух важных параметров протокола BGP: номера нашей автономной системы, и параметра RiD ( адрес от которого наше оборудование будет строить все сессии с соседями).
Настроить непосредственно:
под уровнем protocols bgp/group/neighbor для частных случаев
под уровнем routing-options глобально для всей железки.
Рассмотрим сначала второй вариант:
!
lab@mxA-1# edit routing-options
[edit routing-options]
lab@mxA-1#set local-as 65535
[edit routing-options]
lab@mxA-1#set router-id 10.10.10.3
!
В данном случае мы указали что глобально наш маршрутизатор имеет номер автономной системы 65535 и параметр RiD 10.10.10.3
Теперь рассмотрим первый вариант, настройка на уровне protocols:
!
lab@mxA-1# edit protocols bgp
[edit protocols bgp]
lab@mxA-1#
!
Мы находимся на уровне конфигурирования протокола BGP начнем настройку с объявления, номера нашей AS:
!
[edit protocols bgp]
lab@mxA-1# set local-as 65535
[edit protocols bgp]
lab@mxA-1#
!
Мы указали что наш маршрутизатор будет общаться от номера AS65535 со всеми соседями указанными под данным уровнем конфигурации.
Зададим параметр RID
!
[edit protocols bgp]
lab@mxA-1# set local-address 10.10.10.10.3
!
Данный параметр может быть настроен так же на уровне Group и уровне Neigbor об этом так же будет сказано ниже.
Теперь нам необходимо описать соседей с которыми будет общаться наш маршрутизатор посредством BGP. В OS Junos все соседи объединяются в группы (в данном случае группа, в конфигурации протокола — необходимый раздел, без него нельзя настраивать соседа), которым присваиваются свои общие свойства.
!
lab@mxA-1# edit group MAIN
[edit protocols bgp group MAIN]
lab@mxA-1# edit neighbor 10.10.10.1
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1#
!
мы находимся на уровне конфигурирования соседа, который имеет адрес 10.10.10.1. Так же есть возможность настройки параметров целой группы, или целиком протокола. Приоритет настроек идет следующим образом: сосед, группа, протокол.
В данном случае все параметры, настроенные на этом уровне будут более приоритетными чем те, которые настроены на уровне группы или самого протокола.
Настроим номер автономной системы в которой находится сосед:
!
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set peer-as 65534
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1#
!
Так же можно указать следующие параметры:
!
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set as-override
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set remove-private
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set multipath
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set export Export
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set import Import
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set advertise-inactive
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set multihop
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set passive
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set type
!
as-override — используется для замены номера AS соседа в параметре AS-PATH на свой собственный номер AS
remove-private используется для того, что бы убрать все известные номера private AS из параметра AS-PATH
multipath — данный параметр позволяет отключить проверку параметра RiD при выборе активных маршрутов принимаемых по BGP. если указать параметр multiple-as то это позволит отключить проверку того, что маршрут приходит от двух различных AS. Данный функционал необходим для организации балансировки трафика приходящего двум различным путям.
export, import [polycy name] — позволяет использовать различные политики для обработки трафика, приходящего от данного соседа. Все политики выбираются и настраиваются в разделе политик.
advertise-inactive — говорит маршрутизатору передавать через BGP все маршруты, даже те, которые не отмечены как активные и не находятся в таблице маршрутизации.
multihop — данный параметр указывает что сосед не является подключенным напрямую к нашему маршрутизатору, а находится за несколько hop от него. Данный параметр дает возможность установить ttl hello пактов bgp сессии больше чем 1, и позволить сессии подняться.
passive — данный параметр позволят нам сказать, что к данному соседу не будут отправляться сообщения о начале установки BGP сессии.
type — internal /external, протокол BGP имеет два вида: eBgp и iBgp. eBgp работает между автономными системами, iBgp работает внутри одной автономной системы. В зависимости от вида протокола, необходимо указать внешний это сосед (external) или внутренний (internal).
из примера видно что мы можем настроить тип пакетов передаваемых по BGP сессии в зависимости от того, для чего будет использоваться данная сессия. Например для передачи информации VPN L2 или VPN L3. Через данный параметр можно настроить передачу меток MPLS между AS посредством BGP или ограничить количество префиксов, приходящих от соседа.
!
[edit protocols bgp group MAIN neighbor 10.10.10.1]
lab@mxA-1# set family inet labeled-unicast prefix-limit maximum 20 teardown
!
Этот простой пример показал что мы настроили максимально возможное количество префиксов от соседа 20 штук, и что сессия используется для передачи MPLS меток IPv4.
Детальный разбор как работает и когда необходима данная настройка это отдельная задача.
В конце хотелось бы сказать что, на любом уровне настройки протокола BGP есть такой важный параметр как Description: который позволяет нам оставить небольшие комментарии, описывающие данную группу соседей или конкретного соседа, для того что бы нам самим потом не потеряться в нашей конфигурации.
Я рассказал про основные параметры которые могут потребоваться при базовой настройке протокола BGP и его корректной работы.
Дополнительные фишки достигаются применением различных политик меняющих принцип маршрутизации и работы протокола.
MPLS Layer 3 VPN BGP AS Override
BGP has a simple loop prevention mechanism for external BGP. When you see your own AS number in the AS path, we do not accept the prefix. This mechanism is fine for Internet routing but there are some other scenarios where this might be an issue. Take a look at the following topology:
Above we have a small MPLS VPN network with two customer sites. The customer is using the same AS number (12) for both sites. When CE1 or CE2 receive an update from each other they will not accept it since their own AS number will be in the AS path.
Let’s find out if this is true. Here are the configurations of all routers:
Here you will find the startup configurations of each device.
Let’s find out what is going on. First we’ll check if the PE routers have a VPN route for the prefixes from the CE routers:
The PE routers have an entry for the loopback interfaces of the CE routers. Are they advertising these to the CE routers?
The PE routers are advertising these to the CE routers. Let’s check the CE routers:
There’s nothing there…they only have the prefix on their own loopback interface in the BGP table. Let’s enable a debug on CE1 to figure out why it’s not accepting anything from PE1:
Let’s reset the neighbor adjacency:
Here’s what you will see:
No surprises here…CE1 is denying the update since it sees its own AS number in the AS path. If we want to keep the same AS number on CE1 and CE2 then there are two possible solutions for this issue:
This lesson is about AS override so that’s what we will do. Let’s configure the PE routers:
IP Routing: BGP Configuration Guide, Cisco IOS XE Release 3S
Book Title
IP Routing: BGP Configuration Guide, Cisco IOS XE Release 3S
Chapter Title
BGP AS-Override Split-Horizon
View with Adobe Reader on a variety of devices
View in various apps on iPhone, iPad, Android, Sony Reader, or Windows Phone
View on Kindle device or Kindle app on multiple devices
Results
Chapter: BGP AS-Override Split-Horizon
BGP AS-Override Split-Horizon
The BGP AS-Override Split-Horizon feature enables a Provider Edge (PE) device using split-horizon to avoid advertisement of routes propagated by a Customer Edge (CE) device to the same CE device. The BGP AS-Override Split-Horizon feature also enables a PE or CE device to send route updates to a specific PE or CE device in the same replication group.
Finding Feature Information
Your software release may not support all the features documented in this module. For the latest caveats and feature information, see Bug Search Tool and the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the feature information table.
Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.
Information About BGP AS-Override Split-Horizon
BGP AS-Override Split-Horizon Overview
When you configure split-horizon on a device, the Provider Edge (PE) device may advertise routes propagated from a Customer Edge (CE) device to the same CE device. The BGP AS-Override Split Horizon feature groups all the BGP neighbors into separate replication-groups, even when they are in the same update-group, and ensures that the route updates propagated from a CE device are not sent to the same CE device.
The BGP AS-Override Split Horizon feature enables a PE or CE device to selectively send and block updates to one or more neighboring PE or CE devices in the same update-group. The PE or CE device sends or blocks a message to a neighboring PE or CE device based on the type of the message and on whether the originator of the message matches the router ID of the PE or CE device.
Note | Configuring the site-of-origin (SoO) along with the BGP AS-Override Split-Horizon feature is not recommended. How to Configure BGP AS-Override Split-HorizonConfiguring BGP AS-Override Split-Horizon2. configure terminal 3. router bgp autonomous-system-number 4. address family ipv4 vrf vrf-name 5. neighbor ip-address remote-as autonomous-system-number 6. neighbor ip-address activate 7. neighbor ip-address as-override split-horizon 8. Repeat Step 5 to Step 7 to enable split-horizon for different neighbors in a virtual routing and forwarding (VRF) instance. DETAILED STEPS
|