外部网关协议BGP:
为什么要使用外部网关协议:
1.因特网规模太大,AS之间的路由选择非常困难
2.AS之间路由选择必须考虑有关政策(比如我国的信息不能经过敌国的AS)
上面也导致了BGP其实只能寻求一条比较好的路由,而不是最佳路由
核心概念:BGP发言人
一个BGP发言人要和其他发言人交换信息,必须建立TCP连接(端口179)
使用TCP连接交换路由信息的两个BGP发言人,彼此成为对方的领站或者对等站
每一个发言人除了运行BGP协议外,当然还需要运行内部网关协议了
BGP交换的网络可达性信息就是要到达某个网络所要经过的一系列AS
要在许多AS之间需找一条比较好的路径,就是要寻找正确的BGP发言人(或者边界路由),而在每一个AS中BGP发言人的数目很有限,所以AS之间的路由选择不至于太复杂
每一个BGP发言人收到其他发言人发来的路径通知,就检查一下本AS是否在路径中,如果在,就不采用
4种报文:
1.open(打开):与相邻BGP建立关系
2.update(更新):用来通告某一路由的信息,以及列出要撤销的多条路由
3.keepalive(保活):周期性地证实相邻站的连通性
4.notification(通知):发送检测到的差错
报文格式:
四种报文有相同的通用首部,其长度为19字节。
通用首部:
1.标记(16):鉴别(如果不使用就全1)
2.长度(2):整个报文长度,最小19,最大4096
3.类型(1):分别是上面4种的一种,对应也是1,2,3,4,
OPEN:
1.版本(1):现在是4
2.自治系统号(2):全球唯一的16位系统号
3.保持时间(2):以秒计算保持为邻站关系的时间
4.BGP标示符(4):通常就是IP地址
5.可选参数长度(1):
6.可选参数
UPDATE:
1.不可行路由长度(2):指明下一字段的长度
2.撤销的路由:列出所有撤销的路由
3.路径属性总长度(2):指明下一个字段的长度
4.路径属性:定义在这个报文中增加的路径属性
5.网络层可达性信息:定义发出此报文的网络,包括网络前缀位数,IP地址前缀
KEEPALIVE:
只有19字节的通用首部
NOTIFICATION:
1.差错代码(1)
2.差错子代码(1)
3.差错数据