0、前言
本主题主要讲述计算机网络世界中数据传送的原理,一共分为(上)(下)篇文章;
(上)主要描述主机部分传输原理;
(下)主要描述网络设备部分传输原理。
网络设备传输原理内容主要涉及以下知识点:
2/3层设备组成原理及其软件框架
MAC表/路由表作用及来源
策略路由与路由策略
FIB表
2/3层设备数据传输原理
VLAN
端口聚合、LLDP、BFD、NQA、SYSLOG、端口镜像、SNMP、Flow分析
网络组网
1、L2/L3网络设备组成原理
网络设备根据其功能,在模块设计上主要有四个,2L交换模块主要为二层交换机上的核心功能,3L路由模块主要为三层交换机或者路由器上的核心功能,流分类模块主要为现在的一些SDN交换机上的核心功能,而转发引擎则是任何设备上应该具有的功能。
2、L2/L3网络设备软件框架
管理平面:是提供给网络管理人员使用TELNET、WEB、SSH、SNMP、RMON等方式来管理设备,并支持、理解和执行管理人员对于网络设备各种网络协议的设置命令。管理平面必须预先设置好控制平面中各种协议的相关参数,并支持在必要时刻对控制平面的运行进行干预。
控制平面:提供了数据处理转发前所必须的各种网络信息和转发查询表项 。
转发层面:具体按照控制平台的指令对数据进行转发。
服务平面:对外提供相应服务接口或功能。
3、MAC地址学习表
MAC地址学习表是二层数据包转发的依据,其来源主要分为两类:静态添加、动态学习
4、路由表
路由表是三层数据包转发的依据。
IP报文中的目的IP地址往往是主机地址,而路由表中的目的地址往往为网络地址,怎么让二者匹配呢?
这里面有个底层的操作:首先将IP报文中的目的地址和路由表项中的子网掩码进行“逻辑与”操作,得到一个网络地址,然后拿此网络地址与路由项中的网络地址做比较,如果一致就认为匹配,否则认为不匹配。
如果路由项匹配,则路由器查看所匹配的路由项的下一跳地址是否在直连的链路上。如果在直连的链路上,则根据此下一跳转发;如果不在直连的链路上,则需要在路由表中再次查找此下一跳地址所匹配的路由项(路由迭代)。
确定了下一跳地址后,路由器将此报文送往对应的接口,接口进行相应的地址解析,解析出对应的链路层地址后,对IP报文进行数据封装并转发。
4.1 路由表来源
4.2 动态路由协议
4.3 OSPF
OSPF:Open Shortest Path First 开放式最短路径优先是一种内部网关协议(IGP),用于在单一自治系统(AS)内决策路由,最多容纳上万条路由条目信息。
1.、数据包类型
Hello包 | 用于邻居、邻接 发现、建立、保活 hello time 默认10s或30s |
---|---|
DBD包 | 数据库描述包 |
LSR包 | 链路状态请求 |
LSU包 | 链路状态更新 |
LSack包 | 链路状态确认 |
2.、状态机类型
状态 | 含义 |
---|---|
Down | 一旦本地发出hello包进入下一个状态 |
Init初始化 | 收到的hello包若存在本地的RID进入下一个状态 |
2way双向通讯 | 邻居关系建立的标志 |
Exstart预启动 | 使用类似hello的DBD进行主从关系的选举,RID大为主优选进入下一状态 |
Exchange准交换 | 使用真正的DBD进行数据库目录的共享,需要使用ACK确认 |
Loading加载 | 使用LSR/LSU/LSAck来获取未知的LSA信息; |
Full转发 | 邻接关系建立的标志 |
3.、各个类型的LSA
类别名 | 传播范围 | 通告者 | 携带的信息 |
---|---|---|---|
1类LSA-router | 本区域内 | 本区域内的每台路由器 | 该区域每台设备的直连拓扑 |
2类LSA-Network | 本区域内 | 该网段的DR | 该网段的拓扑 |
3类LSA-summary | 整个OSPF域 | ABR | O IA 域间路由 |
4类LSA-asbr | 除ASBR所在区域外的 | ABR | ASBR的位置 |
5类LSA-ase | 整个OSPF域 | ASBR | O E 域外路由 |
4.、特殊区域
同时不存在ASBR | |
---|---|
末梢区域 | 该区域拒绝4/5的LSA进入;由该区域连接骨干区域的ABR设备,向区域内发送一条3类的缺省路由 |
NSSA 非完全末梢区域 | 在末梢区域的基础上进一步拒绝3类的LSA;仅保留一条3类的缺省路由; 先将该区域配置为末梢区域,然后仅在ABR上定义完全末梢即可 |
同时存在ASBR | |
---|---|
NSSA 非完全末梢区域 | —拒绝非本区域内部产生4/5LSA,本区域ASBR产生的5类将通过7类LSA传输,到达ABR处进入骨干区域时,由7类转换回5类 |
完全NSSA– 完全的非完全末梢区域 | 拒绝非本区域内部产生4/5LSA,本区域ASBR产生的5类将通过7类LSA传输,到达ABR处进入骨干区域时,由7类转换回5类 |
5.、接口网络类型
OSPF接口网络类型 | |
---|---|
p2p | hello time10s 自动建邻 不选DR/BDR |
Broadcast | hello time 10s 自动建邻 选DR/BDR |
nbma | hello time 30s 手工建立邻居 选DR/BDR |
6.、选路规则
内部优于外部,一类优于二类,五类优于七类
4.4 BGP
BGP(Border Gateway Protocol 边界网关协议)是一种外部网关协议(EGP),用于在不同的自治系统(AS)之间交换路由信息;
最多容纳上百万条路由条目(目前互联网路由条目为50多万条);
BGP AS号由IANA互联网数字分配机构管理分配;
使用最多2字节长度的AS号码,即1-65535。其中1-64511为公有AS,64512-65534为私有AS;2009.1后,增加至4字节长度,即:65536 -4294967295。
BGP选路原则:
最高有weight优先,默认为0(思科特有,选大的)
本地优先级高的优先(只可以在IBGP邻居之间传递)
起源本路由器上的路由(network、aggregate-address)
as-path最短的优先
最小的起源代码 (IGP 优先 EGP 优先 incomplete)
最低的med
ebgp>ibgp
通过最近BGP邻居的路由
如果配置了maixmum-path[IBGP],就负载均衡。
最老的EBGP邻居学到的路由,是路由最老.
更低的router-id
始发路由器ID相同,那么选择 cluster-list短的,
优选来自于最低的邻居地址的路径,是BGP的neigbor配置中地址
5、策略路由
策略路由的功能是控制报文转发,其优先级高于路由表,数据转发先匹配策略路由,当匹配不上再去匹配路由表!
6、路由策略
IP报文中的目的IP地址往往是主机地址,而路由表中的目的地址往往为网络地址,怎么让二者匹配呢?这里面有个底层的操作:首先将IP报文中的目的地址和路由表项中的子网掩码进行“逻辑与”操作,得到一个网络地址,然后拿此网络地址与路由项中的网络地址做比较,如果一致就认为匹配,否则认为不匹配。
如果路由项匹配,则路由器查看所匹配的路由项的下一跳地址是否在直连的链路上。如果在直连的链路上,则根据此下一跳转发;如果不在直连的链路上,则需要在路由表中再次查找此下一跳地址所匹配的路由项(路由迭代)。
确定了下一跳地址后,路由器将此报文送往对应的接口,接口进行相应的地址解析,解析出对应的链路层地址后,对IP报文进行数据封装并转发。
7、策略路由与路由策略区别
8、FIB表
当路由表中存在多个路由项可以匹配目的IP地址时,路由查找进程会选择其中掩码最长的路由项用于转发。那么路由表中路由项数量越多,所需查找及匹配的次数也就越多,其转发效率也就越低。
为了做到控制平面和转发平面的分离,系统构建了另一张FIB表,也称为转发表,专注于数据报文的转发,其中FIB的表项来源于路由表项。
在计算路由信息的时候,不同路由协议所计算出来的路径可能会不同。在这种情况下,路由器会选择优先级较高的路由协议发现的路由作为最优路由,并置为Active状态;而其他路由作为备份路由,置为Inactive状态。此时Active状态的路由表项会由系统导入FIB表中,作为系统转发的依据。另外,在某些系统中,FIB表项也可能来源于ARP解析,即系统将通过ARP解析而得到的本地网段内的主机路由也添加到FIB表中。
FIB表与路由表是同步更新的,系统的控制平面发现新的路由信息,根据路由信息更新自己的路由表,生成新的Active状态的路由表项,然后更新FIB表;如果原路由表中处于Active状态的路由表项失效,系统也会删除相关FIB表项。
9、二层网络设备传输原理
10、三层网络设备传输原理
11、VLAN
VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。其主要作用为隔离广播,不同VLAN的广播不会相互影响。
11.1 实现原理
11.2 VLAN间路由
11.3 三层交换机
12、端口聚合
13、LLDP
LLDP(Link Layer Discovery Protocol,链路层发现协议)是802.1ab中定义的链路层协议,它将本地设备的信息组织成TLV(Type/Length/Value,类型/长度/值)封装在LLDPDU(Link Layer Discovery Protocol Data Unit,链路层发现协议数据单元)中发送给直连的邻居,同时也把从邻居接收的LLDPDU 以标准MIB(Management Information Base,管理信息库)的形式保存起来。通过LLDP,设备可以保存和管理自己以及直连邻居设备的信息,供网络管理系统查询和判断链路的通信状况。LLDP不会配置也不会控制网络元素或流量,它只是报告第二层的配置。
14、BFD与NQA
BFD双向转发检测,在两台网络设备上建立会话,用来检测网络设备间的双向转发路径,为上层应用服务。BFD本身并没有邻居发现机制,而是靠被服务的上层应用通知其邻居信息以建立会话。会话建立后会周期性地快速发送BFD报文,如果在检测时间内没有收到BFD报文则认为该双向转发路径发生了故障,通知被服务的上层应用进行相应的处理。BFD可与静态路由、OSPF路由、BGP路由、VRRP协议联动。
NQA(Network Quality Analyzer)网络质量分析 是一种实时的网络性能探测和统计技术,可以对响应时间、网络抖动、丢包率等网络信息进行统计。NQA还提供了与Track和应用模块联动的功能,实时监控网络状态的变化。 NQA通过发送测试报文,对网络性能或服务质量进行分析,为用户提供网络性能参数,如时延抖动、HTTP的总时延、通过DHCP获取IP地址的时延、TCP连接时延、FTP连接时延和文件传输速率等。。NQA可与静态路由、OSPF路由、BGP路由、VRRP协议联动。NQA是一种单向检测机制。
15、SYSLOG
syslog是一种日志记录的标准协议。在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件。管理者可以通过查看系统记录,随时掌握系统状况。UNIX的系统日志是通过syslogd这个进程记录系统有关事件记录,也可以记录应用程序运作事件。通过适当的配置,我们还可以实现运行syslog协议的机器间通信,通过分析这些网络行为日志,藉以追踪掌握与设备和网络有关的状况。
一般可将日志类型分为:1、访问类日志,2、告警类日志,3、登陆类日志,4、操作变更类日志,5、其他审计类日志。
15.1 访问类日志
15.2 告警类日志
15.3 登陆类日志
主要是各类设备的登陆日志信息,包括通过web及ssh登陆的信息。主要元素有,源地址,登陆方式,登陆用户名,登陆状态等
15.4 操作变更类日志
主要为配置修改信息。如下,针对防火墙的策略的修改进行了记录。
15.5 其他审计和业务类日志
主要记录其他的审计日志,如:设备状态,接口状态等信息。
16、端口镜像
该技术能将网络中的流量复制到指定的设备端口上,是实现流量层面安全分析的基础。
17、SNMP
18、Flow分析技术
Flow分析技术是以数据流(将协议五元组相同的数据包归为一条流)为基本研究对象,由于不同的应用类型体现在会话连接或数据流上的状态各有不同,可以通过获取一系列流的行为特征,建立流量特征模型,通过分析会话连接流的包长、连接速率、传输字节量、包与包之间的间隔等信息来与流量模型对比,从而实现鉴别应用类型和攻击行为的目的。
Flow分析技术主要分为三部分:流特征选择、流特征提取、分类器。
Flow分析技术的前提是flow流报文的获取,一般可以通过:netflow、netstream、sflow等协议从网络设备中直接获取,也可以通过镜像数据包从特定工具(如nprobe)转化成flow流报文(UDP报文)。
19、QinQ
QinQ(802.1Q-in-802.1Q),也叫做VLAN Stacking或Double VLAN,由IEEE 802.1ad标准定义,是一项扩展VLAN空间的技术,通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的目的。一般应用在骨干网中,通过将用户私网VLAN Tag封装在公网VLAN Tag中,使报文带着两层VLAN Tag穿越运营商的骨干网络(公网),扩充VLAN数量,实现对用户的精细化管理。
IEEE 802.1Q中定义的VLAN ID只有12个比特,仅能表示4096个VLAN域,随着网络规模的扩大,4096个VLAN域已无法满足网络扩容的需求,为此,IEEE 802.1ad中在原有的802.1Q报文的基础上增加一层802.1Q Tag(也叫做VLAN Tag或标签),使VLAN数量增加到4094×4094,这种双层Tag的报文就叫做QinQ报文。
随着以太网的进一步发展以及运营商精细化运作的要求,QinQ的双层Tag又有了新的应用场景。它的内外层Tag可以代表不同的信息,如内层Tag代表用户,外层Tag代表业务。另外,QinQ报文带着两层Tag穿越运营商网络,内层Tag透明传送,也是一种简单、实用的VPN技术。
所以,QinQ产生的两大背景是:一是解决日益紧缺的VLAN ID资源问题;二是满足业务精细化管理的需求。
https://info.support.huawei.com/info-finder/encyclopedia/zh/QinQ.html
20、IPsec VPN
IPSec是为实现VPN功能而最普遍使用的协议。IPSec不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构。该体系结构包括认证头协议(Authentication Header,简称为AH)、封装安全负载协议(Encapsulating Security Payload,简称为ESP)、密钥管理协议(Internet Key Exchange,简称为IKE)和用于网络认证及加密的一些算法等。IPSec规定了如何在对等体之间选择安全协议、确定安全算法和密钥交换,向上提供了访问控制、数据源认证、数据加密等网络安全服务。
IPsec VPN 隧道的建立主要可以分为两个阶段:
第一阶段,协商创建一个通信信道(ISAKMP SA),并对该信道进行认证,为双方进一步的IKE通信提供机密性、数据完整性以及数据源认证服务;
第二阶段,使用已建立的ISAKMP SA建立IPsec SA。分两个阶段来完成这些服务有助于提高密钥交换的速度。
https://cshihong.github.io/2019/04/03/IPSec-VPN之IKE协议详解/