分类:EGP工作原理:路径矢量协议封装:TCP端口号179(TCP有滑动窗口,批量确认,可靠,效率高)更新地址:只支持单播,不一定要直连、TPC建立、IP可达就能传递路由。更新方式:触发更新(承载大量路由,不能定时更新)AD值:IBGP:200EBPG:20度量:无度量,利用属性值选路BGP工作在AS(自治系统)之间IGP运行在AS内部AS:一组被统一管理的路由器,使用相同的IGP协议。AS号:64512-65535为私有,无需申请。只有运行BGP协议,AS号才有意义,BGP需要内外一起运行。BGP(边界网关协议)运营商(运营商拥有公有AS)、大企业(私有AS)BGP应用场景:可以承载大量路由。•丰富的策略,用于控制路由。•BGP传递路由时会带沿途AS号,用于放环,只要•一个AS发现收到的路由信息中包含自己的AS号,就丢弃路由。•BGP是AS到AS的路由模式,BGP负责AS之间的选路,AS内部的选路靠IGP•keepalive报文保活,确保邻居可达。•在IBGP中,每个对等体收到的路由相同,因为一个对等体会为每个邻居对等体发送一次更新,并且其他对等体不会在将收到的路由传出去。•BGP特点:可靠、访问速度(到达不同目的地,可以有更好的路线)连接多个ISP的好处:只有单一的出口或ISP。路由器的性能不足以支持BGP运行。不适合运行BGP的情况:邻居表:所有BGP邻居BGP表:与EIGRP数据库类似。有邻居发送的路由信息,每条路径包含BGP属性IP路由表:到达目的地最好路径。BGP数据库:Open(type1):包含holdtime、router-id(与OSPF选举方式相同)、AS号、能力值(承载何种协议:IPV4IPV6VPN)Keepalive(type4):邻居保持Update(type2):路由更新报文Notification(type3):检测到错误时,关闭TCP连接时使用。Route-refreshmessage(type5):请求完整的路由更新,用于策略改变时。BGP消息类型:Idle(非正常):等待配置,路由器搜索路由表,寻找到邻居的路由。active(非正常):等待重新建立TCP连接。connect:路由器建立TCP三次握手,建立好变为opensent,否则变为active,重新建立TCP。Opensent:发送open消息,等待邻居确认,检查BGP参数,匹配进入confirm,参数不匹配回到active。Openconfirm:路由器发送open后收到keeplive消息(双向),从sent变为confirm,建立完成进入established,出现问题变为active。established:对等体建立,准备交互路由。BGP邻居状态:BGP技术点详解(Cisco)2015年4月3日21:08分区文档备份的第1页established:对等体建立,准备交互路由。两台路由器有路由,但是中间结点没有路由,数据就会在中间被丢弃,称为路由黑洞。路由黑洞:IBGP:建立邻居关系的两台路由器处于相同AS,称为IBGP,邻居可以不直连(因为BGP封装在TCP中,因此IP可达即可建立邻居)。EBGP:建立邻居关系的两台路由器处于不同AS,称为EBGP,运行EBGP需要直接相连。BGP邻居关系分类:内网节点需要学到其他AS的大量路由,需要跑IBGP,因为IGP协议无法承受大量路由。AS内部跑了IGP还要跑IBGP的原因:IGP为IBGP服务,IGP让IBGP可达。AS内部跑了IBGP还要跑IGP的原因:路由通告过程:•A有一条10.1.1.0/24的路由通过EBGP通告给B,B通过IBGP将路由通告给E(IBGP建立邻居可以非直连),E将路由通过EBGP通告给F。数据转发过程:F发送一个目标为10.1.1.1的数据包给E,E递归查找到下一跳为C、D,由于C、D没有运行IBGP,所以没有学到外部的路由,数据包被丢弃。•解决方法:•不能重分布BGP到IGP,IGP无法承受大量路由。需要在C、D上运行IBGP,IBGP需要全部互相建立邻居。数据包在AS之间传递的黑洞:为了防止黑洞出现,开启同步后从IBGP学到的路由,如果没有从IGP学到,则不会传给EBGP。无实际意义,因为路由没传,还是不通,没有解决根本问题。开启同步配置:•Router(config-router)#synchronizationBGP同步规则(默认关闭,基本不用):通过一个IBGP对等体学到的路由,永远不传给其他IBGP对等体,所以IBGP需要全部互相建立邻居。因为IBGP路由传输过程中没有参数改变,容易出现环路。EBGP:通过一个EBGP对等体学到的路由会传给IBGP和EBGP邻居。IBGP水平分割(防环):Router(config)#routerbgpAS号一个路由器上只能配置一个BGP,自治系统号码确定了路由器属于哪个自治系统。Router(config-router)#bgprouter-id地址(同OSPF)Router(config-router)#neighbor邻居地址remote-as邻居AS号(单播建立邻居,对方的IP地址)常使用环回口建立邻居关系,因为环回口不会down。AB用环回口邻居后,邻居起不来,因为A和B建立邻居时,A发送open时用自己出接口地址,B配置的邻居为A的环回口地址,B收到的open包源地址和本地配置的A的地址不一致,所以无法起邻居。所以用环回口起邻居时需要多加一条命令Router(config-router)#neighbor邻居地址update-sourceloopback0(理论是一边配置BGP:分区文档备份的第2页以用环回口起邻居时需要多加一条命令Router(config-router)#neighbor邻居地址update-sourceloopback0(理论是一边配置就可以,但是建议两端都配置)建立EBGPloopback建立邻居时因为TTL值为1所以无法建立,需要配置Router(config-router)#neighbor邻居地址ebgp-multihop2Router(config-router)#address-family激活类型网络类型(默认激活ipv4unicast)Router(config-router)#neighbor邻居地址shutdown关闭bgp邻居,路由进程下sh为sh所有bgp邻居关系,address-family下sh为sh相应协议的邻居查看:•Tb1ver:当前版本,收到因此更新加一○inQ:进方向排队○outQ:出方向排队○State/pfxrod:状态空为正常状态,pfxrod显示邻居共传递了多少路由○Router#showipbgpsummary(查看BGP运行状态)Router#showipbgpneighbor(BGP详情)当收到路由的源地址和发送路由的目的地址在同一个广播域,则发出的路由下一跳不会改变。C将172.30.0.0的路由传给B下一跳指向C,B通过EBGP将这条路由传给A时下一跳仍然是C,避免不必要的下一跳。多路访问网络中:优点:节约资源、简化配置•标准配置是为每个邻居计算一次需要发送的路由。使用对等体组后,只计算一次,然后将路由发给多个对等体。○在同一对等体组中的成员需要有相同的策略,对于有很多对等体都有相同策略时很有用。○特点:•建立对等体组:R1(config-router)#neighbor名称peer-group定义策略:R1(config-router)#neighbor名称策略(如:ebgp-multihop、remote-as)配置:•对等体组:分区文档备份的第3页R1(config-router)#neighbor名称策略(如:ebgp-multihop、remote-as)将邻居加入对等体组:R1(config-router)#neighbor邻居peer-group名称在BGP中做路由过滤后,发现并不成功,因为BGP只发送一次路由,之后用keeplive保活,清除BGP会话就是为了触发更新。方法:不能在现网中使用:硬清除(清除BGP邻居和路由)Router#clearipbgp*Router#clearipbgp邻居地址清除BGP会话:Router#clearipbgp邻居地址ipv4uncastsoftout|in(像指定邻居发送更新,in为请求(refresh报文)更新)Router#clearipbgp*softout|in(像所有邻居发送更新,in为请求(refresh报文)更新)软清除(像指定邻居发送更新):配置:Router(router-config)#neighbor{邻居|对等体组}密码BGP认证(只支持MD5):network命令使BGP通告这个网络,而不会在接口尝试建立邻居。○network可以通告路由表中任何路由(IGP、静态、直连)。○BGP和IGP宣告网络(network命令)的区别:•Router(router-config)#network希望通告的路由mask掩码(掩码要和路由表中掩码相同,不写掩码通告主类)如果路由不优,自己不会加表,也不会传出去,造成路由不优的原因:下一跳不可达显示BGP路由状态:•Router#showipbgp*表示路由有效表示路由最优suppressed表示路由被抑制d表示路由惩罚h表示路由惩罚后路由消失i表示内部路由(IBGP学到的)r表示加入路由表失败(BGP学到,IGP没学到)stale表示控制层面路由已经不存在,控制平面还在帮助转发Orgincode:iIBGP,eEGP(不存在),?未知(重分布的)BGP宣告网络:IBGP边界和内部建邻居:neighbor,update-source、next-hop-selfEBGP直连建邻居:neighborEBGP环回口建立邻居:neighbor、update-source、ebgp-multihop检查命令是否打全:•路由下一条不可达,解决办法:边界为邻居打next-hop-self。路由黑洞:解决办法,内部建立IBGP全互联。IBGP学到的路由不能传递给EBGP原因:•BGP排错思路:汇总重分布的路由。○本地开启汇总,重分布就会汇总,不影响宣告的和学到的。○汇总到主类。○自动汇总路由的metic为0。自动聚合(默认关闭,不会使用):•BGP路由聚合(汇总):分区文档备份的第4页自动汇总路由的metic为0。○打开自动汇总宣告的路由下一跳为0.0.0.0。○起源于本地,使用静态汇总路由,使用BGP宣告静态。非起源本地,使用链路路聚合命令。*不会抑制明细。汇总方法:○起源本地使用静态汇总:▪R5(config)#iproute55.1.0.0255.255.0.0null0R5(config-router)#network55.1.0.0mask255.255.0.0非起源本地使用链路聚合命令:▪R4(config-router)#aggregate-address55.1.0.0255.255.252.0(不会抑制明细,在此命令后加入summary-only手动抑制明细)手动汇总防止回传(as-set):▪as-set设置路由传递时带原有属性。由R5产生的路由,被R4汇总,R4会把汇总的回传给R5,因为汇总路由由R4产生,路有中没有带AS300的AS号,R5会接受路由。配置此命令使R4传输汇总是带起源AS号:R4(config-router)#aggregate-address55.1.0.0255.255.252.0summary-onlyas-setsuppress-map(选择性抑制):▪用Router-map匹配需要抑制的路由,Router-mappermit的路由会被抑制。R4(config-router)#aggregate-address55.1.0.0255.255.252.0suppress-maprouter-map名称advertise-map(条件通告):▪用Router-