OSI参考模型
OSI(Open System Interconnect)参考模型,即为开放式系统互连参考模型。
应用层:人机交互,提供网络服务。
表示层:将逻辑语言转换为二进制语言,定义数据格式。
会话层:建立、维护、拆除会话通道。
传输层:端口对端口的连接。
网络层:提供路由,根据IP地址寻址。
数据链路层:局域网封装,进行MAC地址寻址、差错校验。
物理层:传输比特流。
TCP/IP参考模型
TCP/IP(Transmission Control Protocol/Internet Protocol)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
OSI与TCP/IP参考模型的区别:
- 层数不同。
- OSI模型数据封装必须有完整的封装,TCP/IP支持跨层封装。
- OSI一般用于理论,供参考学习,TCP/IP一般用于工业生产。
- OSI支持多种网络层协议,TCP/IP仅仅支持IP协议栈(IPV4 IPV6)。
封装与解封装
以七层模型作为参考,前三层为控制层面(应用层、表示层、会话层)、后四层为数据层面(传输层、网络层、数据链路层、物理层)。
(1)封装
应用层(应用层、表示层、会话层)——将逻辑语言转换为二进制数据(协议数据单元PDU)。
传输层——给数据套上TCP头部(该过程可以将数据进行分段传输),TCP头部包含源端口号和目标端口号(数据段)。
网络层——给数据套上IP头部,IP头部包含源IP地址和目标IP地址(数据包)。
数据链路层——以太网封装,给数据套上MAC头部,MAC头部包含源MAC地址和目标MAC地址(数据帧)。
物理层——二进制数据组成的比特流转化为电信号通过介质传输(比特流)
(2)解封装
物理层——将电信号转换为二进制数据,传输给数据链路层。
数据链路层——解开MAC头部,查看目标MAC地址是否为本机,是则继续传输,否则丢弃。
网络层——解开IP头部,查看目标IP地址是否为本机,是则继续传输,否则转发数据或丢弃。
传输层——解开TCP头部,查看端口号,传输给对应端口号。
应用层(应用层、表示层、会话层)——二进制数据转换为原始数据提供给用户。
TCP/IP协议簇
(1)TCP
TCP(Transmission Control Protocol)即为传输控制协议,是一种面向连接的可靠传输协议,通过确认机制和重传输机制来确保数据传输的可靠性。其数据结构如下:
Sequence Number为序列号,标识本机发送的数据报文的顺序。
Acknowledgment为确认码,确认数据包的接收。
URG为紧急指针标志位,当数值为1时优先传输数据。ACK为确认标志位,当数值为1时,说明这是一个ACK报文。PSH为推送标志位,在缓冲区未填满的情况下,尽快的将缓冲区的数据推送上前。RST为复位标志位,用于在异常情况下关闭连接。SYN和FIN分别为连接建立和断开的标志位。Checksum为校验和,判断数据传输过程中,是否存在恶意篡改。(了解即可)
TCP的可靠机制:
- 三次握手机制
- 四次挥手机制
- 确认机制:ack = 上一次 seq + 上一次 len ; seq = 上一次的 ack 。
- 重传输机制:当在网络传输过程中数据包丢失或损坏时,TCP会通过重传机制重新发送这些数据包,以确保数据能够完整地到达接收方。
- 滑动窗口机制:通过滑动窗口来通告本机的接收能力,实现流量控制。
- 完整性校验机制:通过checksum来校验数据的完整性。
(2)UDP
UDP(User Datagram Protocol)即为用户数据协议,是一种非面向连接的不可靠传输协议,由于UDP协议在发送数据之前不需要建立连接,也不需要进行数据传输的确认,因此它的传输速度非常快。其数据结构如下:
(3)IP
IP(Internet Protocol)即为互联网协议,处于网络层中的协议,实现网络之间的互连。其数据包结构如下:
每一行32个比特,为4个字节,则标准的头部长度为20个字节(最下面一行为可选项,默认空)。
Version(4bit):版本号。默认值0100,代表版本IPv4。
IHL(4bit):IP头部长度。默认值0101,代表 5 × 32bit = 20byte;最大值1111,代表60个字节,减去默认头部长度20个字节,剩下0~40字节则为Options的范围。
Type of Service(8bit):服务类型。其中IPP可以对不同流量标记设置等级,等级高的优先传输;DSCP可以对不同流量进行标记,可以发出拥塞通告。
Total Length(16bit):IP包总长度。为 IP头部 + 从传输层传下来的数据 。
Identification(16bit):标识符。相同标识符的数据分片收集到一起。
Flags(3bit):标识位。3个bit分别为R位(保留位)、D-F位(数据是否分片位,1/0 对应 有/无 分片)、M-F位(更多分片位,0 对应数据分片的最后一位)。
Fragment Offset(13bit):分片偏移。标识该数据分片距离头部的偏移值(前n个分片总长度大小)。
Time to Live(8bit):生存周期。防环机制,其最大值1111 11111,代表生存周期最大为255s。
Protocol(8bit):协议号。用于标记描述上层所使用的协议。
Header Checksum(16bit):头部校验和。
Source Address(16bit):源IP地址。
Destination Address(16bit):目标IP地址。
Options:可选项。有以下四个类别:
- 严格选路:严格按照指定路径进行传输(最多记录9个)。
- 松散选路:传输路径只要经过指定地址就行。
- 时间戳:记录经过某个地址的时间。
- 记录路由:记录传输路径经过某些地址。
Padding:填充项。在有Options时进行填充,使得 Options + Padding 为32bit,因此IP数据包大小应为 20byte(头部) + (n × 4byte)。
(4)ARP
ARP(Address Resolution Protocol)即为地址解析协议,其作用是根据已知的IP地址解析出相应的MAC地址。特点:广播请求,单播回复。老化时间是180秒。
- 正向ARP:根据对方的IP地址请求对方的MAC地址。
- 无故ARP:免费ARP ,自我介绍,检测IP地址冲突。
- 代理ARP:proxy ARP,跨网段使用(华为默认关闭)。
- 反向ARP:根据对方的MAC地址请求对方的IP地址。
- 逆向ARP:帧中继中使用。
(5)以太网帧协议
交换机的基本功能
工作原理:在交换机收到数据帧时,会学习其数据帧中的源MAC地址,并且查询目标MAC地址进行单播转发,若查询不到目标MAC地址则会进行泛洪操作,将数据帧以广播的形式发送数据帧,其他主机收到后确认MAC地址不为自身则丢弃,目标主机收到并确认后会回复给交换机,交换机则学习其MAC地址。
数据过滤:当交换机从某个接口收到发来的数据帧时,不会将数据帧从该接口发送回去。
防环:生成树协议。
数据传输过程
路由: 按照路由条目,逻辑选址。
控制层面
按照开销值将路由条目加表:pre cost(思科中 AD metric)。
数据层面
按照路由条目转发数据包,进行以下操作:
- 与操作:将目标IP地址与路由表中的路由条目进行与操作,选出正确的路由条目。
- 最长匹配:选出最长子网掩码的路由条目。
- 递归查找:当学到一条路由条目的下一跳IP地址不为自身,则以下一跳IP地址重新查找路由表。
静态路由
(1)设置静态路由
- 设置出接口(一般建议在点对点的网络结构中使用)
- 设置下一跳地址(一般建议在非点对点(MA 多路访问网络结构中使用)中)
- 设置出接口+下一跳(在华为,若为MA网络结构,必须使用下一跳或出接口+下一跳)格式:格式:ip route-static 目标网络 子网掩码 下一跳
(2)静态路由分类
- 等价路由:去往同一目的地路由,来源相同,开销相同,优先级相同,下一跳不同。
- 浮动路由:去往同一目的地的路由,来源相同,但优先级不同(或开销不同,优先级相同),下一跳也不同。浮动路由通常作为主路由的备份。
- 缺省路由:当路由器收到目标地址不在路由表中的数据包时,会将数据包全部发送到缺省路由指定的下一跳。
- 汇总路由:一组具有相同前缀的路由汇聚成一条路由,从而达到减小路由表规模以及优化设备资源利用率的目的。
- 黑洞路由:由于路由汇总不精确而产生的路由黑洞,用于防止路由环路。黑洞路由的下一跳通常指向一个不存在的接口或null接口。
(3)环回接口
环回接口(Loopback Interface)是一种虚拟接口,用于模拟一个单独的网段。配置在环回接口上的路由称为环回接口路由。作用:环回接口路由通常用于网络测试、路由协议的管理距离调整等场景。
(4)BFD会话
BFD(Bidirectional Forwarding Detection)会话,即为双向转发检测会话。通过不断给对方发包来进行监控,主要用于检测网络设备间的双向转发路径的连通性。在浮动路由中,当一条路由出现故障时,检测到故障时会立即使用备份路由。
- 启动BFD功能
R1:
[R1]bfd 1 bind peer-ip 10.1.1.2 source-ip 10.1.1.1(定义BFD会话信息,使用10.1.1.1接口监控10.1.1.2地址)
[R1-bfd-session-1]discriminator local 1(定义本地编号)
[R1-bfd-session-1]discriminator remote 2(定义对方编号)
[R1-bfd-session-1]commit(启动)
R2:
[R2]bfd 1 bind peer-ip 10.1.1.1 source-ip 10.1.1.2
[R2-bfd-session-1]discriminator local 2(本地编号)
[R2-bfd-session-1]discriminator remote 1(对方编号)
[R2-bfd-session-1]commit
- 在静态路由中通过track调用BFD会话
ip route-static 2.2.2.0 24 10.1.1.2 preference 100 track bfd-session 1(跟踪bfd会话)
- 查看BFD会话
display bfd session all(查看所有bfd会话)
动态路由
动态路由协议:RIP、*OSPF、EIGRP、ISIS、*BGP(路径矢量型)
(1)动态路由协议的分类
- 按照使用范围进行分类
内部网关协议(同一个AS内使用):RIP(路由信息协议)、ospf(开放式最短路径优先协议)、IS-IS(从中间系统到中间系统)
外部网关协议(不同AS之间使用):BGP(边界网关协议)
- 按照协议的算法特点进行分类
距离矢量型(DV):ARP
链路状态型(LS):ospf、IS-IS
- 按照是否携带网络掩码进行分类
有类别路由协议:不传递网络掩码,按照ABC类地址进行划分。
无类别路由协议:传递网络掩码。
(2)RIP(距离矢量型)
RIP(Routing Information Protocol)即为路由信息协议,是一种基于距离向量的动态路由协议。路由器通过周期性发送信息数据包来传递路由信息(request、respond)。
RIP特点:
- 基于UDP封装,不可靠传输,使用端口号 520
- 最大跳数限制为15,不适用大规模网络
- 周期性(30s)和触发性更新,周期性更新会发送全部路由信息,会占用大量带宽
- 支持多进程,进程号只具有本地意义
RIP机制:
- 异步更新机制:25.5~30s,多个RIP错开时间发送路由信息。
- *水平分割机制:通过某个接口接收的路由信息,不会再通过该接口转发出去(防环机制)。
- *毒性逆转水平分割机制:当一条路由条目不可达时,带毒(将度量值设置最大值)发送给其他设备,其他设备接收后删除该路由条目并转发回来表示确认。
RIP计时器:
- 更新计时器(30s):每隔30s进行更新并发送路由表信息。
- 无效计时器(180s):隔了180s没有收到某路由条目信息,则打上possibly down标签。
- 抑制计时器(180s):更新欺骗,度量值大的不接受,某网络处于故障时,路由器对该路由项设为最大值,并进入抑制时间,在抑制时间内不接受其他邻居发送的更新信息。
- 刷新计时器(240s):移除长时间未收到更新的失效路由条目。
- 垃圾回收计时器(120s):过了180s拉进回收站,再过120s清空回收站,彻底删除路由条目。
ps:思科(更新计时器、无效计时器、抑制计时器、刷新计时器);华为(更新计时器、无效计时器、垃圾回收计时器)
RIP版本对比:
- RIPv1是有类路由协议,RIPv2是无类路由协议。
- RIPv1不能支持VLSM,RIPv2可以支持VLSM。
- RIPv1不能关闭自动汇总,RIPv2可以在关闭自动汇总的前提下,进行手动汇总。
- RIPv1是不支持认证,RIPv2是支持认证。
- RIPv1是广播发送协议报文,RIPv2是组播发送协议报文,组播地址:224.0.0.9
(3)手工汇总
手工汇总是将多个明细路由进行手工汇总,在路由传播的出方向接口实施,其作用是为了减少路由条目数量,减小路由表大小,加快查表速度,增加网络稳定性。主要有以下两个技术:
VLSM:可变长子网掩码技术,在同一类别(ABC类)内进行子网掩码长度的增加。
CIDR:无类别域间路由技术,又称为super net 超网,在不同类别内进行子网掩码长度的增加,超过了本类别的范围划分。
ps:在思科中,仅仅支持VLSM,不支持CIDR ;在华为中,支持VLSM和CIDR;在IGP中,汇总后会自动抑制明细路由的发送,不自动产生指向NULL0 的防环路由。
(4)路由认证
路由认证是运行于不同设备之间的相同动态路由协议对相互传递的路由刷新报文进行的确认过程。这个过程旨在确保设备能够接受到真实且安全的路由刷新报文,从而防止未经授权的路由信息在网络中传播,保护网络免受潜在的攻击和干扰。可以通过以下两个方法进行路由认证:
启用明文认证:rip authentication-mode simple cipher cisco
启用MD5认证(需要部署key-id):rip authentication-mode md5 nonstandard cipher 1
(5)路由控制
修改优先级pre(AD):用于多种动态路由协议之间,修改某个协议的优先级。
修改开销值cost(metric值):接口使用分别为in(import)、out(export) ,in 代表接口增加度量值为多少,out代表出口增加度量值到多少;in out 都可以配合ACL或前缀列表控制针对部分。(metric值调整只能增加不能减少)
过滤路由:
设置禁用或放行的路由。过滤列表,类似于cisco中的分发列表(过滤列表)自身不具备过滤功能, 需要调用ACL或前缀列表,可以在import或export方向上实施。
(6)被动接口(静默接口)
其作用是针对组播或广播的路由信息只收不发。
设置接口为静默接口:silent-interface GigabitEthernet 0/0/0
RIP中的network命令:激活接口,通告路由。
(7)单播邻居
发送RIP 消息数据包使用单播方式发送,单播邻居技术并不影响组播的发送。格式:peer IP地址。
单播邻居+被动接口=单播被动
(8)更新源检测
更新源检测会对接收的更新信息进行一个全面的检测,包括判断更新信息是否来自预期的发送者、是否来自合法的地址或网段等,以确保其来源的合法性和可信性。如果更新信息不符合预期的验证条件,则可能不会进行更新。其适用于所有IGP协议。
关闭更新源检测:undo verify-source