今天去绿盟笔试,考的题蛮简单的。。只是,有个BGP的题竟然一点都想不起来 ,于是回家复习复习~~
BGP分为内部网关协议(IGP)和外部网关协议(EGP),内部网关协议用于在AS内部交换路由信息。外部网关协议用于连接不同的自治系统。Internet(IANA)是负责分配自治系统号的最顶层机构。自治系统号是个16位的数字,其取值范围为1-65535.其中64512-65535保留给私用。BGP最新版本是BGP-4,它通告每个网络时都提供子网掩码,因此支持边长子网掩码(VLSM)和域间路由(CIDR)。
比较可扩展的路由协议
协议 | 内部/外部 | 类型 | 是否要求层次设计 | 度量值 |
OSPF | 内部 | 链路状态 | 是 | 成本 |
EIGRP | 内部 | 高级距离矢量 | 否 | 复合 |
IS-IS | 内部 | 链路状态 | 是 | 度量值 |
BGP | 外部 | 路径矢量 | 否 | 路径矢量(属性) |
OSPF和IS-IS是链路状态协议,而EIGRP是高级距离矢量协议,BGP也是距离矢量协议,但做了很多改进,被称为路径矢量协议。
包括OSPF和EIGRP在内的大多数链路状态路由协议都要求采用层次设计,以便在网络增大时能够进行合适的地址汇总,对于OSPF和IS-IS,通过将大型互联网络分成多个被称为区域的小网络来实现层次设计。EIGRP和BGP不要求采用层次拓扑。
BGP的工作原理不同于IGP,内部路由协议根据度量值选择从企业网中的一点到另一点的最佳路径,GBP在确定最佳路径考虑的不是速度,BGP是一种基于策略的路由协议,让自治系统能够根据多种BGP属性来控制数据就的传输,运行BGP的路由器交换被称作路径矢量或属性的可达性信息,其中包括前往目标网络时经过的完整路径。
将企业连接到ISP
需求:
- 共有ip地址空间
- 企业到ISP的连接类型和带宽
- 路由协议
- 连接冗余性
连接冗余有不同的连接方式:
单宿:只连接一家ISP且没有冗余链路
双宿:只连接到一加ISP,课使用2条链路来提供冗余
多宿:客户连接到多家ISP
双多宿:连接多家ISP,连接每家ISP时,都使用2条链路
在企业中使用BGP
如果你所在组织只有一条到ISP的连接,则可能不需要BGP,而可使用默认路由。如果有多条到一家或多家的ISP连接,则BGP可能是合适的选择。多宿自治系统使用EBGP连接到外部邻居,在内部也可运行IBGP,如果组织决定使用BGP来实现多宿,可采用下列3种方式:
- 每家ISP都只将一条默认路由传递给自治系统:默认路由被传递给内部路由器,自治系统将所有路由发送给isp,后者对其进行处理并发送给其他自治系统。
在这种方案中,边沿路由器使用IGP将该默认路由传播到其他路由域中,如果IGP获悉了多条默认路由,将把度量值最小的默认路由加入路由表中。这种路由器使用IGP度量值最小的默认路由,该IGP默认路由用于将前往外部网络的分组路由到自治系统的边界R,后者与ISP之间运行EBGP。分组沿哪条路由进入自治系统由外部自治系统决或ISP决定。这种方案不能操纵路径,操纵带宽使用率极其困难,因为只能操作默认路由的IGP度量值来实现
- 每家ISP都将一条默认路由和提供商的具体路由传递给自治系统:可以将这些路由传递给内部路由器,也可以在中转路径中的所有内部路由器上运行BGPISP将部分路由表通告给客户,后者可使用IBGP将这些信息传递给内部路由器,还可以将这些路由重分发到IGP。客户的内部路由器就能够根据重分发来的路由度量值,而不是默认路由来选择最近的出口。这种方案可能导致次优路径
- 每家ISP都将所有路由传递给自治系统:中转路径中的所有内部路由器都运行BGP,并在他们之间传递这些路由。
需要大量资源。
BGP路径矢量特征
BGP路由器交换的是路径矢量的可达性信息,这种信息是由路径属性组成的,路径矢量信息中包含一个BGP自治系统号列表,其中列出了前往目标网络必须经过的自治系统。
BGP将tcp作为其传输层协议,BGP信息包含在端口号为179的TCP数据段中(OSPF和EIGRP直接运行在IP层之上,IS_IS位于网络层,RIP作为传输层协议)。BGP是唯一一种使用TCP作为传输层协议的IP路由协议。
BGP路由器间建立TCP连接,这种路由器被称为BGP对等体或BGP邻居(BGP对等体可以位于AS外部,也可以位于内部,称为外部BGP邻居和内部BGP邻居)。连接建立后,路由器交换整个BGP路由表。,在此之后,只发送增量更新,只使用出发更新,发送(keepalive)消息。
要连理EBGP邻接关系,要满足:
- 自治系统号不同
- 定义邻居
- 可达
中转AS一般为ISP,必须要中转路径上的所有路由器上运行IBGP或把BGP所有路由重分发到IGP,为作出正确的路由选择,非中转自治系统中的BGP路由器也必须知道传入的所有BGP路由,同时确保不会出现路路由环路,为避免AS中出现环路,BGP规定不将通过IBGP获悉的路由传播给其他IBGP对等体。使每个BGP发言者都与AS中的其他所有IBGP发言者交换BGP更新,这被称作全互联IBGP。
如果发送更新的BGP邻居没有与所有IBGP路由器都直连,则与之相连的R将收到BGP更新,不与之相连的收不到。这会导致IP路由表不同,路由表不一致可能引发黑洞或路由环路。所以必须让AS中的每台BGP都与AS中所有其他IBGP直连。如果BGP路由很少,可将其重分发到AS内运行的IGP,则无需再中转路径中的每台路由器上运行IBGP,但此时,BGP和IGP必须同步,现在cisco IOS默认禁用同步。运行BGP的路由器有一个独立的表:BGP转发表,路由器将BGP表中最佳路由提供给路由表,BGP还保存了一个邻居表,其中包含了与之建立BGP连接的邻居。要让BGP建立临街关系,必须显示的配置每个邻居。如果启用了同步,BGP将只交换位于IP路由表中的BGP路由,默认情况下,同步被禁用,因此即使路由不位于路由表中,BGP也会通告它EBGP的管理距离为20,IBGP的管理距离为200.
BGP消息类型
打开消息(oepn)
存活消息
更新消息(update)
通知消息(notification)
建立TCP连接后,各方首先发送打开消息,如果打开消息是可接受的,收到打开消息的乙方将发送存活消息,以确认打开消息。打开消息确认后,BGP连接变建立了,BGP对等体开始交换BGP路由表,之后在路由表发生变化时发送增量更新,发送存活分组旨在确认BGP对等体之间的连接是否处于活动状态,发送通知分组旨在相应错误或特殊情况。
BGP状态机
空闲
连接
活动
打开发送
打开确认
已建立