计算机网络概述
计算机网络定义
- 一组自治计算机互联的集合
计算机网络基本功能
- 资源共享
- 综合信息服务
- 分布式处理与负载均衡
计算机网络的类型
局域网
- LAN
- 由用户自行建设,使用私有地址组建的内部网络
城域网
- MAN
- 由运营商或大规模企业建设,连接城市范围的网络
广域网
- WAN
- 由运营商建设,连接全国各个城域网的网络
- 又称骨干网、核心网、传输网
网络拓扑
定义
- 网络设备连接排列的方式
分类
总线型拓扑
- 所有设备共享一条公共线路
- 线路中断会导致所有设备中断通讯
环型拓扑
- 所有设备共享一条环型总线
- 传输性能优于总线型拓扑
星型拓扑
- 其他节点都与中央节点直接相连
- 某条线路中断不会影响其他节点
- 中央节点故障会导致全网中断
树型拓扑
- 星型拓扑的进一步发散型
优点
- 结构简单,组网成本低
- 维护管理容易
缺点
- 中央节点压力大
- 可靠性差
网状拓扑
- 节点之间有多条线路可达
优点
- 可靠性高
缺点
- 组网成本高
- 维护管理复杂
衡量网络性能的指标
带宽
定义
- 单位时间内能够传输的数据总量
- 单位:bps
- 带宽越大,网络质量越好
延迟
定义
- 数据从一个节点到达另一个节点消耗的时间
单位:ms
- 1/1000秒
- 延迟越低,网络质量越好
数据单位
- 1Kb=1024b
- 1Mb=1024Kb
- 1Gb=1024Mb
Byte
- 字节,一个数字或字母占用1字节,一个汉字占用2字节
bit
- 比特,1Byte=8bit
协议和标准
协议
- 数据通讯双方共同遵守的通讯规则
标准
- 公认的,所有厂商所共同遵守的协议规则
标准化组织
- 制定定义国际公认参考标准的组织团体
常见国际标准组织
ISO
- 国际标准化组织
IEEE
- 电子电器工程师协会
网络参考模型
OSI参考模型
产生背景
- 各大IT设备厂商只支持自己的私有协议,跨厂商设备兼容性差
- 用户购买和维护成本高
- 不利于网络技术发展
概念
- 定义了网络中设备所遵守的层次结构
优点
- 开放的标准化接口,协议不再封闭
- 多厂商设备兼容
- 易于理解、学习和更新协议标准
- 实现模块化工程,降低开发难度
- 便于故障排除
分层
1.物理层
- 定义电压、接口、线缆标准、传输距离、传输介质等物理参数
2.数据链路层
- MAC地址寻址
3.网络层
- IP地址寻址、路由
4.传输层
- 数据分段、建立端到端连接、维护传输可靠性
- 端口用于区分同一台计算机上的不同应用程序
- TCP:可靠的传输
- UDP:不可靠的传输
5.会话层
- 建立、维护、拆除应用程序间的会话
- 区分同一个应用程序的不同访问者
6.表示层
- 定义数据格式、结构;数据加密、压缩
7.应用层
- 为应用程序进程提供网络服务
OSI参考模型的问题
- 划分层次过多,会话层、表示层存在意义不大
- IP协议成为事实的网络层唯一协议
TCP/IP参考模型
4层划分方法
1.网络接口层
- 物理层
- 数据链路层
- 2.网络层
- 3.传输层
4.应用层
- 会话层
- 表示层
- 应用层
5层划分方法
- 1.物理层
- 2.数据链路层
- 3.网络层
- 4.传输层
5.应用层
- 会话层
- 表示层
- 应用层
数据封装和解封装
定义
封装
- 在原始数据的基础上加入一些额外信息形成新的格式
解封装
- 拆除掉封装的额外信息,还原成原始数据
TCP/IP分层封装
- 1.物理层:比特流
- 2.数据链路层:数据帧
- 3.网络层:数据包
- 4.传输层:数据段
- 5.应用层:数据
数据封装和解封装过程
- 数据发送时,从上至下逐层封装
- 数据接收时,从下至上逐层解封装
- 只有拆除外层封装,才能看到内层封装
局域网基本原理
使用的协议及线缆
物理层
- 双绞线
- 同轴电缆
- 光纤
- 无线电
数据链路层
以太网
- 唯一事实标准
令牌环
- 淘汰
FDDI
光纤分布式接口
- 淘汰
网络层
IP
- 唯一事实标准
IPX
- 淘汰
Apple talk
- 淘汰
局域网设备
集线器
- 内部为总线型拓扑
- 任意时间只能由一台主机占用总线,连接的所有设备位于同一冲突域
- 工作在物理层,没有寻址能力,所有数据泛洪式转发
交换机
- 内部每两个接口都有一条独立线路,每个接口都是独立的冲突域
- 工作在数据链路层,基于MAC地址寻址,数据可单点转发
冲突域
- 设备发送数据会产生冲突的网络范围
- 集线器的所有接口在同一个冲突域
- 交换机的每个接口都是一个独立的冲突域
CSMA/CD
- 带冲突检测的载波侦听多路访问
局域网线缆
双绞线
线型
直连线
- 异类直连
- 两端线序一致
交叉线
- 同类交叉
- 两端线序不一致
线序
T568A
- 白绿,绿,白橙,蓝,白蓝,橙,白棕,棕
T568B
- 白橙,橙,白绿,蓝,白蓝,绿,白棕,棕
接口类型
- RJ-45
- RJ-11
光纤
多模光纤
- 纤芯较粗,可传递多种光源
- 传输距离短
- 成本低
单模光纤
- 纤芯较细,只能传递单一光源
- 传输距离远
- 成本高
广域网基本原理
使用的协议及线缆
物理层
串行线缆
- 某些场景使用
光纤
- EPON
数据链路层
HDLC
- 淘汰
帧中继
- 淘汰
PPP
- 某些场景使用
- 点到点协议
以太网
- 某些场景使用
网络层
IP
- 唯一事实标准
连接方式
电路交换
- PSTN
ISDN
- 淘汰
分组交换
帧中继
- 淘汰
- ADSL
- EPON
广域网接入分类
- 接入到互联网
远程连接到分支机构
- 高速专线
- VPN
IP基本原理
IP的定义
- 当前唯一的网络层协议标准
- 定义数据网络层的封装方式、编址方法
IP头部封装格式
version
- 版本,用于标识封装是IPv4还是IPv6
IHL
- 头部长度,描述了数据包头的内容长度
Type of service
- 服务类型,用于标识DSCP或IP优先级,用于QOS识别
Total length
- 数据包总长度
Identification
标识符
- 用于标识某个分片来自于哪个数据包
Flags
标志
- 保留
- 标识数据包是否禁止分片
- 标识是否为最后一个分片
Fragment offset
分片偏移
- 用于描述分片在数据包中的位置
Time to Live
TTL,生存时间
- 该数据包允许经过的路由器的最大跳数
Protocol
协议
- 用于标识上层协议是TCP/UDP/ICMP
Header Checksum
头部校验序列
- 用于头部信息差错校验
Source Address
- 源IP地址
Destination Address
- 目的IP地址
Options
- 可选项
Padding
- 填充
MTU
- 最大传输单元
- 接口收发数据支持的单个包的最大长度
- 以太网接口默认MTU1500Byte
- PPPoE默认MTU1492Byte
IP地址
定义
- 网络层地址
格式
- 32位长度,点分十进制
- 由网络位+主机位组成
- 网络位长度和数字完全一致的地址属于同一网段
分类
A类
地址范围
- 1.X.X.X-126.X.X.X
网络位划分
- 前8位为网络位,后24位为主机位
B类
地址范围
- 128.X.X.X-191.X.X.X
网络位划分
- 前16位为网络位,后16位为主机位
C类
地址范围
- 192.X.X.X-223.X.X.X
网络位划分
- 前24位为网络位,后8位为主机位
D类
地址范围
- 224.X.X.X-239.X.X.X
作用
- 组播地址,不可用于配置为主机地址
E类
地址范围
- 240.X.X.X-255.X.X.X
作用
- 科研用地址,不对公开放
- IP地址分类用来划分不同的网络规模
特殊地址
127.X.X.X
- 本地环回地址,用于标识本机
主机位全0的地址
- 网络地址,用来标识某个网段
主机位全1的地址
- 本网段广播地址
255.255.255.255
- 全网广播地址
0.0.0.0
- 任意IP地址
公网/私网地址
公网地址
- 可以在互联网上寻址的地址,全球唯一,需要运营商分配
私网地址
- 本地随意使用,无法在互联网上寻址
地址范围
- A类:10.X.X.X
- B类:172.16.X.X-172.31.X.X
- C类:192.168.X.X
自动私有地址
- 169.254.X.X
运营商专用私有地址
- 100.64.X.X-100.127.X.X
ARP协议
定义
- 地址解析协议,把IP地址解析为Mac地址
工作原理
- A主机以广播形式发送ARP查询请求,询问B主机的IP对应的MAC地址
- B主机以单播形式回复A主机本机MAC地址
- A主机把B主机的IP地址和MAC地址的映射关系写入ARP缓存表
相关命令
查询ARP缓存
- arp -a
清空ARP缓存
- arp -d
RARP协议
- 逆向地址解析协议
- 用于根据本机自己的MAC地址,查询本机自己的IP地址
ICMP协议
Ping
- 测试网络连通性
Tracert
- 路由跟踪
H3C的设备开启路由跟踪功能需要的前置命令
- ip ttl-expires enable
- ip unreachables enable
IP数据转发原理
- 如果目的IP和本机IP属于同一网段,会直接查询目的IP的Mac地址,并进行封装
- 如果目的IP和本机IP不属于同一网段,会查询网关IP地址的Mac地址,并进行封装
网关
- Gateway
- 本网段出口的IP地址
TCP/UDP原理
端口
- 每个应用程序进出网络都需要经过一个唯一端口,通过端口号来识别数据交由哪个应用程序处理
- 服务端:固定端口号
- 客户端:1024以上随机端口
常见知名端口号
TCP80 HTTP
- 超文本传输协议
TCP20 21 FTP
- 文件传输协议
TCP23 TELNET
- 远程登录
TCP25 SMTP
- 简单邮件传输协议
UDP53 DNS
- 域名解析协议
TCP443 HTTPS
- HTTP over SSL
TCP的原理
TCP头部封装格式
Source Port
- 源端口
Destination Port
- 目的端口
Seq
序列号
- 标识本机发送的数据报文的编号
Acknowledgement
确认号
- 标识请求对方下次发送的数据报文的编号
Data Offset
数据偏移
- 标识数据分段在完整数据中的位置
Reserved
- 保留位
Urg
- 紧急开关
Ack
- 确认位开关
Psh
- 直接提交缓存数据
Rst
复位开关
- 用于强行中断TCP连接
Syn
- 握手开关
Fin
- 结束开关
window
窗口尺寸
- 用来通告本机的接收能力
Checksum
- 校验序列
Urgent Pointer
- 紧急指针
Options
- 可选项
TCP可靠性机制
确认机制
- Seq=上一次ack
- Ack=上一次的seq+length
- 如果没有接收到,或接收到的是不完整数据,会再次发送Ack请求对方重发
三次握手
第一次
SYN置位
- A-B
第二次
SYN,ACK置位
- B-A
第三次
ACK置位
- A-B
四次挥手
第一次
FIN置位
- A-B
第二次
ACK置位
- B-A
第三次
FIN置位
- B-A
第四次
ACK置位
- A-B
RST结束连接
- 收到RST置位的包后,立即结束TCP连接
- 发出RST置位的包后,不必等待对方的确认,直接结束TCP连接
窗口机制
滑动窗口
- 通过通告对方本机接收能力,来实现流量控制
完整性校验
- 通过Checksum来检查数据完整性
TCP特征
优点
- 传输可靠性高
缺点
- 占用带宽高,传输延迟高
TCP的适用场景
- 对数据完整性要求高,但是对传输延迟要求低
UDP的原理
UDP特征
优点
- 占用带宽低,传输延迟低
缺点
- 没有任何可靠性机制
UDP的适用场景
- 对传输延迟要求高,但数据完整性要求低
命令行操作基础
H3C路由交换产品连接方法
使用console线本地连接
- 协议Serial,接口com口,波特率9600
- 适用于设备的初次调试
使用Telnet远程访问
- 适用于设备上架配置好后的维护管理
使用SSH远程访问
- 数据传输过程加密,安全的远程访问
命令行使用基础
命令行视图
用户视图
- 只能查看配置,不能修改配置
系统视图
- [h3c]
- 可以查看和修改全局配置
接口视图
- [H3C-GigabitEthernet0/0]
- 可以对接口修改配置
视图的切换
system-view
- 从用户视图进入系统视图
interface g0/0
- 从系统视图进入g0/0接口的接口视图
quit
- 返回上层视图
return
- 直接返回到用户视图
- 快捷键 Ctrl+Z
常用查看命令
display current-configuration
- 查看当前的所有配置
display ip interface brief
- 查看所有三层接口的摘要信息
- 接口的IP地址
- 接口的连通状态
display interface g0/0
- 查看g0/0接口的详细信息
display version
- 查看设备硬件版本信息
display this
- 查看当前视图下配置了哪些参数
设备操作命令
sysname R1
- 更改设备名称为R1
- 系统视图
reboot
- 重启设备
- 用户视图
save
- 保存当前配置
- 系统视图
reset saved-configuration
清空保存的配置
- 不会影响设备的当前运行状态
- 用户视图
undo
- 在命令前加undo代表执行该命令的反向操作
shutdown
- 手动关闭接口
- 接口视图
undo shutdown
- 手动开启接口
命令行帮助
- 命令简写
- ?键命令提示
- Tab 键自动补齐命令
网络设备文件管理
设备存储器
ROM
只读存储器,存储了Bootrom程序
- 在Bootrom模式下可以破解密码
RAM
- 内存,存储当前正在运行的数据,断电数据会丢失
Flash
- 闪存,永久存储操作系统文件、配置文件等数据
设备的配置文件
当前配置
- current-configuration
- 设备当前正在运行和生效的配置信息,存储在RAM中
起始配置
- startup-configuration
- 每次设备开启会自动加载的配置信息,存储在Flash中
起始配置文件的备份
- 通过USB或者FTP把startup.cfg和startup.mdb拷贝到其他存储
- 配置还原后,需要通过startup saved‐configuration startup.cfg命令来指定新的配置文件
网络设备调试
Debug
定义
- 对相应的协议所收发的所有报文全部在屏幕上输出显示
- 用于网络排错
开启debug命令
- terminal monitor
- terminal debugging
- debugging 协议类型
结束dubug
- undo debugging all
- CTRL+O
以太网交换机工作原理
以太网
定义
- 传输标准Ethernet II类型帧的网络
特征
- 多路访问,广播式的网络
Mac地址
- 每台网络设备生产时就写入的一个全球唯一的物理地址
- 48位长度,16进制格式地址
- 前24位为厂商标识(OUI),后24是设备标识
以太网帧格式
- 目的Mac地址
- 源Mac地址
- 服务和类型
- DATA
- 帧校验序列
交换机
定义
- 工作在数据链路层,通过识别Mac地址来进行数据转发的设备
交换机数据转发原理
MAC地址表
- 记录交换机每个端口和所连接的设备的MAC地址的映射关系
- 一个接口可以对应多个Mac地址
- 一个Mac地址不能对应多个接口
- 老化时间:300秒
工作机制
- 交换机学习数据帧的源MAC地址,来获得端口和设备MAC地址的映射关系,写入MAC地址表
- 交换机检查数据帧的目的MAC地址,从MAC地址表中的映射关系来判断把数据帧从哪个端口发出
- 交换机对于目的MAC地址不存在于MAC地址表中的数据帧进行广播处理
数据帧的转发方式
- 对于目的MAC地址已知的单播帧,交换机查询MAC地址表进行转发
- 对于目的MAC地址未知的单播帧,交换机进行广播处理
- 对于广播帧,交换机继续广播处理
数据传输模式
单播
- 接收者是某一个设备
广播
- 接收者是所有其他设备
组播
- 接收者是某一部分设备
广播域
- 网络中所有能接收到同样广播消息的设备的集合
- 默认情况下,交换机的所有端口属于同一个广播域
Vlan和Trunk
VLAN的定义
- 虚拟局域网,用来在二层网络中隔离广播域
- 不同VLAN的设备在二层网络中无法互相通讯
VLAN的转发过程举例
- PC发送数据帧进入交换机,会被打上vlan tag;vlan tag中的vlan id就是收到帧的接口的所属vlan;一旦数据帧被打上vlan tag,就变成了802.1Q格式的帧
- 2.交换机在标签中的VLAN所属的MAC地址记录中检查数据帧的目的MAC地址,进行判断;如果查到了记录,就按照记录对应的接口转发;如果没查到,就在标签中的VLAN内进行广播处理
- 3.数据帧从出接口发往PC前,会剥离vlan tag,使之还原为标准的以太网帧格式
802.1Q
- 在源Mac地址和Type之间携带vlan tag的帧格式,计算机不识别
VLAN工作原理
交换机端口类型
Access
- 必须加入到一个vlan,只能加入到一个vlan;从access端口收到的帧,会打上该端口所属vlan的tag;从access端口发出的帧会剥离tag
- 一般用来连接PC或路由器
- H3C交换机默认所有端口都是access类型属于vlan1;华为是hybrid
Trunk
- 可以允许多个vlan的数据通过;从trunk端口发出的帧保留vlan tag,但是缺省vlan除外;trunk端口收到未打tag的帧,会重新打上缺省vlan的tag
- 一般用来连接交换机
Hybrid
- 可以允许多个vlan的数据通过;可以手动配置从Hybrid端口发出的帧,哪个vlan保留tag,哪个vlan剥离tag;Hybrid收到未打tag的帧,会重新打上缺省vlan的tag
- 既可以连接PC/路由器,也可以连接交换机
PVID
定义
- 表示某个端口的缺省vlan
特征
- Access端口所属的vlan就是pvid,不用配置,默认是vlan1
- Trunk端口需要手动配置pvid,默认是vlan 1
- Hybrid端口需要手动配置pvid,默认是vlan1
VLAN类型
基于端口的VLAN
- 端口固定属于某个vlan
基于Mac地址的VLAN
- Mac地址绑定到vlan,同一Mac地址的设备,无论连接在哪个端口,vlan归属不变
- 端口类型需要配置为Hybrid
基于协议的VLAN
- 三层协议绑定到vlan,同一协议的报文,无论从哪个端口接收,vlan归属不变
- 端口类型需要配置为Hybrid
基于IP子网的VLAN
- IP网段绑定到vlan,同一IP子网的设备,无论连接在哪个端口,vlan归属不变
- 端口类型需要配置为Hybrid
VLAN归属优先级
- Mac地址vlan>IP子网vlan>协议vlan>端口vlan
VLAN常用命令
[h3c]vlan 'vlan id'
- 创建vlan,进入vlan视图
[h3c-vlan10]name 'text’
- vlan命名
[h3c-vlan10]port 'port id'
- 把端口以Access类型加入到vlan
[h3c-GigabitEthernet1/0/1]port link-type 'access/trunk/hybrid'
- 配置端口类型
[h3c-GigabitEthernet1/0/1]port trunk permit vlan 'vlan-id-list/all'
- 配置Trunk端口允许通过的vlan
[h3c]display vlan ''vlan id'
- 查看某个vlan详细信息
[h3c]display vlan brief
- 查看vlan摘要信息
[h3c]display port trunk
- 查看Trunk端口信息
[h3c-GigabitEthernet1/0/1]undo port link-tpye
- 还原交换机的默认端口类型
生成树协议
二层环路带来的问题
- 广播风暴
- MAC地址表震荡
生成树定义
- STP,用来解决二层环路问题
STP相关概念
BPDU
定义
- 桥协议数据单元,用于传递STP协议相关报文
分类
配置BPDU
- 用于传递STP的配置信息
TCN BPDU
- 用于通告拓扑变更信息
STP的选举机制
在所有交换机中选举出一台作为根网桥(Root bridge)
选举规则
- Bridge-id小的优先
Brideg-id
定义
- 桥ID,BID,用来标识交换机身份
格式
- 优先级+Mac地址
- 优先级默认32768,必须是4096的倍数
每台非根网桥(交换机)选举出一个根端口(Root port)
选举规则
- 1.到达根网桥开销小的优先
- 2.对端交换机BID小的优先
- 3.端口ID小的优先
开销
- Cost,代表路径耗费的代价和成本,带宽越大,开销越小
每个物理段上选举出一个指定端口(Designated port)
选举规则
- 1.到达根网桥开销小的优先
- 2.本机BID小的优先
- 3.端口ID小的优先
- 剩下没有角色的端口就是阻塞端口(Blocked Port)
STP初始化流程
交换机端口状态
- disable:禁用状态,被关闭的端口
blocking:阻塞状态
- 接收BPDU,但不发送BPDU,不学习Mac地址,不转发数据
listening:监听状态
- 接收并发送BPDU,不学习Mac地址,不转发数据,持续15秒
learning:学习状态
- 接收并发送BPDU,学习Mac地址,不转发数据,持续15秒
forwarding:转发状态
- 接收并发送BPDU,学习Mac地址,转发数据
STP计时器
Hello time
- 2秒
- 配置BPDU的发送周期
Max age
- 20秒
- 判断链路故障的时间,10个Hello time周期
Forwarding delay
- 15秒
- 状态切换延迟
STP拓扑变更机制
- 1.Max age超时/有接口变更为转发状态,判断为拓扑发生变更,向根网桥发起TCN BPDU
- 2.收到TCN BPDU的交换机继续向根网桥转发TCN BPDU,到达根网桥为止
- 3.根网桥收到TCN BPDU后,向所有端口发起TC置位的配置BPDU
- 4.交换机收到TC置位的配置BPDU后,Mac地址表的老化时间缩短到15秒
STP的问题
- 收敛速度慢,故障切换时间太长
- 网络中大量主机频繁上下线,会导致TCN BPDU以及TC置位BPDU大量发送
RSTP
快速生成树协议
- 端口状态减少到3种
端口角色增加到4种
- 根端口和指定端口不变
阻塞端口细分为2种
替代端口(Alternata port)
- 根端口的备份
备份端口(Backup port)
- 指定端口的备份
边缘端口机制
- 当链路激活,边缘端口立即进入转发状态,不参与STP计算
- 边缘端口UP/DOWN不会触发拓扑变更
- 建议把连接PC的端口配置为边缘端口
MSTP
多生成树协议
- 将多个vlan捆绑到一个生成树实例,每个实例分别独立计算生成树
- 基于STP计算结果不同,实现不同vlan的流量负载均衡
STP常用命令
[h3c]display stp
- 查看STP相关信息
[h3c]display stp brief
- 查看STP端口状态
[h3c]stp global enable
- 全局启用STP
[h3c-GigabitEthernet 1/0/1]undo stp enable
- 关闭端口上STP
[h3c]stp mode 'stp/rstp/mstp'
- 更改STP模式,默认模式是mstp
[h3c]stp priority 'priority'
- 更改交换机优先级
[h3c-GigabitEthernet 1/0/1]stp cost 'cost'
- 更改接口生成树的cost
[h3c-GigabitEthernet 1/0/1]stp edged-port
- 配置端口为边缘端口
交换机端口安全技术
802.1X
定义
- 起源于WLAN协议802.11,解决局域网终端的接入认证问题
认证方式
- 本地认证
- 远程集中认证
端口接入控制方式
- 基于端口认证
- 基于Mac地址认证
端口隔离技术
- 用于在同vlan内部隔离用户
- 同一隔离组端口不能通讯,不同隔离组端口可以通讯
链路聚合
定义
- 把连接到同一台交换机上的多个物理端口捆绑为一个逻辑端口
功能
提高链路可靠性
- 聚合组内只要还有物理端口存活,链路就不会中断
增加链路传输带宽
- 避免了STP计算,聚合组内物理端口不会被闭塞
- 交换机之间的流量会自动在聚合组内的所有物理端口上负载分担
负载分担
- 也称负载均衡
- 聚合后的链路会基于流自动负载分担
分类
静态聚合
- 双方不会协商聚合参数
动态聚合
- 双方通过LACP协议协商聚合参数
常用命令
[h3c]interface bridge-aggregation 'number'
- 创建聚合端口,进入聚合端口视图
[h3c-GigabitEthernet 1/0/1]port link-aggregation group 'number'
- 物理接口加入聚合组
[h3c]display link-aggregation summary
- 查看聚合链路信息
IP子网划分
子网掩码
产生背景
- 通过自然分类来划分网络规模会造成大量IP地址浪费
- IPv4地址资源已经全部耗尽
定义
- 由连续的二进制1或0组成的32位掩码,用来衡量IP地址网络位的长度
- 1对应的部分为网络位
- 0对应的部分为主机位
分类
主类掩码
- 和自然分类一致的子网掩码
VLSM
- 可变长子网掩码
- 通过把子网掩码变长来把一个网段划分为多个子网
CIDR
- 无类域间路由
- 通过把子网掩码缩短来把多个网段聚合为一个网段
VLSM算法
1.得出下列参数
掩码借位数
- 把原掩码的多少个0变成了1
- 掩码剩余位数
- 借位段掩码剩余位数
2.计算划分结果
划分出的子网数
- 2^(借位数)
每个子网可用IP地址数
- 2^(剩余位数)-2
每两个子网的间隔位数
- 2^(本段剩余位数)
- 3.列出每个子网
- 举例1
- 举例2
常见子网划分对应关系
25
255.255.255.128
- 126个可用地址
26
255.255.255.192
- 62个可用地址
27
255.255.255.224
- 30个可用地址
28
255.255.255.240
- 14个可用地址
29
255.255.255.248
- 6个可用地址
30
255.255.255.252
- 2个可用地址
31
255.255.255.254
2个可用地址
- PPP链路可用
32
255.255.255.255
1个可用地址
- 设备的Loopback接口可用
DNS
域名
产生背景
- 通过IP地址访问目标主机,不便于记忆
- 通过容易记忆的域名来标识主机位置
域名的树形层次化结构
- 根域
顶级域
- 主机所处的国家/区域,注册人的性质
二级域
- 注册人自行创建的名称
主机名
- 区域内部的主机的名称
- 由注册人自行创建和管理
定义
- 用于域名和IP地址的互相解析
DNS查询模式
递归查询
- DNS服务器一定会返回一个确切的查询结果
- 客户端到DNS的查询
迭代查询
- DNS服务器会返回一个已知的其他DNS服务器,由请求者自行查询
- DNS服务器到DNS服务器的查询
主机域名解析工作流程
- 1.检查域名是否是本机域名
2.检查本地的DNS缓存
iponfig /displaydns
- 查看本机DNS缓存
ipconfig /flushdns
- 清空本机DNS缓存
3.检查本机的hosts文件
- C:\windows\system32\drivers\etc
- 4.查询DNS服务器
H3C配置DNS代理
- [h3c]dns proxy enable
- [h3c]dns server '公网DNS地址'
- 内网终端DNS服务器指向为本路由器
文件传输协议
FTP
定义
- 文件传输协议
- 客户端/服务器模型,具备身份验证功能
- 双TCP连接
端口
控制连接:21
- 用于传输FTP命令和执行信息
数据连接:20
- 用于数据上传、下载
数据传输方式
主动方式
- 数据连接由服务器主动发起
- 控制连接:21端口
- 数据连接:20端口
被动方式
- 数据连接由客户端主动发起
- 控制连接:21端口
- 数据连接:服务器随机产生端口
TFTP
- 简单文件传输协议
- 基于UDP,69号端口
- 只有数据传输功能,不提供身份验证,目录列表等功能
常用命令
[h3c]ftp server enable
- 开启FTP服务
ftp 'ip address' - 连接FTP服务器
ftp>ls
- 列出当前目录
ftp>get 'fliename'
- 下载文件
ftp>put 'filename'
- 上传文件
ftp>bye
- 断开FTP连接
DHCP
产生背景
- 局域网中手动配置静态IP地址任务繁琐,而且容易出错
定义
- 动态主机配置协议
- 用于为局域网中主机动态分配IP地址及相关信息
- 采用客户端/服务器模式
- 服务端端口UDP 67
- 客户端端口UDP 68
工作原理
分配IP地址工作流程
1.客户端以全网广播形式发起IP地址寻找
- Discover
2.服务器以全网广播形式向客户端发送IP地址提供
- Offer
3.客户端选择好IP地址后,以全网广播形式向服务器请求选择结果
- Request
4.服务器向客户端以全网广播形式发送IP地址确认
- ACK
特殊情况的处理
- 当网络中存在多台DHCP服务器,客户端会优先选择最先到达的IP地址提供
IP地址租约更新
- 租期到达50%,客户端如在线,会向服务器单播发起租约更新请求
- 租期到达87.5%,客户端如在线,会向服务器广播发起租约更新请求
DHCP中继代理
- 用于跨网段分配IP地址
- IP地址请求的相关报文都是广播发送,无法跨越网段,所以需要在中间路由器开启DHCP中继代理功能
相关命令
[h3c]dhcp enable
- 开启DHCP服务
[h3c]dhcp server ip-pool 'name'
- 创建DHCP地址池
[h3c-dhcp-pool1]network 'network' mask 'mask'
- 配置用于分配的地址范围
[h3c-dhcp-pool1]gateway-list 'ip address'
- 配置用于分配的网关地址
[h3c-dhcp-pool1]dns-list 'ip address'
- 配置用于分配的DNS服务器地址
[h3c-dhcp-pool1]expired ……
- 配置DHCP租期
[h3c]dhcp server forbidden-ip 'start ip address' 'end ip address'
- 配置不参与分配的IP地址
[h3c-GigabitEthernet 0/0]dhcp select relay
- 接口上开启DHCP中继功能
[h3c-GigabitEthernet 0/0]dhcp relay server-address 'ip address'
- 指定用于中继的DHCP服务器地址
[h3c]display dhcp server statistics
- 查看DHCP服务器统计信息
IPv6基础
IPv4的问题
- 地址资源已经全部耗尽
- 终端用户配置不够简便
- 协议本身不具备安全性和QOS特性
IPv6的优势
几乎无尽的地址空间
- 3.4X10^38个可用地址
- 终端用户无需任何配置,甚至不需要DHCP
- 协议自带安全性和QOS特性
地址格式
- 冒号十六进制格式
- 每段16位,共8段,一共128位
地址书写压缩
段内前导0压缩
- 段内前导的0可省略
- 全为0的段压缩为一个0
全0段压缩
- 连续为0的段可用::表示
- 一个IPv6地址内只允许使用一次全0段压缩
网段划分
前缀
- 前缀长度和数字一致则为同一网段
接口标识符
- 根据Mac地址计算而来,全球唯一
- 手动配置
前缀长度
- 标识前缀的长度
地址分类
单播地址
未指定地址
- ::/128
本地环回地址
- ::1/128
链路本地地址
- FE80::/10
- 仅用于同网段内部通讯,自动生成
- FE80::接口标识符/10
站点本地地址
- FEC0::/10
- 私有地址
全球单播地址
- 2000::/3
组播地址
- 标识组播地址
- 广播地址属于一种特殊的组播地址
任播地址
- 用于智能寻路,寻找最近的下一跳
- 从单播地址中分配
IPv6邻居发现协议
- 地址解析,类似ARP
- 邻居关系建立和维持
- 路由器发现/前缀发现
地址自动配置
- 1.终端发送RS消息,请求路由器的前缀和前缀长度
- 2.路由器回复本机的前缀和前缀长度
- 3.终端使用路由器回复的前缀+接口标识符/前缀长度,自动产生IPv6全球单播地址
- 地址重复检测
常用命令
[h3c-GigabitEthernet 0/0]ipv6 address 'ipv6 address'
- 配置静态IPv6地址
[h3c-GigabitEthernet 0/0]ipv6 address auto
- 配置为自动产生IPv6地址
[h3c-GigabitEthernet 0/0]undo ipv6 nd ra halt
- 解除路由器ND消息抑制
IP路由原理
定义
- 路由器负责将数据报文在IP网段之间进行转发
- 路由是指导路由器如何进行数据转发的路径信息
IP连通的前提
- 沿途的每台路由器上都有到达目的网段的路由信息
- 路由是单向的路径信息,沿途每台路由器都要有往返双向路由信息
路由表
作用
- 存储路由信息
字段内容
Destination/mask
- 目的网段和掩码
Proto
- 路由的来源
Pre
- 优先级
Cost
- 度量值
Nexthop
下一跳地址
- 数据报文从接口发出后到达的下一个IP地址
Interface
出接口
- 数据报文发出的接口
路由表查表规则
最长掩码匹配规则
- 当数据包在路由表中匹配到多条掩码长度不同的路由,会按照掩码最长的路由进行转发
路由迭代规则
- 当路由的下一跳为非直连网段地址,路由器会再次在路由表中查询下一跳地址,直到查询到下一跳是直连地址为止
来源
直连路由
定义
- 根据直连接口所在网段自动产生
产生条件
- 接口UP
- 接口配置IP地址
静态路由
定义
- 手动配置到达每个目的网段的路由信息
特点
- 配置和维护繁琐复杂
- 没有协议消耗,减轻设备和带宽压力
动态路由协议
定义
- 通过路由协议从邻居自动学习路由信息
特点
- 配置简单,维护便捷
- 协议会消耗设备资源和链路资源
常见路由协议
RIP
- 路由信息协议,年代久远,已经被淘汰
OSPF
- 开放式最短路径优先,目前最主流的路由协议
BGP
- 边界网关协议,运营商之间使用的唯一协议
- IS-IS
路由表写表规则
- 1.不同来源的路由优先级高(数字小)的优先
- 2.同一来源的路由Cost小的优先
3.同一来源Cost相等的路由会形成等价路由
- 数据流会在等价路由上自动负载分担
路由优先级
直连路由(Direct)
- 0
OSPF内部路由
- 10
静态路由
- 60
RIP
- 100
OSPF外部路由
- 150
BGP
- 255
常用命令
[h3c]display ip routing-table
- 查看路由表
[h3c]display ip routing-table 'network' 'mask'
- 查看指定网段的路由信息
VLAN间路由
定义
- 指导设备对不同vlan间进行三层数据转发
实现方式
单臂路由
- 交换机上划分多个VLAN
路由器单线连接到交换机
路由器接口
- 划分若干子接口,子接口的IP为下连vlan的网关,并绑定相应vlan
交换机接口
- 配置TRUNK,允许所有vlan通过
三层交换
- 三层交换机上启用vlanif三层接口,配置为网关IP
- 自动产生到达所有vlan的直连路由
对比路由器的优势
- 转发效率高
- 接口数量大
常用命令
[h3c]interface 'sub-interface'
- 创建子接口,进入子接口视图
[h3c-GigabitEthernet0/0.1]vlan-type dot1q vid 'vlan-id'
- 子接口开启802.1Q识别,并绑定Vlan
[h3c]interface vlan-interface 'vlan-id'
- 创建Vlanif三层接口,进入Vlanif接口视图
静态路由
配置要点
- 如下一跳所在接口是点到点接口,可以以指出接口的方式来配置静态路由
- 如下一跳所在接口是以太网接口,只能以指下一跳来配置静态路由
默认路由
- 目的网段为0.0.0.0/0
- 当数据包在路由表中匹配不到明细路由时,按照默认路由转发
常用命令
[h3c]ip route-static 'network' 'mask' 'nexthop/interface'
- 配置静态路由
路由协议概述
定义
路由协议
- 用来计算、维护网络路由信息的协议
路由协议的功能
- 邻居发现
- 路由交换
- 路由计算
- 路由维护
路由协议的分类
按照使用位置分类
IGP
内部网关协议
- 运行在自治系统内部的路由协议
- RIP,OSPF,IS-IS
EGP
外部网关协议
- 运行在自治系统之间的路由协议
- BGP
自治系统
- AS
- 一组被统一管理,运行同一个IGP的路由器组成的网络范围
- 一般不同城域网都是不同的AS,不同运营商也是不同的AS
按照协议算法分类
距离矢量协议
- 度量值是跳数
- RIP
链路状态协议
- 度量值是开销
- OSPF IS-IS
路径矢量协议
- 有多种度量值
- BGP
RIP
定义
- 路由信息协议,基于距离矢量算法
- 基于UDP端口520
RIP初始化流程
- 1.RIP运行后,会从每个参与协议的接口上以广播形式发送路由请求
- 2.收到路由请求后,将自己完整的路由表以广播形式响应
- 3.收到路由响应后,根据计算规则,把路由写入到路由表
- 4.路由信息会按照发送方向逐跳扩散
路由信息更新
- 路由响应报文会以30秒为周期发送,以对网络变化进行更新
RIP的环路问题
产生原因
- 1.链路故障,导致路由从表中删除
- 2.30秒的更新周期还未到来,提前收到了邻居传递过来的刚刚被删除的路由,形成环路
防环机制
水平分割
- 从某个接口收到的路由信息不会从该接口回传
毒性逆转
- 从某个接口收到的路由信息会设置为16跳后回传
路由毒化
- 当路由失效,标记为16跳,并通告邻居,使邻居及时使该路由失效
抑制计时器
- 计时时间内,不接收和原路由跳数一致或更高的路由更新
触发更新
- 当路由失效,不用等待更新周期,立即发出路由更新,来通告错误
最大跳数
- 不接收跳数大于15跳的路由更新
RIP计时器
更新计时器
- 30秒
失效计时器
- 180秒
- 路由打上possibly down标签,路由设置为16跳
刷新计时器
- 240秒
- 彻底删除路由
抑制计时器
180秒
- 路由信息失效,被打上PD标签
- 从其他接口收到比原路由更差的路由更新
RIPv2
- 报文以组播发送,组播地址224.0.0.9
- 路由更新携带子网掩码
- 可以关闭自动聚合,支持手动聚合
- 支持身份验证
常用命令
[h3c]rip 'process id'
- 创建RIP进程,进入RIP协议视图
[h3c-rip-1]version 2
- 更改RIP版本为v2
[h3c-rip-1]undo summary
- 关闭自动聚合
[h3c-rip-1]network 'network'
- 宣告网段
network命令的2层功能
使能接口
- 每个接口的IP地址与宣告的网段进行匹配,被匹配的接口能够收发RIP协议报文
使能路由
- 每个接口的IP地址与宣告的网段进行匹配,被匹配的接口所产生的直连路由能够传递给邻居
[h3c-rip-1]silent-interface 'interface number'
配置静默接口
- 静默接口上不会发送RIP协议报文
[h3c-GigabitEthernet 0/0]rip authentication mode ……
- 配置RIP接口身份验证
OSPF
RIP的缺陷
- 最大跳数限制了网络规模
- 以跳数为度量值无法准确判断最优路径
- 路由更新发送完整路由表消耗网络带宽
- 收敛速度慢
- 协议会产生路由自环
定义
- 开放式最短路径优先,基于链路状态特征
- 工作在IP层,协议号89
OSPF初始化流程
1.建立邻居和邻接关系
发送hello报文发现和建立邻居关系,组播地址224.0.0.5
- 接口UP
- 双方接口IP地址在同一网段
- 双方接口在同一区域
- ……
选举DR/BDR,建立邻接关系
DR/BDR选举
选举原因
- 广播网络中使路由信息交换更加高速有序
选举范围
- 每条广播链路上都需要选举出一个DR和一个BDR
选举规则
1.优先级数字大的优先
- 默认优先级都是1
- 2.Router-id大的优先
Router-id
定义
- Rid,标识路由器的身份
产生方法
- 手动配置一个IPv4地址格式作为Rid
自动选举
- 1.在所有环回口中选举IP地址最大的作为Rid
- 2.在所有物理接口中选举IP地址最大的作为Rid
- 建议手动配置一个本地环回口的IP地址作为Rid
关系状态
- DRother与DR建立邻接关系
- DRother与BDR建立邻接关系
- DR与BDR建立邻接关系
- 两个DRother之间保持邻居关系
2.邻接路由器之间交换链路状态信息,实现区域内链路状态数据库同步
相关概念
链路状态通告
- LSA
- 用来描述路由器的接口、路由条目的相关信息
链路状态数据库
- LSDB
- 存储本地所有LSA
工作流程
- 1.向邻接路由器发送DD报文,通告本地LSDB中所有LSA的摘要信息
- 2.收到DD后,与本地LSDB对比,向对方发送LSR报文,请求发送本机所需的LSA的完整信息
- 3.收到LSR后,把对方所需的LSA的完整信息打包为一条LSU报文,发送至对方
- 4.收到LSU后,向对方回复LSAck报文,进行确认
- 3.每台路由器根据本机链路状态数据库,计算到达每个目的网段的最优路由,写入路由表
OSPF报文类型
- Hello报文
DD报文
- 数据库描述报文
- 用于描述本地LSDB中所有LSA的摘要
LSR报文
- 链路状态请求
LSU报文
- 链路状态更新
LSAck报文
- 链路状态确认
OSPF分区域管理
分区域的原因
- 加快收敛速度
- 把网络故障隔离在区域内部
路由器角色
IR
- 内部路由器
- 所有接口都处于同一个区域
ABR
- 区域边界路由器
- 连接不同区域的路由器
ASBR
- 自治系统边界路由器
- 连接外部自治系统的路由器
区域类型
骨干区域
- 只能有一个骨干区域,一般是区域0
- 骨干区域必须是连续的
非骨干区域
- 非骨干区域必须连接到骨干区域
常用命令
[h3c]ospf 'process id' router-id 'rid'
- 开启OSPF进程,指定Router-id,进入OSPF协议视图
[h3c-ospf-1]area 'area id'
- 进入区域视图
[h3c-ospf-1-area 0.0.0.0]network 'ip address' 'wild-mask'
宣告网段
wild-mask
- 掩码通配符
- 0对应的部分需要匹配一致,1对应的部分不检查
[h3c-ospf-1]slient-interface 'interface id'
- 配置静默接口
- OSPF不会在向静默接口上收发协议报文
[h3c]display ospf peer
查看OSPF邻居关系
- FULL:邻接关系
- 2-Way:邻居关系
[h3c]display ospf routing
- 查看OSPF路由
ACL包过滤
ACL
定义
- 访问控制列表
- 用于数据流的匹配和筛选
常见功能
访问控制
- ACL+Packet-filter
路由控制
- ACL+Route-policy
流量控制
- ACL+QOS
基于ACL的包过滤
定义
- 对进出的数据包逐包检查,丢弃或允许通过
- 包过滤必须配置在接口的某个方向上才能生效
- 一个接口的一个方向只能配置一个包过滤策略
包过滤的方向
入方向
- 只对从外部进入的数据包做过滤
出方向
- 只对从内部发出的数据包做过滤
包过滤的工作流程
- 1.数据包到达接口检查是否应用了ACL,是则进入匹配,否则放行
2.按照ACL编号匹配第一条规则,匹配则进一步检查该条规则动作,否则与下一条规则进行匹配
- 动作允许则放行
- 动作拒绝则丢弃
- 3.继续进行匹配,如匹配则检查规则动作,否则与下一条进行匹配
- ……
4.所有规则都不匹配,检查默认动作
- 默认动作允许则放行
- 默认动作拒绝则丢弃
注意事项
- 如果默认动作是允许,至少需要一条拒绝规则
- 如果默认动作是拒绝,至少需要一条允许规则
- H3C的ACL用于包过滤默认允许,用于其他默认拒绝
- 把小范围的规则分配一个靠前的顺序
- 在不影响实际效果前提下,把包过滤尽量配置在离源地址最近的接口的入方向
ACL分类
基本ACL
- 只对数据包的源地址进行匹配
- 编号2000-2999
高级ACL
- 对数据包的五元组进行匹配(源IP,目的IP,源端口,目的端口,协议)
- 编号3000-3999
常用命令
[h3c]acl basic 'acl-number'
- 创建基本ACL,进入ACL视图
[h3c]acl advanced 'acl-number'
- 创建高级ACL,进入ACL视图
[h3c-acl-basic-2000]rule 'rule id' 'permit/deny' source 'ip address' 'wild-mask'
- 创建基本ACL规则
- 如不写rule-id,则系统自动从0开始以5的倍数增加序号
[h3c-acl-advanced-3000]rule 'rule id' 'permit/deny' 'protocol' source 'ip address' 'wild-mask' source-port 'port' destination 'ip address' 'wild-mask' destination-port 'eq/lt/gt/neq/range' 'port'
- 创建高级ACL规则
[h3c-GigabitEthernet 0/0]packet-filter 'acl number' 'inbound/outbound'
- 配置包过滤
[h3c]packet-filter default deny
- 更改默认动作为拒绝
NAT
产生背景
- IPv4公网地址资源耗尽
- IPv6普及遥遥无期
- 子网划分杯水车薪
定义
- 网络地址转换
- 通过把私有地址转换为公有地址,使私有IP地址主机可以访问互联网,来解决公网地址不够用的问题
分类
静态 NAT
- 把公有地址一对一的静态映射给私有地址使用
基本 NAT
- 建立公有地址池,把地址池中的公有地址动态的映射给私有地址使用
- 本质上仍然是一对一的映射
NAPT
- 把公有地址和端口动态的映射给私有地址和端口,实现一个公有地址可以供多个私有地址同时使用访问互联网
- 转换源IP和源端口,数据回包还原目的IP和目的端口
- SNAT(源地址转换)
Easy IP
- NAPT的一种简易实现形式
- 适用于公网地址不固定的场景
NAT Server
- 把公网IP的某个端口固定映射到私网IP的某个端口,让公网上的用户可以主动访问私网中的服务
- 转换目的IP和目的端口,数据回包还原源IP和源端口
- 也称端口映射,DNAT(目的地址转换)
常用命令
[h3c]nat address-group 'group-number'
- 创建 NAT 公网地址池
[h3c-address-group-1]address 'start-ip' 'end-ip'
- 设置地址池的地址范围
[h3c-GigabitEthernet0/0]nat outbound 'acl-number' address-group 'group-number'
- 在公网接口上配置 NAPT
[h3c-GigabitEthernet0/0]nat outbound 'acl-number'
- 在公网接口上配置 Easy IP
[h3c-GigabitEthernet0/0]nat server protocol 'tcp/udp/icmp' global 'global-address' 'global-port' inside 'inside-address' 'inside-port'
- 在公网接口上配置NAT Server
PPP
定义
- 点到点协议
- 在串行线路上运行的协议
特点
- 支持身份验证
- 支持网络层地址自动协商
工作阶段
阶段1
LCP阶段
- 链路状态协商
阶段2
- 验证阶段
- 可选
阶段3
NCP阶段
- IP地址协商
验证
验证方式
PAP
- 两次握手
- 用户名和密码在网络中明文传输
CHAP
- 三次握手
- 密码不在网络中传输,更安全
验证分类
单向验证
- 主验证方对被验证方进行验证
双向验证
- 双方互相验证
PPP-MP
定义
- 把两台路由器之间的多条PPP链路捆绑成一条逻辑PPP链路
功能
- 实现链路冗余
- 增加链路带宽
要点
- IP地址配置在MP口上
- 身份验证配置在物理口上
常用命令
[h3c-Serial1/0]ppp authentication-mode 'pap/chap'
- 设置接口开启PPP验证,并指定验证方式
[h3c-Serial1/0]ppp pap local-user 'username' password 'simple/cipher' 'password'
- 被验证方设置接口上用于pap验证的用户和密码
[h3c-Serial1/0]ppp chap user 'username'
- 被验证方设置接口上用于chap验证的用户
[h3c-Serial1/0]ppp chap password 'simple/cipher' 'password'
- 被验证方设置接口上用于chap验证的密码
[h3c]interface mp-group 'group-number'
- 创建PPP-MP口,进入MP口接口视图
[h3c-Serial1/0]ppp mp mp-group 'group-number'
- 物理接口加入到MP口
- 双向验证时,如果两端用于验证的密码一致,则在PPP接口下只用指定用户名,不用指定密码