目录
3.1有线局域网(IEEE 802.3)
3.1.1以太网数据帧格式
3.1.2MAC地址
3.1.3二层交换机
3.2无线局域网(IEEE 802.11)
3.2.1IEEE802.11数据帧的数据帧格式
3.2.2无线局域网终端联网的步骤
3.2.3无线局域网的类型
3.2.4无线局域网相关的各种功能
3.3ARP
3.3.1ARP的数据帧格式
3.3.2使用ARP进行地址解析的流程
3.3.3ARP的缓存功能
3.3.4使用GARP的功能
3.4其他二层协议
3.4.1PPP
3.4.2PPPoE
3.4.3IPoE
3.3.4PPTP
3.4.5L2TP
数据链路层能够对同一网络中的终端进行识别,并且提供了确保在物理层中传输的比特串正确无误的机制
数据链路层由于可以检查全部数字数据的完整性,因此能够检测出单独依靠物理层无法纠正的那些错误,从而确保数字数据的可靠性。此外,它还会使用名为MAC 地址的网络地址分别对发送终端和接收终端进行识别
数据链路层与物理层协同工作,因此协议也需要成套定义,有线局域网的话需要使用IEEE 802.3,无线局域网的话需要使用IEEE 802.11
3.1有线局域网(IEEE 802.3)
3.1.1以太网数据帧格式
使用以太网封装的数据包被称为以太帧。以太网的数据帧格式包括以太网Ⅱ标准和 IEEE 802.3 标准两种
以太网Ⅱ标准是由当时计算机行业的领导者 DEC 公司、半导体行业的领导者英特尔公司,以及拥有以太网专利的施乐公司于 1982 年公布的标准。从 Web、电子邮件、文件共享到认证处理,使用TCP/IP 进行传输的大部分数据包都使用了以太网Ⅱ标准。
IEEE 802.3 标准是一种由 IEEE 802.3 委员会在 1985 年公布的基于以太网Ⅱ的标准,其中对以太网Ⅱ标准进行了一些修改。在 IEEE 802.3 标准被作为全球统一标准公布之前,由于以太网Ⅱ标准已经在世界范围内得到了普及,因此很少受到公众的关注。
以太网Ⅱ标准的数据帧格式是由前导码、接收方/发送方 MAC地址、类型、以太网载荷和帧检验序列(Frame Check Sequence,FCS)这5个字段组成的。其中,前导码、接收方/发送方 MAC 地址、类型统称为以太网首部,此外,FCS 也被称为以太网帧尾
前导码
前导码是一种包含“将要发送以太帧”的意思的、8字节(64 比特) 的特殊的特征码。需要从开头开始发送7个10101010,最后紧接着发送一个10101011。接收端的终端需要查看添加在以太帧的开头部分的这串特征码,来得出“接下来将会有以太帧到达”的判断
接收方/发送方MAC地址
MAC 地址是一种对连接在以太网网络的终端进行识别的6字节(48比特)的编号ID。可以认为这是一个以太网网络中的地址。发送方的终端会将需要发送以太帧的终端的 MAC 地址设置为接收方 MAC地址,将自己的 MAC 地址设置为发送方 MAC地址,然后发送以太帧。与之相对地,接收方的终端则会查看接收方 MAC 地址,如果确定是自己的 MAC地址,就会接收以太帧;如果是与自己无关的 MAC 地址则会将以太帧丢弃。此外,接收方终端还会查看发送方 MAC地址,以识别是来自哪一个终端的以太帧
类型
类型是一种表示网络层(层3、L3、第3层)中使用哪种协议的2字节(16比特)的类型ID。如果是IPv4,类型就是 0x0800;如果是正Pv6,类型则是 0x86DD。它的值是根据使用的协议和版本而定的
以太网载荷
以太网载荷表示网络层的数据本身
eg:如果在网络层中使用IP,就是“以太网载荷= P数据包”
在分组交换方式的通信中并不是直接发送数据的,而是需要先将数据切分成便于传输的小包裹,再将其发送出去。这个小包裹的尺寸也是固定的。以太网,就需要控制在默认的 46 ~ 1500 字节范围内。如果不够 46 字节,可以通过添加名为“填充”的虚拟数据的方式强制性地增加到46字节,相反,如果是超过1500字节的数据,则可以在传输层或网络层对数据进行切分,将数据控制在1500字节以内
FCS
FCS 是专门用于确认以太帧是否损坏的一个4字节(32比特)的字段
发送方的终端在发送以太帧时,需要对接收方 MAC 地址、发送方 MAC 地址、类型和以太网载荷进行相应的计算(计算校验和、CRC),并将计算结果作为FCS 添加到数据帧的尾部。相应地,接收方的终端也需要对接收的以太帧进行相同的计算,如果计算得到的结果与 FCS 相同,就可以确定接收到的数据没有被损坏,是正确的以太帧;如果计算得到的结果与FCS 不同,就可以确定在传输过程中以太帧遭受了损坏,那么就应当将数据废弃。FCS就是通过上述方式实现对以太网中所有的错误进行检测的
3.1.2MAC地址
在以太网中,最为重要的字段是接收方MAC 地址和发送方MAC地址。MAC 地址是一种用于对连接以太网网络的终端进行识别的ID。它由6字节(48 比特)组成,需要像00-0c-29-43-5e-be 或04:0c:ce:da:3a:6c这样,使用连字符或者冒号对每个字节(8 比特)进行分隔,并使用十六进制进行表示
物理设备,就需要在制造物理 NIC 网卡时将其写入ROM(Read Only Memory,只读存储器)
虚拟设备,则会默认由管理程序分配给虚拟 NIC 网卡
MAC地址在高位3字节(24比特)和低位3字节(24比特)中具有不同的含义。高位3字节(24比特)是由 IEEE 分配给每个供应商的供应商代码,该代码被称为OUI(Organizationally Unique Identifer,组织唯一标识符 )。查看该代码就可以知道该通信终端的 NIC 网卡是由哪家供应商制造的。低位3字节(24比特)被称为UAA(Universally Administered Address,通用管理地址 ),它由供应商在出货时分配或者随机生成
每种通信的MAC地址的区别
以太网中通信可分为单播、广播和组播三种
单播
单播是指 1:1的通信。收发数据的每台终端的 MAC 地址就是发送方 MAC 地址和接收方 MAC 地址
eg:Web 和电子邮件等常用的互联网通信,基本上都可以归类为这种单播通信模式
广播
广播是指 1:n 的通信。n表示连接着同一个以太网网络的、除自己以外的所有终端
如果某台终端发送了广播,那么在该以太网网络中的、除自己以外的所有终端都会接收该数据帧。这个数据所能广播到的范围被称为广播域
广播专门用于ARP(Address Resolution Protocol,地址解析协议 )这类需要在网络上向所有终端进行通知和询问的协议中
广播的发送方 MAC 地址就是发送方终端的 MAC 地址,而接收方 MAC 地址则需要使用6字节(48 比特)都为1的地址,如果将其转换为十六进制数,就是“ff:ff:ff:ff:ff:ff”这种特别的组合
组播
组播是 1:n 的通信。n表示特定组(组播组)中的终端
如果某台终端发送了组播,就只有该组中的终端可以接收该数据包。组播主要用于视频分发和证券交易的应用程序中
区别:广播是强制性地让该网络中的所有终端接收数据包,而组播是只允许运行了应用程序的终端接收数据包,因此它可以提高流量的使用效率
组播的发送方 MAC 地址就是发送方终端的 MAC 地址。而接收方 MAC 地址则会根据网络层使用的IP的版本(IPv4或IPv6)而有所不同
IPv4的场合
如果使用的IP 版本是 IPv4,高位的 25 比特就会被固定为0000 0001 0000 0000 0101 11100。如果将其转换为十六进制数,就是在 01:00:5e的后面加上一个0的数据。01:00:5e 是管理着全球IP地址的名为 ICANN(Internet Corporation for Assigned Names and Numbers,互联网名称与数字地址分配机构)的非营利组织中的IANA(Internet Assigned Numbers Authority,因特网编号分配机构)所具有的供应商代码。此外,低位的23 比特直接就是用于组播的IPv4地址(224.0.0.0~239.255.255.255)的低位23 比特的副本
IPv6的场合
如果是IPv6的场合,高位2字节(16比特)就是固定的“33:33”;低位4字节(32 比特)则是用于组播的 Pv6 地址的低位4字节(32 比特),即直接复制第7字段和第8字段的内容
3.1.3二层交换机
二层交换机运行在数据链路层
二层交换
二层交换机是使用一种内存中名为 MAC 地址表的表来对以太网首部中包含的发送方 MAC 地址和自身的端口号进行管理,从而对以太帧的转发目的地进行切换,以提高通信效率的。这种切换以太帧的转发目的地的功能被称为二层交换。二层交换是二层交换机中最基本的功能
二层交换机是如何创建 MAC 地址表,以及如何进行二层交换的?将以连接着相同二层交换机的 PC1和 PC2 之间相互发送以太帧的场景为例进行说明。此外,由于这里只会单纯地对二层交换的处理进行说明,因此会假设所有终端都已经完成了对对方的 MAC 地址的学习
PC1 会为 PC2 创建以太帧,并将以太帧传输到缆线中。此时,发送方MAC 地址是PC1的 MAC 地址(cc:04:2a:ac:00:00),接收方MAC地址是PC2的MAC地址(cc:05:29:3c:00:00)。此时的二层交换机的 MAC 地址表是空的
接收了来自 PC1 的数据帧的二层交换机会将以太帧的发送方MAC 地址(cc:04:2a:ac:00:00)和接收了数据帧的物理端口的编号(Fa0/1)登记到 MAC 地址表中
此时的二层交换机不知道 PC2 连接的是自己的哪一个物理端口,因此二层交换机需要将 PC1 的以太帧的副本发送给除 PC1 连接的端口之外的所有的物理端口,即需要将以太帧发送给 Fa0/1 以外的端口。通常将这一处理称为泛洪,这是一种“因为不知道这是应当发给哪一个物理端口的数据帧,所以就发给每一个端口”的处理。此外,由于广播的MAC 地址 ff:ff:ff:ff:ff:ff无法作为发送方MAC 地址,因此它不会被登记到 MAC 地址表中,即广播总是会被执行泛洪处理
接收了数据帧副本的 PC2 会为 PC1 创建作为答复的数据帧,并将数据传输到缆线中。此外,由于需要执行泛洪处理,因此与PC1和PC2 之间的通信无关的终端(图中的示例是PC3)也会接收相同的以太帧,但是这些终端会识别出该以太帧与自己无关,并将数据丢弃
接收了PC2 的以太帧的二层交换机会将以太帧的发送方MAC 地址中的PC2 的MAC 地址(cc:05:29:3c:00:00)和接收了数据帧的物理端口的编号(Fa0/2)登记到 MAC 地址表中
经过上述处理,二层交换机就会识别出 PC1和PC2连接的是哪一个物理端口。之后,PC1和PC2之间就可以直接进行转发数据的通信,无须进行步骤3的泛洪处理
二层交换机会在 PC1 或者 PC2 失联一段时间后删除 MAC 地址表中的相关行。至于需要等待多少时间再删除相关行,是视具体设备而定的,不过其实也可以任意进行更改
VLAN(虚拟局域网)
是一种将一台二层交换机切分成虚拟的多台二层交换机的技术
VLAN 的原理只是将二层交换机的端口设置成名为 VLAN ID 的 VLAN 的识别号,使二层交换机不会将数据帧转发到具有不同 VLAN ID 的端口。在一般的局域网环境中,会将 VLAN 用于运营管理以及安全管理当中
eg:通过为总务部分配VLAN3,为销售部分配 VLAN5,为市场部分配VLAN7 的方式,来让这些部门之间无法进行通信
实现VLAN的功能可以分为基于端口的VLAN和标记VLAN
基于端口的VLAN
是一种为一个端口分配一个 VLAN 的功能
例如,如图所示,假设为二层交换机的1号端口和2号端口分配 VLAN1,为3号端口和4号端口分配 VLAN2,这就相当于在一台二层交换机中创建了一台 VLAN1的二层交换机和一台 VLAN2的二层交换机。这种情况下,连接在VLAN1的端口的PC1和PC2就可以直接传输以太帧;但是,连接在 VLAN1的端口的PC1和连接在VLAN2 的端口的 PC3 是无法直接传输以太帧的
标记VLAN
是一种将 VLAN 信息作为 VLAN 标记添加到以太帧中的功能
它是由IEEE 802 委员会的 IEEE 802.1q工作小组确定标准化的,在实际工作中,通常会将其简称为 One Q,前面讲解的基于端口的 VLAN 必须是一个端口对应一个 VLAN。因此,如果要跨两台二层交换机让属于同一个 VLAN 的终端之间进行通信,就需要准备与 VLAN 数量匹配的端口和缆线。但是,如果需要通过这样的方式实现通信,有多少端口和缆线都是不够的。因此,就可以利用标记 VLAN 的功能,通过对 VLAN 进行识别的方式,使用一个端口和一条缆线传输多个 VLAN 的以太帧
IEEE 802.1q的数据帧格式
VLAN 标记,正如其名称所示,表示在以太帧中添加 VLAN ID。IEEE 802.1g的数据帧需要在发送方MAC地址和类型之间插入表示IEEE802.1q的TPID(Tag Protocol entifer)、表示优先级的 PCP(PriorityCode Point )、表示地址格式的 CFI(Canonical Format Indicator)和表示 VLAN ID 的 VID(VLAN Identifer)(PCP、CFI、VID统称为TCI(标记控制信息))
POE(以太网供电)
是一种使用双绞线供电的功能
如果使用 PoE,就可以使用一条双绞线,为安装在天花板背面和墙壁背面那些电源线难以到达的地方的热点和网络摄像机提供电源和数据,这样就不再需要特地敷设电源插座。此外,还可以减少电源线和 AC 适配器的使用数量,可以简化较为复杂的布线
PoE 可以分为2003年由 IEEE 802.3af进行标准化定义的PoE、2009年由 IEEE 802.3at进行标准化定义的 PoE+和 2018 年由 IEEE 802.3bt 进行标准化定义的 PoE++3种。这3种功能最大的不同在于每个端口可以提供的最大功率,最新定义的协议可以提供更大的功率。当供电设备(Power Sourcing EquipmentPSE)与受电设备(Powered Devices,PD)连接后,就可以相互检查是否支持PoE功能。然后,在检查最大功耗之后,就可以使用构成双绞线的铜线提供所需的电量
3.2无线局域网(IEEE 802.11)
3.2.1IEEE802.11数据帧的数据帧格式
在 IEEE 802.11 的数据帧中包含了传输速度和调制方式等很多与无线相关的控制信息。此外,为了与有线局域网(以太网)共存,还将 MAC地址的字段增加到了4个
前导码
前导码是一种包含“接下来要发送 IEEE 802.11 的数据帧”的意思的长度可变的字段。接收方的无线局域网的终端会査看IEEE 802.11 数据帧开头的前导码,来进行“接下来会有 IEEE 802.11的数据帧到达“的判断
数据帧控制
数据帧控制,正如其名称所示,是一种包含控制数据帧时所需使用的信息的2字节(16 比特)的字段。它由数据帧的种类、发送方/接收方的种类、分片信息、电源状态(省电状态)构成。在无线局域网中数据帧的种类可以分为数据帧、管理帧和控制帧3种
1.数据帧
数据帧就是用于收发IP数据包的数据帧。此外,有线局域网中只有这一种类型的数据帧
2.管理帧
管理帧是一种对哪个热点以哪种方式连接进行管理的数据帧。无论有多少无线电波,无线局域网的终端可以同时进行连接的热点都只有一个。因此,热点可以利用一种名为“信标”的管理帧来定期通知终端附近有热点存在。捕获了信标帧的无线局域网的终端就可以使用探测请求/答复、认证和联网请求/答复3种管理帧来执行连接处理。这一整个连接处理被称为联网,负责对联网进行管理的就是管理帧
3.控制帧
控制帧是一种用于帮助转发数据帧的数据帧。和有线局域网相比,无线局域网是一种非常不稳定的网络。无线局域网为了缓和这种不稳定性,需要进行确认答复的处理。确认答复是指当接收了数据帧时发送“已经到达了”的答复的处理。在“已经到达了”的数据中,需要使用一种名为 ACK 帧的控制帧
Duration/ID
Duration/ID 是一个2字节(16比特)的字段,用于通知预定占用无线线路的时间NAV(NetworkAllocation Vector,网络分配向量 ),以及用于控制终端电池消耗的电源管理标识符中
MAC地址1/2/3/4
IEEE 802.11 的数据帧最多可以由4个MAC 地址字段构成,数量和用途可以根据数据帧的种类和网络结构而变
1.数据帧的MAC地址
数据帧的 MAC 地址会随着网络结构而发生变化。无线局域网的网络结构可以分为基础设施模式(Infastructure Mode )、点对点模式和 WDS(Wireless Distribution System,无线分布式系统)模式3种
基础设施模式
基础设施模式是一种无线局域网的终端必须使用热点进行通信的网络结构。绝大多数的无线局域网环境是由基础设施模式构成的。在基础设施模式中传输的数据帧的MAC 地址字段中,第1个字段设置无线区间的接收方 MAC 地址,第2个字段设置无线区间的发送方MAC 地址,第3个字段设置无线局域网的终端的发送方 MAC 地址或接收方 MAC 地址,没有第4个字段
点对点模式
点对点模式是一种无须使用热点、可以在无线局域网的终端之间直接进行通信的网络结构。在无线局域网的终端之间直接传输文件时可以使用这种模式。通过点对点模式传输的数据帧的 MAC 地址字段中,第1个字段设置无线区间的接收方 MAC 地址(接收终端的MAC地址),第2个字段设置无线区间的发送方 MAC地址(发送终端的 MAC地址),第3个字段设置用户自定义的ID,没有第4个字段
WDS(无线分布式系统)模式
WDS 模式是一种在热点之间进行通信的网络结构。使用无线局域网扩展网络时可以使用这种模式。通过 WDS 模式传输的数据帧的 MAC 地址字段中,第1个字段设置无线区间的接收方 MAC 地址(接收方热点的 MAC 地址 ),第2个字段设置无线区间的发送方 MAC地址(发送方热点的MAC 地址 ),第3个字段设置接收方 MAC 地址,第4个字段设置发送方 MAC 地址
2.管理帧的MAC地址
管理帧是一种只在无线局域网的终端和热点之间进行传输的数据帧。第1个字段设置无线区间的接收方MAC地址,第2个字段设置无线区间的发送方MAC地址,第3个字段设置热点的MAC地址(BSSID)。此外,由于需要将信标帧发送给其下属的所有终端,因此第1个字段中还需要设置广播 MAC 地址(ff:ff:ff:ff:ff:ff)
3.控制帧的MAC地址
控制帧与管理帧相同,是一种只在无线局域网的终端和热点之间进行传输的数据帧。在控制帧中设置的 MAC 地址字段的数量会根据数据帧的用途而发生变化
eg:作为控制帧之一的 ACK 帧就只有一个 MAC 地址字段
序列控制
序列控制是一种由4 比特的分片号和 12 比特的序列号组成的字段,可以在重新组合碎片(碎片化)帧时或者丢弃重复帧时使用
无线局域网是通过发送 ACK 帧确认答复的同时进行通信的。无线局域网的终端如果没有接收到来自热点的 ACK 帧,就会等待一定的时间再尝试发送。此时,需要在序列控制中设置的值与之前发送数据帧时设置的值相同。热点则会通过查看该值来判断其是否为重复帧。如果重复帧不断增加,就需要检查是否发生了问题,如存在无线电波干扰或者天线发生了故障等。
IEEE 802.11载荷
如果是数据帧,就是一种包含表示网络层的协议信息的类型字段LLC(LogicalLink Control,逻辑链路控制)首部;如果进一步进行封包处理,则需要包含网络层的数据,即IP数据包
虽然以太网首部中包含类型字段,但是 IEEE802.11 载荷中并没有包含。因此,需要添加由 64 比特组成的 LLC 首部,并通知大家网络层是由什么协议组成的
如果是管理帧,就需要设置表示无线局域网名称的SSID(Service Set ID,服务集ID )、使用的信道、支持的传输速度等网络相关的各种信息。
控制帧中没有载荷,所有的信息都包含在首部中
FCS
FCS 是用于确认 IEEE 802.11 载荷是否遭到损坏的一个4字节(32 比特)的字段。其原理与以太网相同
3.2.2无线局域网终端联网的步骤
无线局域网需要经过联网、认证、生成共享密钥、加密通信4个阶段来进行加密通信
联网阶段
联网阶段由扫描、认证、联网3个步骤构成
1.扫描
扫描是指热点和无线局域网的终端相互识别对方的存在。无线局域网的终端会捕获热点定期发送的信标,并收集 SSID、信道、支持的传输速度等周边的无线局域网信息。当发现想要连接的 SSID 时,就会发送检测请求,并将自己的位置发送给热点。当接收到检测请求的热点检测到SSID 和传输速度等多个参数匹配时,就会返回检测答复,并继续执行认证步骤。此外,如果无线局域网的终端从多个热点接收到相同的 SSID 的检测答复,则需要选择质量最好(容易建立连接)的热点,并对其进行认证处理(一般会默认选信号最强的)
2.认证
认证,正如其名称所示,就是一个执行认证的步骤
但是在现代密码学中其并不是有真正意义的认证,只是作为一个形式上的步骤留存下来了而已。在这里所指的认证方式包括开放系统认证和共享密钥认证这两个种类
开放系统认证不进行认证处理,即其会为所有的认证请求颁发认证许可
共享密钥认证则需要使用事先在无线局域网的终端和热点之间共享的密码进行认证
以前使用的名为WEP(Wired EquivalentPrivacy,有线等效保密)的加密方式中采用的就是共享密钥认证。可能会觉得使用共享密钥认证的方式会更加安全,但是由于它的认证机制极为简单,因此非常容易受到攻击,并且共享密钥也很容易被解密。现在已经不再使用 WEP,在该步骤的认证会暂时使用开放系统认证方式通过认证,实际的认证则会在联网之后的认证阶段进行
3.联网
联网就是最终的确认。无线局域网的终端会向想要连接的热点发送联网请求;热点则会返回联网答复,并建立连接
SSID
在联网中最为重要的元素是 SSID。SSID 是专门用于识别无线局域网的字符串,粗略来讲,它就是无线局域网的名称。如果空间中存在很多无线局域网,客户端就会无法知晓应当连接哪一个网络。因此,无线局域网会使用名为 SSID 的字符串对网络进行识别
智能手机会通过查看 WiFi 天线接收的信标中包含的 SSID 来显示网络。如果选择并点击想要连接的 SSID,检测请求就会被发送出去,并开始联网
SSID 原本是用于加强安全性的。但是,由于它是在没有经过加密处理的情况下进行传输的,因此现在不会将它用于安全目的,只会将它作为网络的名称使用。SSID 不会直接参与认证处理和加密处理。当SSID 这个暗号匹配之后,就可以通过每个 SSID 中设置的认证方式和加密方式进行安全的处理
认证阶段
热点和认证服务器会在完成联网之后确认连接对象是否为正确的终端,即进行身份认证。无线局域网的认证方式包括个人模式和企业模式
1.个人模式
个人模式是一种使用密码进行认证的方式。无线局域网的终端和热点在完成联网之后,需要根据密码生成名为主密钥的共享密钥的因子(素材)
2.企业模式
企业模式是一种使用数字证书、ID/密码和 SIM 卡进行身份认证的方式,被定义为 EEE 802.1x 标准
由于企业模式可以使用认证服务器集中进行认证处理,因此常用于企业的无线局域网环境中。无线局域网的终端和认证服务器在完成联网之后,会相互交换自己的信息,并相互对对方进行认证(证明)。当成功完成认证之后,认证服务器就会为热点和无线局域网的终端分配会话,并基于这一会话生成主密钥
在企业模式中,如员工辞职或者终端丢失,只需要对认证服务器中登记的信息进行变更,就可以继续保持安全级别。但是,由于需要单独对数字证书和 ID/密码进行管理和运用,因此存在持续管理成本较高的缺点
IEEE 802.1x 标准需要使用名为 EAP(Extensible Authentication Protocol,可扩展认证协议)的认证协议进行认证处理。EAP原本是作为拨号连接中使用的PPP的扩展功能而被标准化的协议,因此无法完全照搬到局域网的传输方式中。为了能够让它支持局域网中的传输,需要使用名为EAPoL(EAPover LAN,基于局域网的扩展认证协议)的协议对无线局域网的终端-热点之间进行封包处理,并使用名为RADIUS(Remote Authentication Dial In User Service,远程拨号认证服务)的UDP 的认证协议对热点认证服务器之间进行封包处理。然后,热点会将承载在EAPoL中传递过来的EAP 信息承载到 RADIUS 中,传递给认证服务器
EAP 可以根据认证方法进一步细分为更多的协议,最近常用的具有代表性的协议是EAP-TLS、PEAP和EAP-SIM/AKA
EAP-TLS
EAP-TLS 是一种使用数字证书进行双向认证的协议。数字证书是指一份证明“自己是自己”的文件。
无线局域网的终端和认证服务器在连接时会相互交换自己持有的数字证书,并相互确认对方的身份。
PEAP
PEAP是一种使用 ID/密码对无线局域网的终端进行认证,使用数字证书对认证服务器进行认证的协议
EAP-TLS,因为需要使用数字证书,所以其安全级别肯定是比较高。但是,由于安装在终端中的数字证书的管理较为繁琐,因此运用和管理较为困难。而PEAP由于可以使用 ID/密码对终端进行认证,因此可以省略对终端的数字证书的管理。相应地,它的安全级别是稍低于EAP-TLS 的
EAP-SIM/AKA
EAP-SIM/AKA 是一种使用 SIM 卡的信息进行双向认证的协议。SIM 卡是 NTT DoCoMo 和 au 等移动电话运营商发行的用于识别用户的IC卡,其中保存了电话号码(MSISDN)和识别码(IMSI)等用户信息
BAP-SIM/AKA 由于需要使用只有移动电话运营商和用户才能知道的信息进行身份认证,因此可以保持较高的安全性。当智能手机进入公共无线局域网服务的无线电波的覆盖范围(基站)时,就会捕获信标,自动通过 EAP-SIM/AKA协议进行身份认证
生成共享密钥阶段
生成共享密钥阶段是指根据在认证阶段生成的主密钥,生成实际在加密/解密过程中需要使用的共享密钥的阶段
在认证阶段生成的主密钥只是共享密钥的因子(素材),并不是共享密钥。在这个阶段,需要通过名为“四次握手”的处理,相互生成用于单播的共享密钥PTK(Pairwise Transit Key,成对传输密钥)和用于组播的共享密钥 GTK(Group TemporalKey,组临时密钥)并进行共享
加密通信阶段
生成共享密钥之后,即可开始进行实际的加密通信。在无线局域网中使用的加密方式包括WEP(Wired Bquivalent Privacy,有线等效加密)、WPA(WiFi Protected Access,WiFi网络安全入)、WPA2(WiFi Protected Access 2)和 WPA3 ( WiFi Protected Access 3 )4种,按照 WEP-WPA-WPA2-WPA3 的顺序提升安全级别
1.WEP
WEP是一种在早期的无线局域网中使用的加密方式,采用的是一种名为RC4(Rivest's Cipher 4/Ron'sCode 4)的加密机制(算法)
由于 WEP 不仅会持续使用相同的共享密钥进行加密,而且由研究人员发现 RC4 算法本身存在致命的漏洞,因此现在已经很少会使用这种加密方式。比较新的无线局域网协议 IEEE 802.11n和 IEE 802.11ac 也不支持 WEP。此外,企业模式也不支持这种加密方式
2.WPA
WPA 是一种对 WEP 进行了改进,并且减少了漏洞的加密方式。这种加密方式是通过在 RC4 中添加一种生成共享密钥并以一定间隔变更密钥的 TKIP(Temporal Key Integrity Protocol,临时密钥完整性协议)的方式来提高安全级别的
但是,由于它是基于 WEP的加密方式,因此也被指出存在漏洞。与 WER 相同IEEE 802.11n和IEEE 802.11ac 也不支持 WPA
3.WPA2
WPA2 是一种更进一步对 WPA 进行了改进的加密方式。两者最大的不同在于,WPA2 采用了 AES(Advanced Bncryption Standard)作为加密算法
AES 是美国政府将其作为政府内部的标准而制定的加密算法,因此安全性也远高于RC4 + TKIP。到目前为止,研究人员还未找到破解它的方法。可以说 WPA2是截至 2020 年最流行的一种加密方式
4.WPA3
WPA3 是进一步对 WPA2 进行了改进的加密方式。WPA3 作为企业模式的加密方式,可以支持比AES 更加安全的CSNA(Commercial National Security Algorithm,商业国家安全算法)。此外,这种加密方式是通过在四次握手中添加名为SAB(Simultaneous Authentication of Bquals,对等身份验证)握手的步骤,或者添加对特定的管理帧进行加密的PMF(Protected Management Frame,受保护的管理帧)的方式来实现更加牢靠的安全级别的
3.2.3无线局域网的类型
无线局域网可以根据热点的运用和管理类型大致分为分散管理型、集中管理型和云管理型3种,网络的构成元素也会随之发生巨大的变化
分散管理型
分散管理型是一种一个一个地设置热点,并对每个热点进行运用和管理的形式
家庭和小型办公室的无线局域网环境一般会采用这种形式。由于分散管理型只需要使用热点就可以构建无线局域网环境因此可以有效地控制成本。而另外,它具有热点的数量越多,运用和管理就会越麻烦的缺点。此外,由于它很难自动适应周围不断变化的无线电波环境,因此需要注意保持洁净的无线电波环境
集中管理型
集中管理型是一种使用名为无线局域网控制器(WLC)的服务器,对很多热点进行运用和管理的形式,常用于中型到大型办公室的无线局域网环境中
采用集中管理型时,即使热点的数量增加,由于可以使用无线局域网控制器集中进行运用和管理,因此运用和管理都不复杂。所有设置和固件更新都可以通过无线局域网控制器完成。此外,无线局域网控制器会通过热点了解每种无线电波的状况,检测无线电波干扰,并根据需要调整信道,以保持洁净的无线电波环境
集中管理型的缺点是初始成本和性能限制。由于必须准备无线局域网控制器,因此无论如何都需要支付前期费用。此外,每台无线局域网控制器可以管理的热点的数量也是有限制的,如果超过该限制,就需要购买新的控制器,此时也需要支付费用
云管理型
云管理型是集中管理型的进阶版本,是一种使用云控制器这种具备无线局域网控制器功能的控制器对热点进行管理的形式
虽然它的前提是需要具备热点与互联网连接的条件,但是由于无须准备无线局域网控制器,同时还可以得到与集中管理型相同的好处,因此是目前流行的一种形式。由于云管理型无须准备无线局域网控制器,因此可以将初始成本控制得很低。此外,无论增加多少热点,也不需要购买更多的设备。但是,由于需要使用云服务,因此存在运行成本高的缺点
3.2.4无线局域网相关的各种功能
访客网络
访客网络就是指为访客提供的无线局域网环境
如果使用访客网络功能,就可以创建只能访问互联网,即无法访问家庭网络的SSID 的网络,并且只需要为访客提供 SSID 和密码即可。最近用于家庭的 WiFi 路由器也具备了这个功能,这种方式已经相当流行
MAC地址过滤
MAC地址过滤就是一种根据终端的MAC 地址进行过滤(允许/拒绝)的功能。需要事先将可以连接的终端的 MAC 地址登记到热点和无线局域网控制器中,并拒绝其他终端的连接。当需要更高的安全级别时,可以与WPA和 WPA2 一起结合使用。由于 MAC 地址过滤的操作简单,容易理解,因此常用于无线局域网的终端较少的应用场景中。但其缺点也不少,不光是对付不了MAC 地址伪装这种操作成本很低的攻击,而且当终端数量增加时,运用和管理也会变得较为复杂
Web认证
Web 认证是一种在 Web 浏览器中输人用户名和密码进行认证的方式,通常与酒店和车站的公共无线局域网以及企业的访客 WiFi的个人模式结合使用
当无线局域网的终端与目标 SSID 进行连接时,Web 浏览器就会启动,跳转至 Web 服务器的登录页面。在页面中输入用户名和密码之后,Web 服务器就会对认证服务器进行认证。此外,由于用户名和密码已经使用HTTPS进行了加密处理因此无须担心被窥视或者被篡改。由于只要有 Web 浏览器就可以进行 Web 认证,因此大部分终端都可以使用这种认证方式
频段转向
频段转向是一种将支持 2.4GHz频段和 5GHz 频段(双频带)的无线局域网的终端引导到难以受到无线电波干扰的5GHz 频段的功能,也可以将其称为频段选择
2.4GHz 频段的信道略有重叠,容易受到无线电波干扰。如果使用频段转向功能,支持双频段的无线局域网终端就可以优先使用像无线电波那样洁净的 5GHz频段,从而保持稳定的通信
双频段的终端会在两个频段发送检测请求。与之相对地,热点则只会使用 5GHz 的天线返回检测答复,让终端选择 5GHz 频段
3.3ARP
在网络世界中,只有两种地址,一种是之前讲解过的 MAC地址,另一种是IP地址
MAC地址是烧制在 NIC 网卡内部的物理地址,在数据链路层中运行;IP地址则是在操作系统(OS)中设置的逻辑地址,在网络层中运行
ARP(Address Resolution Protocol,地址解析协议)就是负责将这两个地址关联起来,起着数据链路层和网络层之间的架桥作用的协议。虽然 ARP 是位于数据链路层和网络层中间(第 2.5 层)的协议,但会将其作为数据链路层的协议进行讲解
当某台终端发送数据时,需要将接收到的来自网络层的IP数据包封装成以太帧,并将其传输到缆线中。但是只是接收了IP数据包,是不足以创建以太帧的,还需要其他信息。发送方 MAC地址已经写入自己的 NIC网卡中,因此是可知的,但是对接收方 MAC地址却一无所知。因此,在实际进行数据通信之前,需要使用 ARP根据接收方IPv4 地址计算出接收方 MAC 地址,这一处理被称为地址解析
3.3.1ARP的数据帧格式
ARP首先是由 RFC 826 ( An Bthermet Address Resolution Protocol or Converting Network Protocol Addresses)确定标准化的,然后在RFC 5227(IPv4 Address Confict Detection)和RFC 5494(IANA AllocationGuidelines for the ARP)中进行了扩展
ARP 在二层首部的类型代码中被定义为0x0806。此外,它可以通过将数据链路层(层2)和网络层(层3)的信息封装在二层载荷中的方式来关联 MAC 地址和IP地址
硬件类型
硬件类型是一个2字节(16 比特)的字段,表示使用的是第二层的协议。它对各种第二层的协议进行了定义,如果是以太网,硬件类型就是 0x0001
协议类型
协议类型是一个2字节(16 比特)的字段,表示使用的是第三层的协议。它对各种第三层的协议进行了定义,如果是 IPv4,协议类型就是 0x0800
硬件地址大小
硬件地址大小是一个以字节为单位来表示硬件地址,即 MAC地址的长度为1字节(8比特)的字段。由于 MAC 地址为6字节(48 比特),因此需要输入6
协议地址大小
协议地址大小是一个以字节为单位来表示网络层使用的地址,即地址的长度为1字节(8 比特)的字段。由于IP地址(IPv4 地址)的长度为4字节(32比特),因此需要输入4
操作码
操作码(OP Code)是一种表示 ARP 帧的种类的2字节(16比特)的字段。虽然定义了很多操作码,但是在实际构建系统的工作场合中经常会看到的代码是表示ARP Request的1和表示 ARP Reply 的2这两种
发送方MAC地址/发送方IPv4地址
发送方 MAC 地址和发送方 IPv4地址是一种表示发送 ARP 终端的 MAC 地址和表示 IPv4 地址的长度可变的字段。它们所表示的就是字面意思,无须太过深入地考虑
目标MAC地址/目标IPv4地址
目标 MAC 地址和目标 PPv4 地址是一种表示需要使用 ARP 进行地址解析的 MAC 地址和表示 Pv4 地址的长度可变的字段。由于一开始是无法知道MAC地址的,因此会设置虚拟的MAC地址(00:00:00:00:00:00)
3.3.2使用ARP进行地址解析的流程
ARP 的操作非常简单,也非常容易理解。在医院里护士会对着在候诊室等待就诊的大家大声地喊“〇〇先生在吗?”,于是就会有人回答“是我!”的场景。ARP 中的“OO先生在吗?”的数据包被称为 ARP Request。ARP Request 会以广播的形式被发送给同一网络中的所有终端。此外,“是我 !”的数据包则被称为 ARP Reply。ARP Reply 会通过 1:1 的单播发送。ARP 只会使用这两个数据包将MAC 地址和 IP 地址关联起来
具体地址解析示例
详细地讲解 ARP 是以什么样的方式将接收方IPv4 地址和接收方 MAC 地址关联起来的。在这里,将假设PC1会对位于同一以太网网络中的PC2的 MAC 地址进行解析,并在此前提下对 ARP的处理进行说明
1.PC1 会通过査看来自网络层的IP数据包中包含的接收方 IPv4 地址来搜索自己的 ARP 表。ARP 表是一个内存中的表,它保存了在一定时间内由 ARP 进行了地址解析的信息。当然,ARP 表一开始是空的。因此,需要继续进行 ARP Request 的处理。
此外,如果 ARP表中已经存在相关信息,可以一口气跳过步骤①~⑤的处理,直接进入步骤⑥的处理。ARP 表可以在减少网络上的 ARP 流量的同时,帮助缩短实际数据通信之前所需的时间
2.PC1为了发送 ARP Request,首先需要组建ARP的各个字段的信息。操作码是表示 ARP Request的 1。发送方 MAC 地址和发送方 IPv4 地址是 PC1 自己的 MAC 地址和 IPv4 地址。
由于当前无法知道目标 MAC 地址,因此就需要使用虚拟的 MAC 地址(00:00:00:00:00:00)。目标 IPv4地址会根据 IPv4 首部中包含的接收方 IPv4 地址而发生变化。如果接收方 IPv4 地址为相同的 IPv4 网络,就可以直接将接收方 IPv4 地址作为目标 IPv4 地址使用;如果接收方 IPv4 地址是不同的 IPv4 网络,那就需要将该网络的出口“下一跳点”作为目标 IPv4地址使用。在本次的示例图中,由于 PC2 在同一个 IPv4 网络中,因此目标地址就直接是 PC2的 IPv4 地址(10.1.1.200)。
然后,需要组建以太网首部。此时,ARP Request 需要使用广播。因此,接收方 MAC 地址就是广播地址(ff:ff:ff:ff:ff:ff),发送方MAC地址则是PC1的MAC地址(00:0c:29:ce:90:e4)
3.ARP Request 会被送往同一以太网网络(VLAN1)中的所有终端。作为地址解析目标的 PC2 会判断出这是发给自己的 ARP 帧,并接收数据;而不是地址解析目标的 PC3 由于会判断出这是与自己无关的 ARP 帧,因此会将数据丢弃;位于不同以太网网络(VLAN2)中的 PC4 则不会收到 ARP 帧
4.PC2 为了回复 ARP Reply,首先需要组建 ARP 各个字段的信息。操作码是表示 ARP Reply 的 2。发送方 MAC 地址和发送方 IPv4 地址是 PC2 自己的 MAC 地址和 IPv4 地址,目标 MAC 地址和目标IPv4 地址则是 PC1的 MAC 地址和 IPv4 地址
然后,需要组建以太网首部。ARP Reply 需要使用单播。因此,接收方MAC 地址就是PC1的MAC地址(00:0c:29:ce:90:e4),发送方MAC地址则是PC2的 MAC地址(00:0c:29:5e:f5:ab )
5.PC1 会通过查看ARP Reply的ARP字段中包含的发送方MAC 地址(00:0c:29:5e:f5:ab)和发送方IPv4 地址(10.1.1.200)来对PC2的MAC 地址进行识别。此外,PC1还会将相关信息登记到 ARP表中,进行临时保存
6.PC1会将经过地址解析的PC2的MAC地址(00:0c:29:5e:f5:ab)放入以太网首部的接收方 MAC 地址中,将 IPv4地址放入 IPv4 首部的接收方 IPv4 地址中,然后开始进行通信
3.3.3ARP的缓存功能
所有的通信都需要从 ARP 开始。只有经过 ARP 处理,知道数据包应当发送给哪一个 MAC 地址,才能开始进行通信。不过,该ARP也存在致命的缺陷,即“需要以广播为前提”
由于一开始是不知道对方的 MAC 地址的,因此使用广播也是一种必然的做法。但是广播是会向同一网络中的所有终端发送数据的低效的通信方式。例如,假设网络中有 1000 台终端,那么广播就会将流量传输给这 1000 台的终端。如果大家在每次通信时都发送 ARP,那么网络就会被 ARP 流量淹没
原本 MAC 地址和 IPv4 地址也是不会经常改变的。因此,ARP 具备了对经过地址解析的内容临时进行保存的缓存功能
ARP 缓存功能的操作如图所示。经过 ARP处理,知道了 MAC 地址之后,就可以将 MAC 地址作为 ARP 表的Entry(数据)添加并保存在表中。终端在保存 Entry 的期间不会发送 ARP。然后,在经过一定时间(超时时间)后,就会删除 Bnty,再次发送 ARP Request。超时时间的长短取决于使用的设备和操作系统
eg:Windows 10 的超时时间是 10 分钟,Cisco 公司生产的设备的超时时间是4小时。当然,这两个时间都是可以进行更改的
3.3.4使用GARP的功能
ARP是一种支持早期阶段的TCP/IP的非常重要的协议。如果卡在ARP这里,后续的通信将无法建立。因此,除了常规的 ARP之外,还存在可以高效实现地址解析的特殊的 ARP,这种ARP 被称为 GARP(Gratuitous ARP, 无故 ARP )
GARP 是一种在 ARP 字段的目标 IPv4 地址中设置了自己的IPv4 地址的特殊的 ARP,常用于 IP 地址的重复检测和相邻设备的表更新中
IPv4地址的重复检测
网络环境设置与其他人IP相同,会显示检测到IP地址冲突
当设置了 IPv4 地址时,操作系统就会发送一个将该 IPv4 地址设置为目标 IPv4 地址的 GARP(ARP Request),并询问所有人“可以使用这个 IPv4 地址吗?”。由于必须向所有人进行询问,因此需要使用广播。此外,如果存在使用该IPv4 地址的终端,就会返回单播的 ARP Reply。接收到 ARP Reply 之后,操作系统就会判断出存在具有相同 IPv4 地址的终端,并显示错误信息;如果没有返回 ARP Reply,就会显示需要设置 IPv4 地址
相邻设备的表更新
这里的表是指 ARP 表和 MAC 地址表。可以使用 GARP 声明“我的 PPv4 地址和 MAC 地址是这个!”并提示需要更新相邻设备的 ARP 表和 MAC 地址表的信息
如果因为某些原因,如设备出现故障等,导致需要更换设备时,设备更换前后的 MAC 地址是不一样的。因此,更换的设备需要在启动后连接网络时发送 GARP,将自己的 MAC 地址已经改变的消息通知大家,来对相邻设备的 ARP 表和 MAC 地址表进行更新。如果是二层交换机和个人电脑这类相邻设备由于可以通过 GARP知道更换后的设备的新的 MAC 地址,因此可以立即开始进行通信
3.4其他二层协议
本段的协议虽然是在数据链路层中运行的,但是它们都是二层交换机和热点无法进行处理的协议,而是路由器和防火墙等上层设备可以处理的协议
3.4.1PPP
PPP(Pointto Point Protocol,点对点协议)是一种使用 1:1 的方式对点和点进行连接的二层协议。该协议由RFC 1661 The Point-to-Point Protocol(PPP)确定标准化。PPP是在终端和终端之间创建一个名为“数据链路”的1:1的逻辑通道,并在其中传输 IP数据包的
PPP 需要结合使用建立、维护和断开链路的LCP(Link Control Protocol,链路控制协议)、进行认证的PAP和CHAP,以及分发IP信息的 NCP(Network Control Protocol,网络控制协议)来创建数据链路
流程:
使用LCP 协商建立数据链路所需要的信息,如认证类型和最大接收数据大小(Maximum ReceiveUnit,MRU)等,然后根据该信息建立数据链路
建立好数据链路之后,设置好认证类型即可进行认证处理。认证时需要使用对PAP或CHAP的认证方式进行定义的认证协议,并在使用LCP 创建的数据链路上进行认证。如果没有设置认证类型,则需要跳过认证,进人步骤③
使用 NCP 通知 IP地址和 DNS 服务器的 IP地址,以便可以在 IP层级进行通信。如果已经准备好了这一步骤,就可以使用 PPP对IP数据包进行封包处理,并通过IP进行通信
可以进行通信之后,就需要使用LCP监视数据链路的状况。PPP服务器每隔一段时间就会发送LCP的 Echo Request,与之相对地,PPP 客户端则会返回 Echo Reply。如果在一定时间内没有返回 Echo Reply,数据链路就会断开(结束)
如果不再使用数据链路,或者链路被管理员断开,LCP就会进入结束链路的处理当中
PAP
在 PAP(Password Authentication Protocol,密码认证协议)中,需要通过 PPP 客户端发送用户ID和密码(Authenticate Request,验证请求),并基于服务器预先设置的用户 ID 和密码进行认证(AuthenticateAck)。虽然操作非常简单易懂,但是由于用户ID 和密码都是以明文(未进行加密处理的字符串)的方式进行传输,如果在中途被他人窥视就会很危险。因此,这种方式现在很少使用,而且已经被CHAP所取代
CHAP
CHAP(Challenge Handshake Authentication Protocol,挑战握手身份认证协议)是一种弥补了 PAP 的安全漏洞,并且进行了升级的协议。可以认为后面将要讲解的PPPoE和L2TP over IPsec 等 PPP 相关协议的认证基本上都需要使用 CHAP。CHAP的认证过程如下
当LCP 建立好数据链路时,服务器会将一个名为“挑战值”的随机字符串传递给客户端。每次认证都需要使用不同的挑战值。服务器会保存挑战值,以便之后进行计算
接收了挑战值的客户端需要使用挑战值、 ID和密码对哈希值进行计算,并将结果和 ID 一起发送回去。哈希值就像是根据某种计算得出的数据的汇总。由于无法从哈希值反向计算出数据,因此即使哈希值被人窥视,他人也无法推导出密码
服务器也需要计算相同的哈希值,如果得到的结果与哈希值相同,就表示认证成功
到目前为止,为了便于理解,着重对 PPP 客户端和 PPP 服务器这两个“出场人物”进行了讲解。在实际环境中,由于需要处理大量的用户信息,因此还需要使用认证服务器。当PPP服务器接收到来自 PPP 客户端的用户名和挑战值时,就会将它们与自己发送的挑战值一起发送给认证服务器。与认证服务器的通信需要使用名为RADIUS(Remote Authentication DialIn User Service,远程身份认证拨号用户服务)的 UDP的认证协议。认证服务器需要根据该信息计算哈希值,如果哈希值相同,就会允许进行连接
3.4.2PPPoE
PPPoE(Point to Point Protocol over Ethernet,以太网上的点对点协议)是一种对 PPP 进行了扩展,使原本用于拨号连接的PPP也可以在以太网网络中使用的协议。它由RFC 2516 A Method for Transmitting PPP over Ethemet(PPPoE)确定标准化,主要用于连接NTT 东日本/西日本提供的互联网连接线路服务FLET'S Hikari Next 中的、被称为 FLET'S 网络(NGN 网)的私域网。WiFi路由器等室内设置的家庭网关(Home Gateway,HGW)需要使用 ONU(Optical Network Unit,光网络单元) 连接NTT的 FLET'S网络,并使用 PPPoE对连接FLET’S网络和各个ISP的网络终端设备(Network Termination Bquipment,NTE)进行连接。网络终端设备会向各个ISP的认证服务器(RADIUS服务器)询问使用PAP/CHAP 接收的用户名和密码,如果认证成功,则可以通过 FLET’S网络和ISP的网络连接互联网
3.4.3IPoE
使用 PPPoE 连接 FLET’S 网络时,存在一个致命的缺陷,那就是在某些时间段和某一时期,网络终端设备的数据包会拥塞(拥挤),从而导致难以连接到互联网
因此重新开发了一种FLET’S的连接方式 IPoE(Internet Protocol over Bthernet )。它无须像 PPPoE 那样使用 PPP 进行封包处理,可以直接使用以太网和IP,因此也可称为本机连接方式。安装在室内的 WiFi路由器(家庭网关)需要使用 ONU 连接NTT的FLET’S网络(NGN网),并使用网关路由器(指连接FLET'S网络和VNE的路由器具有宽带链路,可以处理大数据包)和名为 VNE(Virtual Network Enabler) 的特定的通信运营商的网络与互联网进行连接。由于其不会经由瓶颈的网络终端设备,因此可以保持高速通信。此外,需要使用线路信息进行认证,无须使用用户名和密码
3.3.4PPTP
PPTP(Point to Point Tunneling Protocol,点对点隧道协议)与IPsec相同,是一种在互联网上创建虚拟专用线路(隧道)的VPN 协议。它最初由微软公司、3Com 公司和美国 Ascend 公司共同研发,后来被标准化为 RFC 2637 Point-to-Point Tunneling Protocol(PPTP)
PPTP 在使用 TCP 建立控制连接之后,需要使用 PPP的功能进行认证处理和分配私有IP地址。分配好IP地址之后,需要使用名为 GRE(Generic Routing Encapsulation,通用路由封装)的协议建立数据连接,传输实际的数据。在数据连接中传输的数据包,在使用PPP和 GRE对包含私有IP地址首部的原始IP数据包进行封装后,需要进一步被可以通过互联网传输的、包含全局IP地址的IP首部进行封包处理
3.4.5L2TP
L2TP(Layer 2 Tunneling Protocol,第二层隧道协议)也与IPsec和 PPTP 相同,是一种在互联网中创建虚拟专用线路的协议,由RFC 2661 Layer 2 Tunneling Protocol(L2TP)确定标准化。它结合了前面中的PPTP 和 Cisco 公司为远程访问而开发的L2F(Layer 2Forwarding)。L2TP 在使用PPP 和L2TP对原始的正数据包进行封装后,会进一步使用包含UDP以及全局IP地址的IP首部进行封包处理
L2TP over IPsec
由于使用 RFC 定义的L2TP 不具备加密功能,因此在实际中不会单独使用 L2TP。大多数情况下会将它与具备安全功能的IPsec 结合起来,作为L2TP over IPsec(L2TP/IPsec)使用。它是由RFC 3193 Securing L2TP Using IPsec 确定标准化
L2TP over IPsec 使用L2TP对原始的IP数据包进行封装后,需要使用名为ESP(Encapsulating Security Payload,封装安全负载)的协议进行封装,并一起进行加密处理。此外,认证功能会分两个阶段使用 PPP认证 MS-CHAP和 CHAP,以及 Psec 的认证功能(事先共享密钥认证和证书认证 )
远程办公,在自己家里或者外出时,通过远程访问 VPN以访问办公室进行工作的情况也变多了。L2TP over IPsec 不仅支持 Windows 操作系统和 macOs,还支持iOS 和 Android 操作系统如果大家不想安装第三方 VPN 软件,那么就难免需要选择 L2TP over IPsec