我我我
2016-01-28 12:55
204 查看
BGP并不能主动在网络中寻找邻居,必须手工指定BGP邻居的地址,那么BGP才会将数据包发往指定的地址来请求建立邻居,与此同时,BGP发出的请求数据包除了写明目标IP地址外,还要写上自己的IP地址,即BGP源地址。路由器自己产生流量后从接口发出时,流量从哪个接口被发出,那么这些数据包的源IP地址就是哪个接口的地址。因此当BGP发出数据包寻找邻居时,这些数据包从哪个接口被发出,那么BGP源IP地址就是哪个接口的地址。要两台BGP路由器要正常建立邻居,必须双方路由器都相互指定邻居,相互发送数据包才行。当一台BGP路由器收到建立邻居的请求后,如果发现数据包的目标IP不是自己的BGP源地址,那么就拒绝该连接请求,只有当请求数据包的目标IP与自己的BGP源地址相同时,才可建立BGP邻居。需要注意的是,这个条件只在两个邻居之间,任意一个邻居满足条件即可,并不需要双方都满足,也就是说一方收到的数据包目标IP与自己的BGP源地址相同即可,另一方收到的数据包目标IP与它的BGP源地址不同也没关系,只要单方面符合条件就行,但我们通常都将BGP两端的源与目标保持一致。BGP的源地址是可以随意更改的,但只能是路由器上的如下图
在IGP协议中,我们将路由协议分成两大类:距离矢量路由协议和链路状态路由协议,而BGP被划分为路径矢量路由协议(path-vector routing),路径矢量算法结合了距离矢量特性与AS-path防环特性。
因为BGP在将路由发给eBGP邻居时,会将自己的AS号码添加到AS-path中,所以可以以此来防止环路,而在将路由发给iBGP时,是不会往AS-path添加AS号码的,因此在iBGP之间传递路由时,没有防止环路的机制。考虑到为iBGP之间的路由传递也加入防环机制,因而强制将BGP路由在AS内部只传一跳,具体操作为:一台BGP路由器从eBGP邻居收到路由,发给iBGP邻居之后,iBGP邻居收到后就不能再传给其它任何iBGP邻居,只能传递给eBGP邻居。此规则被多数人称为BGP的水平分割,就是一台BGP路由器从iBGP邻居收到的路由,不能传递给其它iBGP邻居,只能传给eBGP邻居。如下图:
在IGP协议中,我们将路由协议分成两大类:距离矢量路由协议和链路状态路由协议,而BGP被划分为路径矢量路由协议(path-vector routing),路径矢量算法结合了距离矢量特性与AS-path防环特性。
因为BGP在将路由发给eBGP邻居时,会将自己的AS号码添加到AS-path中,所以可以以此来防止环路,而在将路由发给iBGP时,是不会往AS-path添加AS号码的,因此在iBGP之间传递路由时,没有防止环路的机制。考虑到为iBGP之间的路由传递也加入防环机制,因而强制将BGP路由在AS内部只传一跳,具体操作为:一台BGP路由器从eBGP邻居收到路由,发给iBGP邻居之后,iBGP邻居收到后就不能再传给其它任何iBGP邻居,只能传递给eBGP邻居。此规则被多数人称为BGP的水平分割,就是一台BGP路由器从iBGP邻居收到的路由,不能传递给其它iBGP邻居,只能传给eBGP邻居。如下图:
相关文章推荐
- ABAP程序调用之SUBMIT
- linux下编译php扩展:php7安装redis为例
- learn python the hard way(笨办法学python) 练习10
- 详解memcached原理
- Android 混淆详解
- 05、层
- 安卓自定义View进阶-Canvas(2)画布操作
- Visualizing Concurrency in Go--转
- 设计模式 - 单例模式mysql数据库操作类
- 2015 最受开发者欢迎的开发工具和服务 TOP 50(上)
- poj 1611The suspects
- 如何管理好测试团队
- Struts2 拦截器具体配置过程
- Best Time to Buy and Sell Stock II
- find 命令
- 个人对于lower_bound的理解
- 读书笔记 精通CSS 高级Web标准解决方案(第2版)4~8章
- Git 忽略一些文件不加入版本控制
- HDU1495 非常可乐(BFS)
- 在linux系统上如何连接远程服务器