目录
3.1 引言
3.2 以太网
3.3 全双工 省点 自动协商 流量控制
3.4 网桥和交换机
3.5 WiFi
3.6 PPP协议
3.6.1 PPP协议流程
3.7 环回
3.8 MTU和路径MTU
3.9 隧道基础
3.9.1 GRE
3.9.2 PPTP
3.9.3 L2TP
3.10 与链路层相关的攻击
3.11 总结
3.1 引言
城域网(Metropolitan Area Network,MAN):ISP有线电视,DSL。
3.2 以太网
MTU值计算不包含以太网头。
两种以太网标准:
Ethernet II:
DIX(DEC Inter Xerox)开发的,大多以太网数据包是该标准。
使用场景:用于较为简单网络环境,如家庭网络、小型网络。
IEEE 802.3:
IEEE在Ethernet II基础上修改为IEEE 802.3。
使用场景:用于更严格的网络环境,如企业网络、数据中心等高可靠性和灵活性场景。
早期10Mb/s以太网,即共享以太网,需检测碰撞CSMA/CD,介质是电缆。
20世纪90年代初,10Mb/s共享电缆被双绞线10BASE-T代替,共享线路被专用星型拓扑代替,即以太网交换机。
有了交换机就不需要CSMA/CD了,而是全双工工作。
链路层分为:
逻辑链路控制LLC层:
作用:错误检测和流量控制等功能。
不同链路层都通用。
介质访问控制MAC层:
作用:地址分配、帧封装和解封装。
不同链路层各自实现。
IEEE802.3以太网是异步的,帧格式如下:
前导:7字节,同步,确定一个帧到达时间。
帧开始符SFD:1字节,恢复时钟
长度/类型:
值大于1536,表示类型(即网络层协议,常见)
值不大于1500,表示长度。
Q标签帧:包含802.1p/q,属于信封帧,但信封帧不一定是Q标签帧。
FCS采用CRC算法。
最小以太网帧64B, 其中负荷最小48B。
最大以太网帧1518B, 其中负荷最大1500B=MTU。
千兆交换机可用非标准的巨型帧,高达9000B,但和传统以太网设备不兼容。
802.1Q = VLAN
vconfig命令: 添加或删除虚拟接口,设置802.1p优先级。
vconfig add eth1 2:会生成eth1.2接口。
802.1AX:以前的802.3ad 链路聚合 : 802.1AX定义LACP链路聚合控制协议,交换机,主机均可支持
多个网口绑定聚合,可提高性能和可靠性。
Linux实现:
modprobe bonding
ifconfig bond0 10.0.0.111 netmask 255.255.255.128
ifenslave bond0 eth0 wlan0
ifconfig bond0显示有MASTER标志,而eth0和wlan0有SLAVE标志,bond0默认使用第一个从设备MAC。
加载bonding驱动参数指定了聚合接口发送数据的模式(模式有:循环交付,备份,源目MAC异或选择接口,全复制,负载均衡等)。
LACP:通过LACPDU确定链路成员。
当网络设备间支持LACP协议时,Bonding驱动可以通过LACP协议进行链路聚合。
3.3 全双工 省点 自动协商 流量控制
ethtool工具可查看双工。
802.3u:自动协商,在物理层通过信号发送,不影响数据收发。
ethtool -s eth0 wol umgb
wol:局域网唤醒功能,可省电。
umgb含义:
指明 可触发唤醒的动作:物理层活动p, 单播帧u,组播帧m,广播帧b,ARP a,魔术分组帧g
Linux命令wol 00:08:74:93:c8:3c:
向MAC为00:08:74:93:c8:3c的设备发送WOL魔术包。唤醒设备。
PAUSE帧:
一种链路层流量控制,802.3x定义,以太网type=0x8808,目的MAC总是01:80:C2:00:00:01,表明发送方暂停多久再次发送。PAUSE帧是唯一一种使用MAC控制帧的帧类型,有副作用,目前使用少。
3.4 网桥和交换机
IEEE802.1d 生成树协议
Windows可以像Linux一样桥接多个网口。
Linux实现桥接方法:
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
brctl showmacs br0 查看网桥的MAC地址表,信息包括: port no MAC aging timer,该表老化时间默认5分钟
生成树协议(Spanning Tree Protocol,STP):通过禁止或阻塞一些交换机端口,创建一个无环路的网络拓扑。
STP端口状态:阻塞,侦听,学习,转发,禁用。
根端口:指向根网桥的端口。
指定端口:处于转发的端口,与根路径成本最小的端口
备用端口:不处于转发,路径成本更高。
备份端口:接管失效的指定端口。
STP被快速生成树协议RSTP代替,收敛速度更快。
BPDU= Bridge PDU,BPDU固定组播目的MAC:01:80:C2:00:00:00
STP相关命令:
brctl stp br0 on
brctl showstp br0 可查看br0桥的bridge id
如上图bridge id = 优先级.MAC=标识符
如上图bridge id格式是:优先级.MAC,bridge id是桥设备的标识符。
STP工作流程:
1. 选择根桥:根桥是网络中转点,所有数据包都通过根桥转发。交换机比较彼此bridge id,最终选择最小bridge id的交换机为根桥。
2. 计算最短路径:一旦根桥被选定,每个交换机都计算到根桥的最短路径,这通常是通过比较各个端口收到的BPDU的路径代价完成的。路径代价根据链路带宽计算的,带宽低的链路具有较高路径代价。
3. 选择设计端口(Designated Port):交换机选择连接着最短路径的端口作为设计端口,这些端口用于将数据包发送到根桥。
4. 禁用冗余路径:每个交换机中,除了根据最短路径选择的设计端口外,其他端口都会被禁用或阻塞。从而避免网络中的环路。
5. 监测拓扑变化: STP监测链路故障或拓扑结构改变。当拓扑变化时,重新计算路径。
6. 收敛: STP确保网络在收敛时间内从一个拓扑状态转换到另一个拓扑状态,以确保网络拓扑稳定可靠。
RSTP(Rapid STP):监视每个端口状态,在故障时主动发送一个拓扑变化通知。端口状态由5个减少为3个 (丢弃,学习,转发)
MSTP(Multi-STP):多生成树,为每个VLAN生成一个树。
3.5 WiFi
Infrastructure Mode:
即基础设施模式。
Infrastructure Mode中,所有无线客户端都连接到一个或多个AP上,而AP则连接到有线网络上。
BSS(基本服务集) = AP+STAs。
AP间通过有线分布式服务DS形成ESS(拓展服务集)。
Ad hoc(自组织模式)
无AP无DS,而是P2P,是mesh前身。
IBSS(Independent Basic Service Set,独立基本服务集)= Ad hoc网络 + STA。
SSID:服务集标识符
ESSID:拓展服务集标识符
WiFi共有三种802.11 帧类型:
1. 管理帧:
Beacon,Probe Request/Response,Association Request/Response,
Reassociation,Disassociation,Authentication
2. 控制帧
RTS(Request to Send)帧:
CTS(Clear to Send)帧: RTS帧的响应
Block ACK、ACK
PS-Poll:设备唤醒时,可发送PS-Poll帧以获取待接收数据
3. 数据帧
iwlist wlan0 scan:用于扫描周围WiFi。
iwconfig wlan0 rts 250:当要发送数据帧长度大于250B时,设备将使用RTS/CTS机制来发送数据。
数据帧可分片或聚合。
通过设置很高的分片阈值,从而不使用分片。
iwconfig wlan0 frag 1500:设置分片阈值。
802.11n 帧聚合: A-MSDU A-MPDU
A-MSDU A-MPDU区别如图所示:
省电模式:PSM
APSD(Automatic Power Save Delivery):旨在延长无线设备的电池寿命。
传统Wi-Fi中,设备空闲时仍需保持与AP的连接以接收任何传入数据。这种持续的连接会导致设备电池消耗较快。
APSD允许无线设备在不需要时进入低功耗模式。
APSD实现:
TIM:AP周期向STA发送Traffic Indication Map(TIM),其中包含是否有待传数据的通知。设备收到TIM后,决定是否进入低功耗模式。
Trigger帧: 当AP有数据要发送给设备时,先发送一个Trigger帧,通知设备有数据待接收。设备在收到Trigger帧后,退出低功耗模式并与AP建立连接,以接收数据。
几种WiFi MAC(媒体访问控制)协议:
PCF(点协调功能):使用少
DCF(分布式协调功能):强制实现
HCF(混合协调功能):PCF和DCF的混合形式
DCF:
采用CSMA/CA,发送数据前,检测信道是否占用,若空闲则发送,否则随机等待一段时间再尝试发送。 是Wi-Fi中最常见的访问机制,适用于大多数无线局域网环境。
PCF:
通过由AP控制发送帧的机会,允许AP一定程度上优先访问无线介质,从而提供了一定QoS。
HCF:
允许AP在需要时通过PCF来控制媒体访问,同时仍然允许STA使用DCF来进行分布式访问。
分布式帧间间隔(Distributed Inter-Frame Space,DIFS):
WiFi用于碰撞检测的时间间隔,实现CSMA/CA(冲突避免)。
NAV网络分配向量计数器:NAV用于指示设备必须等待的时间间隔,
作用:避免冲突,隐藏节点问题。
CCA:检测信道是否空闲。
NAV:指示设备在接收到帧后的等待时间间隔。
DIFS:是两个数据帧之间必须等待的时间间隔。
WiFi三种加密方式:
WEP(RC4加密算法)
WPA(TKIP协议:RC4加密算法+更长IV+MIC哈希完整性保护)
WAP2(AES加密算法+CCMP完整性保护)
1. WEP工作原理:
初始化向量(IV): 设备生成随机初始化向量(IV)。IV是一个短随机数,通常与WEP密钥一起使用。
加密过程: 发送方使用WEP密钥和IV加密传输数据。数据先被分割成固定大小数据包,然后对每个数据包应用加密算法(通常是RC4),加密数据。
解密过程: 接收方使用相同WEP密钥和IV来解密数据包。
WEP为什么不安全?
同一AP,所有STA使用相同的密钥加解密数据。
密钥短。
IV生成不是真正随机生成。
没有数据完整性保护机制。
2. WPA(Wi-Fi Protected Access)
取代WEP,提供更强大加密和认证机制。
使用TKIP(Temporal Key Integrity Protocol,临时密钥完整性协议)对数据加密。
WPA支持动态密钥更新。
WPA通过使用MIC(Message Integrity Code,消息完整性代码),进行完整性保护,防止数据被篡改。
TKIP:
从预共享密钥(PSK)中派生出一个临时密钥,来加密数据。
依然使用RC4流密码算法,但使用更长的初始化向量(IV),以及对密钥进行更多次混合和扩展。
引入MIC进行完整性保护。
定期更换密钥、动态密钥生成和密钥混合等。
3. WPA2
WPA2加密套件是AES-CCMP,这表示数据加密使用AES对称加密算法,完整性保护则使用CCMP协议。
使用4-Way Handshake协议进行密钥交换和管理
CCMP是一种数据加密和完整性保护的协议,它基于AES算法。
PSK:计算生成的密钥,用于加密数据。
AP会将PSK密钥分发给STA。
EAPOL:用于在WiFi中传输EAP消息的协议,从而进行用户认证和密钥协商。
802.1X:提供了认证框架,用于在网络接入时对用户进行身份验证和授权。
在WiFi中,802.1X通常与EAP协议结合使用,以提供认证和密钥管理功能。
802.11s:mesh
3.6 PPP协议
PPP最初设计用于替代SLIP,可封装多协议如TCP/IP、IPX等。
PPP:点对点协议,在串行链路上传输IP报文,被DSL ISP部署。
PPP协议组成:
LCP,PAP/CHAP,NCP
PPP无需处理链路共享资源竞争问题,即无需CSMA/CD等。
LCP:基于HDLC报文格式(是位级别帧,即使用位填充)
HDLC:高级链路控制,一种数据链路层协议
PPP即可是同步,也可是异步,具体取决于物理介质和传输方式。
同步链路:
基于时钟信号传输数据
使用传输介质为同轴电缆、光纤等。传输速率通常较高。
异步链路:
基于起始位和停止位的异步传输。
使用传输介质为电话线、RS-232串口等,数据传输速率通常较低。
位填充:
若帧中出现0x7E,则用两个0x7D5E替换。
若帧中出现0x7D,则接收方用0x7D5D替换。
标志:0x7E,帧开始,结束。
地址:0xFF,哪个站处理。
控制:0x03,帧序列和重传行为。
协议:
LCP (可配置BCP桥接控制协议)
PAP,CHAP
NCP
地址和控制字段在PPP是常数,可通过ACFC压缩选项来省略。
协议字段可通过PFC (协议字段压缩)选项协商,压缩为1字节。
LCP操作
标识:序列号,递增。
代码:配置请求,配置ACK,配置NACK,配置REJECT,终止ACK,回送请求,回送应答,协议REJECT,代码REJECT。
长度:小于链路MRU。
广域网数据链路层的协议HDLC,已被PPP取代,PPP可同步传输也可异步传输,而HDLC只能用在同步网上。
LCP协商哪些参数:
MRU最大接收单元:默认1500B。
认证方式: PAP还是CHAP。
协商magic:用于检测环路。如有相同则有环路。
异步控制字符映射选项:哪些控制字符需要被转义。
链路质量报告LQR:报告频率,报告内容,报告方式(PPP扩展字段或独立的LCP消息)。
PPPMux:多协议载荷的聚合帧。
以太帧中没有认证字段,使用以太网方式无法接入互联网,所以以太网和PPP结合,形成PPPoE。
多WAN链路可提高网络带宽、冗余备份,负载均衡。
常见多WAN链路聚合方式:
1. LACP(Link Aggregation Control Protocol):将多个物理连接聚合成一个逻辑连接。在交换机和路由器上使用。
2. MLPPP(Multilink Point-to-Point Protocol):聚合多个PPP物理链路。通常PPPoE上使用
3. SD-WAN:可集中管理多个WAN链路,并根据实时网络状况动态调整分流策略。
4. Policy-Based Routing:策略路由实现多WAN链路分流。
MP:多链路PPP,通过LACP协议将多个PPP链路聚合成一条链路。
典型方法:PPP分组轮流在各个成员链路上传输。
复杂方法: 带宽分配协议,带宽分配控制协议,可以基于源IP、目标IP、协议等策略路由实现流量分流和负载均衡。
压缩控制协议CCP:
PPP较慢,分为:modem硬件压缩,协议头部压缩。
MPPE:微软点对点加密。
两种PPP认证:
PAP:1. 客户端发送用户名和密码明文。2. 服务器与存储匹配,判断是否认证成功。
CHAP:1. 服务器发送随机挑战字符串。2. 客户端加密挑战字符串,发送回服务器。3. 服务器解密并比较。
EAP认证框架
网络控制协议NCP
IPv4
IPv6
头部压缩
TCP/UDP头压缩
IP头压缩
鲁棒性头部压缩ROHC:减小IP和UDP/TCP协议头大小。使用场景:VoIP,移动通信,拥塞网络。
MPPE:微软点对点加密,用来加密PPP,已有更安全的加密协议替代MPPE。
MPPC:微软点对点压缩
3.6.1 PPP协议流程
PPP分为三部分:
LCP:约定封装格式,MTU协商,认证方式、压缩算法,链路监测和维护(LCP Echo-Request)等。
认证:非强制部分(PAP或CHAP)
NCP:IP分配
LCP报文分为三类:
建立和配置链路:(Configure-Request, Configure-Ack,Configure-Nak,Configure-Reject)
终止链路:(Terminate-Request,Terminate-Ack)
管理和维护链路:(Code-Reject,Protocol-Reject,Echo-Request,Echo-Reply,Discard-Request)
LCP报文包含code字段,表明LCP报文类型。
3.7 环回
作用:检测协议栈是否正常工作。
IP4:127.0.0.1/8
IPv6:::1/128
3.8 MTU和路径MTU
以太网有效负荷最大字节为1500=MTU,IP数据报大于MTU则分片。
路径MTU: PMTU,整条网络路径最小MTU,当路径中链路故障,路由器故障,路径MTU可能改变。
PMTUD:路径MTU发现。
PMTUD实现方法:
ICMP探测:当收到报文大于MTU且IP头设置禁止分片,则发送ICMP分片必须禁止的错误消息,通知发送方报文不超过某个特定值。发送端据此逐渐降低包大小,直到找到适合PMTU。
TCP MSS选项:TCP握手时通过TCP的MSS 选项告知对端其所支持的最大TCP段大小。
3.9 隧道基础
只能高层携带低层或同等层数据:
IPv6携带IPv4
UDP携带以太网
IPv6携带以太网
IPv4携带以太网
GRE (取代IP in IP)
PPTP (微软)
L2TP (常结合IPsec)
ip命令可以配置任意合理的隧道组合。
报文源IP地址在网络中默认不会更改,但NAT,代理服务器,负载均衡器等例外。
3.9.1 GRE
GRE报文格式:
C: 是否存在校验和
K: 是否存在密钥
S: 是否存在序列号
GRE解决的问题:
跨Internet的私网互通:私网中使用的是私有地址,而在Internet传输的报文须使用公网地址。
跨Internet的异种网络互通:IP与IPX网络无法通信。
使用场景:
ISP间,企业总部和分部之间。通常没有必要IPsec加密,没有客户端服务器,类似对等。
封装格式:
以太网 IP头 GRE头 IP头 IP报文
3.9.2 PPTP
使用场景:
用户和ISP,用户与企业总部间,需要加密(MPPE)。
PPTP头部如下:
R: Recur回溯。
PPTP实现需要:pppd进程,pptpd进程。
3.9.3 L2TP
L2TP (常结合IPsec)更安全。