目录
## OSPF(Open Shortest Path First)
自己
ospf简单实现
思科
三台路由器
分别配置每台路由器的IP地址,配置ospf(进程号为110)
Router(config)#int f0/0
Router(config-if)#no shut
Router(config-if)#ip add 192.168.1.1 255.255.255.0
Router(config)#route ospf 110
Router(config-router)#network 192.168.1.0 255.255.255.0 area 0 //如果有多个网段要通告,也可以用0.0.0.0 255.255.255.255
Router(config-router)#
00:12:18: %OSPF-5-ADJCHG: Process 110, Nbr 192.168.2.1 on FastEthernet0/0 from LOADING to FULL, Loading Done //表示加载完成
查看ospf邻居表
Router(config-router)#do show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
192.168.1.1 1 FULL/DR 00:00:33 192.168.1.1 FastEthernet0/0
192.168.2.2 1 FULL/BDR 00:00:39 192.168.2.2 FastEthernet0/1
Router(config-router)#do show ip ospf neighbor //选择双up接口中地址最大的为rid
Neighbor ID(rid) Pri State Dead Time Address (直连id) Interface
192.168.2.1 1 FULL/BDR 00:00:30 192.168.1.2 FastEthernet0/0
手工指定rid
Router(config)#router ospf 110
Router(config-router)#router-id 2.2.2.2
Router(config-router)#do clear ip ospf process //清理ospf进程
去邻居路由器查看修改的配置
Router#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 1 FULL/DR 00:00:35 192.168.1.1 FastEthernet0/0
192.168.2.2 1 FULL/BDR 00:00:31 192.168.2.2 FastEthernet0/1
有时候没有BDR,得先清理完ospf进程才会有bdr
当打开环回口没有指定rid的时候,就会使用环回口的IP地址作为rid;没有打开环回口时候,
就会使用双up接口中比较大的作为rid
do show ip ospf database 查看拓扑表 所有拓扑表都是一样的
do show ip ospf neighbor 查看邻居表
do show ip route 查看路由表
思科的ospf实验:
思科串口环境的添加:
WIC-2T,这个就是添加serial口模块的
NM-2FE2W 增加f接口
思科串口的配置
R4(config)#int s1/0
R4(config-if)#ip ospf 110 area 0
再思科设备的接口下启用ospf(cpt端口用不了,只能eve)
思科设备的优先级配置
R2(config)#int f0/0
R2(config-if)#ip ospf priority 100
思科设备修改ospf优先级(cpt,eve都可以用)
do show ip ospf database 查看拓扑表
do shwo ip ospf neighbor 查看邻居表
do show ip route 查看路由表
华为
①ospf两种配置方法:
常规的 router ospf
[AR1]ospf 110 router-id 1.1.1.1 //创建OSPF进程110,手动配置RID
(也可以不手动设置rid,开启环回口的话,默认使用环回口作为rid。如果出现没使用环回口作为rid的情况就是出现了bug)
[AR1-ospf-110]area 0 //将该ospf进程划分到区域0
[AR1-ospf-110-area-0.0.0.0]network 192.168.0.0 0.0.0.255
[AR2-ospf-1-area-0.0.0.0]network 0.0.0.0 255.255.255.255 //通告自身所有网段
②接口级 OSPF
[AR4]int s2/0/0
[AR4-Serial2/0/0]ospf enable 110 area 0 //将接口划入ospf
华为设备接口级启用ospf,还要再创建进程和区域
[AR4]ospf 110
[AR4-ospf-110]area 0
int g0/0/2
[AR2-GigabitEthernet0/0/0]ospf dr-priority 2 修改接口优先级
<AR2>reset ospf process 重置ospf进程 //要退出配置模式才能重置
查看邻居表:display ospf peer(brief)
查看拓扑表:display ospf lsdb+
查看ospf路由表:display ip routing-table protocal ospf
ospf实验
Info: A similar IP subnet already exists. Please verify the current IP subnet de
sign.
实验中R4的pc网关配置了172.16.2.1/24的ip,他的另外一个接口配置了172.16.0.3/16就会出现上诉提示。
虽然出现提示,但ip还是配置成功的。网关IP是更为详细的地址,所以可以存在。
老师
路由器的选路原则
①网段+掩码一致
先比较AD值,再比较开销
②网段和掩码不一致 -- 掩码最长匹配原则
访问192.168.10.1/32
a.192.168.10.0/24
b.192.168.0.0/16
c.192.168.10.72/26
1111 1111.1111 1111.1111 1111.1100 0000
64
192.168.10.0-192.168.10.63
192.168.10.64-
d.192.168.0.0/26
思科修改静态路由优先级
ip route 192.168.10.0 255.255.255.0 12.12.12.2 permanent 10
### 路由分类
直连路由:三层设备本身自己有的网段
静态路由:由管理员或者用户自己添加到三层设备上的路由信息
动态路由:由三层设备之间进行交换得到的路由信息
### 静态路由的优缺点:
优点: 没有开销,设备资源占用小
缺点:手动添加,繁琐,没有办法更新路由信息,对路由器来讲,不认识整个拓扑,无法动态识别网络
末梢网络,出口。
动态路由协议:可以自动更新学习路由信息
### 动态路由
距离矢量路由协议(RIP,EIGRP(混合型,早期是思科私有协议)):类似路标(告诉你怎么走,只有方向和距离)
链路状态路由协议(OSPF,ISIS(运营商使用)): 类似地图
链路 : 添加到路由器的接口以及接口的相关信息
状态 : 本台设备跟邻居设备之间的关系
## OSPF(Open Shortest Path First)
是公有协议
优点:100%无环路,收敛快 , 拓展性强,支持认证(保证安全性)
OSPF 组播地址:224.0.0.5 224.0.0.6
单区域OSPF
骨干区域(area 0)必须有
可以更新学习路由信息,数量大的时候对设备性能要求高
多区域OSPF
骨干区域
非骨干区域: 必须与骨干区域相连,没有相连就要创建隧道
## OSPF的三五七
### OSPF的三张表
邻居表:将接收到的其他ospf路由器中包含的hello包中的RID加到自己的邻居表中
拓扑表:链路状态数据库 LSDB
包含了所有的链路状态通告,OSPF在发送路由更新的时候,发送的就是链路状态数据库
路由表:
通过链路状态数据库去经过SPF算法得到的最优路径,写入到自己的路由表当中
SPF算法:OSPF选路标准,以自己为中心构建一个最短路径树
OSPF选路标准:
ospf的链路代价计算:从源到目的的路径上,所有的路由器出站接口开销的总和
接口开销:cost=10^8 /接口带宽
### OSPF的五个报文
LSA : OSPF所有报文的统称,启用OSPF的路由器都会发送LSA,发送链路状态
HELLO : 用于邻居的发现,建立,维护
(区域ID,hello时间,dead时间,身份验证)
思科 hello 10s
华为 30s
dead 40s
DBD:记录数据库的摘要信息
LSR: 链路状态请求报文,主用于向从请求一个详细的LSA信息,只有主会发送
LSU :链路状态更新报文 , 用于回复LSR ,主和从都会发送
LSack :链路状态确认报文,对每一个LSU进行确认 -- 保证路由更新的可靠性
### OSPF的七种状态
DOWN 断开状态 检测不到OSPF的hello报文,接口断开,重置ospf进程,本地一旦发出hello包,进入下一个状态
Init 初始状态 本地接收到的hello报文若存在本地RID,进入到下一个状态
2Way 双向通信 邻居关系建立的标志
Exstart 预启动
EXchange 准交换
loading 加载
Full 转发 邻接关系建立的标志
RID(路由器ID):用于标识某一台OSPF路由器,路由器ID在网络中是唯一的,不能冲突,一般使用本台设备接口地址作为RID
RID的选举规则
1.手工指定RID
Router(config-router)#router-id 2.2.2.2
2.若没有手工指定,则优先使用回环口(虚拟接口)
3.选择双UP物理接口中地址最大的为RID
### DR的选举:非抢占模式
DR : 指定路由器
BDR : 备份指定路由器
DRother : 其他路由器
DR和BDR之间信息互通,都会加入到224.0.0.6组播地址
只有在广播多路的访问环境下才会有DR和BDR的概念
非广播多路访问环境(点对点)不参与DR和BDR的选举
1.比较优先级(优先级越大越优先),以太网优先级为1,串行链路0(代表不参与选举)
2.若优先级一样,比较RID,大的优先
先选举BDR,如果环境中没有DR,BDR会自动升级为DR,再重新选择一台BDR
注意:
1.DR的选举是不抢占的,在选举出DR,BDR之后,即使出现更优的路由器,也不会抢占原先的DR和BDR的位置,只有等到原DR挂掉之后,原BDR升级为DR,这台更优路由器才会成为BDR
2.DR是通过BDR晋升的,不会直接选举
3.DRother和DRother 不会建立邻接(FULL)关系,只能建立邻居关系
4.DRother只会和DR和BDR建立邻接关系
一个网段中的dr和bdr的选举:
①按照先后顺序(如果出现与理论不符合的情况就会是先后问题导致的,可以同时清理进程)
②比较优先级
③优先级一样比较rid大小
④每个网段只会有一个dr和bdr
配置
思科
正掩码(匹配网段) 255.255.255.0
反掩码(通告网段) 0.0.0.255
Router(config)#router ospf 110
network 12.12.12.0 0.0.0.255 area 0
network 0.0.0.0 255.255.255.255 area 0 //通告自身所有网段并加入到骨干区域
Router#show ip ospf neighbor 查看ospf邻居表
clear ip ospf process 重置ospf进程
### 华为配置
#### 常规的 router ospf
[AR1]ospf 110 router-id 1.1.1.1 创建OSPF进程110,手动配置RID
[AR1-ospf-110]area 0 //将该ospf进程划分到区域0
[AR1-ospf-110-area-0.0.0.0]network 192.168.0.0 0.0.0.255
[AR2-ospf-1-area-0.0.0.0]network 0.0.0.0 255.255.255.255 //通告自身所有网段
#### 接口级 OSPF
[AR4]int s2/0/0
[AR4-Serial2/0/0]ospf enable 110 area 0 //将接口划入ospf
华为设备接口级启用ospf,还要再创建进程和区域
[AR4]ospf 110
[AR4-ospf-110]area 0
dis ospf peer(brief) 查看ospf邻居表信息
[AR3]display ospf lsdb 查看ospf拓扑表
[AR4]dis ip routing-table protocol ospf 查看OSPF路由表
[R2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ospf dr-priority 2
修改接口优先级
<AR3>reset ospf process 重置ospf进程 (得退出配置模式才能重置进程)