第一章复习HCIA
(一)OSI七层模型
OSI七层模型-开放式系统互联参考模型
上三层为应用程序对数据流量进行加工以及处理的阶段
应用层 —— 主要作用:编码
表示层 ——主要作用:二进制
会话层 —— 主要作用:提供应用程序的会话地址
下四层负责数据的传输
传输层 -——主要作用:分段. 端口号 主要协议:TCP/UDP
网络层 —— 主要协议:internet协议-IP IP地址v4/v6- 主要作用:逻辑寻址(临时寻址,因为IP每次联网会变化)
数据链路层- 主要协议:以太网/PPP/HDLC/FR/ATM… 主要作用控制物理层
物理层 ——处理或传输电信号
电脑将信息变成二进制成为数据(上三层)
数据来到传输层将被分段,贴上TCP或UDP报头
传输层将数据分段后,将数据交给网络层,网络层将数据加上源IP目标IP,封装成IP数据包
网络层将数据包交给数据链路层,数据链路层贴上源MAC目标MAC,将数据包封装成帧
数据链路层将数据帧交给物理层,物理层将数据转换为电流信号,通过网线传输到另一台电脑
简记:
(从下到上)物数网传会表应
(从上到下)应表会传网数物
ARP协议---地址解析协议
-
正向ARP:通过已知IP地址,获取未知MAC地址;并存储在ARP缓存表中,老化时间180S
-
反向ARP:通过已知MAC地址,获取未知IP地址;
-
免费ARP:利用正向ARP的原理请求自己的IP地址,1、介绍自我;2、冲突检测
(二)TCP与IP
跨层封装
目的----提高封装和解封装的速度,加快传输效率。
-
跨四层封装-----应用在直连路由设备之间。
-
跨三、四层封装----应用在直连交换设备之间。
IP地址
IP地址的分类:
版本:
IPv4地址、IPv6地址
IPv4地址--32位的二进制数,由点分十进制的书写方法表示
子网掩码:
一个完整的IP地址需要子网掩码/网络掩码 netmask
网络掩码的作用:
区分网络位和主机位
注:
网络位:标识此IP地址处于哪个广播域内
主机位:可以给主机分配的IP地址
IPv4 地址的分类:
根据使用场景(范围)可分为:
IPv4地址 有限地址 2^32 --约42亿
私有地址 --免费使用、本地唯一性
公有地址 --付费使用、全球唯一性
IPv4地址,根据第一个8位的范围分为A\B\C\D\E五类地址:
A 类 范围 1-126
B 类 范围 128-191
C 类 范围 192-223
D 类 范围 224-239
E 类 范围 240-254
其中ABC三类地址为单播地址、D类地址为组播地址、E类地址科研使用,保留
单播地址:既可以作为源地址,也可以作为目标地址使用
组播地址:只能作为目标地址去使用
主类网:默认情况下,ABC三类地址拥有默认的子网掩码长度
A 类 /掩码8 255.0.0.0
B 类 /掩码16 255.255.0.0
C 类 /掩码24 255.255.255.0
特殊的IP地址:
0.0.0.0/0 --- 无效地址/默认地址/缺省地址 -->代表没有IP地址、代表所有IP地址
作用:在网络中表示所有IP地址
255.255.255.255 --- 受限广播地址
作用:广播地址,只能作为目标地址使用,表示目标为所有IP地址
127.0.0.1 --- 本地环回地址
作用:用于检测TCP/IP协议栈道是否能够正常的封装和解封装数据,PC在 系统安装完成之后默认存在
169.254.0.0/16---本地链路地址
主机位全1---直接广播地址
主机位全0----网段地址
VLSM -- 可变长子网掩码 -- 子网划分,将原来的一个大的广播域逻辑的划分为若干个小的广播域
做法:通过借用主机位来充当网络位,实现借位划分广播域和网段
思路:从主机位向网络位借位
192.168.1.0/24
192.168.1.0 0000000/25--192.168.1.0/25
192.168.1.1 0000000/25--192.168.1.128/25
DHCP -- 动态主机配置协议
(三)DNS服务
路由器转发原理
原理:路由器将基于数据包中的目的IP地址查询本地路由表。若表中存在记录关系,则无条件按记录
转发;若没有记录,则直接丢弃数据报文。
路由表如何获取未知网段信息?
1、直连路由---路由器默认生成可用接口的智联网段的路由条目
2、静态路由---由网络管理员手工配置
3、动态路由---所有路由器运行相同路由协议,路由器之间彼此沟通,计算出未知网段路由
(四)TCP----传输控制协议
是一种面向连接的可靠传输协议。
可靠性
-
确认----每收到一个报文,就需要进行一次信息确认。----依靠序列号、确认序列号以及确认标记位。
-
重传----超时重传,当一个数据段中的某一个数据报文丢失,会要求重新传输丢失的报文。----依靠序列号以及数据偏移量。
-
排序----一个数据段被分为多个数据包,从不同路径进行传输,最终达到目的地的顺序被打乱,需要重新排组。----依据序列号字段完成。
-
流控---滑动窗口-----通过调节窗口大小(无需等待确认就可以连续发送的数据的最大量)来对流量的流速进行控制。
面向连接
三次握手——保证双方都具有接收和发送数据的能力
三次握手的原因
1. 防止重复历史连接的初始化
2.同步双方初始序列号
3.避免资源的浪费
握手过程:过程:
第一次握手:
Client将标志位SYN置1,随机产生一个值seq=J,并将数据包发给Server
Client进入SYN_SENT状态,等待Server确认
第二次握手:
Server收到数据包后标志位SYN=1知道Client请求建立连接,Server将标志位SYN和 ACK都置1,随机产生一个值,并将数据包发给Client确认连接请求,Server进入 SYN_RCVD状态
第三次握手:
Client收到确认后若ACK为1,则将该数据包发送给Server,Server检查ACK为1则连 接建立成功,
Client与Server进入ESTABLISHED状态完成三次握手,可以传输数据
四次挥手
四次挥手 --- 即终止TCP连接,需要客户端和服务端总共发送4个包确认连接的断开。
过程:
第一次挥手:
Clien发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
第二次挥手:
Server收到FIN后,发送一个ACK给Client,Server进入CLOSE_WAIT状态。
第三次挥手:
Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
第四次挥手:
Client收到FIN后,Client进入TIME_WAIT状态,发送ACK给Server,Server进入 CLOSED状态,完成 四次握手。
(五)静态路由
方法一:[r1]ip route-static 23.0.0.0 24 12.0.0.2
下一跳:去往目标网段所需要经过的下一个路由器的入接口的IP地址
标记R:代表递归计算出接口
优先级:60
方法二:[r1]ip route-static 192.168.2.0 24 GigabitEthernet 0/0/1
[r2-GigabitEthernet0/0/0]arp-proxy enable ----开启ARP代理功能
路由器数据包中的目的MAC地址被写为目的IP地址所对应的MAC。----数据不通
而此时路由器无法获取目的MAC地址。
开启ARP代理功能,在下一个路由器的入接口开启
代理ARP思路:当接收到ARP数据包后,路由器会查看本地路由表,若路由表中存在目的IP地址(网络可达),此时该路由器会冒充目的IP地址来回复ARP报文。
方法三:[r1]ip route-static 23.0.0.0 24 GigabitEthernet 0/0/1 12.0.0.2
注意:先写出接口,在写下一跳
第二章、网路类型及数据链路层协议
网络类型是根据数据链路层所运行的协议及规则来划分的。
(一)网络类型分层
数据链路层使用的协议有:以太网协议,hdlc
协议,ppp
协议等,根据所使用的协议大致可以分为两类网路:
●P2P — point to point — 点对点网络
中文为点到点网络,在一个网络只允许存在两台设备,如果出现多台设备,则会导致设备间无法通信,支持的二层协议有:hdlc,ppp等。 p2p网络一般使用串线作为传输介质。
●MA — Multi-Access Network — 多点接入网络
中文为多点接入网络,在一个网络中允许存在多台设备,有不同的二层地址来区分设备。根据在MA网络中是否存在广播,可将MA网络分为两类:
○ BMA — broadcost multiple access — 广播型多点接入网络
中文为广播型多点接入网路,在MA网络中存在广播行为(即在存在多台设备的网络中, 一台设备发送广播数据时只需发送一次,广播数据经由中间设备复制转发给网络中的其他所 有设备),我们现在最常用的以太网就是BMA。在以太网中,通过交换机可以增加一个网络 内 的设备数量,通过交换机实现了广播行为。
○ NBMA — not broadcost multiple access — 非广播型多点接入网络
NBMA就是非广播型多点接入网络,在一个MA网络中没有广播行为,如果NBMA网络中的设备想进行广播的话,就需要给网络中的其他所有设备都发送一次数据包。
(二)数据链路层协议
1、以太网
其实以太网本身是一个协议的名字,也就是以太网协议。
- 特点: 以太网最大的特点是:需要使用MAC地址对我们大的设备进行区分和标识。
- 原因: 利用以太网协议建立起的二层网络中可以包含多个(两个或两个以上)街廓,每个以太网接口之间都可以通过交互以太网帧的方式进行二层通讯。
- 所属类型
BMA
- 因为其支持多节点接入网络,所以,按大类属于
MA
网络,又因为其本身支持广播行为,所以,细分可以属于BMA
网络。
- 因为其支持多节点接入网络,所以,按大类属于
- 构建方法
- 使用以太网线连接设备的以太网接口,形成的网络就是以太网络,所运行的二层协议就是以太网协议。
以太网线
- 常见的很多线缆都属于以太网线,比如:
同轴电缆
同轴电缆是一种电线及信号传输线,一般是由四层物料造成:最内里是一条导电铜线,线的外面有一层塑胶(作绝缘体、电介质之用)围拢,绝缘体外面又有一层薄的网状导电体(一般为铜或合金),然后导电体外面是最外层的绝缘物料作为外皮。同轴电缆可用于模拟信号和数字信号的传输,适用于各种各样的应用,其中最重要的有电视传播、长途电话传输、计算机系统之间的短距离连接以及局域网等。
双绞线
双绞线是目前使用最广的一种传输介质,它价格便宜、易于安装,适用于多种网络拓扑结构,双绞线由8根不同颜色的线分成4对绞合在一起,成队扭绞的作用是尽可能减少电磁辐射与外部电磁干扰的影响,双绞线可按其是否外加金属网丝套的屏蔽层而区分为屏蔽双绞线(STP)和非屏蔽双绞线(UTP)。在EIA/TIA-568A标准中,将双绞线按电气特性区分有:四类、五类线、六类线等。RJ-45指的是水晶头的标准
光纤
光纤,是一种由玻璃或塑料制成的纤维,利用光在这些纤维中以全内反射原理传输的光传导工具。通常光纤的一端的发射设备使用发光二极管或一束激光将光脉冲发送至光纤中,光纤的另一端的接收设备使用光敏组件检测脉冲。包含光纤的线缆称为光缆。由于信息在光导纤维的传输损失比电在电线传导的损耗低得多,更因为主要生产原料是硅,蕴藏量极大,较易开采,所以价格很便宜,促使光纤被用作长距离的信息传递介质。
以太网接口
○我们设备上一般默认提供的Ethernet(百兆口)接口,GigabitEthernet(千兆口)接口,乃至Ten-GigabitEthernet(万兆口)接口都属于以太网口。
以太网的特色: 可以提供极大的传输速率(目前普通民用的超五类的网线已经可以带到千兆的传输速率了)
○以太网技术之所以可以提供极大的传输速率,主要得益于其实现了 — 频分技术
频分技术 — 所谓频分就是我们一根铜丝上其实可以同时发送不同的频段的电波而互不干扰,实现数据的并行发送,起到叠加带宽的效果。(以太网的核心技术)
2、p2p网络
p2p网络—— 当一个网络中只能存在两台设备,并且不允许第三台设备加入,这样的网络我们称为P2P网络。
-
点到点网络的搭建
-
使用串线连接设备的串线接口,形成的网络就是一个
P2P
网络。
-
线的标准
-
串线的传输速率较低,存在两个标准
-
E1
标准 — 传输速率定义为:2.048Mbps
— 欧洲标准 T1
标准 — 传输速率定义为:1.544Mbps
— 北美标准
3、HDLC — 高级数据链路控制协议
HDLC:高级数据链路控制协议,是一种专门应用在串线链路的二层协议,早期是由IBM公司提出的SDLC协议,后ISO组织采纳了SDLC提出了自己的标准:HDLC。各大厂商由在标准的HDLC的基础上进行优化,得到了各自不同非标准的HDLC;由于不同厂商的HDLC和标准的HDLC之间均不兼容,所以HDLC兼容性差,ppp协议使用较多。
HDLC(High-Level Data Link Control),翻译过来是高级链路控制协议。这是一种专门应用在串线链路中的协议。
标准
HDLC目前分为两种,一种是满足工业标准的标准HDLC协议,还有一种是非标的HDLC协议。
标准的HDLC — ISO组织根据SDLC(IBM公司提出的面向比特的同步数据链路控制协议)改进发展而来的。
非标的HDLC — 各个厂家在ISO标准的HDLC上再进行修改而成。
注意: 标准的HDLC
和非标的HDLC
彼此之间是不兼容的。 — 思科设备默认采用的串线协议就是HDLC
协议
HDLC网络搭建
首先对其进行接口IP地址的配置:
R1
[R1]int s4/0/0
[R1-Serial4/0/0]ip address 192.168.1.1 24
[R1-Serial4/0/0]quit
[R1]
R2
[R2]int s4/0/0
[R2-Serial4/0/0]ip address 192.168.2.1 24
[R2-Serial4/0/0]quit
[R2]
进行测试使用R1去pingR2:
[R1]ping 192.168.2.1
PING 192.168.2.1: 56 data bytes, press CTRL_C to break
Reply from 192.168.2.1: bytes=56 Sequence=1 ttl=255 time=70 ms
Reply from 192.168.2.1: bytes=56 Sequence=2 ttl=255 time=20 ms
Reply from 192.168.2.1: bytes=56 Sequence=3 ttl=255 time=20 ms
Reply from 192.168.2.1: bytes=56 Sequence=4 ttl=255 time=30 ms
Reply from 192.168.2.1: bytes=56 Sequence=5 ttl=255 time=30 ms
--- 192.168.2.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 20/34/70 ms
[R1]
这里我们可以看到是可以ping
通的,原因则是华为串线默认的协议为PPP
修改接口的点到点网络封装为HDLC
[R1]int s4/0/0
[R1-Serial4/0/0]link-protocol hdlc
Warning: The encapsulation protocol of the link will be changed. Continue? [Y/N]
:y
Jul 20 2023 18:33:02-08:00 R1 %%01IFNET/4/CHANGE_ENCAP(l)[0]:The user performed
the configuration that will change the encapsulation protocol of the link and th
en selected Y.
[R1-Serial4/0/0]
[R2]int s4/0/0
[R2-Serial4/0/0]link-protocol hdlc
Warning: The encapsulation protocol of the link will be changed. Continue? [Y/N]
:y
Jul 20 2023 18:34:31-08:00 R2 %%01IFNET/4/CHANGE_ENCAP(l)[2]:The user performed
the configuration that will change the encapsulation protocol of the link and th
en selected Y.
[R2-Serial4/0/0]
4、PPP——点到点协议
和之前的HDLC
一样,PPP
协议也是一个应用于串线链路的协议。PPP(
point to point protocol)
,翻译成中文就是点到点协议。
PPP 为 Point to Point Protocol 的缩写,相对于HDLC,PPP具有更高的兼容性,这是由于PPP标准统一,其可以支持任何一种支持全双工的串线之中,不像HDLC标准和非标不兼容,不同厂家的非标也不兼容。PPP除兼容性外还有可移植性的特点,PPPoE就是用在以太网上的PPP。
优点:
- 相较于
HDLC
,PPP
协议其兼容性较好,PPP
协议是有统一的标准的,而且我们串行接口本身的种类就多种多样的,任何串行接口,只要其能够支持全双工通信方式,便能支持PPP
协议
F — Flag — 长度固定是8bit — 取值固定是0x7E。也就是01111110
A — Address — 长度固定是8bit — 取值固定是0xFF。也就是11111111
C — Control – 长度固定是8bit — 取值固定是0x03。也就是00000011
Protocol — 协议字段 — 表明的是其信息部分所采用的协议类型.包含我们说的LCP,NCP都有对应的编号,也都会出现在PPP帧的信息部分。
LCP协议 — 链路控制协议 — 主要是完成PPP会话建立第一阶段的协商协议
NCP协议 — 网络控制协议 — 一系列协议的总成,完成PPP会话建立第三阶段针对网络层协议进行协商;网络层所使用协议不同,则对应的NCP协议不同。网络层使用IP协议,则对应的NCP协议不同。网络层使用IP协议,则对应使用的NCP协议为IPCP(互联网协议控制协议)协议。
PPP会话建立
PPP
协议它和我们TCP
协议类似,也是有建立会话的过程的,PPP
协议需要经历三个阶段
- 链路建立阶段 —
LCP
建立 - 认证阶段 —
PPP
认证 - 网络层协议协商阶段 —
NCP
协商
其中,这个认证阶段是可选项,如果需要认证的话,则进行,否则可以直接进入第三个阶段。
PPP
中包含多个成员协议,如LCP
–链路控制协议,NCP
—网络控制协议,NCP
是一堆协议的总称。在建立PPP
会话的过程中,PPP
帧的信息内容就是成员协议数据。
链路建立阶段 — LCP建立
通讯双方通过相互发送LCP
协议数据包来协商链路搭建时的参数,比如MRU
值(即在PPP
数据帧中所允许携带的最大数据单元,单位也是字节,默认值也是1500
),因为会话建立的第二阶段认证是可选的,所以,这里还需要协商是否需要进行认证,以及使用什么方法及逆行认证。
协商过程
双方通过发送LCP
协议中定义的Configure-Request
报文来传递自己方定义的参数,之后,等待对方的确认;双方都确认成功,则链路建立阶段完成。
认证阶段
认证主要有两种方式,使用两种不同的认证协议来实现:PAP
和CHAP
PAP
(Password Authentication Protocol)
— 密码认证协议。- 简单地说,这个PAP就是将需要认证的账户名和密码以明文的形式携带,发送给对端进行认证。
过程
配置pap
认证方
[r2-aaa]local-user huawei password cipher huawei --- 添加aaa用户
Info: Add a new user.
[r2-aaa]local-user huawei service-type ppp --- 使该用户用于ppp
[r2-aaa]interface Serial 4/0/0
[r2-Serial4/0/0]ppp authentication-mode pap --- 开启PAP认证认证
被认证方:
[r1-Serial4/0/0]ppp pap local-user huawei password cipher huawei --- 接口配置登录用的用户名和密码
CHAP
(Challenge Handshark Authentication Protocol)
— 挑战握手协议-
- 认证不再是传递明文信息,而是采用比对摘要值得方式进行认证
认证过程
其过程是认证方先发出挑战包,里面包含的是认证方的主机名和一个随机值。被认证方收到后,需要根据用户名信息去查找对应的密码,然后将密码和发过来的随机值一起做HASH运算得到摘要值。然后再将自己的主机名和摘要值通过应答包一起发送给认证方。认证方收到应答包后会根据携带的主机名找到本地存的密码,然后用密码和之祈安的随机值进行HASH运算,也会得到一个摘要值。对比两次的摘要值。如果相同,则回复认证成功,否则则认证失败。
配置
认证方
[r2]aaa
[r2-aaa]local-user huawei password cipher huawei --- 添加3a用户
Info: Add a new user.
[r2-aaa]local-user huawei service-type ppp --- 使该用户用于ppp
[r2-aaa]interface serial 4/0/0
[r2-Serial4/0/0]ppp authentication-mode chap
被认证方: [r1]interface serial 4/0/0 [r1-Serial4/0/0]ppp chap user huawei [r1-Serial4/0/0]ppp chap password cipher huawei --- 接口配置登录用的用户名和密码
第三章、GRE和MGRE
VPN---虚拟专用网络:是指依靠ISP或者其他NSP在公用网络基础设施之上构建的专用的安全数据通信网络,只不过这个专线网络是逻辑上的而非物理的。
-
虚拟---使用公共网络资源建立自己的私有网络
-
专用---用户按需构建
-
核心技术----隧道技术
情景
期望走法:| SIP:192.168.1.0 | DIP:192.168.2.1 |数据
实际走法:| SIP:12.0.0.1 | DIP:23.0.0.2 | 数据
GRE: | SIP:12.0.0.1 | DIP:23.0.0.2 |GRE| SIP:192.168.1.0 | DIP:192.168.2.0 |数据
先封装虚拟IP地址,在封装物理接口的公网IP地址
注:在GRE通讯前,必须保证能连通公网
配置GRE
创建隧道接口
[R1]interface Tunnel ?
<0-0> Tunnel interface slot number
[R1]interface Tunnel 0/0/0
[R1-Tunnel0/0/0]
添加ip:[R1-Tunnel0/0/0]ip address 192.168.3.1 24
选择隧道封装协议
[R1-Tunnel0/0/0]tunnel-protocol gre
定义封装内容
[R1-Tunnel0/0/0]source 12.0.0.1
[R1-Tunnel0/0/0]destination 23.0.0.2
GRE技术的局限性:
由GRE构建的隧道实际上还是一个点到点的隧道
GRE两端配置完成后,必须存在指向隧道的路由信息,否则数据无法被GRE进行封装,也就无法正常通讯。
GRE封装和解封装过程
-
设备从连接私网的接口接收到报文后,检查报文头部中目的IP地址字段,在路由表中查找出接口,如果发现出接口是隧道接口,则将报文发送给隧道模块进行处理。
-
隧道模块接收报文后,首先根据乘客协议的类型和当前GRE隧道的配置生成校验和参数,对报文进行GRE封装,即添加GRE头部信息。
-
然后,设备给报文添加传输协议报文头部,即IP头部。该IP报文头部的源地址就是隧道的源地址,目的地址就是隧道的目的地址。
-
最后,设备根据新添加的IP报文头部的目的地址,在路由表中查找相应的出接口,并发送报文,之后,封装后的报文将在公网环境下进行数据传输。
-
接收端设备从连接公网的接口收到报文后,首先会分析IP头部信息,如果发现协议类型字段值为47,则表示该上层协议为GRE协议,于是将报文交给GRE模块进行处理。①GRE模块去掉IP报文头部和GRE报文头部,并根据GRE报文头部中的协议类型字段,确定将该报文交于那个乘客协议进行处理。
MGRE——多点通用路由封装
MGRE这个逻辑拓扑是网络中存在多个节点,但是本身在发送数据时,还是依照点到点的数据发送,并不存在广播和组播行为,所以,这种网络结构可以近似的看做是NBMA网络。
NHRP—下一跳解析协议—C/S(客户端/服务器)模式 或 hub/spoke(中心/分支)模式
在私网中选择一个出口物理IP不会发生改变的设备作为NHRP的中心节点(NHS)。这样,剩下的分支都可以知道中心节点的隧道IP地址和物理IP地址。
NHS:下一跳解析服务器,其公网接口的IP地址一般不允许改变,它的作用是从分支获取分支隧道接口的IP地址与自身公网物理接口的IP地址的对应关系;并且在分支求获取时向分支发送所以分支隧道接口的IP地址与自身公网物理接口的IP地址的对应关系表。
情景
配置
中心的配置:
1,创建隧道接口
[r1]interface Tunnel 0/0/0 [r1-Tunnel0/0/0]
2,接口配置IP地址
[r1-Tunnel0/0/0]ip address 192.168.3.1 24
3,定义封装方式
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp 4,定义封装内容
[r1-Tunnel0/0/0]source 15.0.0.1
5,创建NHRP域
[r1-Tunnel0/0/0]nhrp network-id 100
分支的配置:
1,创建隧道接口
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]
2,接口配置IP地址
[r1-Tunnel0/0/0]ip address 192.168.3.1 24
3,定义封装方式
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp
4,定义封装内容
[r2-Tunnel0/0/0]source GigabitEthernet 0/0/1
5,加入到中心创建的NHRP域中
[r2-Tunnel0/0/0]nhrp network-id 100
6,上报信息到中心
[r2-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register
先隧道地址后物理接口地址
[r1-Tunnel0/0/0]display nhrp peer all —查看NHRP邻居的注册情况
MGRP环境在数据发送时,依旧是走的点到点的隧道,所以在数据传输时依然是点到点的传输。所以,MGRE环境是一个类似于NBMA的环境。
RIP实现MGRE环境遇到的问题:
1,只有中心获取到了分支的路由信息,而分支没有获取到
解决方法:
在中心上开启伪广播
[r1-Tunnel0/0/0]nhrp entry multicast dynamic
2,中心开启伪广播后,分支只能收到中心的路由信息,但没有分支的。
原因—RIP的水平分割机制
解决方法:
[r1-Tunnel0/0/0]undo rip split-horizon—关闭RIP的水平分割
第四章、OSPF
路由协议分类:
根据算法分类:
距离矢量:rip
链路状态:ospf,isis
按AS
内部网关协议:(IGP):RIP EIGRP OSPF ISIS
外部网关协议:(EGP):BGP
按IP地址类型分类
有类:RIPv1
无类路由:EIGRP(CISCO私有)、OSPF、ISIS、BGP、ODP(CISCO私有)OSPF最多有10000条路由
OSPF特点
1、收敛速度快,相对RIP快,相对BGP快,相对EIGRP慢;
2、无类的路由协议,支持不连续子网,支持VLSM (可变长子网掩码),支持CIDR;
3、OSPF支持等价负载均衡 EIGRP(非等价负载均衡);
4、支持区域划分;
5、OSPF支持认证:0是不认证,1、简单明文认证,2、MD5认证;
6、触发更新;
7、没有路由环路 OSPF在同一个区域内是绝对无环路,基于SPF算法,不可能产生环路由;
8、OSPF 管理距离 AD(prefrence)协议优先级 内部10 外部 150 ;
9、OSPF基于接口开销(cost)来进行路由计算的,相对RIP的跳数,更优 100M/接口带宽;
10、OSPF使用组播来收发报文:
RIP组播地址 224.0.0.9;
OSPF组播地址:224.0.0.5(DR router) 224.0.0.6;
11、OSPF是IP协议承载的 端口89;
基本概念
链路:
路由器上的一个接口;
链路状态:
有关各条链路的状态的信息,用来描述路由器接口以及与邻居路由器的关系, 主要包括:链路的类型;接口IP地址及掩码;链路上所连接的邻居路由器;链路的带宽(开销)。
区域:
共享链路状态信息的一组路由器,在同一个区域内的路由器有相同的链路状态数据库
自治系统(Autonomous System):
一个自治系统是指使用同一种路由协议交换路由信息的一组路由器。
链路状态通告(LSA)和链路状态更新(LSU):
LSA用来描述路由器和链路的状态,LSA包括的信息有路由器接口的状态和所形成的邻接状态;LSU可以包含一个或多个LSA;
最短路径算法(SPF)算法:
是OSPF路由协议的基础。SPF算也被称为Dijkstra算法。OSPF路由器利用SPF独立地计算出到达目标网络的最佳路由;
邻居关系:
如果两台路由器共享一条公共数据链路,并且能够协商Hello数据包中所指定的某些参数,它们就形成邻居关系;
邻接关系:
相互交换LSA的OSPF邻居建立 的关系,一般说,在点到点,点到多的网络上邻居路由器都形成邻接关系,而在广播多路由访问和NBMA网络上,要选举DR和BDR,DR和BDR路由器与所有的邻居路由器形成邻接关系,但是DRother路由器之间不能形成邻接关系,只能形成邻居关系;
指定路由器(DR)和备份指定路由器(BDR):
为了避免路由器之间建立完全邻接关系而引起的大量开销,OSPF要求在多路访问的网络中选举出一个DR,每个路由器都与之建立邻接关系,选举DR的同时也选举出一个BDR,当DR失效时,BDR担负起DR的职责,而且所有其他路由器只与DR和BDR建立 邻接关系;
区域及路由
为了使OSPF能够用于规模很大的网络,OSPF把一个自治系统再划分为若千个更小的范围,叫做区域(Area)。
区域:一组网络和连接到任一网络的路由器接口。
- 每个区域运行一个独立的链路状态选路算法,区域内部的网络拓扑结构在区域外不可见。
如果一个路由器的多个接口属于不同区域,它要为每个区域都运行一个链路状态选路算法,即OSPF协议实例。
例如图示网络中的R3、R4、R5和R8,都分属于两个区域,因而都要运行两个OSPF协议实例。
每个区域有一个 32 位的编号,可用类似于 IP 地址的点分十进制法表示,也可用一个十进制数表示。
区域 0.0.0.0 是一个特殊的区域:主干区域(backbone area)。
其他区域称为非主干区域(non-backbone area)。
主干区域连通了非主干区域,为非主干区域之间提供传输服务。
所有的非主干区域都要连接到主干区域上。主干区域和非主干区域通常采用星型结构连接:主干区域作为中心节点,非主干区域是边缘节点。
根据作用不同,路由器被划分为 4 种类型:
区域内路由器IR(internal router):所连接的网络都属于同一个区域。如R1,R2,R7,R9,R10。内部路由器只运行一个OSPF协议实例。
主干路由器BBR(backbone router):主干区域中的路由器。如R3,R4,R5,R6,R7,R8
区域边界路由器ABR(area border router):连接到多个区域,且必须连接到主干区域。如R3,R4,R5,R8。为每个连接的区域分别运行一个 OSPF 协议实例。
自治系统边界路由器ASBR(AS border router):与其他自治系统交换路由信息的路由器。如R6
一台路由器可以同时属于多种类型。
虚拟链路:
●主干区域必须是连续的:所有区域边界路由器都能通过主干区域到达其他区域边界路由器。
●若不满足,可配置虚拟链路(virtual link)使主干区域变成连续的。
○图示网络中,主干区域中的路由器R3、R4、R6形成一个连通网络,R5、R7、R8形成另一个连通网络,但这两个网络在主干区域中没有连接,因而主干区域是不连续的。但R4和R5都连接到了区域3,它们在区域3中通过N4连接。这时,可以在主干区域中在R4和R5之间配置一条“虚拟链路”,使主干区域变成连续的;虚拟链路实际利用R4和R5在区域3中的物理连接来进行通信。
○主干区域将虚拟链路看作是一个点到点链路,其传输代价就是非主干区域中连接虚拟链路两端路由器的路由的代价
OSPF五种报文
Hello报文:发现邻居,建立邻居,维护邻居;
DBD报文:用来描述本地LSDB的摘要信息,用于同步数据库;
LSRequest报文(请求报文):用来请求具体的LSA消息;
LSU(更新报文):更新消息 ,用于向对方发送具体的LSA;
LSack(确认报文):用于对收到的LSA进行确认;
●相邻路由器之间周期性发送HELLO报文,以便建立和维护邻居关系
●建立邻居关系后,给邻居路由器发送数据库描述报文(DBD),也就是将自己链路状态数据库中的所有链路状态项目的摘要信息发送给邻居路由器
●收到数据库描述报文后,若发现自己缺少其中某些链路状态项目,则会发送链路状态请求报文(LSR)。
●对方收到链路状态请求报文后,则会将其所缺少的链路状态项目的详细信息封装在链路状态更新报文(LSU)中发送回去
●收到链路状态更新报文后,将这些信息添加到自己的链路状态数据库中,随后发回链路状态确认报文(LSACK)
hello协议
●OSPF 路由器定期向所有邻居路由器发送 HELLO 报文。
●报文中包含了最近一段时间内发送过 HELLO 报文的邻居路由器。
○路由器用其标识符表示。
○发送周期为10秒
○40秒未收到来自邻居路由器的 HELLO 报文,则认为该邻居路由器不可达
如果路由器在邻居发送的 HELLO 报文中发现了自己的标识符,就表明这两个邻居路由器之间建立了双向通信链路。
○每个路由器都会建立一张邻居表。
OSPF 路由器的两种关系:
- 邻居关系(neighboring):连接到同一个网络,能建立双向通信链路。
- 邻接关系(adjacent):可交换网络的链路状态。
- 建立双向通信链路后,由 OSPF 协议确定。
并非所有的邻居路由器之间都要建立邻接关系:
- 广播网络或 NBMA 网络上,DR/BDR 与其他路由器之间有邻接关系;
- 其他路由器之间不需要邻接关系
邻居关系建立:
HELLO 协议在不同类型网络上的工作过程不同:
点到点网络、虚拟链路:路由器向对方发送 HELLO 报文;
点到多点网络:路由器仅向能直接通信的邻居发送 HELLO 报文;
广播网络:每台路由器定期组播发送 HELLO 报文;
NBMA 网络:需要配置后 HELLO 协议才能正常工作
邻居状态
1、Down:
这是邻居的初始状态,表示没有从邻居收到任何信息。在NBMA网络上,此状态下仍然可以向静态配置的邻居发送Hello报文,发送间隔为PollInterval, 通常和RouterDeadInterval间隔相同;
2、Attempt:
此状态只在NBMA网络上存在,表示没有收到邻居的任何信息,但是已经周期性的向邻居发送报文,发送间隔为HelloInterval。如果 RouterDeadInterval间隔内未收到邻居的Hello报文,则转为Down状态;
3、Init:
在此状态下,路由器已经从邻居收到了Hello报文,但是自己不在所收到的Hello报文的邻居列表中,表示尚未与邻居建立双向通信关系。在此状态下的邻居要被包含在自己所发送的Hello报文的邻居列表中;
4、2-WayReceived:
此事件表示路由器发现与邻居的双向通信已经开始(发现自己在邻居发送的Hello报文的邻居列表中)。Init状态下产生此事件之后,如果需要和邻居建立邻接关系则进入ExStart状态,开始数据库同步过程,如果不能与邻居建立邻接关系则进入2-Way;
5、2-Way:
在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。收到了邻居发送过来的hello报文,并且在报文中邻居列表中看到自己的router-id,进入two-way状态;
6、1-WayReceived:
此事件表示路由器发现自己没有在邻居发送Hello报文的邻居列表中,通常是由于对端邻居重启造成的;
两台路由器都进入two-way(2-way)状态,标志着邻居建立完成
主从选举规则:Router-ID大的为主,小的为从
影响OSPF邻居建立的因素:
接口没有启动OSPF;
网络第1或2层故障;
被动接口;
ACL阻止了224.0.0.5,224.0.0.6;
hello,dead timer;
认证类型和密码不匹配;
area ID 不匹配;
在NBMA网络中没有手工指定peer;
两边的frame-relay map 缺少broadcast;
option选项不匹配;
router id 冲突;
MA网络中掩码不匹配;
DBD报文中接口MTU不匹配;
邻接关系
a. 邻居状态机变为ExStart以后,RTA向RTB发送第一个DD报文,在这个报文中,DD序列号被设置为552A(假设),Initial比特为1表示这是第一个DD报文, More比特为1表示后续还有DD报文要发送,Master比特为1表示RTA宣告自己为主路由器;
b. 邻居状态机变为ExStart以后,RTB向RTA发送第一个DD报文,在这个报文中,DD序列号被设置为5528(假设)。由于RTB的Router ID比RTA的大,所以RTB应当为主路由器,Router ID的比较结束后,RTA会产生一个NegotiationDone的事件,所以RTA将状态机从ExStart改变为Exchange;
c. 邻居状态机变为Exchange以后,RTA发送一个新的DD报文,在这个新的报文中包含LSDB的摘要信息,序列号设置为RTB在步骤2里使用的序列号,More比特为0表示不需要另外的DD报文描述LSDB,Master比特为0表示RTA宣告自己为从路由器。收到这样一个报文以后,RTB会产生一个NegotiationDone的事件,因此RTB将邻居状态改变为Exchange;
d. 邻居状态变为Exchange以后,RTB发送一个新的DD报文,该报文中包含LSDB的描述信息,DD序列号设为5529(上次使用的序列号加1);
e. 即使RTA不需要新的DD报文描述自己的LSDB,但是做为从路由器,RTA需要对主路由器RTB发送的每一个DD报文进行确认。所以,RTA向RTB发送一个新的DD报文,序列号为5529,该报文内容为空;
f.发送完最后一个DD报文之后,RTA产生一个ExchangeDone事件,将邻居状态改变为Loading;RTB收到最后一个DD报文之后,改变状态为Full(假设RTB的LSDB是最新最全的,不需要向RTA请求更新);
每一个含有至少两个路由器的广播型网络和NBMA网络都有一个指定路由器(Designated Router,DR)和备份指定路由器(Backup Designated Router,BDR)。
DR和BDR的作用:
1、减少邻接关系的数量,从而减少链路状态信息以及路由信息的交换次数,这样可以节省带宽,减少路由器硬件的负担。一个既不是DR也不是BDR的路由器只 与DR和BDR形成邻接关系并交换链路状态信息以及路由信息,这样就大大减少了大型广播型网络和NBMA网络中的邻接关系数量。
2、在描述拓扑的LSDB中,一个NBMA网段或者广播型网段是由单独一条LSA来描述的,这条LSA是由该网段上的DR产生的。
DR/BDR的选举规则:
1)在第一个报文中,DR,BDR字段都为空(0.0.0.0),
2)如果DR,BDR字段都为空,先选举出BDR,先比较优先级,越大越优(默认为1,0不参与选举),如果优先级相同,会比较router-id,越大越优
3)如果DR字段为空,BDR为非空,BDR会升级为DR,然后再选举BDR
4)如果DR为非空,BDR为空,会选举BDR
ospf网络类型:
●点到点网络(P2P):不用进行DR和BDR的选举,直接形成邻接关系;
●广播型网络(BMA):以太网网络,需要进行DR和BDR的选举;
●非广播多路访问网络(NBMA):不能发送广播和组播报文,使用单播方式来制定邻居;会进行DR和BDR的选举;
●点到多点网络(P2MP):不需要进行DR和BDR的选举,组播的形式发送hello报文,以单播的形式发送其他报文;
●虚链路
不同网络状态下的时间
报文格式
1)OSPF报文
- OSPF 协议使用 IP 报文发送报文,其协议编号是
89
,发往组播地址224.0.0.5
。 - 即使在广播型网络上,OSPF 也尽可能采用组播方式发送报文。
OSPF 报文24
字节的固定首部:
“版本”,占1字节,指明OSPF协议的版本号。对OSPF2协议设置为2。
“类型”,也占1个字节,指明了报文的类型。OSPF 协议定义了 5 种类型报文。
“分组长度”,占2字节,指明整个OSPF报文(包括首部)的长度,单位是字节。
“路由器标识符”,占4字节,是报文发送方路由器的标识符。每个运行OSPF协议的路由器都有一个32位的标识符,在自治系统中唯一地标识了该路由器。
“区域标识符”,占4字节,是OSPF报文所属区域的标识符。OSPF报文只在某个特定的区域中发送。如主干区域就是0.0.0.0
“校验和”,占2字节,是整个OSPF报文(除8字节认证数据外)的校验值。计算方法与IP首部校验和相同。
“认证类型”,占2字节,指定了要使用的认证机制,包括:不进行认证(0),简单的密码认证(1),加密认证(2)。
“认证数据”,占8字节。
OSPF协议的认证可基于接口进行,即可以为每个路由器接口独立地配置认证机制
OSPF 协议定义了 5 种类型报文:
2)Hello报文
OSPF 路由器周期性在所有接口(包括虚拟链路)上发送 HELLO 报文
“网络掩码”是报文发送接口所连接网络的地址掩码,该接口的地址在报文首部中的“路由器标识符”字段中。
“HELLO报文间隔”字段占2字节,用于指定路由器发送 HELLO 报文的间隔时间,单位是秒。
“选项”字段占1字节,用于OSPF路由器交换各自的能力等级。
“路由器优先级”字段占1个字节,用于在广播网络或非广播多址接入网络上选举指定路由器和备份指定路由器。如果为 0,表明发送方路由器不参加选举。
“路由器故障间隔”字段占4字节,指明在确认对方路由器发生故障前应等待的时间,单位是秒。
如果是广播网络或非广播多址接入网络,“指定路由器”和“备份指定路由器”字段分别是发送方路由器认为的网络当前的指定路由器和备份指定路由器的IP地址。全0地址表示网络上还没有指定路由器和备份指定路由器。
“邻居路由器”列表给出了最近一段时间内从其接收到有效HELLO报文的邻居路由器的标识符。“最近一段时间”是指“路由器故障间隔”字段指明的时间。
3)DBD报文
接口最大传输单元----MTU
-
默认情况下,该字段值为0
-
华为默认不进行MTU值检测,可以开启该功能
MTU字段指明了报文发送接口所连接网络的最大传输单元。如果是虚拟链路则设置成 0。
“选项”字段用于OSPF路由器之间交换各自的能力等级。
“I”标志,即初始(Init)标志。如果设置为1,表明本报文是描述链路状态数据库摘要的第一个数据库描述报文。
“M” 标志,即更多(More)标志。如果设置为 1,表明后续还有其他数据库描述报文。代表后续还存在DD报文
“MS” 标志,即主(Master)、从(Slaver)标志。若设置为 1,表明本路由器在数据库交换过程中是主方,否则是从方。代表是否为主设备
“数据库描述序号”字段占4字节,用于对描述链路状态数据库摘要的一组数据库描述报文进行编号。第一个报文中该字段是一个随机数,后续报文的序号在随机数的基础上顺序递增。
报文的剩余部分是一组链路状态通告(LSA)首部,即链路状态数据库的摘要信息,表明了本地数据库中有哪些链路状态及其新旧程度。
4)LSR报文
链路状态类型、链路状态ID、通告路由器----LSA三元组,通过这三个参数可以唯一的标识出一条LSA信息
5)LSU报文
6)确认报文
包含一系列LSA首部
OSPF的接口网络类型
所谓的OSPF接口网络类型,实际上是指OSPF的接口在某种网络类型下的一种工作方式。
广播型多路访问类型---BMA
OSPF在BMA类型的接口上通常以组播的方式发送hello报文、LSU报文以及LSAck报文。以单播的形式发送DD报文和LSR报文。
点到点类型(p2p)
OSPF在网络类型为P2P的接口上以组播的方式发送所有OSPF数据报文。
环回接口(虚拟接口)
华为特殊将环回接口的开销值定义为0。
Type中的参数是由P2P进行填充,华为没有为该字段定位内容,而cisco则定义了一个loopback类型作为环回接口的类型。
所有通过OSPF学习到的环回接口的路由掩码信息都是32位。也就是每台设备学习到的路由条目是主机路由。该方式可以在保证路由信息的精准性的前提下,避免环路或者路由黑洞问题。
在DR和BDR选举时,会启动一个waiting计时器,该计时器的时间与dead时间相同,当计时器时间超时后,该接口会认为自己就是DR设备。----且设备会进入exstart状态
华为将tunnel接口的传输速率定为64Kbps。
在Hub-Spoke架构中,运行MGRE时,使用OSPF协议学习路由信息,需要将隧道接口的OSPF网络类型修改为BMA,全网均修改。且手工干涉DR选举,将DR选举在Hub节点。
OSPF的LSA详解
LSA头部
-
链路状态老化时间
-
一条LSA的老化时间,16bit整数。
-
当该LSA被始发路由器产生时,该参数有效,且数值为0。之后随着该LSA在网络中被洪泛,老化时间逐渐累加。
-
一般情况下,老化时间不会超过1800S。
-
该参数存在最大老化时间---3600S。----当一条LSA的老化时间到达最大老化时间时,将被认定失效,从本地的LSDB中删除。
-
在OSPF网络中,只有始发路由器能够提前使某条LSA老化,即有意识的清除该LSA信息。
-
-
-
可选项----与hello报文相同
-
链路状态类型-----本条LSA的类型,不同LSA类型在描述不同OSPF的信息
-
链路状态ID-----LSA的标识。不同的LSA类型,该字段内容含义不同。
-
通告路由器-----产生本条LSA的路由器的RID。
-
链路状态序列号----标识一条LSA的新旧
-
每台路由器在发送相同LSA信息时,序列号逐次加一。
-
序列号起始为0x80000001
-
序列号截止为0x7FFFFFFF
-
-
链路状态校验和
-
而是参与到LSA的新旧关系比较中。
-
-
长度---LSA的总长度
LSA新旧比较:
1、会先比较LSA的序列号,序列号越大越优;
2、LSA序列号相等,会比较校验值(checksum)越大越优;
3、如果序列号相等,校验值也相等,会比较LSA Age时间是否等于Max-age(3600)时间,如果等于MAX Age时间,最新;
4、如果序列号相等,校验值也相等,LSA Age时间不等于Max-age时间,会比较他们之间的差值,如果差值大于15分钟(900秒),越小越优;
5、 如果序列号相等,校验值也相等,LSA Age时间不等于Max-age时间,会比较他们之间的差值,如果差值小于15分钟(900秒),认为两条LSA为同一条,忽略其中之一;
LSA分类:
1类LSA:router-LSA:
每一个路由器都会生成。这种LSA描述某区域内路由器端口链路状态的集合。只在所描述的区域内泛洪。
-
V----代表该路由器是vlink链路的端点
-
E----该路由器为ASBR设备
-
B----该路由器为ABR设备
-
链路数量-----该字段指明该一类LSA包含了多少条Link。每条link均包含链路ID、链路数据、度量值等信息。
-
链路类型----该类型不是所谓的网络类型。
-
链路类型不同,导致链路ID和链路数据内容不同。
-
2类LSA :
MA网络中存在,在点到点,点到多点网络中是没有二类LSA的; 由DR生成,用于描述广播型网络和NBMA网络。这种LSA包含了该网络上所连接路由器的列表。只在该网络所属的区域内泛洪
3类LSA:
Network-Summary-LSA
由区域边界路由器(ABR)产生,描述到AS内部本区域外部某一网段的路由信息,在该LSA所生成的区域内泛洪;
3类LSA是可以说在整个OSPF区域内泛洪,stub,NSSA区域除外;
只能在ABR上起始源区域进行汇总
Type-3LSA中的开销值,指的是该LSA的通告者到达目的地的开销值。而接受这对于该路由信息在加入到路由表时的开销值等于LSA中的开销值加上本地到达该LSA通告者的开销值之和。
3类LSA传递路由信息的方式类似于距离矢量型协议的方式,通告者就是到达目标网段的下一跳。所以,接收者在收到三类LSA后,需要根据1类和2类LSA信息计算拓扑信息从而来寻找三类LSA的通告者。如果可以找到则本条3类LSA可用,如果递归不到,则忽略该3类LSA信息。
如果,通告者是所在区域的ABR设备,那么自然可以寻找到三类LSA的通告者,从而该路由可用。但当LSA信息跨区域传输时,接收者就无法递归到始发该3类LSA的通告者,因为不在同一个区域内部,无法使用1、2类LSA递归。故3类LSA在传输时,若需要跨越区域,则由每个区域的ABR重新构造一个新的描述相同目标网段的3类LSA信息发送。
5类LSA:
AS-external-LSA
由自治系统边界路由器(ASBR)产生,描述到AS外部某一网段的路由信息,在整个AS内部泛洪,5类LSA在传递过种中,不会发生任何变化;
E位----用于表示外部路由使用的度量值类型
-
类型1---E位为0,则代表使用类型1。---域内所有设备到达目标网段的开销值等于本地始发出该条LSA的ASBR的开销值加上种子度量值。
-
类型2---默认---当一个域外的LSA信息使用该类型时,则域内所有设备到达域外目标网段的开销值都等于种子度量值。
4类LSA:
ASBR-Summary-LSA;
由区域边界路由器(ABR)产生,描述到某一自治系统边界路由器(ASBR)的路由信息,在ABR所连接的区域内泛洪(ASBR所在区域除外);
第四类LSA只能在一个区域内泛洪
4类LSA的LS ID是ASBR的RID值。4类LSA又被称为ASBR汇总LSA,是一条到达ASBR的主机路由信息。4类LSA的任务就是辅助5类LSA完成验算过程,找到ASBR的位置。
7类 LSA
7类LSA的报文格式与5类LSA相同。
Options字段在五类LSA中,显示为E(代表可以洪泛五类LSA)。
转发地址----应对选路不佳的情况,如果存在选路不佳的情况,则通告者会把最佳的下一跳放入转发地址中,接收者看到FA字段,则将不按照算法来计算下一跳,而直接使用转发地址作为下一跳。在7类LSA中,一般会使用通告者(ASBR)设备的环回接口IP地址作为转发地址。如果存在多个环回接口,则将使用最先宣告的地址作为转发地址;如果没有环回接口,则将使用物理接口作为转发地址。---华为的逻辑
OSPF优化
OSPF的优化主要是为了减少LSA的更新量。
-
路由汇总---减少骨干区域的LSA
-
OSPF特殊区域---减少非骨干区域的LSA