内部网关协议和外部网关协议:开放的最短路径优先协议
外部网关协议现在主要用BGP
传信的过程,一层一层叠加发送
建立邻接关系(传信的过程)——>链路状态数据库(所有链路状态学习后汇总到库里简称LSDB)——>形成最短路径(通过算法)——>形成路由表
为了适应大型的网络,OSPF在AS内划分多个区域
每个OSPF路由器只维护所在区域的完整状态链路状态信息
区域ID可以表示成一个十进制的数字
也可以表示成一个IP
负责区域间路由信息传播
OSPF区域内唯一标识路由器的IP地址
自动:
手动
DR为老大,BDR为老二
如果不选举DR和BDR,会构成n(n-1)/2个邻接关系,n为路由器个数,导致线路占用过多。
自动选举DR和BDR
手工选择DR和BDR
路由器的优先级可以影响一个选举过程,但是它不能强制更换已经存在的DR或BDR路由器
先开机的是老大,并且之后不会自动更改
OSPF的组播地址
224.0.0.5
224.0.0.6
路由器刚开机刚开始大家都以为自己是老大,再通过发送hello包选举选择DR和BDR
COST=10^8/BW
最短路径是基于接口指定的代价(cost)计算的
接口类型 | 代价(108/BW) |
---|---|
Fast Ethernet | 1 |
Ethernet | 10 |
56k | 1785 |
承载在IP数据包内,使用协议号89
OSPF的包类型 | 描述 |
---|---|
Hello包 | 用于发现和维持邻居关系,选举DR和BDR |
数据库描述包(DBD) | 用于向邻居发送摘要信息以同步链路状态数据库 |
链路状态请求包(LSR) | 在路由器收到包含新信息的DBD后发送,用于请求更详细的信息 |
链路状态更新包(LSU) | 收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包含几个LSA |
链路状态确认包(LSAck) | 确认已经收到DBD/LSU,每个LSA需要被分别确认 |
**一、Down状态:**初始化----路由器启动后开始向外发Hello,但是没有收到对方的Hello报文。
**二、Init状态:**收到第一个hello包----路由器已经接收到相邻路由器发送来的Hello数据包,但自身的IP地址并没有出现在该Hello数据包内,也就是说,双方的双向通信还没有建立起来。
**三、2-Way状态:**双向建立会话----路由器看到自身已经处于相邻路由器的Hello数据包内,双向通信已经建立
**四、ExStart状态:**建立主从关系----在此状态协商DD报文发送的主从,开始的时候都认为自己是
主路由器,发送一个空的DD报文I=1,M=1,MS=1,自己定义一个DD开始***,对方认同(比较Router-ID谁大)则回一个相同***的DD报文,I=0,M=1,MS=0。不认同则回一个不同的***的DD报文I=1,M=1,MS=1。同时检查MTU是否一致,不同将一直停在Exstart状态。
**五、Exchange状态:**交换摘要信息----在这个状态,路由器向相邻的OSPF路由器发送数据库描述数据包来交换链路状态信息,每一个数据包都有一个数据包***。如果发现DBD里有新信息,路由器向相邻路由 器发送链路状态请求数据包来请求其相应数据。
**六、Loading状态:**加载详细信息----根据之前的DD报文发送LSR请求LSA直到LSDB完全同步
**七、Full状态:**完全连接----收敛(同步)成功,双方达成一致
OSPF:属于链路状态路由协议,没有跳数限制,支持可变长子网掩码(VLSM),收敛速度快,使用组播发送链路状态更新
路由协议或路由种类 | 优先级 |
---|---|
Direct | 0 |
OSPF | 10 |
IS-IS | 15 |
Static | 60 |
RIP | 100 |
OSPF ASE | 150 |
BGP | 255 |
以下配置图片为例
首先配完所有路由器的对应网口IP(int进入,ip add IP➕子网掩码)
其次就是重点要在每个路由器上都配一个Router ID也就是路由器ID
int loopback 0-----##进入回环网口 0为名称(每个路由器可重复)
ip add 随意的IP地址,最好能对应上路由器以便分辨,子网掩码为32
上述配完以后进行ospf配置
ospf 1 router-id 1.1.1.1-----##创建ospf进程,配置路由ID
area 0------##在上述命令基础上进入区域0,区域0是骨干区域
network 192.168.10.0 0.0.0.255----##宣告ospf区域内的直连网段,并且加上反掩码(此图有两个直连网段所以配置两个)
network 10.0.0.0 0.0.0.3
network 1.1.1.1 0.0.0.0----###记得不要忘记宣告回环网口的ID和反掩码
dis ip routing-table-----##查看路由器里的数据库信息
最后ping一下pc1与pc2(不要忘记设置各自参数)
这样我们就完成了!