BGP (Border Gateway Protocol)支持建立域间动态路由系统,当网络拓扑发生变化时,可以自动更新运行BGP协议的设备的路由表。
BGP是一种基于距离矢量算法的自治系统间路由协议。它用于在Internet上交换路由信息,是唯一设计用于处理Internet规模的网络的协议,也是唯一能够很好地处理到不相关路由域的多个连接的协议。
BGP被设计为允许实现复杂的管理路由策略。它不交换有关网络拓扑的信息,而是交换可达性信息。因此,BGP更适合于As间环境和信息提要等特殊情况。如果您只需要在网络中启用动态路由,请考虑使用OSPF。
SMIPS设备(hAP lite、hAP lite TC和hAP mini)不支持该特性。
标准与技术:
RFC 4364BGP/MPLS IP vpn (Virtual Private network)
BGP路由器通过传输协议交换可达性信息,在BGP的情况下是TCP(端口179)。在形成TCP连接时,这些路由器进行交换开放消息来协商和确认支持的功能。
在对使用的功能达成一致后,会话被认为已经建立,对等体可以开始交换NLRIs更新消息。该信息包含了为了到达目的网络(NLRI前缀)路由应该采取的全路径序列(BGP AS号)的指示。
对等体最初交换它们的完整路由表,在初始交换之后,随着路由表的变化,将发送增量更新。因此,BGP不需要定期刷新整个BGP路由表。
BGP维护的路由表版本号在任何两个对等体之间的连接期间必须是相同的。
KEEPALIVE定期发送消息以确保连接已启动并运行,如果KEEPALIVE的范围内无法接收消息保存时间间隔,连接将被关闭。
对错误或特殊情况作出反应;通知消息可以生成并发送到远程对等体,通知消息类型还指示是否应立即关闭连接。
BGP连接有两种类型:
一个特定的AS可能有多个BGP speaker,并向其他AS提供传输服务。这意味着BGP发言人必须在自治系统内保持一致的路由视图。通过让自治系统内的所有BGP路由器彼此建立直接iBGP连接(全网状)或利用Router Reflector设置,可以提供对自治系统外部路由的一致视图。
使用一组管理策略,自治系统内的BGP发言人就特定目的地使用哪个入口/出口点达成协议。这些信息通过内部路由协议IGP (internal routing protocol)传递给AS内部的路由器,例如OSPF、RIP或静态路由。在某些设置中,iBGP也可以扮演IGP协议的角色。
对于某些BGP属性,其处理行为可能会随着连接类型的不同而发生变化,例如LOCAL-PREF属性没有发布给eBGP对等体。
l雷竞技RouterOS将配置和会话监控分为三个菜单:
/路由/东方/连接
/路由/东方/会话
/路由/边界网关协议模板
让我们看一个非常基本的eBGP配置示例,假设Router1的IP为192.168.1.1,AS 65531, Router2的IP为192.168.1.2,AS 65532:
#Router1 /routing/bgp/connection add name=toR2 remote.address=192.168.1.2 as=65531 local.role=ebgp . conf
#Router2 /routing/bgp/connection add name=toR1 remote.address=192.168.1.1 as=65532 local.role=ebgp . conf
BGP连接菜单定义了BGP出方向的连接,同时也为BGP入方向的连接提供了模板匹配器。
local.role参数表示该连接为eBGP。另外,需要注意的是,该连接不需要指定远端AS号,RouterOS可以根据收到的第一个AS号动态地确定远端AS号l雷竞技开放消息。
local.role
与其他厂商和老版本的RouterOS "update-source"等价的参数是"l雷竞技local.address”。在大多数情况下,可以不配置它,让路由器决定地址。
local.address
当没有指定本地地址时,BGP将根据当前设置尝试猜测本地地址:
除了特定于连接的参数之外,特定于模板的参数也直接暴露在这个菜单中,以便在简单的场景中更容易配置(当不需要模板时)。
所有连接特定参数的列表如下表所示:
要查看已选择模板参数和协商能力的实际活动会话,请参见BGP会话菜单:
[admin@雷竞技网站MikroTik] /routing/bgp/session> print Flags: E - established 0 E name="toR2" remote.address=192.168.1.2 .as=65532 .id=192.168.1.1 .refused- capp -opt=no .capabilities=mp,rr,as4 .afi=ip,ipv6 .messages=43346 .bytes=3635916 .eor="" local.address=192.168.1.1 .as=65531 .id=192.168.44.2 .capabilities=mp,rr,gr,as4 .messages=2 .bytes=71 .eor="" output。Procid =97 .keep-sent-attributes=no .last-notification= ffffffffffffffffffffffffff0015030601输入。Procid =97 .limit-process-routes=500000 ebgp limit-exceeded hold-time=3m keepalive-time=1m uptime=4s70ms
该菜单显示只读缓存的BGP会话信息。它将显示会话的当前状态、标志、最后收到的通知和协商的会话参数。
即使BGP会话不再活跃,缓存仍然可以保存一段时间。只有当缓存过期时,从特定会话接收的路由才会被删除,这允许在BGP会话振荡时减少广泛的路由表重新计算。
此外,在该菜单中还包含一组特定于会话的命令。
清除会话标志。例如,为了能够在达到前缀限制后重新建立会话,必须清除“limit-exceeded”标志。可以通过指定“国旗参数,该参数可以取以下值:
国旗
保存到
地址系列
将前缀重发到指定的BGP会话。该命令接受两个参数:
模板中包含所有与BGP协议相关的配置选项。它可以用作动态对等体的模板,并将类似的配置应用于一组对等体。请注意,这与Cisco设备上的对等组不同,在Cisco设备上,对等组不仅仅是一个普通配置。
可用模板参数列表:
confederation_as /
作为= 43/34
根据BGP规范,如果路由器没有收到连续的KEEPALIVE和/或更新和/或通知的“保持时间”字段中指定的时间段内发送的消息开放消息,则关闭与对等体的BGP连接。
实际上将使用两个对等体的最小保持时间值(注意特殊值0或'infinity'比任何其他值都要低)。
配置输入多核处理。阅读更多路由协议多核支持篇文章。
该选项影响RFC 4271中描述的出方向下一跳选择(仅针对EBGP,不包括联盟本地的EBGP对等体)。
它还影响:
配置输出多核处理。阅读更多路由协议多核支持篇文章。
dump-saved-advertisements
删除过程发生在应用路由过滤器之前,也发生在本地AS之前在应用服务器路径前加上number。
要使用的BGP Router ID。的ID/路由/路由器id通过指定引用名称配置,或者通过指定IP直接配置。
等于r外部id也用于将对等点分组到一个实例中。
BGP路由器可以从多个提供商处接收到全局路由表的多个副本。
需要通过比较多个BGP路由表来选择到达目的地的最佳路由,解决方案是BGP最佳路径选择算法。
只有当路由有效时,算法才会对其进行评估。通常,如果满足以下条件,路由被认为是有效的:
有关更多信息,请阅读 接收到的第一条路径自动被认为是“最佳路径”。将任何进一步接收到的路径与第一个接收到的路径进行比较,以确定新路径是否更好。 选择最高的路径重量。该参数不是BGP标准的一部分,它是为了快速在本地选择最佳路由而发明的。该参数是路由器的本地参数(在BGP输入中分配路由过滤器),不能对外发布。缺省情况下,没有分配WEIGHT的路由值为0。 选择最高的路径LOCAL_PREF。此属性仅在自治系统内使用。不带LOCAL_PREF属性的路径默认值为100。 选择最短的路径AS_PATH。(跳过如果input.ignore-as-path-len设置为是的).无论集合大小如何,每个AS_SET计数为1。AS_CONFED_SEQUENCE和AS_CONFED_SET不包含在AS_PATH长度中。 优先选择本地聚合或BGP网络生成的路径 选择成本最低的路径起源类型。IGP (Interior Gateway Protocol)小于EGP (external Gateway Protocol), EGP (internal Gateway Protocol)小于INCOMPLETE换句话说Igp < egp <不完全 选择成本最低的路径multi-exit鉴频器(地中海)。路由器只对具有相同相邻AS(最左边)的路径比较MED属性。没有显式MED值的路径用MED为0处理 更喜欢eBGP在iBGP路径 优先选择来自最低BGP路由器的路由路由器ID。如果一条路由带有ORIGINATOR_ID属性,然后ORIGINATOR_ID代替router ID。 选择最短的路线路由反射集群列表。没有集群列表的路由被认为具有长度为0的集群列表。 优先选择邻居地址最小的路径 路由过滤器说明 在BGP自身修改属性(如if)之前执行BGP输出路由过滤器nexthop-choice设为强迫自己,则路由过滤器中设置的网关将被覆盖。 在BGP输入上,对接收到的属性应用路由过滤器,这意味着,例如,在任何情况下,设置网关都有效nexhop-choice值已设置。 运行多个实例 我们已经知道,要使最佳路径选择正常工作,必须从同一实例接收BGP路由。但是在某些情况下,有必要使用各自独立的表运行多个BGP实例。BGP通过比较配置的本地路由器id来判断会话是否属于同一实例。例如,下面的config将在自己的BGP实例中运行每个对等体 /routing/bgp/connection add name=inst1_peer remote.address=192.168.1.1 as=1234 local。Role =ebgp router-id=1.1.1.1 add name=inst2_peer remote.address=192.168.1.2 as=5678 local。角色= ebgp路由器id = 2.2.2.2 当路由器id未指定BGP将选择“默认”ID从/路由id。 vpl 子菜单:/路由/边界网关协议/ vpl 该菜单列出了所有配置的基于bgp的VPLS实例。这些实例允许路由器发布VPLS BGP NLRI,并表明该路由器属于特定的客户VPLS网络。 基于mp - bgp的自动发现和信令(RFC 4761)。 Cisco VPLS基于bgp的自动发现(draft-ietf-l2vpn-signaling-08)。 支持基于bgp的VPLS的多个导入/导出路由目标扩展团体(RFC 4761和draft-ietf-l2vpn-signaling-08)。 财产 描述 桥(名字) 应该将动态创建的VPLS接口添加为端口的桥的名称。 bridge-cost(整数(0 . . 4294967295)) bridge-horizon(无| integer [0..4294967295]) 如果设置为没有一个桥的地平线将不会被使用。 cisco-id() 惟一标识符。对于cisco类型的VPLS信令,必须设置一个参数。在大多数情况下不应该使用,任何现代软件都支持RFC 4761风格的信令(参见site-id参数)。雷电竞app下载官方版苹果参数为l2-router-id和RD的合并,例如:10.155.155.1&6550:123 评论(字符串) 项目的简短描述。 禁用(是|否) 定义项是被忽略还是被使用。 export-route-target(即时转运站名单) 该设置用于用一个或多个远端所使用的路由目标标记BGP NLRIimport-route-targets。 import-route-targets(即时转运站一览表) 通过比较从BGP NLRI收到的路由目标,确定BGP NLRI是否与特定的VPLS相关。 local-pref(整数(0 . . 4294967295)) 名字(字符串;默认值:) pw-control-word(默认|禁用|启用) 启用/禁用控制字使用。阅读更多VPLS控制字篇文章。 pw-l2mtu(整数(32 . . 65535)) 通告伪线MTU值。 pw-type(Raw-ethernet | tagged-ethernet | VPLS) 该参数从v5.16开始可用。它允许在NLRI中选择仅用于比较的广告封装。它不影响隧道的功能。参见pw-type使用示例>> 理查德·道金斯(字符串) 指定附加到VPLS NLRI的值,以便接收路由器可以区分看起来相同的广告。这意味着必须为每个VPLS使用唯一的路由标识符。没有必要在所有路由器上对某些VPLS使用相同的路由标识符,因为VPLS作为标识符不用于确定某些BGP NLRI是否与特定VPLS相关(route Target属性用于此),但不同的VPLS必须使用不同的标识符。接受3种格式。阅读更多> > site-id(整数(0 . . 65535]) 唯一的站点标识符。每个站点必须有一个唯一的site-id。RFC 4761类型的VPLS信令必须设置一个参数。 多联机(名字) VRF表名。 VPN 子菜单:/路由/边界网关协议/ vpn 线路器材 Route Distinguisher是64位整数,分为类型(type)、管理员(administrator)和值(value)三部分。 目前,定义了三种格式类型。 2字节 2字节 2字节 2字节 类型1 ASN 4字节值 类型2 4字节的IP 价值 Type3 4字节ASN 价值 属性 禁用(是|否) 出口- vpnv4导出的一组参数 .filter-chain(名字) 用于在导出前缀之前过滤前缀的路由过滤链的名称。 .filter-select(名字) 用于选择要导出的前缀的选择过滤器链的名称。 .redistribute(BGP | connected | DHCP | fantasy | modem | ospf | rip | static | VPN) 使能VRF向VPNv4分发指定路由类型。 .route-targets(rt (rt)) 导出VPNv4路由时添加的路由目标列表。接受的RT格式类似于路由区分符的格式。 进口- vpnv4导入相关的一组参数 .filter-chain(名字) 在导入过程中用于过滤前缀的路由过滤链的名称。 .route-targets(rt (rt)) 用于引入VPNv4路由的路由目标列表。接受的RT格式类似于路由区分符的格式。 .router-id(名称| IP) 将用于BGP最佳路径选择算法的BGP实例的router ID。 label-allocation-policy(每前缀|每vrf) 名字 route-distinguisher(rd) 有助于区分来自多个vrf的重叠路由。每个VRF都应该是唯一的。接受3种格式。阅读更多> > 多联机(名字) 该VPN实例将使用的VRF表名。
input.ignore-as-path-len
IGP (Interior Gateway Protocol)小于EGP (external Gateway Protocol), EGP (internal Gateway Protocol)小于INCOMPLETE
路由器只对具有相同相邻AS(最左边)的路径比较MED属性。没有显式MED值的路径用MED为0处理
在BGP自身修改属性(如if)之前执行BGP输出路由过滤器nexthop-choice设为强迫自己,则路由过滤器中设置的网关将被覆盖。
nexthop-choice
强迫自己
在BGP输入上,对接收到的属性应用路由过滤器,这意味着,例如,在任何情况下,设置网关都有效nexhop-choice值已设置。
nexhop-choice
我们已经知道,要使最佳路径选择正常工作,必须从同一实例接收BGP路由。但是在某些情况下,有必要使用各自独立的表运行多个BGP实例。BGP通过比较配置的本地路由器id来判断会话是否属于同一实例。例如,下面的config将在自己的BGP实例中运行每个对等体
/routing/bgp/connection add name=inst1_peer remote.address=192.168.1.1 as=1234 local。Role =ebgp router-id=1.1.1.1 add name=inst2_peer remote.address=192.168.1.2 as=5678 local。角色= ebgp路由器id = 2.2.2.2
当路由器id未指定BGP将选择“默认”ID从/路由id。
路由器id
/路由id
vpl
子菜单:/路由/边界网关协议/ vpl
子菜单:
/路由/边界网关协议/ vpl
该菜单列出了所有配置的基于bgp的VPLS实例。这些实例允许路由器发布VPLS BGP NLRI,并表明该路由器属于特定的客户VPLS网络。
基于mp - bgp的自动发现和信令(RFC 4761)。
Cisco VPLS基于bgp的自动发现(draft-ietf-l2vpn-signaling-08)。
支持基于bgp的VPLS的多个导入/导出路由目标扩展团体(RFC 4761和draft-ietf-l2vpn-signaling-08)。
import-route-targets
参见pw-type使用示例>>
VPN
子菜单:/路由/边界网关协议/ vpn
/路由/边界网关协议/ vpn
Route Distinguisher是64位整数,分为类型(type)、管理员(administrator)和值(value)三部分。
目前,定义了三种格式类型。