BGP协议为方便管理, 互连网被划分为不同的自治系统,BGP协议用来学习不同的自治系统间的路由信息。
Autonomous Systems:运行同一种选路策略,由统一管理者管理。
自治系统号由IANA (Internet地址授权委员会)分配, 组织使用BGP连接INTERNET 时,必须要申请公有AS号。
AS: 1—65535, 其中公有: 1—64511私有: 64512—65535当前, BGP协议广泛在INTERNET和大型行业及企业网中应用。
路由协议作用:动态学习互连网网的路由信息。
内部网关协议IGP, 如RIP /OSPF /EIGRP 在选择路径时, 依据:度量值RIP 跳数OSPF 开销=100M/带宽EIGRP带宽+延迟外部网关协议EGP, 当前使用的是BGP(边界网关协议, 它的前身是EGP), 在选择路径时, 采用的是BGP属性(或者可以称之为策略).使用BGP的原因:1.管理:电信联通2.支持更多的路由条目(OSPF最多1万条,ISIS最多2万条,而internet现在路由条目为13万多条)3.策略:非常丰富的属性(路由策略)对路由进行控制。
4.扩展:IPV4 IPV6 VPNV4(MBGP, 用于MPLS-VPN)BGP属性:一.AS路径属性.BGP是一种路径矢量型协议, 类似于RIP(距离矢量协议).。
默认情况下, BGP协议会选择一条从源到目的地的最短无环路径。
分析:从AS200访问160.1.0.0 /16, BGP协议默认会选择:160.1.0.0/16 300 600 i400 500 600 i类似于RIP的逐跳选择,以AS为跳数,选择最短的AS无环路径。
并且,在向邻居通告时,只通告自已采用的路由。
EBGP水平分割不接收路径列表中包含本身AS号的路由更新。
(防止环路)二.下一跳属性默认, 下一跳为邻接AS路由器的外部接口IP.如果下一跳不可达,则路由无效,解决办法:1. 通过IGP学习2. 修改下一跳属性R2(config-router) # neighbor 23.0.0.3 next-hop-selfneighbor 34.0.0.4 next-hop-self可避免AS间路径在IGP中通告三.源头属性信息来源:i 由BGP的Network命令通告的路由e 由EGP(早期的外部网关协议)学来的(现在已不用)? 通过重分发到BGP进程学到的.可信度i>e >?实验: 基本的BGP配置.要求: AS100 BGP + OSPF 重分发AS200 BGP + EIGRPAS300 BGP1、IGP的配置R1(config)# router ospf 1router-id 1.1.1.1net 15.0.0.1 0.0.0.0 area 1net 110.0.0.1 0.0.0.0 area 1R5(config)# router ospf 1router-id 5.5.5.5net 15.0.0.1 0.0.0.0 area 1net 100.0.0.1 0.0.0.0 area 1R2(config)# router eigrp 200network 23.0.0.0network 170.1.0.0no auto-summaryR3(config)# router eigrp 200network 23.0.0.0network 34.0.0.0no auto-summaryR4(config)#router eigrp 200network 34.0.0.0network 171.1.0.0auto-summary2、BGP的配置R1(config)# router bgp 100 启用BGP协议# bgp router-id 11.1.1.1# neighbors 12.0.0.2 remote-as200 指定邻居# redistribute ospf 1 向邻居通告路由R1(config)# router ospf 1# redistribute bgp 100 subnet 将BGP路由重分发到OSPF中R2(config)# router bgp 200# bgp router-id 2.2.2.2# neighbors 12.0.0.1 remote-as 100# neighbors 23.0.0.3 remote-as 200# neighbors 34.0.0.4 remote-as 200# network 170.1.0.0R3(config)# router bgp 200# bgp router-id 3.3.3.3# neighbors 23.0.0.2 remote-as 200# neighbors 34.0.0.4 remote-as 200R4(config)# router bgp 200# bgp router-id 4.4.4.4# neighbors 23.0.0.2 remote-as 200# neighbors 34.0.0.3 remote-as 200# neighbors 46.0.0.6 remote-as 300# network 171.1.0.0R6(config)# router bgp 300# bgp router-id 6.6.6.6# neighbors 46.0.0.4 remote-as 200# net 161.1.0.0# net 150.1.0.0# net 150.2.0.0# net 150.3.0.0# net 150.255.0.0查看:R1#sh ip bgp summary 查看BGP邻居的简略信息R# sh ip bgp // 查看BGP表(BGP数据库)R# sh ip routeNeighbor命令指定和谁建立邻居关系Network的作用向邻居通告哪些路由条目, 区别于IGP协议中的network.IGP 指定哪些接口参于协议运行(向邻居发送更新,并接收邻居的更新) BGP应将哪些路由告诉邻居说明: 1.BGP一种无类协议, 通告信息携带掩码, 可以通告主网/子网/超网(支持CIDR)2. 通告主网时, 可以不加掩码, 通告子网/超网时,必须加掩码.3. 通告网络时, 路由表中必须有相匹配的路由条目存在,当需要汇总到大的子网或超网时, 可以:R(config)# ip route 150.0.0.0 255.0.0.0 null 0 (空接口)BGP路由汇总方法一:network 通告汇总后的网络,再配置汇总的静态路由。
R6(config)# router bgp 300# bgp router-id 6.6.6.6# neighbors 46.0.0.4 remote-as 200# net 161.1.0.0# net 150.0.0.0 mask 255.0.0.0R4(config)# ip route 150.0.0.0 255.0.0.0 null 0方法二:router bgp 300network 150.1.0.0 通告任一主网或子网aggregate-address 150.0.0.0 255.0.0.0 summary-only 只发送汇总路由BGP特点:BGP是一种路径矢量协议,以AS为跳数。
(类似于距离矢量协议,向邻居通告的也是路由条目)1. 可靠的更新: BGP路由器之间建立TCP(179端口)连接,并通过交换消息来指出和确认连接参数。
(单播更新) 可以建立非直连邻居2. 使用TCP来提供窗口技术和可靠性机制。
而不象OSPF和EIGRP那样使用1-TO-1窗口3. 周期性发送存活消息(keepalive)来保持连接,类似于OSPF等发送的hello消息.4 .增量式触发更新.5 .丰富的度量值(更多的路径矢量或属性).6. 为大型互连网络设计的协议. 13万BGP 数据库–邻居表•BGP邻居的列表sh ip bgp neighbors 邻居详细信息sh ip bgp summary 邻居简略信息–BGP表BGP转发数据库•从邻居学到的所有网络(路由)•包含到达网络的多条路径•包含BGP路径的多种属性–IP 路由选择表到达网络的最佳路径BGP: 外部20内部200IGP: EIGRP 90 170 OSPF 110 RIP 120BGP 消息类型–BGP 定义了下列的消息类型:–Open(打开消息)// 建立邻居关系OSPF hello•包含版本号自治系统号保持时间RID 等可选参数–Keepalive(存活消息)60 180 // 检测邻居的存活状态hello–Update(更新)•只包含一条路径的信息,多条路径需要多条消息。
•包含网络的路径属性–Notification(通知消息)•当发生错误•检测到错误并发出通知,然后立刻关闭BGP连接建立BGP会话,路由器与邻居之间的关系经过如下状态:Idle(空闲):路由器查看路由表,寻找前往邻居的路由.Connect(连接): 找到前往邻居的路由,并完成TCP连接的三次握手.Open sent(打开发送): 发送BGP会话之间的连接参数.Open confirm(打开确认):路由器收到连接参数一致性的确认.Alternatively, router goes into active state if no response to open message Established(已建立): 邻居关系建立故障分析:IDLE :EBGP用环回口建邻居,没配置ebgp-multihopACTIVE: 1. 自身或对端neighbors配置错误;2. 无前往neighbor的路由;3. AS不匹配;4、验证没通过。
neigh 3.3.3.3 password 0 123Established: 邻居正常建立BGP邻居内部IBGP 管理距离200外部EBGP 路由协议自动根据AS号判定20IBGP部分互连:同一AS中,只有部分R之间建立BGP邻居关系。
IBGP全互连:同一AS中,所有R之间都建立BGP邻居关系。
BGP水平分割EBGP 不接收含有本身AS号的BGP路由更新。
IBGP 默认禁止将通过IBGP获得的信息再通告给其它IBGP邻居,防止重复通告和路由环路。
(在BGP反射器和联邦中可打破水平分割)路由黑洞路由黑洞的解决办法:1. 重分发到IGP 启用同步,由同步规则确保无路由黑洞(不推荐使用)2. BGP全互连禁用同步,由设计人员确保无路由黑洞(常用)同步规则定义:BGP不允许使用从IBGP邻居学习到的路由并发布给EBGP邻居,除非这些路由已经从IGP( BGP重分发进OSPF/EIGRP)学到!原因:中间不运行BGP的路由器将不能直接学习到外部的AS信息. 需要通过重分发来保证中间R知道外部路径. 因此需要BGP同步来证实所有中间R路由表的完整性,防止路由黑洞。