HCIA: 全称 HUAWEI Certified ICT Associate。是华为公司推出的一种IT认证,旨在帮助个人建立并验证在信息和通信技术领域的基本技能。
网络基础
原理:人类的抽象语言通过电脑加工编译编程电脑可识别的二进制,最后输出成人类的抽象语言
最早的四层结构:应用层,表示层,介质访问控制层,物理层
人类最早的网络:--对等网--
网络的基本拓扑结构:直线型,环型,树状,全网状和星型
排队机制解析:
- 首先使用监听功能,当发现有消息在传播时,停止自身发送,进行监听排队,随时准备进入下一个阶段
- 当前消息完成,监听到完毕状态后,立刻发送。
- 当消息相撞时,会互相给彼此发送一个阈值,因为是随机发送,所以会有大小区分,达到阈值时发送消息,这样就规避了冲突的问题。
交换机:交换机是按照通信两端传输信息的需要,用人工或设备自动完成的方法把要传输的信息送到符合要求的相应路由上的技术统称
- 无限的传输距离-----读写功能,相当于重新写信
- 没有冲突-------交换机可以转换电流并储存二进制数据
- 形成单播------运用转发储存的原理,储存一批转发一批,实现一对一的识别一对一的发送。
其工作原理:
- 当数据帧进入交换机之后,交换机会先查看数据的源MAC地址,之后将该数据进入的接口与MAC地址映射到本地的MAC地址表中;之后查看目标MAC地址,根据目标MAC地址查询本地MAC地址表,若存在记录,将直接从该表所记录的接口进行发送。
- 若没有目标MAC地址接口记录,则泛洪该数据。(泛洪:除了进入的接口之外,转发给所有其他的接口)
- 其中,MAC地址表的老化时间:300s
IPV4地址:32位二进制构成 存在网络位和主机位的区分;网络位用于标识所在的范围;选用点分十进制表示。为了方便人看,所以采用8位一分形式。
基于IP地址的第一个8位进行分类,可分为五类:
A类:1-126 前8位为网络位
B类:128-191 前16位为网络位
C类:192-223 前24位为网络位
D类:224-239 组播地址,不分网络位和主机位
E类:240-255 保留地址
A类地址地址子网掩码:255.0.0.0
B类地址地址子网掩码:255.255.0.0
C类地址地址子网掩码:255.255.255.0
特殊地址:
一: 127 环回地址 127.0.0.1-127.255.255.255用作排错历程分析
二:255.255.255.255 受限广播地址
三:主机位全0,192.168.1.0 255.255.255.0 不是单播地址,不能被设置为IP地址,代表一个网段。 网络号
四:主机位全1,192.168.1.255/24 不是单播地址,不能被设置为IP地址,
直接广播地址
五:0.0.0.0 代表没有地址 代表所有地址
六:169.254.0.0/16 本地链路地址 自动私有地址
子网掩码:通过连续的1和连续的0构成,连续的1所在位置即为网络位,连续的0即为主机位。
例: 192.168.1.0 255.255.0.0
11000000.10101000.00000001.00000000
11111111.11111111.00000000.00000000
ARP:地址解析协议:通过一个地址找到另一个地址
广播域:泛洪区域
广播:在一个泛洪范围内,迫使交换机将一个数据进行泛洪
ARP缓存表老化时间:180s
路由器的工作原理:PC端在访问其他设备时,会先基于目标IP地址判断对端设备与自己是否存在于同一个广播域;若在同一个范围,通过ARP广播获取MAC随后单播通讯即可。若不在同一个范围,则需要封装目标MAC地址为本地网关MAC地址,将数据发送至路由器处,由路由器代为转发。
OSI七层模型与网络协议
OSI/RM------开放式系统互联参考模型
应用层:抽象语言----编码
表示层:编码---二进制
会话层:提供会话号,同软件不同进程的程序在同时接收发消息时,他们会拥有相同的IP地址MAC地址,此时,就需要会话层分别给予不同的会话号去区分。
传输层:TCP/IP协议
- MTU:最大传输单元 默认1500字节 分段:当数据包过大时,连续发送可能会使数据在传输途中插入别的数据造成损坏,所以需要对数据包进行分段处理,从而保证数据包的完整性。
- 端口号:使用电脑可能会同时访问多个服务器,这多个服务器在进行回复的时候,回复目标都是相同IP/MAC,为了不分配错误,所以在该程序启动时,电脑会在1024-65535随机分配端口号给这个程序,在服务器回包时也会带着这个端口号,这样电脑就能做出正确的数据分配。
其中: 端口号:0-65535 1-1023 注明端口 1024-65535高端口/动态端口
网络层:IP 互联网协议
数据链路层:介质访问控制层MAC+逻辑链路控制层LLC
物理层:物理硬件
传输协议的区别:
TCP 传输控制协议 ---面向连接的可靠传输协议
可靠机制:确认 重传 排序 流控
UDP 用户数据报文协议 ---非面向连接的不可靠传输协议
PUD:协议数据单元 对不同层封装的数据单元标识
应用层-----数据报文
传输层-----数据段
网络层-----数据包
数据链路层------数据帧
物理层------比特流
TTL:生存周期 最大255 推荐64 常见128
常见的协议:
HTTP tcp 80 超文本传输协议
HTTPS TCP 443 (HTTP+SSL(TLC)) 安全传输协议
FTP tcp 20/21 文件传输协议
TFTP udp 69 简单文件传输协议
Telnet tcp 23 远程登录标准协议
SSH tcp 22 安全外壳
DNS UDP/TCP 53 域名解析协议
DNS,因特网上作为域名和IP地址相互映射的一个分布式数据库,为了能够使用户方便访问,而不用去记忆那些繁琐的IP地址。 通过主机域名,最终得到对应的IP地址,这个过程就叫做域名解析。
DNS协议运行在UDP协议之上(TCP也存在),使用端口号53
还是一个典型的 C/S架构 既有DNS客户端 也有 DNS服务器
DHCP UDP 67/68 动态主机配置协议
TCP/IP 协议簇
封装与解封装
TCP的建立 --三次握手:
第一次握手:客户端发送syn包(seq=x)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去
SYN:发起一次连接,并告知自身状态 ACK:标识确认
特殊情况:RST重连 TCP 严重错误并重连
FIN 断开 PSH 紧急加收 URG紧急指针
TCP的断开 --四次挥手
第一次挥手:客户端向服务器端发送断开 TCP 连接请求的FIN=1报文,在报文中随机生成一个序列号 SEQ=x,表示要断开 TCP 连接。
第二次挥手:当服务器端收到客户端发来的断开 TCP 连接的请求后,回复发送标志位ACK=1报文,表示已经收到断开请求。回复时,随机生成一个序列号 SEQ=y。由于回复的是客户端发来的请求,所以在客户端请求序列号 SEQ=x的基础上加 1,得到确认序列号ACK=x+1。
第三次挥手:服务器端在回复完客户端的 TCP 断开请求后,不会马上进行 TCP 连接的断开。服务器端会先确认断开前,所有传输到客户端的数据是否已经传输完毕。确认数据传输完毕后才进行断开,向客户端发送FIN=1报文。再次随机生成一个序列号 SEQ=z。由于还是对客户端发来的 TCP 断开请求序列号 SEQ=x 进行回复,因此确认序列号ACK依然为 x+1
第四次挥手:客户端收到服务器发来的 TCP 断开连接数据包后将进行回复,表示收到断开 TCP 连接数据包。向服务器发送标志位ACK=1 报文,生成一个序列号 SEQ=x+1。由于回复的是服务器,所以确认序列号ACK字段的值在服务器发来断开 TCP 连接请求序列号 SEQ=z 的基础上加 1,得到ACK=z+1
TCP的分段和IP的分片
IP分片的原因:受到二层 数据链路层 MTU的限制,最大传输单元不能超过1500字节
数据到达网络层大于MTU则会分片,为了提高传输效率减少分片,TCP在装载数据时如果能做到封装后的数据不引起三层分片则是一种最佳选择,MSS值的目的就是基于双方的MTU协商出一个最大传输承载长度。
基本命令:
<Huawei>-----用户视图 仅具有查询权限,不能进行配置操作
<Huawei>display ip interface brief 查看每个接口的IP配置情况
<Huawei>system-view 进入系统视图
[Huawei]sysname R11 更改设备名称
[Huawei]------系统视图
Ctrl+Z 直接弹回用户视图
Tab键 自动补全命令
?=查询后续可执行的命令
[R11]interface g 0/0/0 进入0/0/0接口
[R11-GigabitEthernet0/0/0]quit 返回上一层
[R11-GigabitEthernet0/0/0]ip address 192.168.1.1 24 在该接口上配置IP地址 IP地址为 192.168.1.1/24
[R11-GigabitEthernet0/0/0]ip address 192.168.1.1 255.255.255.0 与上述命令相同
[R11-GigabitEthernet0/0/0]display this 查看当前视图下的配置
[R11]display current-configuration 查看当前所有的配置操作-----查看缓存中的配置
DHCP动态主机配置协议(典型的C/S架构)
DHCP客户端-----需要获取到IP的设备-68号端口
DHCP服务器------发放IP的设备----67号端口
- DHCP客户端 向 DHCP服务器 去要地址------广播 源IP:0.0.0.0,
目标IP 255.255.255.255, 源MAC:自己, 目标MAC:全F
这个包-------DHCP---discover包
- DHCP服务器收到后,向DHCP客户端进行回复 回复的数据包 DHCP---offer包 单播/广播 ,这个数据包中会携带一个临时有效的IP地址,并且暂时作为DHCP客户端使用。
- DHCP客户端向 DHCP服务器 发送一个 DHCP-request包 广播
- DHCP服务器 向 DHCP客户端 发送一个 DHCP--ACK包 单播/广播 “类似于确认收到”
静态路由
选路原则:尽量选择路径最短的路由条目
扩展配置:
1.负载均衡:当路由器访问同一个目标且目标具有多条开销相似的路径时,可以让设备将流量拆分后延多条路径同时进行传输,以达到叠加带宽的作用。
2.环回接口:路由器上配置的一个虚拟接口,一般用于网络测试,不需要设备支持。
[R7]interface LoopBack 0 进入环回接口,该接口编号为0
3.手工汇总:当路由器可以访问多个连续的子网时,若均通过相同的下一跳,可以将这些网段进行汇总计算,之后仅编撰汇总后的静态路由即可达到减少路由条目,提高转发效率的目的。
4.路由黑洞:在汇总中若包含实际不存在的网段时,可能会使数据包有去无回,造成链路资源的严重浪费。(合理的子网划分可以尽量减少路由黑洞)
5.缺省路由:一条不限定目标的路由;查表时,若本地路由均不匹配,则将匹配缺省路由。[R17]ip route-static 0.0.0.0 0 12.1.1.1 特征:一旦路由黑洞和缺省路由相遇,将百分之百形成路由环路。
6.空接口路由:在黑洞路由器上,配置一条到达汇总网段指向空接口的路由。
①空接口:null0接口,路由器的一个虚拟接口,如果一条路由条目的出口为空接口,则代表将该条路由直接丢弃。
②路由表匹配原则:最长匹配原则/精确匹配原则
[R16]ip route-static 192.168.0.0 22 NULL 0
7.浮动静态路由
[R18]ip route-static 192.168.2.0 24 12.0.0.2 preference 61
定义该条路由条目的优先级为61
[R18]display ip routing-table protocol static 查询由静态路由生成的路由表
[R19-GigabitEthernet0/0/1]shutdown 关闭接口
缺点:配置量大,不能基于拓扑的变化进行实时更新
动态路由
优点:可以基于拓扑的变化进行实时收敛
缺点:额外占用硬件资源,安全风险,选路错误的风险
分类:
1.基于AS 进行分类------ IGP内部网关协议----EGP外部网关协议
①AS:自制系统
AS:自制系统 标准编号 0-65535 其中 公有1-64511 私有64512-65535
AS之内运行的IGP内部网关协议:RIP OSPF EIGRP ISIS
AS之间运行的EGP外部网关协议:BGP
2.基于工作特点进行分类:
①基于更新时是否携带子网掩码 有类别--不写带子网掩码 ,无类别---携带子网掩码
②-1 DV距离矢量协议:RIP ERIGRP 邻居间共享路由表 算法:贝尔曼福特算法
LS链路状态协议:OSPF ISIS 邻居间共享拓扑 算法:SPF
RIP 路由信息协议
基于UDP 520端口 使用跳数作为开销,周期更新和触发更新 ,存在 V1/V2/NG ,NG版本适用于IPV6 ,周期更新的意义:保活 每隔30s发送一次周期更新包 一共发6次 ,没有确认机制
RIP的破环机制
- 水平分割-------从此口入,不从此口出。(仅在直线型拓扑中可以避免环路,其主要作用是避免大量重复更新)
- 最大跳数15跳
- 触发更新:毒性逆转水平分割
抑制计时器:30s更新 180s失效 180s抑制 300s刷新
配置命令:
[R1]rip 创建rip 默认进程号为1
[R1-rip-1]version 2 选择版本2
[R1-rip-1]undo summary 关闭自动汇总
意义:若不关闭走动汇总,RIPV2将会使用主类长度掩码惊醒发送路由,关闭自动汇总后,将携带接口精确掩码来发送。
[R1-rip-1]network 1.0.0.0
[R1-rip-1]network 12.0.0.0
宣告:rip只能进行主类宣告 基于宣告网段的主类 找到属于该网段的接口
1.激活接口-收发rip信息 2.该接口的信息可以共享给邻居
注意:我们在这儿宣告的是网段所属的主类,A类宣告前8,B类宣告前16,C类宣告前24
RIP V2的手工汇总
在更新的源头,所有发出更新的接口上进行汇总配置即可
[R1-GigabitEthernet0/0/0] 进入更新设备的接口
[R1-GigabitEthernet0/0/0]rip summary-address 1.1.0.0 255.255.252.0
进行rip的路由汇总
RIP V2的手工认证
在两台运行RIP协议的路由器间进行加密,让两台设备发出的数据中携带核实身份的密钥,也可同时对传输的路由信息进行加密。
[R1-GigabitEthernet0/0/0] 必须在和邻居相邻的接口上配置
[R1-GigabitEthernet0/0/0]rip authentication-mode md5 usual cipher 123456
被动接口
仅接受不发送路由信息协议,仅限于连接用户PC端的接口使用,不得用于路由器之间,否则将导致无法正常发送路由信息。
[R1-rip-1] 进入RIP进程
[R1-rip-1]silent-interface g 0/0/1 设置g0/0/1口为被动接口
加快收敛
30s更新 180s失效 180s抑制 300s刷新
- 人为修改计时器可以一定程度的加快收敛速度,但是修改时不易过小。
- 尽量维持原有的倍数关系
- 全网设备计时器,必须修改一致
[R1-rip-1] 进入rip进程
[R1-rip-1]timers rip 30 180 300
抑制计时器180s在华为模拟器中不支持修改
缺省路由
在边界路由器上,进行RIP 的缺省配置后,该设备将向内部所有运行RIP的设备发送缺省路由的更新包,使得内部所有RIP设备自动生成缺省路由,且,下一跳均指向边界路由起方向。
[R3-rip-1] 进入边界路由起的RIP进程
[R3-rip-1]default-route originate 缺省路由
OSPF:开放式最短路径优先协议
无类别链路状态IGP动态路由协议
- 距离矢量协议:运行距离矢量协议的路由器会周期性的泛洪自己的路由表。通过路由的交互,每台路由器从相邻的路由器学习到路由,并且加载进自己的路由表中;对于网络中的所有路由器而言,路由器并不清楚网络的拓扑结构,只是简单的知道要去往某个目的地的方向在哪儿,距离多远。这既是距离矢量协议的本质。
- 链路状态协议:与距离矢量协议不同,链路状态协议通告的是链路状态信息,而不是路由表。运行链路状态协议的路由器之间会先建立一个协议的邻居关系,然后彼此之间开始交互LSA(链路状态通告)。每台路由器都会产生LSA,路由器将接收到的LSA放入自己的LSDB(链路状态数据库)中。路由器通过LSDB,掌握了全网所有的拓扑信息。最后,由路由器通过SPF算法计算出最优路径,随后加载于自己的路由表中。
OSPF的特征
1.支持等开销负载均衡
2.基于组播进行更新----224.0.0.5 224.0.0.6
3.支持触发更新 ; 每30min进行一次周期更新
4.需要结构化的部署---区域划分 地址规划
5.相同区域传递拓扑,不同区域传递路由
区域划分的规则:
星型结构 0区为骨干区域;大于0则为非骨干区域,所有非骨干区域必须接入到骨干区域上。
必需要有ABR---域间路由器 两个区域相连时,必须存在ABR,ABR---同时工作在两个区域上。
Router-ID 路由器标识符 ,用于一个OSPF域中唯一的标识一台路由器。
Router-ID的设定可以通过手工配置的方式,或 使用系统自动生成的方式。
定义RID值,建议使用IP地址,全网唯一,要是不进行手工配置则会自动生成-------优先配置为环回的最大数值,如果没有环回,则自动配置为最大物理接口数值。
使用COST值作为度量值:Cost=开销值=参考带宽/接口带宽;默认参考带宽为100M,整段路径cost值之合最小为最佳。
若接口带宽大于参考带宽,则度量值为1,可能会导致选路不佳,故而在接口带宽大于参考带宽的网络中,可以人为的修改参考带宽。
[R1-ospf-1]bandwidth-reference 1000 修改参考带宽为1000Mbits/s
注意:一旦修改参考带宽,需全网所有设备都修改一致
一:ospf的数据包类型
- HELLO包 用于邻居间的发现 关系建立 及保活
- DBD包 数据库描述包 用于携带本地数据库目录
- LSR包 链路状态请求包 在查看完对端邻居的DBD包后,基于本地的位置查询LSA 随后去索要未知的LSA信息,就通过这个LSR包。
- LSU包 链路状态更新包 用于携带各种LSA信息
- LSACK包 链路状态确认包 用于确认接收到对端的信息
二:ospf的状态机
Down状态:表示未激活的状态,一旦本地发出hello包,则进入下一个状态。
Init状态:表示初始化状态
Tow-way状态:双向通信 表示建立了邻居关系
经过条件匹配,成功则进入下一个状态机,失败则停留于tow-way状态
Exstart 状态:预启动状态
Exchange 状态: 准交换状态
Loading 状态: 加载状态 在查看完对端邻居的DBD包后,使用LSR包来询问自己位置的LSA信息,对端使用LSU包进行回复,本地还需要使用LSACK进行确认回复。
Full 状态: 邻接关系建立的标识
三:ospf的工作过程
启动配置完成后,本地组播 224.0.0.5 发送hello包,Hello包将携带本地的RID值,及已知的邻居的RID值,若接收到对端的hello包中有自己的RID则视为认识 邻居关系的建立,生成邻居表,开始条件匹配 成功 则进入下一个阶段 不成功 则 永远是邻居,使用空的DBD包进行主从选举 对比RID 大为优 且 优先进入下一个状态 优先共享数据库目录 ,之后 使用 LSR/LSU/LSACK 来获取未知的LSA信息并加载于本地的LSDB中。 启用SPF算法 基于本地LSDB生成有向图,在计算出最短路径树,在基于树形结构算出本地为起始点到达全网各个节点的最优路径,最后加载于本地路由表中,收敛完成后,hello保活即可。每30min进行一次周期更新,周期更新即为对比数据库目录,如果相同 则继续hello包保活,如果不相同,则重新收敛。
结构突变:
- 新增一个网段 直连新增网络设备,直接使用更新包告知邻接关系,需要ack确认。
- 断开一个网段 直连断开网络设备,直接使用更新包告知邻接关系,需要ack确认。
- 无法沟通: hello time 10s ,dead time 40s,时间到了就删除邻居信息。
四:ospf的基础配置
[R1]ospf 1 router-id 1.1.1.1 创建ospf进程号为1 仅具有本地意义 同时定义RID值 建议使用IP地址 全网需要唯一。
[R1-ospf-1]area 0 进入0 区
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
反掩码:掩码反过来
<R1>display ospf peer 查询详细邻居关系
<R1>display ospf brief 查询邻居表
<R1>display ospf lsdb 查询链路状态数据库
五:ospf的扩展配置
从邻居关系建立成为邻接关系的条件
网络类型----两个
①点到点的网络:在一个网段中,仅支持存在两个节点的网络。(在点到点的网络类型中,可以直接成为邻接关系)
②MA:多路访问---在一个网段内,存在的节点数量不限
在MA网络中,若所有设备均是邻接关系,则会造成大量的重复更新,故,进行DR/BDR的选举,所有非DR/BDR的设备被称之为DRother,DRother之间维持邻居关系。
选举规则:
1.先比较参选接口的优先级 默认1 范围0-255 大为优
2.若参选接口的优先级相同,比较参选设备的RID,大为优
[R1-GigabitEthernet0/0/0]ospf dr-priority 2 将参选接口优先级改为2
切记:ospf的DR选举是非抢占性的,故需要重启ospf进程达到重新选举的目的。
<R1>reset ospf process 重启ospf进程
3.手工认证,在邻居间接口上定义安全密钥
[R1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456
4.手工汇总----汇总区域