一、网络类型和数据链路层协议
网络类型分类
- P2P网络:点到点网络
- MA:多点接入网络
- BMA:广播型多点接入网络
以太网是典型的广播型多点接入网络。 - NBMA:非广播型多点接入网络
协议
1、以太网:以太网协议
组成部分
MAC:以太网环境下独有的地址。四十八位二进制构成,前二十四位代表不同厂商,从某种意义来说是出厂自带。
校验FCS:CRC循环冗余算法算值,检查数据是否一样。
2、P2P网络:点到点网络
定义
在一个网络中只存在两台设备的情况下,不需要对通讯对象进行区分,那么这样的网络实际上不需要MAC地址也可以通讯,被称为点到点网络。
不需要MAC地址的网络。不配置ip在第二层协议也能通讯。但是无法在上层协议无法检测(即使用不了其他协议)。
两个路由器连在一起不是P2P网络。若添加了串线,则是P2P网络。
传输介质
支持以太网协议的传输介质:网线 光纤 无线
支持P2P协议的传输介质:串线
标准
T1标准:北美:1.544MBPS
E1标准:欧洲:2.048MBPS
网线双绞线,以太网研发了频分技术
点到点网络协议
1、HDLC:高级数据链路控制协议
兼容性
兼容性很差,只有斯科用的改进的非标准的HDLC协议。
分类
标准的HDLC协议、非标准HDLC协议–思科
Address:
Control:
Protocol:(0x代表是十六进制)。协议字段,类似以太网协议中类型字段,标注上层(网络层)使用的是哪一种协议,方便解封装。
2、PPP协议:点到点协议
PPP协议修改指令
[r1]display interface Serial 4/0/0 --查看接口二层信息
[r2-Serial4/0/0]link-protocol hdlc–修改接口默认二层协议,注意要改都改
PPP点到点协议特点
1、兼容性很好,PPP协议只有一个版本,只要支持全双工的线缆都可以使用PPP。
2、可以进行认证和授权。
3、可移植性强。
协议分为三个阶段
- 链路协商阶段
LCP协商:去协商PPP链路会话 - 认证阶段(可选)
- NCP协商
网络层协议协商阶段(根据网络层协议的不同 NCP协议就会存在一个对应的NCP协议)
PPP的报文结构
认证—参数(PAP CHAP)
PAP–0XC023
三个阶段的详细介绍:
一、链路协商阶段(协商链路可用性)
LCP协商:去协商PPP链路会话
ppp在链路协商阶段会协商两个参数:MRU、MTU
MTU:最大传输单元
MRU:传输数据有多大,协商二层数据最大可用携带的数据量,默认1500字节,与MTU一样
二、协商是否认证(可选)(以及认证采用的协议)
认证分为了两种方式
1、PAP认证:密码认证协议
认证分为认证方和被认证方。
认证方ISP,一般由运营商承载。(提供账号和密码)
被认证方,用户承载。
最后封装。
aaa空间(3a空间,认证授权平台)创建账号和密码
PAP配置
认证方
[r2]aaa–进入AAA密码账号空间
[r2-aaa]local-user huawei password cipher 123456–设置账号和密码
[r2-aaa]local-user huawei service-type ppp —定义账号的服务对象
[r2-Serial4/0/0]link-protocol ppp–修改链路层协议为ppp
[r2-Serial4/0/0]ppp authentication-mode pap–定义PPP认证模式
被认证方
[r1-Serial4/0/0]ppp pap local-user huawei password cipher 123456 —
拨号,携带账号密码
2、CHAP认证(挑战握手认证协议)
左边:被认证方(企业、用户)
Challenge包:
认证方创建账号和密码,如果没有配置则为空,密码+随机数c(进行hash运输)算出一个摘要值,传递给被认证方。
Response包:
用户接收到由认证方发送的共享的密钥,即账号–正常传递和密码后,并发送账号+摘要值给认证方。通过对摘要值的比较,判断密码对错。
Success/Failure包:
摘要值比对成功,则通过;不成功,认证失败。
CHAP配置
认证方
[Huawei]aaa
[Huawei-aaa]local-user huawei password cipher 123456
Info: Add a new user.
[Huawei-aaa]local-user huawei service-type ppp --在AAA空间中创建账号和密码
调用
[Huawei-Serial4/0/0]ppp authentication-mode chap ---接口选择认证协议
被认证方
[Huawei-Serial4/0/0]ppp chap user huawei
[Huawei-Serial4/0/0]ppp chap password cipher 123456
HASH算法
将任意长度的输入转换为固定长度的输出(md5最典型的hash算法)
特点:
1.相同输入相同输出
2.不可逆性
3.雪崩效应
三、NCP协商阶段
IPCP:互联网协议协商阶段
1.压缩格式必须统一
2.IP地址(一旦地址协商成功,会自动生成一条去往该ip地址的主机路由,主机路由:掩码为三十二位的路由,因此两个路由器网段可以不一样)
IP地址获取方配置
[Huawei-Serial4/0/0]ip address ppp-negotiate
下发地址的设备配置
[Huawei-Serial4/0/0]remote address 23.0.0.2
二、VPN技术
VPN技术:虚拟专用网络,其核心是隧道技术。隧道技术的核心是:封装技术
访问分公司和总公司
NAT:网络地址转换
物理专线—成本 地理位置本身的限制
VPN到底是如何封装的?
想要连接两个私用网段,用一根虚拟的线连接两个网段的接口。
利用GRE(GRE:通用路由封装协议,相当于点到点)和MGRE协议。
VPN配置前提:保证公网连通性
1、 GRE封装
date
SIP 192.168.1.X
DIP 192.168.2.X -----想要链接1.x网段和2.x网段,在上面在封装一层公网接口
gre
SIP 12.0.0.1
DIP 23.0.0.2
mac
封装新的三层头部有什么好处?
在原来数据之上,新加三层头部。 边界路由器首先看到SIP 12.0.0.1,DIP 23.0.0.2,这两个ip对于其路由器而言是公网ip(公网ip是连通的),蒙蔽其路由器。然后利用缺省交给运营商设备,因为公网ip是连通的,所以依靠运营商设备发到边界路由。
47协议号=GRE协议
GRE详细封装步骤配置
隧道接口开销值 cost=1562
前提
[r1]ip route-static 0.0.0.0 0 12.0.0.2 --必须在边界路由器上配置缺省路由指向ISP的设备
1.首先配通公共网络
(1)配置r1
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname r1
[r1]interface LoopBack 0
[r1-LoopBack0]ip address 192.168.1.1 24 //创建环回,模拟用户网段
[r1-LoopBack0]q
[r1]interface GigabitEthernet 0/0/0
[r1-GigabitEthernet0/0/0]ip address 12.0.0.1 24 //配置物理接口
(2)配置营业商isp
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sys isp
[isp]interface GigabitEthernet 0/0/0
[isp-GigabitEthernet0/0/0]ip address 12.0.0.2 24
[isp-GigabitEthernet0/0/0]q
[isp]interface GigabitEthernet 0/0/1
[isp-GigabitEthernet0/0/1]ip address 23.0.0.1 24
(3)配置r3
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sys r3
[r3]interface GigabitEthernet 0/0/0
[r3-GigabitEthernet0/0/0]ip address 23.0.0.2 24
[r3-GigabitEthernet0/0/0]q
[r3]interface LoopBack 0
[r3-LoopBack0]ip address 192.168.2.1 24
必须在边界路由器上配置做缺省,指向isp设备
(1)在r1上做缺省
[r1]ip route-static 0.0.0.0 0 12.0.0.2
(2)在r3上做缺省
[r3]ip route-static 0.0.0.0 0 23.0.0.1
查看公网是否畅通
[r1]ping -a 12.0.0.1 23.0.0.2
2.配置私网
r1
(1)创建虚拟的隧道接口
[r1]interface Tunnel ?
<0-0> Tunnel interface slot number
[r1]interface Tunnel 0?
/ /
[r1]interface Tunnel 0/?
<0-0> Tunnel interface adaptor number
[r1]interface Tunnel 0/0?
/ /
[r1]interface Tunnel 0/0/?
<0-511> Tunnel interface interface number //一共可以创建512个接口
[r1]interface Tunnel 0/0/0
(2)为虚拟接口配ip地址,其ip要属于私网地址
[r1-Tunnel0/0/0]ip address 192.168.3.1 24
(3)定义封装协议
[r1-Tunnel0/0/0]tunnel-protocol gre
(4)定义封装内容,源ip地址为自身物理接口ip地址(公网地址)
[r1-Tunnel0/0/0]source 12.0.0.1
(5)定义封装内容,目标ip地址为建立隧道对端物理接口ip地址(公网地址)
[r1-Tunnel0/0/0]destination 23.0.0.2
r3
[r3-Tunnel0/0/0]ip address 192.168.3.2 24
[r3-Tunnel0/0/0]tunnel-protocol gre
[r3-Tunnel0/0/0]source 23.0.0.2
[r3-Tunnel0/0/0]destination 12.0.0.1
2、用MGRE封装
定义:必须在多节点的VPN网络下,选择一台边界路由器成为中心(NHS—下一跳解析路由器:负责接收分支汇报的信息(分支隧道接口配置的IP地址和隧道接口对应的物理地址)),之后分支之间想要互相访问,只需要找中心获取NHRP表即可构建隧道。
架构:hub-spoke,中心到分支/站点的架构模式
选择设备成为我们的中心即为NHS(下一跳解析服务器)(NHS名字借用了NHRP下一跳解析协议,依靠此协议进行分支信息汇报给中心)
MGRE详细配置
前提
[r1]ip route-static 0.0.0.0 0 15.0.0.2
----必须在边界路由器上配置缺省指向ISP设备。以保证公网IP之间的连通性
A.静态环境下的MGRE配置
1.首先配通公共网络
--r1
GigabitEthernet0/0/0 15.0.0.1/24 up up //物理接口
GigabitEthernet0/0/1 unassigned down down
GigabitEthernet0/0/2 unassigned down down
LoopBack0 192.168.1.1/24 up up(s)
NULL0 unassigned up up(s)
[r1]ip route-static 0.0.0.0 0 15.0.0.2 //缺省,指向运营商
--r2
<r2>sys
Enter system view, return user view with Ctrl+Z.
[r2]display ip interface brief
*down: administratively down
^down: standby
(l): loopback
(s): spoofing
The number of interface that is UP in Physical is 3
The number of interface that is DOWN in Physical is 2
The number of interface that is UP in Protocol is 3
The number of interface that is DOWN in Protocol is 2
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 25.0.0.1/24 up up
GigabitEthernet0/0/1 unassigned down down
GigabitEthernet0/0/2 unassigned down down
LoopBack0 192.168.2.1/24 up up(s)
NULL0 unassigned up up(s)
[r2]ip route-static 0.0.0.0 0 25.0.0.2 //缺省,指向运营商
--r3
<r3>display ip interface brief
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 35.0.0.1/24 up up
LoopBack0 192.168.3.1/24 up up(s)
[r3]ip route-static 0.0.0.0 0 35.0.0.2
--r4
GigabitEthernet0/0/0 45.0.0.1/24 up up
LoopBack0 192.168.4.1/24 up up(s)
[r4]ip route-static 0.0.0.0 0 45.0.0.2
2.配置私网
2.1 r1定位中心,中心的配置如下:
--r1
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]ip address 192.168.5.1 24
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp
[r1-Tunnel0/0/0]source 15.0.0.1 //源ip
//宣告nhrp协议编号,编号一样,在一个组可以接受信息
[r1-Tunnel0/0/0]nhrp network-id ?
INTEGER<1-4294967295> Nhrp network id
[r1-Tunnel0/0/0]nhrp network-id 100
2.2分支配置
[r2]interface Tunnel 0/0/0 //创建隧道接口
[r2-Tunnel0/0/0]ip address 192.168.5.2 24 //隧道接口配置ip
[r2-Tunnel0/0/0]tunnel-protocol gre p2mp //定义隧道封装协议
[r2-Tunnel0/0/0]source 25.0.0.1 //源ip,自己的物理端口
[r2-Tunnel0/0/0]nhrp network-id 100 //加入组
//如何让分支向中心汇报?
//必须告诉分支中心是谁,以及怎么把汇报信息发给中心
[r2-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register
隧道中心ip地址 中心隧道对应的物理地址 注册
[r2-Tunnel0/0/0]source 25.0.0.1 //源ip,自己的物理端口
或者:[r2-Tunnel0/0/0]source GigabitEthernet 0/0/0之间源地址关联边界路由器连接ISP的物理接口
在中心查看nhrp表
查看nhrp表的指令 [r1]display nhrp peer all
[r1]display nhrp peer all
-------------------------------------------------------------------------------
Protocol-addr Mask NBMA-addr NextHop-addr Type Flag
-------------------------------------------------------------------------------
192.168.5.2 32 25.0.0.1 192.168.5.2 dynamic route tunnel
-------------------------------------------------------------------------------
Tunnel interface: Tunnel0/0/0
Created time : 00:39:53
Expire time : 01:50:07
-------------------------------------------------------------------------------
Protocol-addr Mask NBMA-addr NextHop-addr Type Flag
-------------------------------------------------------------------------------
192.168.5.3 32 35.0.0.1 192.168.5.3 dynamic route tunnel
-------------------------------------------------------------------------------
Tunnel interface: Tunnel0/0/0
Created time : 00:04:46
Expire time : 01:55:14
-------------------------------------------------------------------------------
Protocol-addr Mask NBMA-addr NextHop-addr Type Flag
-------------------------------------------------------------------------------
192.168.5.4 32 45.0.0.1 192.168.5.4 dynamic route tunnel
-------------------------------------------------------------------------------
Tunnel interface: Tunnel0/0/0
Created time : 00:01:32
Expire time : 01:58:28
Number of nhrp peers: 3
最终配置完的语句
其他分支配置一样
--r3
[r3]interface Tunnel 0/0/0
[r3-Tunnel0/0/0]ip address 192.168.5.3 24
[r3-Tunnel0/0/0]tunnel-protocol gre p2mp
[r3-Tunnel0/0/0]source 35.0.0.1
[r3-Tunnel0/0/0]nhrp network-id 100
[r3-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register
--r4
[r4]interface Tunnel 0/0/0
[r4-Tunnel0/0/0]ip address 192.168.5.4 24
[r4-Tunnel0/0/0]tunnel-protocol gre p2mp
[r4-Tunnel0/0/0]source 45.0.0.1
[r4-Tunnel0/0/0]nhrp network-id 100
[r4-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register
3.实现全网可达
r1只直连了1.0网段和5.0网段,还需要补全其他网段
//192.168.1.0网段访问192.168.2.0,3.0,4.0网段,写静态路由
[r1]ip route-static 192.168.2.0 24 192.168.5.2
[r1]ip route-static 192.168.3.0 24 192.168.5.3
[r1]ip route-static 192.168.4.0 24 192.168.5.4
[r1]display ip routing-table //检查所有路由信息
r2只直连了2.0网段和5.0网段,还需要补全其他网段
[r2]ip route-static 192.168.1.0 24 192.168.5.1
[r2]ip route-static 192.168.3.0 24 192.168.5.3
[r2]ip route-static 192.168.4.0 24 192.168.5.4
r3只直连了3.0网段和5.0网段,还需要补全其他网段
[r3]ip route-static 192.168.1.0 24 192.168.5.1
[r3]ip route-static 192.168.2.0 24 192.168.5.2
[r3]ip route-static 192.168.4.0 24 192.168.5.4
B.rip(基于距离矢量算法的动态路由协议)环境下MGRE配置
–r1
1.启动rip协议
[r1]rip
2.选择版本
[r1-rip-1]version 2
3.宣告(设备直连的网段)
[r1-rip-1]network 192.168.1.0
[r1-rip-1]network 192.168.5.0
–r2
[r2]rip
[r2-rip-1]version 2
[r2-rip-1]network 192.168.2.0
[r2-rip-1]network 192.168.5.0–r3
[r3]rip
[r3-rip-1]version 2
[r3-rip-1]network 192.168.3.0
[r3-rip-1]network 192.168.5.0
[r3-rip-1]
–r4
[r4]rip
[r4-rip-1]version 2
[r4-rip-1]network 192.168.4.0
[r4-rip-1]network 192.168.5.0
查看整个设备的路由表指令
[r1]display ip routing-table
查看rip协议下的路由信息指令
[r1]display ip routing-table protocol rip
rip协议下配置遇到的问题
此时,只有中心设备可以查看到rip路由表,分支无法查看,为什么呢?
BMA:广播型多点接入网络—支持广播(rip v1)和组播(rip v2)
NBMA:非广播型多点接入网络
—MGRE实际上是一种类似NBMA的网络—不支持广播和组播(只能支持单播)
网络本身和协议本身的冲突
如何解决?在中心开启伪广播的功能
广播:发一个数据包然后复制转发
伪广播:一次发送多个数据包
问题一
RIP(OSPF)只能通过广播和组播传递数据包,但是MGRE环境是一种类似NBMA的网络环境,不支持广播和组播,所以中心在面对多个分支是因为只能单播发送数据,就没有办法发送数据。
所以解决方法:在中心开启伪广播,让中心面对多个分支时发送多个单播的数据包。
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]nhrp entry multicast dynamic //中心开启伪广播
问题二
在中心开启伪广播之后,分支只能收到中心的路由信息,无法学习到分支之间的路由信息。rip有防环机制即水平分割,设备默认开启水平分割(作为一台路由器,我从一个接口接收到的路由信息不会再去转发)的机制。
解决方法,在中心关闭RIP的水平分割,但是这样会导致可能出现环路,所以不建议在MGRE环境下使用RIP。
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]undo rip split-horizon
Eigrp RIP:距离矢量路由协议
共享路由表传递信息
ISIS OSPF:链路状态协议
是开放式的最短路径优先协议
定义:每台运行了OSPF协议的设备均会共享自身的接口连接情况(LSA—拓扑信息),所以设备互相共享这些信息之后就可以获取到整个OSPF网络拓扑信息,随之依靠SPF算法计算得出路由。
三、动态路由协议
定义:由运行同一种动态路由协议的路由器沟通协商最终计算得出的路由信息。
动态路由协议,在复杂环境下写静态不现实。
动态路由协议特点:
- 占用资源少
- 收敛速度快-----收敛:未知网段加载路由表的速度 首次收敛:首次运行加载路由表的速度 拓扑结构发生变化重新收敛
- 选路优
通过范围划分
外部网关协议两款EGP、BGP
内部网关协议有IGP、OSPF、RIP、ISIS、EIGRP
根据协议本身的特点划分
有类别的动态路由协议:在传递路由信息时不携带子网掩码—RIPv1
无类别的动态路由协议:在传递路由信息时携带子网掩码
RIP与OSPF区别
RIPv1------采用广播的方式传递数据包
剩下的所有协议均使用组播发送自身的数据包(IGP)
RIP使用的组播地址—224.0.0.9
OSPF使用的组播地址—224.0.0.5 224.0.0.6
- RIP实际上只能适用在中小型网络环境,具备16跳限制,最大工作半径十五台设备;而OSPF能够适应中大型的网络环境。
- OSPF为了适应中大型的网络环境采用了结构化部署的思想(区域划分)。区域间路由器ABR,将OSPF中划分的不同区域连接起来。
区域ID------32位二进制组成,用点分十进制表示
OSPF标准的区域划分要求:
- 区域之间必须存在ABR设备
ABR设备同时属于两个区域的设备,也可以同时属于多个区域 - 区域划分必须按照星型拓扑结构部署
一般把OSPF的中间区域成为骨干区域,并且要求骨干区域的区域ID必须是0.0.0.0(area 0)。OSPF网络如果进行了区域划分,这样的网络称为多区域OSPF网络,如果没有进行区域划分称为单区域OSPF网络。
OSPF的数据包
1、Hello包
作用
- Hello包:周期性的发现建立和保活邻居关系(只携带Router-ID)。
周期保活
周期保活:运行了OSPF协议的路由器会以10S为周期发送HEELO报文,hello报文中会携带本设备的RID,对端收到后就可以判断本设备存活,如果40s没有收到HEELO包,就认为该设备故障,会清空从该设备学到的LSA。
OSPF计时器
OSPF的计时器
hello时间-----默认是10s/30S
Dead-time死亡时间-----默认是四倍的hello时间
RID
RID:运行了OSPF的路由器设备为了区分和标识不同的路由器身份设计的路由器编号,本质是32位二进制,用点分十进制表示。
获取R-ID的方式有两种
- 手工配置:由工程师自行配置,符合要求即可(IP地址格式,不能重复)
- 自动生成:设备会选择自身环回接口数值最大的作为自身的RID,如果设备没有配置环回会选择接口IP地址数值最大的作为RID。
2、DBD包
数据库描述包,会携带数据库中收集到的LSA信息的摘要值 。
LSDB
链路状态数据库,存储收集到的LSA信息 。
3、LSR
链路状态请求包,在查看完对端邻居的DBD包后,基于本地的位置查询LSA 随后去索要未知的LSA信息,就通过这个LSR包。
4、LSU
链路状态更新包,用于携带各种LSA信息。
当网络结构发生变化(新增或者断开一些网段)OSPF会直接进行触发更新发生LSU数据包。
5、LSACK
链路状态确认包,用于确认接收到对端的信息。
OSPF的状态机
七种状态
邻居建立的过程
当收到对端发送的hello报文中携带自身的RID,才可以进入2-way确保hello报文的可靠传递,保证对端一定收到了我发送的hello报文。
- Down(失效)状态:不发送Hello数据包
- Init(初始)状态:开始发送Hello包(包中含有自己的Router ID) //Attempt(尝试)状态:一般不存在
- 2-way(双向通信)状态:必须收到对端发送的hello报文中携带本地的RID才可以进入该状态,该状态标志着邻居关系的建立。
条件匹配:只有条件匹配成功的路由器才可以进入下面的状态,如果条件匹配失败则停留在邻居状态,仅使用heelo包进行周期保活。
- 预启动状态Exstart:主从关系的选举,OSPF协议并不希望同时共享LSA信息,因为这样会在某一时刻很多设备同时共享这样会导致链路带宽被占用过多,导致数据传输收到影响。
选举规则:会比较设备RID的大小,rid大的设备将成为主设备进行主从关系选举的OSPF数据包是DBD包,并且该DBD包没有携带真正的LSA摘要信息)
- 准交换状态Exchange:使用真正携带摘要信息的DBD包传递LSA摘要信息。
- Loading(信息加载)状态:邻居同步数据库
- Full状态:邻居开始建立完全邻接
OSPF的工作过程
- 建立邻居:启动配置之后,ospf将向本地所有的运行了 ospf协议的端口发送hello包(224.0.0.5),hello包中携带自己的RID用来区分不同路由器的身份(不携带路由信 息),同时携带自己已知的邻居RID,之后会将这些RID存储 在自己的邻居表中。
- 条件匹配:邻居表建立完成之后,会进行条件匹配,如匹 配成功则开始进入下一个状态;如果匹配失败则会停留在邻居关系,之后仅hello包进行保活。
- 如果匹配成功,则开始建立邻接关系,之后会使用未携带数据DBD包(并没有携带LSDB的摘要信息)进行主从关系的选举。主路由器会优先进入下一个状态,会优先发送摘要进行比对,比对之后,会请求自己本地没有的LSA信息。对端会发送真正携带LSA信息的LSU包,会利用LSACK进行确认。 本地的链路状态数据库建立完成,生成本地链路数据库表。-----Full
- 完成收敛:基于本地的链路状态数据库收集的LSA,根 据自己的spf算法计算得出最短路径树。生成路由表。
- 收敛完成后,会使用hello包每10s发送一次,用来保活邻居关系。ospf会每30min进行一次周期更新。
配置
查看OSPF所有接口信息
display ospf interface
查看指定OSPF接口信息
display ospf interface +接口
OSPF查看邻接关系表
[r1]display ospf peer brief
[r1]ospf 1 router-id 1.1.1.1---启动协议进程(进程号一致即可),建议手工指定设备的RID
[r1-ospf-1]area 0 ---创建区域
[r1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255 ---宣告(范围宣告,宣告隧道接口,若宣告公网接口,信息量太大会让网络崩溃),
利用反掩码(和掩码的规则相反,掩码为0的部分反掩码就为1,掩码为1的部分反掩码就为0)
[r1-ospf-1-area-0.0.0.0]network 12.0.0.1 0.0.0.0 ---精确宣告,
相当于利用了反掩码的规则直接锁死一个IP地址(仅宣告接口对应的IP地址)
[r2]display ospf peer brief ---查看OSPF邻居简表
[r2-GigabitEthernet0/0/0]ospf mtu-enable ---OSPF协议默认是不进行接口MTU检测的,如果想要开启该功能需要手工配置。
[r2]display ospf peer---查看ospf邻居表详细信息
DR和BDR选举
条件匹配:在一个广播域中需要选择一台路由器(DR)和剩下所有路由器建立邻接关系,同时需要选择一台备份设备,充当DR的备份,当DR设备出现故障需要行使DR的工作。
选举规则
DR和BDR的选举规则:先看接口优先级,之后会根据设备的RID大小选择RID大的作为DR次大的作为BDR设备。
[Huawei-GigabitEthernet0/0/0]ospf dr-priority 10-----修改接口DR选举优先级,数值大的作为DR设备
非抢占性
OSPF的DR和BDR选举是非抢占的,简单来说就是DR和BDR选择出来之后,新加入设备不会抢占DR和BDR的身份。
OSPF的数据报文
OSPF是一种跨层封装的协议,协议号是89没有传输层(减少封装和解封装的时间,加快收敛)
报文头部
OSPF的公共头部所有OSPF报文均携带的信息
版本-----表明是OSPFV2 还是OSPFV3
类型-----标准该数据包是OSPF的哪一种数据包
1-hello包
2–dbd包
3-LSR
4-LSU
5-LSACK
认证类型:0 -----空认证 1-----simple :简单认证(明文认证) 2-----MD5
报文长度-----头部+数据包本身的数据量
HELLO报文
网络掩码:接口发出hello时会携带该接口的掩码。在建立邻居时会比较两端设备的掩码,如果掩码不一致则会导致建邻失败。
注意:只有以太网链路才会检测掩码hello时间和死亡时间,注意这两个参数如果两端对应不上也会导致建邻失败。
可选项:是OSPF的一些特性(OSPF的特殊区域的标记会在选项字段携带,如果字段不统一则会导致建邻失败)。
路由器优先级:ospf dr-priority用来条件匹配选择DR设备的参数。
指定路由器:DR的身份
备份指定路由器-----BDR的身份(RID):注意在一个广播域中所有设备的DR和BDR的认知必须统一。
只有DR和BDR会监听224.0.0.6的组播地址
DBD报文
作用:
- 用来主从关系选举(没有携带LSA摘要信息的DBD报文)。
- 用来减少OSPF重复更新,利用携带LSA摘要信息的DBD进行本地数据库比对。
- 主从关系选举之后由主设备会主导后续的DBD报文交互的有序性(确保DBD报文的可靠传输)-----隐性确认。
序列号的作用:隐性确认,去确保DBD报文的有序可靠传输。
接口最大传输单元:接口MTU值,[r2-GigabitEthernet0/0/0]ospf mtu-enable --OSPF协议默认是不进行接口MTU检测的,如果想要开启该功能需要手工配置。如果两端均开启了接口MTU检测功能如果接口MTU不一致会导致状态停留在预启动状态;检测多次失败,回到init状态。
I、M、MS解释:
八个标志位,前五位为0,后三个代表的是:
I:如果I为置为1则代表该DBD包是进行主从关系选举的DBD包。
M:MORE,如果M标志位置为1则代表本设备后续还有DBD报文需要发送,如果置为0则代表该数据包已经是最后一个DBD报文。
MS:标注该DBD报文是主设备发送的DBD报文。
主从关系选举过程:
在华为体系下,是由从设备主动发送携带LSA-摘要信息的DBD包。
LSR链路状态请求报文
必须靠LSA的三元组才能唯一的标识一条LSA。
数据包的五元组: 数据的源IP地址 目标IP地址 源端口号 目标端口号 协议号
OSPF-----LSACK的确认,是对每一条请求的LSA进行确认。
OSPF------接口网络类型。
OSPF接口工作在不同的网络环境下工作方式有所区别
P2P-----点到点网络
MA-----多点接入网络
BMA-----支持广播/组播
NBMA-----只能单播
查看OSPF接口网络类型
display ospf interface GigabitEthernet 0/0/0 --查看OSPF接口网络类型的命令
接口类型介绍
OSPF真实网络环境 | OSPF对应的接口网络类型和特点 |
---|---|
BMA(以太网) | 类型:Broadcast 特点:需要进行DR和BDR的选举,Timers:Hello10,Dead40 |
P2P点到点网络 | Type: P2P:特点:不需要进行DR和BDR的选举(条件匹配),Timers: Hello 10 , Dead 40 |
环回接口 | 虚拟接口,实际不会涉及数据包的收发,环回接口COST=0 |
MGRE | 隧道环境类型:OSPF中默认识别隧道接口的ospf接口类型为P2P,导致只能存在两台设备,在MGRE环境下,必须修改接口的工作方式使隧道接口可用识别多台设备 |
人为设计的接口网络类型 | 接口网络类型:P2MP ,特点不需要进行DR和BDR的选举,Hello 30 , Dead 120 |
NBMA(帧中继) | Timers: Hello 30 , Dead 120 |
COST公式
OSPF的开销值计算公式=参考带宽(默认值是100MBPS)/真实带宽
如果算出来的值小于1则直接按1来算,如果大于1的小数,小数部分直接舍弃。
修改OSPF参考带宽的指令
[r2-ospf-1]bandwidth-reference -----修改OSPF参考带宽的指令
OSPF协议在MGRE环境下的一些问题
问题一
只有中心获取到了一个分支的hello报文,分支之间没有获取到任何hello报文
原因:OSPFV2通过组播发送数据包,但是MGRE环境只能支持单播,所以必须在中心开启伪广播。
BMA:广播型多点接入网络—支持广播(rip v1)和组播(rip v2)
NBMA:非广播型多点接入网络
-----MGRE实际上是一种类似NBMA的网络—不支持广播和组播(只能支持单播)
解决办法:
[r1-Tunnel0/0/0]nhrp entry multicast dynamic
问题二
中心开启伪广播之后,中心和一个分支建立了邻接关系,但是分支之间没有信息,其次有一个分支只和中心保持init状态。
原因:r1的接口类型是P2P,在点到点类型中,无法容纳第三台网络设备。
建议直接更改隧道接口的接口网络类型为P2MP,直接让中心和分支不进行DR和BDR的选举,就不会造成认知不统一的问题。
P2mp-----首先没有真实实际的网络类型是P2MP,是一种专门设计出来的网络类型,同时为了加快收敛,可以修改OSPF计时器。
[r1-Tunnel0/0/0]ospf timer hello 10
解决方法1:
[r1-Tunnel0/0/0]ospf network-type broadcast--需要修改OSPF协议在mGRE隧道接口下的默认接口网络类型为 broadcast.
注意:中心和分支都要修改网络类型。
若题目要求为全连接,建议修改为broadcast。
解决方法2:
修改为p2mp
问题三
如果中心和分支的DR和bdr认知不一致会导致网络中一些由DR设备发送的LSA信息残缺,导致没有办法获取到完整的路由信息。即分支只和中心建立连接。
解决方法1:
[r2-Tunnel0/0/0]ospf dr-priority 0–解决方法就是让分支设备放弃选举DR和BDR。其他分支设备也要设置放弃选举。
解决方法2:
[r1-Tunnel0/0/0]ospf dr-priority 10–让中心的设备接口DR选举优先级为最高。
P2mp-----首先没有真实实际的网络类型是P2MP,是一种专门设计出来的网络类型,如果想要还原环回接口的默认掩码:[r2-LoopBack0]ospf network-type broadcast
Attempt-----只有在NBMA环境下才会出现,等待对端也指定发送的对象在NBMA环境下因为不支持组播报文,所以即时宣告了OSPF接口,接口依然没有办法发送hello(224.0.0.5是一个组播报文),所以必须手工指定建立邻居的对象IP地址。
[Huawei-ospf-1]peer 12.0.0.2 --指定建邻的设备IP地址,双方都需要指定
OSPF的不规则区域
区域划分规则
OSPF为了适应中大型网络环境设计了区域划分的规则
- 区域之间必须存在ABR设备
- 区域划分必须满足星形结构划分
不规则区域的分类
OSPF的不规则区域:不连续骨干 远离骨干的非骨干区域
不规则区域图片介绍
规定:星型结构部署,本身就是一种防环。(为防止触环,R5指向R4的路径不通)。
区域间路由器分类
- 合法的ABR:同时属于多个区域,并且有接口宣告在区域0
- 非法的ABR:同时属于多个区域,没有有接口宣告在区域0
不规则区域课堂练习
配置完所有ip地址后,对r4和r5的路由表进行查询,发现r4获取到了0、1、2区域的信息,但是r5上获取不到任何路由信息。即AR4不会把0、1区域的路由信息共享给2区域;也不会把2区域的路由信息共享给0、1区域。
r5设备上无路由信息
非法的ABR合法的办法
1. 物理连接
物理连接一根线缆让远离骨干的非骨干区域直接连接到骨干区域中;
2. 通过构建VPN隧道的方式
通过构建VPN隧道的方式去连接一根虚拟的线缆,将区域连接在一起;
通过让没有连接到骨干区域的路由器,和区域0中的路由器连接隧道,并且将隧道宣告在区域0中使得,ABR设备合法化。
-----r2配置
-----宣告该隧道到0区域
[r2]ospf 1
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]network 24.0.0.0 0.0.0.255
-----r4做以上相同配置
-----宣告该隧道到0区域
[r4]ospf
[r4-ospf-1]area 0
[r4-ospf-1-area-0.0.0.0]network 24.0.0.0 0.0.0.255
2.1 建立隧道会产生以下问题
问题一
会额外建立邻居关系,导致周期性的数据(可以理解为hello报文)需要通过隧道封装占用额外的资源(中间链路的消耗、额外的封装和解封装)
问题二
选路不佳
原因:OSPF选路规则优先级:域内路由>域间路由,因此选择了开销值1563的路径。
3. V-link虚链路
OSPF为了解决不规则区域问题,专门提出了一个解决方案:V-link—虚链路。
配置步骤
首先要判断哪一台路由器是非法的ABR。由图可知:AR2合法(左边区域0,右边区域1),AR4非法的ABR(左边区域1,右边区域2),要让AR2与AR4建立连接联系,中间需要跨area 1。成功后,AR5将出现区域0、1、2的路由信息。
建立V-link指令
[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4
-----必须在建立V-LINK链路的 设备所在的区域 中配置。
-----4.4.4.4是AR4的 RID
注意:V-link peer 指定的是对端合法的ABR,同时合法的ABR设备也需要指定自身去认可的非法ABR设备,即两个设备又要配置。
[r4-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2
V-link虚链路建立后,所有的开销值等于真实的开销值,不会出现选路不佳的问题。
查看V-link邻居指令
原因:[r2]display ospf peer brief查看不了V-link邻居
[r2]display ospf vlink
注:AR5设备不用和AR2建立邻接,因为 AR4上的路由信息是完全的。让AR4将区域0、1的信息传递给区域2的设备;让AR4将区域2的路由信息共享给区域1,由区域1的设备触发更新再发给区域0,因此R5设备没必要AR2建立邻接。
而且,vlink的建立只能跨越一个区域,AR5设备跨越了两个区域,无法建立。
3.1建立V-link虚链路会产生以下问题
问题一:
虚链路只能跨越一个区域,本质原因就是V-link指定的对象是一个设备的RID(不是IP地址)。
问题二:
周期性的数据还是存在,因为V-LINK也会建立邻居。
但是一般情况下V-LINK作为临时的解决方案。
4. 多进程双向重分布
多进程双向重分布可以跨越多个区域。
多进程:进程号不同,协议不同
也可以做单向的重发布
AR4此时为ASBR(自制系统边界路由器),因为它在两款协议之间。
建立多进程双向重发布指令
进程号范围:1-65535
[r4]ospf 2 router-id 4.4.4.4 -----启动一个新的协议进程,r4的rid可以不变,因为它在两个不同的协议中,不影响
[r4-ospf-2]area 0
[r4-ospf-2-area-0.0.0.0]network 45.0.0.0 0.0.0.255
[r5]ospf 2 router-id 5.5.5.5
[r5-ospf-2]area 0
[r5-ospf-2-area-0.0.0.0]network 45.0.0.0 0.0.0.255
[r5-ospf-2-area-0.0.0.0]network 192.168.5.0 0.0.0.255
配置位置
ASBR上配置
ASBR:同时运行了两款协议的设备
A-B
[r4-ospf-1]import-route ospf 2
//如果想要A协议获取到B协议的路由信息,进入A协议的进程中import-route引入B协议的路由即可
//(此处是ospf1想要获取ospf2的信息)
[r4-ospf-2]import-route ospf 1
重发布引入的路由标注的是O_ASE
O_ASE:域外路由信息 Pre-----域外路由的优先级默认是150-----因为域外其他协议的情况不清楚,路由可靠性较低