动态路由 |
您所在的位置:网站首页 › bgp是静态路由还是动态路由 › 动态路由 |
BGP(边界网关协议)是很重要的路由协议,由于其路径属性我将其与RIP(路由信息协议)一起归类在DV协议大类。 ps.由于是XMIND转DOC复制到CSDN。。。图片全部上传失败。。服了(ˉ▽ˉ;)... pps.导图原图还超过5MB图片大小限制如下。凑活看下。。 由于BGP实在是太重要了,后面可能考虑与DV协议剥离,先挖个坑吧 目录 DV【距离矢量】特点 路由汇总 DV协议可以在任何地方进行路由汇总 LS协议只能由边界进行路由汇总 RIP 全量更新--30秒全量更新 UDP 520 触发更新-- ip rip triggered--ser口下开启--单播 RIP防环机制 水平分割-不反向传递 16hop-防止过度传递 路由毒化-16跳 毒性反转-反水平分割 报文 request-respond UDP520 224.0.0.9 单播邻居 passive- interface-只收不发路由更新表,不将本机路由宣告出去 单播宣告:neighbor 1.1.1.1【结合passive-interface】 show show ip rip database show ip rip config route rip no auto-summary//不自动汇聚宣告,防止掩码信息消失导致的路由黑洞 version 2 network 2.2.2.2 redistribute static default-information originate ip default-network 12.0.0.0(写成主类)如写成ip default-network 12.1.1.0 问题 收敛慢--传递整张表 错误传递-基于传闻的路由协议 定期发送-路由环路【rip】 EIGRP 命令 show config 报文 报文内容 HELLO update query ack 状态机 hello时间小于死亡时间【5-15】 RTP实时传输协议-seq=ack【单播】 EIGRP防环机制 水平分割 路由毒化-query 毒性反转 特性 增量更新/减量更新 支持等价/不等价负载均衡 DUIL[弥散更新算法] TLV结构【type、length、内容】 快速收敛 高级距离矢量协议 支持组播和广播宣告 支持VLSM/不连续子网 支持任意点手动汇总,发的是路由表,不是链路状态 100%无环路--算法决定 建立条件 BGP(Border Gateway Protocol) 基本概念 通俗说 BGP使用理由 AS(Autonomous System)自治系统 对等体组(peer group) BGP的三张表 External BGP/Internal BGP(内部BGP/外部BGP) BGP防环机制iBGP防环机制-水平分割eBGP防环机制-ASpath 防止BGP路由黑洞 报文类型 Open Message:构建邻居 Keepalive Update Notifacation Route Refresh 状态机 idle connect active open-sent openconfirm establish BGP路由信息处理机制 源是否产生路由 源是否更新 本地是否最优 是否向目的宣告 基本实施 nei 1.1.1.1 255.255.255.0 remote-as 200 //指定邻居 和 AS network 1.1.1.1 ma 255.255.255.255 //产生路由不激活接口 通过lookback口建立邻居nei 1.1.1.1 update-souce lookback0 nei 1.1.1.1 ebgp-multohop 2 //eBGP需要注意跳数 nei 1.1.1.1 next-hop-self //eBGP通告里注意改变下一跳 能ping通且tcp179通 BGP只能单播发现邻居,建立邻居与宣告命令分离,与IGP区分 计时器 keepalive BGP特性 基于TCP 增量更新触发更新(没有定期更新) 周期性发送keeplive维持会话 丰富的度量值 认证(非加密) 下一跳自我 BGP产生路由方式 主动、被动端 移除私有AS号码 AS欺骗 动态邻居(dynamic neighbor) 下一跳行为 update-source 更新源 BGP路由通告 BGP路由汇总 BGP路由反射器介绍(RR) BGP的联邦特性 团体community属性(可见路由策略.xmaind) BGP路径属性(Path Attributes)/选路原则 BGP路由优先级、选路原则 BGP路径属性 Path Attributes 命令 no bgp default ipv4-uncast //意味着除ipv4外也可以承载多协议,须在特定地址族下激活 bgp asnotation dot //以dot型显示AS号,默认整数型 network bgp log-neighbor-change //显示bgp相关状态 show/display neighbor 清BGP邻居 最佳实践 DV【距离矢量】特点 路由汇总 DV协议可以在任何地方进行路由汇总 传递的是全网路由表 LS协议只能由边界进行路由汇总 传递的是邻居状态 RIP 全量更新--30秒全量更新 UDP 520 触发更新-- ip rip triggered--ser口下开启--单播 RIP防环机制 水平分割-不反向传递 no ip-split-horizon 16hop-防止过度传递 路由毒化-16跳 毒性反转-反水平分割 报文 request-respond UDP520 224.0.0.9 单播邻居 passive- interface-只收不发路由更新表,不将本机路由宣告出去 单播宣告:neighbor 1.1.1.1【结合passive-interface】 show show ip rip database show ip rip config route rip no auto-summary//不自动汇聚宣告,防止掩码信息消失导致的路由黑洞 version 2 network 2.2.2.2 network不支持tag,重分布支持network 0.0.0.0 不发request redistribute static default-information originate ip default-network 12.0.0.0(写成主类)如写成ip default-network 12.1.1.0 问题 收敛慢--传递整张表 错误传递-基于传闻的路由协议 定期发送-路由环路【rip】 EIGRP 命令 show show ip ei nei • UPDATE • HELLO show ip ei topologyclear ip ri nei s0/1 config nei 1.1.1.1 f0/1clear ip eigrp 100router ei 100net 1.1.1.0【宣告网络】• 宣告公网IP到EIGRP tunnel会导致链路翻滚 net 1.2.3.4【宣告接口】no auto-summary【15.X默认关闭】非主类宣告nei 1.2.3.4 f0/0 报文 报文内容 TTL=29个k值 HELLO 第一个hello表示邻居建立成功 update next hop• next-hop是AS的下一跳,不是路由的下一跳 • 内部ibgp需要达到外部的ebgp需要邻居改next-hop netmasksequenceacknowledge【除hello】不一定有路由信息,第一个没有仅表示开始传输 query 路由查询,请求 reply 响应请求,单播回包 ack 状态机 hello时间小于死亡时间【5-15】 小于1T[1.54Mbps]hello60秒 RTP实时传输协议-seq=ack【单播】 显式ack• 除HELLO外均需要ACK 隐式ack• 工作报文如update替代 EIGRP防环机制 水平分割 隧道口关闭水平分割,2隧道案例 路由毒化-query 毒性反转 特性 增量更新/减量更新 支持等价/不等价负载均衡 支持4条路由的等价负载均衡no ip cef子主题 3 DUIL[弥散更新算法] metric(K值全AS域有效)• K1=时延delay • 100us • K3=带宽bandwidth • 可靠性reliability • 255/255 • 读写负载loading • 1 • MTU • 三层MTU,全路径最小 FC(可行性条件)条件• show ip ei topo • show ip ei topo all-link • FD可行距离/AD宣告距离【当收到的AD小于FD路由可用】 TLV结构【type、length、内容】 扩展性不认识跳过即可 快速收敛 hello包短触发更新 高级距离矢量协议 支持组播和广播宣告 224.0.0.10 支持VLSM/不连续子网 update发送掩码不会宣告一个大类网段,反掩码 支持任意点手动汇总,发的是路由表,不是链路状态 接口下配置路由汇总 ip summary-address ei 100 1.0.0.0 255.0.0.0自动在汇总路由器生成null0路由,防止默认路由导致的黑洞汇总路由生效前提为本地有明细路由汇总路由的FD为明细路由最小的FDEIGRP默认汇总AD为5 100%无环路--算法决定 建立条件 AS号K值HOLD TIME认证相同邻居类型一致【单播/组播】HELLO可达 BGP(Border Gateway Protocol) 基本概念 通俗说 BGP是承载协议,IGB是乘客协议BGP不产生路由,通过network/聚合/import引入路由基于策略的路由协议,丰富的过滤、路由策略丰富的度量机制,为路由附带属性信息增强型DV距离矢量协议,以AS为距离的DV协议是否传播路由表由是否存在明细路由决定,由IGP逐跳转发(路由表同步机制)TCP179建立邻居关系,三层可达即可建立邻居,即非直连也可以建立连接支持增量触发更新,无周期更新路由表机制一个路由器只能运行一个BGP AS BGP使用理由 上万甚至十万条路由支撑MPLS/VPN的应用,传递客户VPN路由策略能力强,可以很好的实现路由决策与数据控制占用资源多,推动换设备 AS(Autonomous System)自治系统 取值范围(1-65536-4294967295)• 公有:1-64511,65536-4294967295 • 私有:64512-65535 表示形式• 整数型(1-4294967295) • bgp asnotation dot //思科切换为dot形式 • dot型 X.X(X=1-65535)华为默认 • 使用as-notation plain切换为整数形式 对等体组(peer group) 针对eBGP AS全互联场景减少大量配置命令配置步骤• 创建模板 neighbor DZH peer-group • group DZH internal • 填充模板内容 neighbor DZH update-source lo0 • peer DZH connect-interface • 针对邻居应用模板 neighbor 1.1.1.1 peer-group DZH BGP的三张表 Neighbor table (邻居表)BGP table (forwarding database)(BGP表,转发表)• 发布或从邻居学到的BGP路由信息,包含到目的网络所的有路径和每条路径的BGP信息 IP routing table(IP路由表)• 目标网络的最优路由才会写入BGP的路由表 External BGP/Internal BGP(内部BGP/外部BGP) BGP邻居关系建立在不同AS时为EBGP,EBGP 邻居关系,默认需要直接连接(connected)BGP运行在同一个AS内部的路由器之间时,称作IBGP,邻居不需要直连 BGP防环机制iBGP防环机制-水平分割eBGP防环机制-ASpath 总结• iBGP防环机制-水平分割(没有eBGP aspath机制) • eBGP学习到的可以传给iBGP • iBGP学习到的不传递给iBGP邻居,不要二手消息,使用全互联学习 • eBGP防环机制-ASpath • ASpath中有与自身相同的AS号则拒绝接受相关路由 • 路由反射器防环-RR • 联邦方案防环 • mpls vpn防环-So0 Internal BGP(iBGP)• iBGP水平分割防环,iBGP路由不传递给其它iBGP邻居 • 场景:多iBGP场景下路由的重复泛洪导致路由环路C-A-B-C • 解决方案 • IGP同步Synchronization:不做全互联前提下解决BGP路由黑洞 • 路由反射器RR解决MESH邻居多、配置复杂的缺点 • BGP联邦 • TTL默认255 External BGP(eBGP)• AS path • 以短为优 • 路由汇总会丢失AS path • 不接收包含自身AS号的eBGP路由 • igp的tag位类属于AS号 • TTL默认1 • nei x.x.x.x ebgp-multihop 2 • nei x.x.x.x disable-connected-check //物理层TTL还是1 • 【hw】peer x.x.x.x ebgp-max-hop xx • 场景:使用lookback口建立邻居,一个子网一个TTL,需要修改默认TTL 防止BGP路由黑洞 出现场景• AS域内没有运行BGP的路由器,导致该路由器没有到达AS域外的路由 解决方案• iBGP全互联 • 内部BGP iBGP • 外部BGP eBGP • 部署路由反射器 • MPLS VPN • 路由重分发 • 开启IGB同步,只有IGB存在的路由表才写入BGP • iBGP与IGP同步路由表,只有本地拥有到目的网段的IGP路由才会通过eBGP传递给eBGP邻居 • iBGP有且best • eBGP有且best • 需要iBGP路由表和IGP路由表均最优则会同步给eBGP邻居,路由同步的本质是IGP对应路由是否在BGP路由表中最优 • 防止路由黑洞 • 过时技术,思科默认关闭,华为不支持开启 报文类型 Open Message:构建邻居 AS NumberRouter ID• bgp route-id x.x.x.x Hold time(180s)能力值(举例)• 路由刷新 • 是否支持多协议(IPV4\IPV6\L2TP\VPNV4\VPNV6) • AS号位数 Keepalive 每60s一次维护邻居关系(hold time180,3次超时BGP邻居中断)前两个keeplive用于确认open抓包只能看到hold time不能看到keeplive时间keepalive应用层没任何数据使用keepalive进行隐式确认/TCP的ACK进行显式 Update Network Layer Reachability Information(NLRI)(网络可达信息:网络前缀)• 网段 • 掩码 Path Attribute属性• 起源:IGP/EGP • As Path • 下一跳 • 本地优先级 • 公认必遵属性 发生network动作时会发出update报文,邻居使用tcp ack对update进行确认 Notifacation 收到差错报文将会将BGP邻居downOpen 消息错误Update消息错误保持时间超时状态机错误终止 Route Refresh 手动刷新路由表时发送刷新方式• 软清 • clear bgp * soft in/out //刷新本端BGP路由表,向对端请求BGP路由,发出route refresh报文(show ip bgp nei可以验证route flush报文数量变化+debug ip bgp) • clear bgp * soft //不区分方向 • HW • reset bgp x.x.x.x export • reset bgp x.x.x.x import • 硬清 • HW • reset bgp x.x.x.x 状态机 idle 邻居处于idle状态可能原因• 没有放开ebgp多跳 • 使用环回口建立eBGP邻居 • 没激活特定ip地址族 • 管理down • nei x.x.x.x sh • peer x.x.x.x ignore • 没有指定更新源 // 本端nei/peer和对端指定的nei/peer要一致,否则可能会idel/active来回跳 • 没有路由到指定的邻居//active和idle反复 • AS号错误//active和idle反复 connect TCP握手、连接 --- 传输层、网络层问题重传计时器60,倍数重连 active 邻居有问题可能对端是idle状态对端无响应open参数不一致• 邻居没有更新源路由 • 指定as号码有误 • 认证错误 • 没有邻居相关配置 open-sent 尝试建立BGP邻居单向open,没收到keeplive openconfirm 双向open,收到keeplive establish 正常状态 BGP路由信息处理机制 源是否产生路由 看数据库看路由表 源是否更新 看源是否向外更新宣告,有过滤策略• sh ip bgp nei x.x.x.x advertised-routes • dis bgp routing-table peer x.x.x.x advertise-routes • nei x.x.x.x soft-reconfiguration inbound • show ip bgp nei x.x.x.x received-routes //查看入方向接受的bgp路由 本地是否最优 BEST、有效的路由不一定出现在路由表内 --- 管理距离看数据库看路由表 是否向目的宣告 基本实施 nei 1.1.1.1 255.255.255.0 remote-as 200 //指定邻居 和 AS network 1.1.1.1 ma 255.255.255.255 //产生路由不激活接口 通过lookback口建立邻居nei 1.1.1.1 update-souce lookback0 链路冗余备份环回口稳定,不因接口down导致邻居关系不可达注意:保证lookback可以相互可达,静态路由都可以 nei 1.1.1.1 ebgp-multohop 2 //eBGP需要注意跳数 nei 1.1.1.1 next-hop-self //eBGP通告里注意改变下一跳 能ping通且tcp179通 show tcp briefdebug ip tcp briefdebug ip bgp //undebug all BGP只能单播发现邻居,建立邻居与宣告命令分离,与IGP区分 计时器 keepalive 60S保活180S死亡keepalive 计时器不会在Open消息中交互• 如果手工配置的keepalive timer小于min(holdtime)/3,则取配置值如果当前手工配置 • 如果当前手工配置的keepalive timer 大于min(holdtime)/3,则取两台BGP邻居间holdtime的最小值HOLDTIME • 两端 Holdtime不一致,双方接受较小的的时间 BGP不周期性更新路由,仅在需要时更新,触发更新等待时间IBGP peer为5SEBGP peer为30S,等待内BGP仍收集路由,导致eBGP收敛较慢 BGP特性 基于TCP TCP 179show tcp brief/dis tcp stu指定TCP会话发起方 增量更新触发更新(没有定期更新) 周期性发送keeplive维持会话 丰富的度量值 认证(非加密) 认证信息在TCP报文头部!!!option字段内每一个和BGP相关的TCP报文均会带此option使用MD5认证 下一跳自我 问题:在iBGP邻居中会把eBGP路由携带的更新源作为自己的下一跳,而iBGP路由无法抵达eBGP邻居导致路由黑洞,无法转发eBGP流量解决方案• 重分布外部路由到iBGP中 • 在BGP边界针对外部邻居添加next-hop-self,更改iBGP的下一条为iBGP自己 nei x.x.x.x next-hop-selfpeer x.x.x.x next-hop-localnext-hop-unchange• 中间为传输网络时可以 BGP产生路由方式 network命令• 和邻居关系无关,仅仅产生路由而已,要求mask掩码精准,除非主类自然掩码 • 可以通告静态、直连、IGP路由 • 增加度量值属性:MED;且MED等于IGP的AD/优先级 重分布/路由引入• redistribute connected //重分布直连注意下一跳自我 • import-route direct route-policy Direct • route-palicy Direct permit nade 10 • if-match interface LoopBack3 • if-match acl 2000 aggregate聚合产生路由• 起源属性发生变化,? • 需要本地RIB有至少一条明细 BGP产生的默认路由 主动、被动端 端口较大一端主动发起TCP会话,主动连接对端的179如一端使用peer-group,则使用端一定是被动端如果两端被动则无法建立邻居关系查看TCP会话• show tcp brief • dis tcp stu 命令• nei x.x.x.x transport connection-mode 【active/passive】 • peer x.x.x.x listen-only 移除私有AS号码 私有AS号码不能出现在公网,故需隐藏删除私有AS号码可能会造成路由环路华为:如果在as-path中存在公有和私有的删除私有AS会报错,因为经过了公网,移除私有AS有可能引起环路思科:如as-path中存在公有和私有AS,删除私有AS命令将报错• nei x.x.x.x remove-pricate-as all • nei x.x.x.x remove-pricate-as all replace-sa //移除私有AS并将自身AS填充其中,不会影响AS-PATH长度 • 自身是私有AS,不能实施 • 公有AS邻居是私有AS也无法实施,需要跨AS AS欺骗 采用伪AS号与对端建立eBGP邻居,华为的As Path只携带伪造的AS号;思科的增加nei x.x.x.x local-as xxxxxpeer x.x.x.x fake-as xxxxxpeer x.x.x.x public-as-only 动态邻居(dynamic neighbor) peer-group应用于一个子网侦听被动方式建立BGP邻居配置步骤• 创建模板 neighbor DZH peer-group • 填充模板内容 neighbor DZH update-source lo0 • 针对邻居应用模板 bgp listen range 172.0.0.0/24 peer-group DZH(172为对端IP)0.0.0.0/0【全网段RR常用】 下一跳行为 eBGP的下一跳默认保持,需要在ASBR指定下一跳自我把AS间直连路由引入IGP,使下一跳可达• redistribution interface e0/0 route-map conn • route-map comm • match interface e0/0 • 不要通过BGP引入直连,因为通过邻居协议引入邻居路由不稳定 多点接入子网的下一跳,类似于icmp 的重定向下一跳不变• neighbor x.x.x.x next-hop-unchanged • 只能用于ebgp环境下的多跳场景 • 在采用eBGP对等体发布路由时不改变下一跳,在采用RR的跨域optionC方式组网中 内部设备的下一跳 update-source 更新源 BGP默认不能自动发现邻居,而需指定peer IP(neighbor)更新源默认为出口IP,查路由只有配置的peer IP与邻居指定的update-source相同时被正常建立peer关系,仅需一方满足即可• R2本地到1.1.1.0的静态路由,改配为默认路由,我们会发现BGP连接依然能建立,因为此例中R2为BGP连接的被动者,R1有明细路由即可主动发起连接。如R1到2.2.2.0的明细静态路由改为默认,R1将"no route to peer" • EBGP邻居建立将检查直连路由默认TTL=1,而R1的loopback到R2至少2跳,需配置 neighbor xxxx ebgp-mul 2 • 为防环,两端默认路由互指BGP邻居无法建立,一边静态,一边默认可以 BGP路由通告 存在多条路径• BGP Speaker 从EBGP 获得的路由会向它所有BGP相邻体通告(包括EBGP和IBGP) • BGP Speaker 从IBGP获得的路由不向它的IBGP相邻体通告(避免环路,水平分割;存在路由RR的情况除外) • BGP Speaker从IBGP获得的路由是否通告给它的EBGPpeer要视IGP和BGP同步的情况来决定 不存在多条路径• BGP Router只选取最优的路由(BEST)传递给BGP peer BGP路由汇总 需要考虑的问题• BGP路由属性的继承 • 起源代码 • AS-PATH • 团体属性 • 路由黑洞,明细路由将会被抑制,主类路由将被转发 BGP的自动汇总summary automatic• summary automatic默认关闭 • 自动汇总功能对汇总路由的把控较差,只能够将路由汇总成主类网络路由,无法做到精细化的掩码控制 • 自动汇总功能只对本地采用import-route命令注入的BGP路由有效 • import-route注入的BGP路由按主类网络进行汇总(按照IP地址所属类别的缺省网络掩码进行计算),明细路由被抑制 BGP的手工汇总• network命令/原则(不建议) • 路由起源设备发起 • IGP已有的、静态路由、直连路由路由才能network给邻居 • 通过写静态路由产生到宣告路由的BGP,和可达性无关由于静态一直存在导致路由黑洞 • 手工汇总的骚操作--路由清洗 • 路由汇总注意写黑洞路由,防止路由黑洞 • 下一跳指向null接口防止次优路径、路由环路 • aggregate命令【推荐】 • aggregate注意事项 • 聚合必须要有明细路由 • 手工汇总aggregate-address • 手工汇总aggregate-address 不加任何关键字,则明细也传递,汇总路由也传递 • summary-only 参数只传递汇总,明细被抑制。这种情况汇总将丢失明细路由 AS_PATH 属性,存在隐患,比如汇总路由规避了水平分割导致路由环路 • aggregate detail-suppressed 过滤全部明细 • 只宣告汇总路由,抑制明细 • aggregate suppress-policy 过滤部分明细 • permit 被过滤 • deny被放行 • 前缀抑制列表虽然调用route-policy,但route-policy只能用于匹配(if-match),不能用于设置属性(不能用apply命令) • summary-only as-set 继承明细属性 • As-path: 将收到的所有明细路由的 as 号都放置在{}中,计算 AS_Path 长度时这些 AS 只被算为 1 个 AS,该列表为无序AS 列表 • Origin: 继承最差的 origin 属性 • Community: 继承所有明细路由的 community,形成一个列表 • MED 不继承 • LP 取明细路由中 LP 的最大值 • NEXT_HOP 汇总路由为 0.0.0.0(因为汇总路由为本地产生) • 继承的3个属性 • aggregate-address 汇总地址 suppress-map xxx as-set • 宣告聚合及特定明细(抑制特定明细路由) • route-map 最后隐含deny any ,而 suppress-map 不同 • 被抑制列表引用的前缀列表permit代表抑制!deny标识允许!!要带上suppress关键字的含义 • 被 route-map 匹配(permit)的路由将被过滤,其他放行 • aggregate-address 汇总地址设置属性 attribute-map abc • 更改汇聚路由的属性(注,仅仅对汇总路由产生作用,对明细不起效)。 • aggregate-address 汇总地址 as-set advertise-map • aggregate-address 汇总所有明细均被抑制,advertise-map 匹配条目的明细如果全都挂了,则汇总消失,(只要 advertise-map 匹配的明细有一条在,汇总就在) • 汇总路由继承 advertise-map 匹配明细路由的 BGP 路径属性 • aggregate origin-policy 汇总地址当明细全部消失汇总消失 • Origin-policy调用一个route-policy,使用if-match语句匹配明细路由。aggregate产生的汇总相当于为明细路由产生,只要明细路由有一条活跃,汇总路由就会被通告,如果匹配的明细路由都失效,汇总路由随之消失 • aggregate 172.16.0.016 detail-suppressed origin-policy ori产生的汇总路由172.16.0.0/16与ori中匹配的路由强关联,被ori匹配的子网即本例中detail-suppressed没有抑制172.16.10.0/24及172.16.11.0/24这两条明细路由 • aggregate-address 1.1.1.0 255.255.255.252 ? • advertise-map Set condition to advertise attribute • 依据宣告者的属性进行过滤 • as-confed-set Generate As confed set path information • as-set Generate As set path information • 聚合的同时增加自身的as-path • 可以防止路由环路 • 还原原有的AS PATH • attribute-map set attributes of aggregate • route-map Set parameters of aggregate • summary-only Filter more specific routes from updates • HW • HW:aggregate 1.1.1.0 255.255,255.252 detail-suppressed • 如果是i和?的聚合路由将是 ?,igp>egp>incomplete • cisco • 如果是i和?的聚合路由将是 i • 仅会宣告汇总,明细路由将会被抑制 • suppress-map Conditionally filter more specific routes from updates • 有条件的抑制部分路由分发 • 修改属性参数 命令• HW • summary automatic • cisco • auto-summary BGP路由反射器介绍(RR) 解决问题• 邻居过多 • 会话过多 • 配置复杂 • 排障困难 理念• 修改了iBGP水平分割的防环机制,允许iBGP对等体间更新路由,无需全互联的iBGP架构 • 将RR与client共同构成一个反射簇,将簇当作一个逻辑的整体,但配置只有RR有,RR只通告或反射它知道的最佳路径 角色• 路由反射器(Route Reflector) • 客户机(Client) • 非客户机(Non-Client) • eBGP邻居 实施:指定客户端即可• peer x.x.x.x reflect-client • neighbor x.x.x.x route-reflector-client RR基本概念、路由更新规则• 为维护BGP 拓扑一致性RR在反射路由时不修改BGP某些属性,包括 NH、AS_PATH、LOCAL_PREF 和 MED,且增加 ORIGINATOR 和 CLUSTER_LIST 用于防环 • 如果路由学习至非 client IBGP 对等体,则反射给所有 client 及 EBGP 邻居 • 如果路由学习至一 client,则反射给所有非 client IBGP 邻居和除了该 client 以外的所有 client • 如果路由学习至 EBGP 邻居,则反射给所有 client 和非 client IBGP 邻居 • 路由更新规则 • 从 client 收到的路由将更新给所有邻居{ client 、Non-client、eBGP} • 打破水平分割,收到 client 收到的哪怕是水平的也会更新回 client • 非非不传(RR从Non-client学习到的路由不传递给Non-client) • 从Non-client收到的路由将更新给 client • eBGP收到的路由更新给client 、Non-client RR场景设计(层次化路由反射)• 会话设计 • Client只需维护与RR之间的IBGP会话 • AS 内的RR与RR之间需要建立IBGP的全互连 • Non-Client与Non-Client之间需要建立IBGP全互 • RR与Non-Client之间需要建立IBGP全互连 • 非反射器的路由器可参与 IBGP 全互联也可配置为反射器的 client • 路由反射器规划原则 • 路由反射器将传输 AS(transit AS)分割成小单元,也就是反射簇 • 每个簇包含反射器及其 client • 不支持路由反射器功能的路由器可以充当单路由器簇或充当 client • 路由反射簇(cluster) • 含义:一个AS内多台RR • 风险:RR间将引入路由环路风险 • 簇(Cluster) • Cluster_ID标识Cluster,通常会使用Loopback地址作为Cluster_ID,每一个簇都有唯一的簇 ID • CLUSTER_ID是 4 字节的 IP 形式的标示符 • CLUSTER_ID默认情况下是RR自己的BGP router ID • 多个 RR 用来为一个或多个 client服务,这些 RR 都配置相同的 CLUSTER_ID • 一个Cluster里可以包括一个或多个RR • 一个Client可以同时属于多个Cluster • 路由反射簇Cluster包括反射器RR及其 Client • 当一条路由被反射器反射后,该反射器(该簇)的 Cluster-ID 就会被添加至路由的 Cluster-list 属性中 RR场景下的防环规则(路由反射器使用的可选过渡属性)• 条件:必须被路由反射器反射之后才会增加的特性 • Originator ID(起源ID) • 第一次反射路由,RR插入起始者的rid,客户端收到包含自身的rid的路由条目则不加表 • Cluster_List(簇列表) • 当反射器收到一条 Cluster-list 属性已经包含该簇的 ClusterID 的路由时,该路由基于防环的目的将不被反射 冗余 RR 环境• 一个簇中拥有多台 RR,Client 与每一台RR 有物理连接并建立 BGP peer关系 • Client 不知道自己的 Client身份,因此 RR 可以成为别人的 Client 路由反射器的实施• RR配置 • 修改 cluster-id • bgp client-to-client reflection • client 到 client 反射默认开启,如果是全互联,此命令加 no,则关闭客户间反射 BGP的联邦特性 联邦理念• BGP防环的被动方案,将联邦AS【大AS】划分为若干小联邦成员AS【成员AS】 • 小AS建立eBGP对等体关系,小AS内建立RR,通过分层分区解决iBGP路由环路问题 联邦风险/难点• 配置复杂,风险过大 • 拓扑不清晰 • 排障不方便 联邦设计原则• 成员AS使用私有AS号码 联邦特性• 联邦成员AS间本地优先属性(正常在IBGP之间更新)可以使用 • 下一跳属性在联邦中保持原有的下一跳 • 需要使用nexthopself • 公布给联邦路由MED属性在整个联邦范围内予以保留 • 路由的LP属性在整个联邦范围内予以保留 • 在联邦范围内,将成员AS号压入AS_PATH,但不公布到联邦外,并且使用TYPE3、4的AS_PATH • AS_PATH中的联邦AS号用于在联邦内部避免环路 联邦内成员AS间防环关键字段• AS_CONFED_SEQUENCE • 去往特定目的所经过的有序AS列表,用法与AS_SEQUENCE类似,只是AS_CONFED_SEQUENCE仅在联邦内AS使用 • 该属性不会传递出联邦,外界不会知晓内部联邦AS环境 • AS_CONFED_SET • 去往特定目的所经过的无序AS列表,用法与AS_SET完全一致,只是AS_CONFED_SET用于联邦内AS使用 联邦和RR的比较 联邦的配置与实现• R3配置 • R4配置 • R5配置 • 1、eBGP邻居使用环回口建立peer注意多跳配置2、bgp confederation iden为联邦AS3、bgp confederation peers 64513表明为联邦成员eBGP,非AS64513为普通AS,可以配置多个 团体community属性(可见路由策略.xmaind) 可选过渡私有属性,在BGP对等体间传播,不受AS限制,使多个AS的一组BGP共享策略,简化路由策略的应用和维护难度产生路由、收发更新路由时新增/修改团体属性默认不传输此属性,需手工指定团体属性是针对邻居收到路由后的动作,自身不受约束分类• 自定义团体属性 • 扩展团体属性 • 众所周知的团体属性 • internet表示可以向任何对等体发送匹配的路由。缺省情况下,所有的路由都属于lnternet团体。 • no advertise表示不向任何对等体发送匹配的路由。即收到具有此属性的路由后,不能发布给任何其他的BGP对等体。 • no-export表示不向AS外发送匹配的路由,但发布给其它子自治系统。即收到具有此属性的路由后,eBGP邻居将不能发布到本地AS之外AS。 • no-export-subconfed表示不向AS外发送匹配的路由,也不发布给其它子自治系统。即收到具有此属性的路由后,不能发布给任何其他的子自治系统。 • additive表示追加路由的团体属性 BGP路径属性(Path Attributes)/选路原则 BGP路由优先级、选路原则华为设备BGP选路原则(对比思科设备,几乎相同)当到达同一目的地存在多条路由时,BGP依次对比下列属性来选择路由:1.优选协议首选值(PrefVal)最高的路由。(对比思科权重weight),协议首选值(PrefVal)是华为设备的特有属性,该属性仅在本地有效。2.优选本地优先级(Local_Pref)最高的路由。如果路由没有本地优先级,BGP选路时将该路由按缺省的本地优先级100来处理3.依次优选手动聚合路由、自动聚合路由、network命令引入的路由、import-route命令引入的路由、从对等体学习的路由。(对比思科,本地起源即本地通告产生的路由)4.优选AS路径(AS Path)最短的路由(对比思科相同,此为公认必遵属性)5.依次优选origin类型为IGP、EGP、Incomplete的路由。(对比思科相同,此为公认必遵属性)6.对于来自同一AS的路由,优选MED值最低的路由。7.依次优选EBGP路由、IBGP路由、LocalCross路由、RemoteCross路由。8.优选到BGP下一跳IGP度量值(metric)最小的路由(6、7、8选路原则也相同,此处思科如果在前8条选路原则选择不出最优路由则可以使能负载均衡,华为也有相同的属性,命令为maximum load-balancing[ebgp|ibgp]number,配置BGP负载分担的最大等价路由条数。缺省情况下,BGP负载分担的最大等价路由条数为1,即不进行负载分担)华为并未说明优选更“老”(即建立时间更久)的BGP9.优选Cluste List最短的路由。(对比思科,华为在此处第9条和第10条颠倒)10.优选RouterID最小的设备发布的路由(可以由路由反射器的originator ID代替)11.优选从具有最小IPAddress的对等体学来的路由。 选路原则• 前提:next-hop可达 • 去往同一网络BGP路由装载到BGP路由表中进行路由优选,最优(Best)路由才有可能加载到全局路由表中(还需要比较路由优先级) • BGP只会将其选择出来的最优路由通告给其他对等体 • 严格按照顺序比较路由属性,如果当前属性可以选出最优路由,BGP将不进行后续的比较 世界恋爱组织亚洲办公室,墓碑下的(MEML),半兽人(ORC)• world • weight权重/PreValue • 越高越优先 • 厂商私有的度量值,只在本地有效,不会在出方向将此传递给邻居,但可以指定某个邻居收到的权重 • cisco • 缺省情况下,通过本路由器宣街、重分布或者汇总的路由的weight为32768,从BGP邻居学习到的路由的weight为0 • love • local preference本地优先级 • HW BGP的缺省本地优先级,该值越大则优先级越高。[Router-bgp]default local-preference preference缺省情况下,BGP本地优先级的值为100。配置不同本地优先级会影响BGP的路由选择。当一个运行BGP的路由器有多条路由到达同一目的地址时,会优先选择本地优先级最高的路由。本地优先级属性仅在IBGP对等体之间交换,不通告给其他AS。 • CISCO BGP条目的缺省local preference值为100.local preference值可以在IBGP邻居之间传递,在EBGP邻居之间不能传递,对于从EBGP邻居学习到的BGP条目,local preference值为100,这个值可以通过命令bgp default local-preference修改 • 本地优先级影响出AS的路由,在iBGP邻居间传递,故在ASBR上进行相关配置,用于内部路由选择出AS节点 • organize • source local 本地起源 • 本地起源的路由的优于从邻居学习到的 • aisa • as-path • office • Origin起源代码 • i>e>? • M • MED多出口分离器 • E • EBGP>IBGP • M • IGP的Metric • L • load balance • O • OLD,建立时间更久的EBGP(HW没有) • R • Router ID更小的 • C • Cluster_list更短的 关于选路原则• 优选具有最大Preferred-Value的路由 • 优先级定义 • 注意route-map建立permit的node • 优选具有最大Local_Preference的路由 • 本地有效 • 越大越优先 • 优选起源于本地的路由 • 本地生成的路由优先级高于从邻居学来的路由 • 汇总路由优先级高于非汇总路由 • aggregate命令生成的手动汇总路由的优先级高于通过summary automatic命令生成的自动汇总路由 • network命令引入的路由的优先级高于import-route命令引入的路由 • import-route命令引入的路由优先级最低 • 优选AS_Path最短的路由 • 不建议修改AS属性 • 实在要用叠加原有的,不要覆盖 • apply as-path xxx additive在已有AS_Path基础上追加xxx • apply as-path xxx overwrite将已有AS_Path值替换(覆盖)成xxx • apply as-path none overwrite清空路由的AS_Path属性 • AS path短的优先,不关注AS_PATH长度 • bap bestpath as-path ignore //隐藏命令 • AS_PATH规则补充 • 汇总的AS_Set长度为1,无论AS_Set中包括多少AS,仅做1来计算 • AS_confed_seq和AS_confed_set类型不参与AS_Path长度计算 • Origin(IGP>EGP>Incomplete) • 修改origin属性 • 优选MED最小的路由 • 优选EBGP对等体所通告的路由 • 优选到Next_Hop的IGP度量值最小的路由 • BGP路由负载分担 • 优选Cluster_List最短的路由 • 优选Router-ID最小的BGP对等体发来的路由 • 优选Peer-IP地址最小的对等体发来的路由 BGP路径属性 Path Attributes 公认属性【必须识别的】Well-Known• 公认必遵属性Well-known mandatory 所有BGP路由器都可以识别,且必须存在于Update消息中。如果缺少这种属性,路由信息就会出错认任意(Well-known discretionary) • Origin起源代码 • 类型 • i (internal)network引入 • ? (incomplete)协议引入的路由 • e EGP • As Path(可以为空,但必须携带) • 1AS_SET • 所经路径上的无序AS号列表 • 2AS_SEQUENCE • 所经路径上的有序AS号列表 • 3AS_CONFED_SET • 4AS_CONFED_SEQUENCE • 联邦涉及 • 非联邦涉及 • 防环:EBGP对等体之间传递,IBGPB居时不修改AS-path • 选路:路由优选的依据 • 原path前叠加 • AS_PATH作用 • Next Hop 下一跳属性 • 指定到达目标网络的下一跳地址 • 路由器学习到BGP路由后,对路由的Next_Hop属性值进行检查,该值(IP地址)必须本地路由可达,如果不可达,则这条BGP路由不可用 • Next_Hop在EBGP及IBGP场景的缺省操作 • 向EBGP传递路由时Next Hop设置为自身更新源IP地址 • 收到EBGP路由后传递给IBGP peer保持Next Hop值不变 • 需要使用next-hop-self告知AS内到达ASBR的路由 • 将eBGP更新源IP重分发到iBGP所在的AS内 • BGP peer中类ICMP redirect messages机制 • 某条BGP路由的Next_Hop地址与EBGP对等体(更新源)同网段,该路由Next_Hop保持不变并传递给BGP对等体 • NLRI网段和peer同网段的不同IP,BGP默认激活该优化策略 • 公认自决属性Well-known discretionary 所有BGP路由器都可以识别-但不要求必须存在于Update消息中,可以根据具体情况来决定是否添加到Update消息中 • 本地优先级 local_prefence属性 • 本地优先级,公认自决属性,用于告诉AS中的路由器,哪条路径是离开AS的首选路径 • Local_Preference越大越优,缺省Local_Preference为0 • network及重发布到BGP的路由,Local_Preference缺省100 • 只发给IBGP对等体,不传递给EBGP对等体 • EBGP对等体收到Local_Preference NLRI触发Notifacation报文 • 可以在AS边界路由器上使用import策略修改Local_Preference属性 • bgp default local-preference 命令可修改缺省Local_Preference值 • Atomic_Aggregate 原子聚合属性 • 一个标记 • 必须要识别,updata报文携带 可选属性【可不识别的】Opional• 可选传递属性Optional transitive 可选过渡(Optional transitive).BGP路由器可以选择是否在Update消息中携带这种属性。接收的路由器如果不识别这种属性,可以转发给邻居路由器,邻居路由器可能会识别并使用到这种属性可选非过渡 • 自身可不识别,但传输给第三方进行识别即可 • Community 团体属性 • 可理解为路由标记,不关注具体路由前缀以简化路由策略的执行 • community默认不传递,需要指定peer后传递,且community是列表格式 • community属性值格式 • Community属性值长度为32个比特,4个字节 • 呈现形式 • 十进制整数格式 • 十六进制AA:NN格式,AA表示AS号,NN为自定义编号 • community属性类型 • internet,Internet(well-known community attributes) • 所有路由都可以匹配的 • no-advertise,Do not advertise to any peer(well-known community attributes) • 该条路由不能传递给任何BGP对等体 • no-export,Do not export to external peers(well-known community attributes) • 该条路由不能传递给EBGP对等体(联邦EBGP对等体除外) • no-export-subconfed,Do not send outside a sub-confederation(well-known community attributes) • 该条路由不能传递给EBGP对等体(包括联邦EBGP对等体) • none,No community attribute • aggregator聚合者 --标记路由器BGP ID、AS号等 • 汇总路由丢失明细路径属性给下游peer告警,提示“汇总点”及汇总地AS • 可选非传递属性Optional non-transitive 可选非过渡(Optional non-transitive)BGP路由器可以选择是否在Update消息中携带这种属性。在整个路由发布的路径上,如果部分路由器不能识别这种属性,可能会导致该属性无法发挥效用。因此接收的路由器如果不识别这种属性,将丢弃这种属性,不必再转发给邻居路由器 • 每台设备均要识别,否则属性不会传递 • MED(Multi Exit Discriminator)多出口分离器 • 向外部peer定义进入AS首选路径,当入口有多个,使用MED影响其他AS选择进入路径 • 用于影响AS 间BGP选路,MED传递给EBGP后,peer在其AS内传递路由时携带MED值,该MED不会传递给下一个AS • NLRI默认不携带MED,MED属性值越小则BGP路由越优,network时等于IGP cost或直连的cost=0 • 缺省MED = 0,可使用default med影响import-route及aggregate产生汇总路由 • bestroute med-none-as-maximum将该路由MED值按最大4294967295处理 • 关于MED属性的注意事项 • 缺省只比较来自同一对等体AS的BGP路由的MED值,去往不同AS不比较MED(可配置) • compare-different-as-med比较不同AS的路由MED • IBGP间传递MED值默认保留传递,不改变也不丢失 • MED只影响直接相邻的AS不跨AS传递 • EBGP PEER是否携带MED • 本地始发(network或import-route引入)缺省携带MED属性发送给EBGP对等体 • EBGP学习再通告给另一EBGP不携带MED • bestroute med-confederation • ASPath中不包含外部自治系统(不在联盟范围内的自治系统)号时才比较MED值的大小 • AS_Path中包含外部自治系统号,则不进行比较 • deterministic-med • 不同AS收到的相同路由选路时,首先按AS_Path最左边AS号分组。先组内比较,再用组内优选路由和其他组的优选路由比较,消除选路结果和路由接收顺序相关性 • Originator ID(起源ID)【属性类型9】 • 防止在路由反射器和客户机/非客户机产生环路 • 由RR服务器产生,携带本地AS内部路由发起者的router id • 动作 • 当一条路由第一次被RR反射时,RR将Originator_ID属性加入这条路由,标识这条路由的始发路由器。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID • 当其它BGP Speaker接收到这条路由的时候,将比较收到的Originator_ID和本地的Router ID,如果两个ID相同,BGP Speaker会忽略掉这条路由,不做处理 • Cluster_List(簇列表)【属性类型10】 • 防止AS内部环路 • 由RR服务器产生 • 默认等于RR的RID,可手动配置 • 由cluster_id组成,描述了路由所经过的RR的路径,类比路由经过的AS_PATH • 用于一个AS内多个RR的场景,RR间的路由防环 • 动作 • 当RR在它的客户机之间或客户机与非客户机之间反射路由时,RR会把本地Cluster_ID添加到Cluster_List的前面。如果Cluster_List为空,RR就创建一个 • 当RR接收到一条更新路由时,RR会检查Cluster_List。如果Cluster_List中已经有本地Cluster_ID,丢弃该路由;如果没有本地Cluster_ID,将其加入Cluster_List,然后反射该更新路由 • huawei:本地优先级preferred_value • 本地有效不传播给任何BGP对等体 • 本地始发默认Preferred_Value为0,从其他peer学到的路由缺省也为0 • 华为私有属性 公认自决属性/部分的• 时间 • 权重 命令 no bgp default ipv4-uncast //意味着除ipv4外也可以承载多协议,须在特定地址族下激活 bgp asnotation dot //以dot型显示AS号,默认整数型 network network x.x.x.x mask 255.0.0.0 bgp log-neighbor-change //显示bgp相关状态 show/display show• show ip bgp summary //查看BGP状态汇总 • V BGPv4版本 • AS 对端的As • msgrcvd 接收到的数据包 • msgsend 发送的数据包 • tblver BGP表刷新次数 • INQ 入站队列 • OUTQ 出站队列 • show ip bgp //查看bgp路由表,看是否best • next-hop下一跳不可达,到达其它AS的转发地址 • BGP数据库不是最优,第一考虑路由是否可达,考虑如iBGP传递有无配置下一跳自我 • show ip bgp neighbor //查看bgp邻居 • show ip bgp x.x.x.x //查看到某条明细路由的详情 • show ip bgp peer-group //查看peer-group详情 • show bgp ipv4 unicast //查看bgp数据库 • show ip bgp rib-failure //查看放入路由表失败的原因【如管理距离低导致】 • show ip bgp peer-group //查看bgp peer-group • show ip route x.x.x.x //查看到达某个目的的下一跳 display• dis bgp peer //查看bgp邻居汇总 • display bgp routing-table //查看BGP数据库 • dis bgp routing-table x.x.x.x 查看某个明细路由的信息 • dis ip routing-table protocol bgp//查看某个路由协议路由表 • dis ip route-table protocle ospf // • dis ip route-table x.x.x.x //查看某个目的ip的路由 HW:debugging bgp updatecisco:debug ip bgp updates neighbor lookback口到物理口TTL减1• neighbor 1.1.1.1 disable-connected-check //关闭直连检测 • Router(config-router)#neighbor {ip-address | peer-group-name}ebgp-multihop [ttl] neighbor 1.1.1.1 remote-as 123456neighbor 1.1.1.1 activeneighbor {ip-address | peer-group-name} shutdown //管理性关闭bgp邻居,邻居状态处于idle admin状态neighbor 1.1.1.1 transport connect-mode active//调整指定BGP邻居为主动发起指定更新源• peer 1.1.1.1 connect-interface lo0 • neighbor 1.1.1.1 update-source lo0 //指定更新源IP • 与对端指定的neighbor一致,此场景只影响三次握手,只要一边正确即可 • 方便在其它BGP查看本机的源,不要以设备接口IP为源 • 保证BGP邻居不受接口状态影响提高BGP邻居稳定性 neighbor 1.1.1.1 ebgp-multihop xxneighbor 1.1.1.1 next-hop-self //避免非直连路由黑洞,改写下一跳为自己,而不是源的IPneighbor 1.1.1.1 distribute-list 10 out //本设备转载,向邻居update时出站过滤掉neighbor 1.1.1.1 password dzh 清BGP邻居 clear ip bgp 1.1.1.1 //硬清除BGP邻居• TCP链接重新建立 • open • update clear ip bgp X soft (针对AS号/邻居IP软清邻居)• clear ip bgp * soft in • 主动发refresh • 对端update • clear ip bgp * soft out • 本端直接update给对端 clear ip bgp * //清除所有BGP邻居关系HW• refresh bgp all im • refresh bgp all ex 最佳实践 更新源使用环回口修改TTL配置或取消TTL检查iBGP全互联/部署RRiBGP配置下一跳自我 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |