BGP:Border Gateway Protocol IGP,EGP
IGP:RIP,OSPf,EIGRP?.共8种 EGP:EGP,BGP 关于BGP的基础知识
1. BGP有4个版本,现在的版本是BGP4,比BGP3最大的改进是 从有类到无类,支持CIDR 2.BGP属于EGP
3.路径矢量路由协议(path-vector protocol) 4.使用TCP 179端口
5.BGP分为IBGP和EBGP,IBGP的管理距离是200 EBGP的管理距离是20
6.一般情况下不要将BGP重分发到IGP中 7.第一次做完整更新,以后就只增量更新
8.运行在AS之间,是一个AS-by-AS的路由协议, 而不是router-by-router的路由协议
距离矢量路由协议---------口诀:以讹传讹(道听途说) 链路状态路由协议---------口诀:运筹帷幄
路径矢量路由协议---------口诀:条条大路通罗马 RIP:UDP520 --------两端都是520 OSPF:协议号89 EIGRP:协议号88
BGP:TCP179 -------两端IP地址大的是179,小的是随机 关于自治系统(AS,Autonomous System) 一组被统一管理的路由器
它们使用相同的内部网关协议和统一的度量值在AS内部路由分组,并使用外部网关协议将分组路由到其他AS。 关于AS号
范围是:1-65535
其中1-64511是属于公有的 64512-65535属于私有的
AS号是由internet地址授权委员会(IANA)统一负责分配 注:电信的AS号是4134,网通的号是9929和4837 网站bgp.potaroo.net :可以看到关于AS号的信息
Telnet route-server.ip.att.net可以看公网的路由条目数 为什么要使用BGP? IGP支持的路由条目有限
最主要的原因是IGP的那些路由协议不能满足选路的需求。 而BGP天生就是用来选路的 口诀:BGP=选路 什么时候使用BGP?
1.作为传输区域,例如:ISP
2.多宿主,例如:企业网有到多个ISP的连接
3.需要选路的时候,例如:企业网到一个ISP有多个连接 何时使用IBGP?何时使用EBGP?
如果AS作为传输区域的时候,使用IBGP AS之间用EBGP
1
关于BGP的术语
peer=neighbor(对等体=邻居) 学习BGP要抓住:4,6,10
即4个消息,6个接口状态机,10个属性 关于BGP使用的消息
1.Open:包含holdtime和router-id 2.Update
3.Keepalive:每60s发送一次
4.Notification:当发生错误的时候用来关闭BGP连接 口诀:ounk(我要耐克) 注意:
1.BGP中的open和keeplive消息相当于IGP中的hello
open用来发现和建立邻居,Keepalive用来保持邻居关系
2.一个Update消息一次可以只通告一条路由,但它可以携带多个属性 一个Update消息一次也可通告多条路由,但它们的属性必须相同 一个Update消息可以同时撤销多条路由 关于BGP的有限状态机
1.Idle:查看路由表中是否有到目标的路由 2.Connect:TCP3次握手 3.Opensent:发送open消息 4.Openconfirm:接收open消息 5.Establish:建立邻居关系
6.Active:当其中任何一个状态出现问题,会转到active状态 关于EBGP和IBGP
EBGP:位于当前AS之外的,属于其它AS的邻居,通常要求直连
IBGP:位于同一个AS之内的邻居,无需彼此相连 ,只要它们能够彼此到达对方,完成TCP握手即可,也就是说IGP要是通的 注意:
1.运行BGP的前提是IGP是通的
2.建议EBGP之间用直连接口来建邻居 建议IBGP之间用环回口建邻居 关于EBGP建立邻居的方法:
方法一:使用物理接口建邻居(推荐) router bgp 64512
bgp router-id 1.1.1.1 ----选举原则也和OSPF一样 no auto-summary ----关闭自动汇总 no synchronization ------关闭同步 neighbor 12.1.1.2 remote-as 64513 方法二:使用环回口建邻居 router bgp 64512
bgp router-id 1.1.1.1 no auto-summary no synchronization
neighbor 2.2.2.2 remot-as 64513
neighbor 2.2.2.2 update-source loopback0
neighbor 2.2.2.2 ebgp-multihop 255(这句别忘了)--修改TTL值
2
关于IBGP建立邻居的方法:
方法一:使用环回口建邻居(推荐) router bgp 64512
bgp router-id 1.1.1.1 no auto-summary no synchronization
neighbor 2.2.2.2 remot-as 64512
neighbor 2.2.2.2 update-source loopback0
注意:IBGP建邻居默认TTL值就是255,所以不需要修改,而EBGP需要修改 方法二:使用物理接口建邻居 router bgp 64512
bgp router-id 1.1.1.1 no auto-summary no synchronization
neighbor 12.1.1.2 remote-as 64512 部署BGP的前提是IGP通 关于BGP的router-id
BGP中的router-id和OSPF中的router-id是一样的 作用是用来表示每台路由器
选举方法也是和OSPF中的router-id一样的 即:
1.手工指定(推荐) 2.最大的环回接口 3.最大的物理接口
所有路由协议重分发到BGP之后metric值保持不变 BGP三张表:邻居表,BGP表,路由表
看邻居表:show ip bgp nei或show ip bgp su 看BGP表show ip bgp (所有满足条件的路由条目) LocPrf没有显示表明是100,不是没有。 Weight值本地有效
看路由表:show ip route 关于命令no auto-summary
注意:此命令和rip和eigrp中的no auto-summary的作用不一样,在BGP中此命令是和重分发联系在一起的 关于同步(同步只有在IBGP中谈,EBGP中不谈)
同步的定义:从IBGP学习到得路由条目不会写入路由表,除非这条路由条目也从IGP中学习到 理解:同步其实是一种预防措施,用来预防路由黑洞(黑洞=缺路由条目),如下图:
3