一、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地址。
数据过滤:当交换机从某个接口收到发来的数据帧时,不会将数据帧从该接口发送回去。
防环:生成树协议。
六、数据传输过程
路由基础概念
路由,本质上是依据路由表中的条目,进行逻辑层面的地址选择过程,借此决定数据包的转发路径。
1. 控制层面
在控制层面,路由器会收集、比较不同来源的路由信息。通过衡量开销值,将最为合适的路由条目添加到路由表中。不同厂商对于衡量路由优劣的参数略有差异:
- 在华为等部分设备中,使用优先级(Preference,简称为 Pre)和开销值(Cost)来判断路由的优先级。
- 而在思科设备体系里,则采用管理距离(Administrative Distance,简称为 AD)和度量值(Metric)进行路由选择。数值越低,代表路由的可信度越高,越优先被加入路由表。
2. 数据层面
当数据包进入路由器的数据层面处理环节,路由器会依据路由表条目对数据包进行转发,具体步骤如下:
- 与操作:路由器将数据包的目标 IP 地址,和路由表中每个条目的网络地址进行 “与” 运算。这一步通过将目标 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会话(当该静态路由down后,则使用备份路由)
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)动态路由协议的分类
1.按照使用范围进行分类
内部网关协议(同一个AS内使用):RIP(路由信息协议)、ospf(开放式最短路径优先协议)、IS-IS(从中间系统到中间系统)
外部网关协议(不同AS之间使用):BGP(边界网关协议)
2.按照协议的算法特点进行分类
距离矢量型(DV):ARP
链路状态型(LS):ospf、IS-IS
3.按照是否携带网络掩码进行分类
有类别路由协议:不传递网络掩码,按照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)路由控制
1. 修改优先级(pre / AD)
在网络中,多种动态路由协议可能同时运行,如 OSPF、RIP、BGP 等。不同的动态路由协议发现的去往同一目标网络的路由可能不同,这时就需要通过优先级来决定采用哪条路由。在华为设备中,使用优先级(Preference,简称 pre)来衡量;而在思科设备里,则使用管理距离(Administrative Distance,简称 AD)。通过修改某个动态路由协议的优先级,可以影响路由器对不同协议所提供路由的选择倾向。例如,若网络中同时存在 OSPF 和 RIP 协议,默认情况下 OSPF 的优先级较高,路由器会优先选择 OSPF 发现的路由。但如果我们将 RIP 的优先级修改为低于 OSPF 的优先级,那么路由器就会优先采用 RIP 提供的路由。
2. 修改开销值(cost /metric)
开销值是衡量一条路由优劣的重要指标,不同的路由协议对开销值有不同的称呼,如 OSPF 中称为 cost,RIP、EIGRP 等协议中称为 metric。在接口层面,可以使用 “in”(import)和 “out”(export)两种方式来调整开销值:
- in(import):当数据包进入接口时,对该接口接收的路由信息的度量值进行增加操作。例如,我们可以配置某个接口,让其进入的路由信息的度量值增加 5,这样可以改变这些路由在本地路由器中的优先级。
- out(export):当数据包从接口发出时,将该接口发出的路由信息的度量值增加到指定的数值。比如,设置某个接口的出口度量值增加到 10,那么从这个接口发出的路由信息的度量值就会变为 10。
此外,“in” 和 “out” 操作都可以与访问控制列表(ACL)或前缀列表配合使用,实现对部分特定路由的开销值调整。需要注意的是,在大多数情况下,metric 值的调整只能进行增加操作,不能减少。因为减少度量值可能会破坏网络中路由的稳定性,引发路由环路等问题。
3. 过滤路由
过滤路由是一种对路由信息进行筛选的机制,目的是设置哪些路由可以被接受(放行),哪些路由需要被拒绝(禁用)。在网络中,我们通常会使用过滤列表来实现这一功能。不过,过滤列表本身并不具备直接过滤路由的能力,它需要调用访问控制列表(ACL)或前缀列表来定义具体的过滤规则。
类似于思科中的分发列表,过滤列表可以在 “import”(接收路由信息时)或 “export”(发送路由信息时)方向上实施。在 “import” 方向应用过滤列表,能够阻止某些不需要的路由信息进入本地路由器;在 “export” 方向应用过滤列表,则可以防止本地路由器将某些路由信息发送给其他路由器。例如,我们可以通过配置过滤列表和 ACL,禁止本地路由器接收来自某个特定网络的路由信息,或者阻止将本地的某些私有网络路由信息传播到外部网络。
6)被动接口(静默接口)
其作用是针对组播或广播的路由信息只收不发。
设置接口为静默接口:silent-interface GigabitEthernet 0/0/0
RIP中的network命令:激活接口,通告路由。
7)单播邻居
发送RIP 消息数据包使用单播方式发送,单播邻居技术并不影响组播的发送。格式:peer IP地址。
单播邻居+被动接口=单播被动
8)更新源检测
更新源检测会对接收的更新信息进行一个全面的检测,包括判断更新信息是否来自预期的发送者、是否来自合法的地址或网段等,以确保其来源的合法性和可信性。如果更新信息不符合预期的验证条件,则可能不会进行更新。其适用于所有IGP协议。
关闭更新源检测:undo verify-source