2-L3-网络层-1-day02

2-L3-网络层-1-day02
文章目录一、L3 在分层里的定位二、L3 的四个核心功能1️⃣ 寻址Addressing1.1 IP 地址到底是给设备还是给接口1.2 MAC 地址是干啥的、怎么产生的1.3 为什么 MAC 是扁平的、不分层的2️⃣ 路由Routing1.1 路由器 / L2 交换机分别有几层1.2 路由器的工作流程简化版1.2.1 NAT简单概括1.3 路由表是什么里面有什么3️⃣ 转发Forwarding1.1 路由Routing—— “控制平面算路径”1.2 转发Forwarding—— “数据平面搬包”1.3 关键串联RIB → FIB 的下发关系1.4 补充RIB路由表CPU 侧FIB转发表硬件侧一个数据包从头到尾的处理流程4️⃣ 分片与重组Fragmentation Reassembly补充IP地址简单概括1. IP 地址是干嘛的2. IP 地址有哪些分类维度3. IPv4 结构4. 老分法 A/B/C/D/E有类 Classful5. 子网掩码Subnet Mask是什么干啥用是什么干啥用L3 专有名词表一、L3 在分层里的定位先回到 OSI 七层L7 应用层 HTTP/DNS/SSH L6 表示层 TLS/编码/压缩 L5 会话层 会话管理 L4 传输层 TCP/UDP端口寻址端到端可靠 L3 网络层 IP/ICMP主机到主机跨网络寻址 路由 ← 这里 L2 链路层 MAC/ARP/以太网相邻节点一跳 L1 物理层 比特流L3 要解决的唯一核心问题网络 A 里的一台主机怎么把数据送到网络 B 里的一台主机——中间可能隔了几十个不同技术的网络以太、WiFi、光纤、卫星、蜂窝……L2 管不了这么远L2 只管这一跳L3 才管全程到目的地。 L2 用 MAC 找下一跳设备每跳换一次L3 用 IP 找最终那台主机源 IP / 目的 IP 从头到尾不变。对应 TCP/IP 四层里叫网际层Internet Layer——“网际两个字就是它的使命把多个不同的网络连接成一个互联网络internetwork”互联网Internet就是这么来的。二、L3 的四个核心功能1️⃣ 寻址Addressing给每个网络接口一个逻辑地址IP 地址让它能在全网里被定位。物理地址 vs 逻辑地址MAC 是烧在网卡上的、扁平的、不分层IP 是有层次的结构网络号 主机号路由器才能按网络号聚合路由否则全球 50 亿设备每台上一条路由表项不可能。IPv432 bit点分十进制如203.107.54.123IPv6128 bit冒分十六进制如2408:400a:10:1::1231.1 IP 地址到底是给设备还是给接口严格说是配给网络接口的不是给设备本身的。一台普通手机/电脑只有 1 个接口Wi-Fi 或网口所以看起来像是设备有一个 IP——这是日常语境的简化。但一台路由器每个端口都有一个 IP一台服务器插两张网卡或一张双口卡每个口一个 IP设备本身并没有一个 IP这回事。更准确的说法IP 是接口在某一层网络里的逻辑身份一个接口也可以有多个 IP比如网卡配辅助 IP、容器场景。1.2 MAC 地址是干啥的、怎么产生的MAC 的本职二层数据链路层的下一跳交付标识​ 它只在同一段链路 / 同一个广播域里有意义出了这段过路由器帧头里的 MAC 会被重写源 MAC 变成路由器出接口、目的 MAC 变成下一跳。具体流程你发一个包给8.8.8.8先判断是不是同网段 → 不是 → 交给默认网关但 IP 包不能直接塞进以太帧帧头要填目的 MAC才能发出去于是先ARP​ 查网关 192.168.1.1 的 MAC 是多少 → 拿到aa:bb:cc:dd:ee:01以太帧源 MAC你自己目的 MAC网关里面裹着 IP 包发出去路由器收到后解封装看 IP 头再重新封一个帧发给下一跳此时 MAC 全换了MAC 怎么产生的48 bit 24 bit OUI厂商代号IEEE 分配 24 bit厂商自己编理论上是烧在网卡 ROM 里的全球唯一 ID出厂定死前 24 bit 能看到厂商00:16:3e是 Xenac:de:48是华为…… 现在手机/Wi-Fi 普遍开随机 MAC隐私保护所以烧死全球唯一已经是理论理想实际会变。1.3 为什么 MAC 是扁平的、不分层的MAC 的定位是链路内标识它只需要回答这段线另一端是谁不需要回答它在哪。所以它的 48 bit全部用来做编号没有切出网络号 / 主机号这种层级——这是扁平。对比一下IPMAC长度32 / 128 bit48 bit也有 64结构网络号 主机号可聚合纯编号OUI 只是厂商不是网络路由意义全球可汇总核心路由表只存网络号不能汇总48 bit 全当 ID 用作用范围端到端跨路由器不变一跳一换出网关就终结为什么 MAC 不能像 IP 那样分层来全球路由——可以想象但会崩如果全球用 MAC 路由50 亿设备 50 亿条转发表路由器存不下、查不动IP 的网络号让核心路由器只记10.0.0.0/8这一条就能覆盖 1600 万台主机靠层级聚合活下来MAC 的 OUI 前 24 bit 虽然能看出哪家厂商但厂商 ≠ 网络拓扑没法用来做路由汇总所以分工是这样的IPL3管从哪里来到哪里去带层级能聚合全球路由MACL2管这段链路上谁收扁平编号本地有效路由器就是干拆 MAC → 看 IP → 重新封 MAC这个活的串起来一句话IP 告诉你要去哪座城市哪条街MAC 告诉当前这辆车下一站卸给哪个司机——前者全球可规划路线后者每换一段路就换一次。2️⃣ 路由Routing选路——决定从源到目的走哪条路径。路由器是 L3 的设备核心工作就是收包 → 查路由表 → 从某口转出去路由表来源三种直连、静态手写、动态路由协议OSPF/BGP…1.1 路由器 / L2 交换机分别有几层先纠一个常见误区OSI 七层是模型的完整抽象任何网络设备理论上都涉及多层区别只在于转发时处理到第几层、哪一层是决策核心。主机全七层都走一遍从应用层 HTTP 到物理层电信号路由器常说L3 设备但它物理层(L1)、数据链路层(L2)、网络层(L3) 都要参与——L1 收光电信号L2 解帧验 FCS、剥 MAC 头L3 查 IP路由表然后再重新封 L2 帧从出接口发。所以它工作到 L3不是只有 L3。L2 交换机纯二层最普通的那种主要工作在 L2L1 也要有收发光电信号。它不看 IP只看帧头的 MAC查 MAC 地址表决定从哪个口转出去IP 头对它来说是payload 里的不透明数据。三层交换机本质是交换机 路由器二合一VLAN 内 L2 转发VLAN 间走 L3 路由但硬件转发ASIC比通用路由器快。1.2 路由器的工作流程简化版假设你主机192.168.1.100想访问8.8.8.8网关是192.168.1.1[你主机] ──以太帧── [路由器 eth0] ──?── [路由器 eth1] ──以太帧── [下一跳]路由器每一跳收到包后干的事关键路径L1 收信号​ → 还原成比特流L2 解帧验 FCS坏了就丢剥掉 MAC 头看到里面裹的是 IP 包看 IP 头确认是给路由器的还是过路的目的 IP 是自己 → ICMP/SSH/BGP 控制面不是自己 → 转发面检查 TTL减 1到 0 就丢回 ICMP Time Exceeded校验 IP header checksumv4 才需要查路由表拿目的 IP8.8.8.8去匹配找到下一跳是谁 从哪个出接口走重新封帧出接口如果是以太口 → 新的以太帧头源 MAC 路由器 eth1 的 MAC目的 MAC 下一跳的 MAC这里就是 MAC 每跳一换的地方跟上一轮串上了如果是串口/光纤另说帧格式不一样从出接口发出去 整个过程中IP 头里的源 IP192.168.1.100和目的 IP8.8.8.8全程没变NAT 场景除外变的是外层 MAC。1.2.1NAT简单概括NAT 网络地址转换就是内外网翻译官。作用一句话让一大片私网设备家里/公司192.168.x.x共用一个或几个公网 IP​ 上网外网看不到内网真实 IP。大白话版你家192.168.1.100想访问百度出路由器时被 NAT把源 IP 换成运营商给的公网 IP​1.2.3.4再发出去百度回包给1.2.3.4路由器再查表还回192.168.1.100所以——一整栋楼、一整家公司对外都伪装成那一个公网 IP两个场景内访外SNAT员工上网家用路由器默认就是这个 → 你举的例子 ✓外访内DNAT反过来外网想访问你内网的服务器路由器把公网 IP:端口翻译成内网 IP:端口叫端口映射为啥要有它IPv4 地址不够40 亿早分光了没 NAT 每家每台设备都得有个公网 IP根本不够分——NAT 是 IPv4 能撑到今天的续命药。类比NAT 像公司前台。员工内网寄快递写前台地址公网 IP外面互联网只看到前台不知道哪个员工干的外面寄进来前台按收件人转给对应员工。1.3 路由表是什么里面有什么路由表就是路由器的地图 决策依据——每一条记录回答一个问题要去 X 网络从哪个口出、找谁当下一跳。拿 Linux / 路由器常见的表项字段说不同厂商名字略有差异含义相通Destination Next Hop Interface Metric Protocol 0.0.0.0/0 192.168.1.1 eth0 100 static 192.168.1.0/24 - eth0 0 connected 10.0.0.0/8 10.1.1.254 eth1 10 ospf逐项拆Destination目的网络 掩码这一条管哪个网段比如10.0.0.0/8。匹配时用最长前缀匹配——10.1.2.0/24比10.0.0.0/8更具体就走前者。Next Hop下一跳下一个路由器的 IP或者直接连的话写-/directInterface出接口从哪个口转出去决定了重新封帧时用哪条链路的 L2Metric度量值“代价”用来在同目的多条路由里挑一条。可以是跳数、带宽、延迟、管理员手动设的 preference……越小越优选Protocol / Source来源这条路由哪来的——connected接口直连网段配了 IP 自动生成static管理员手写ip route add ...ospf/bgp/rip动态路由协议算出来的查表逻辑一句话目的 IP 进来 → 拿去跟表里所有 Destination 做网络号 掩码比对 → 能匹配的里面挑最长前缀​ → 再看 Metric 决出唯一一条 → 按 Next Hop Interface 转发。3️⃣ 转发Forwarding执行——把包从入接口搬到出接口重新封装 L2 头下一跳的 MAC 重写。注意术语区分路由 算路径控制平面转发 搬包数据平面。考试/面试常考这俩区别。1. 1 路由Routing—— “控制平面算路径”做什么决定从源到目的下一跳是谁、从哪个口出。谁来干路由器 CPU 上跑的路由进程OSPF/BGP/静态配置/直连发现还有各种路由协议互相交换拓扑。产出物路由表RIB, Routing Information Base——一堆目的网络 → 下一跳 出接口的候选条目可能同一条目的有多条路径不同协议、不同metric还得再筛一轮选出最优那条的放进转发面。特点事件驱动拓扑变了链路 down、邻居掉了、BGP 收到新前缀才重新算可以慢一点算个几十毫秒甚至几秒都没事不影响已经在跑的包跑在 CPU 上逻辑复杂Dijkstra、SPF、BGP 策略匹配……1.2 转发Forwarding—— “数据平面搬包”做什么每个包过来 → 查转发表 → 从对应口扔出去 → 重写 L2 头。就是你上一轮贴的那段描述。谁来干早期是 CPU 软件转发process switching现在是ASIC / FPGA / NPU / 网卡 offload硬件转发追求线速line rate。产出物转发表FIB, Forwarding Information Base——RIB 里最优那条被下发下来的精简版结构对硬件友好TCAM 之类查得快。特点每个包都要走一遍每秒几百万上亿个包必须快动作固定匹配目的 IP → 找下一跳 出接口 → 换 MAC → 发不碰路由协议不思考为啥走这儿只管照表搬类比是导航 vs 开车路由 出门前打开高德算一条北京→上海走京沪高速——这是控制面算路径、处理拓扑变化哪修路了、哪堵了转发 实际上路每到一个岔口看一眼导航嗯走这边踩油门过去——这是数据面重复、机械、要快1.3 关键串联RIB → FIB 的下发关系很多人以为路由器查的就是路由表其实现代路由器是两层路由协议(OSPF/BGP) → 算 → RIB(路由表全候选) ↓ 筛最优 下发 FIB(转发表硬件用) ↓ 每个包查 搬包出去RIB给人/协议看的有show ip route那种完整信息含备份路径、多协议来源FIB给硬件看的只剩最长前缀匹配后的确定下一跳结构压成 Trie / TCAM 能一口吃的样子所以严格说路由维护 RIB转发查 FIB。考试里如果说路由器查路由表转发是简化说法精确说法是控制面算 RIB下发成 FIB数据面查 FIB 转发。1.4补充RIP-被淘汰中动态路由协议距离矢量路由器之间唠嗑互相通告我能到的网段要几跳属于控制面干活产出是往RIB​ 里塞条目。RIBRouting Table路由表全候选路径人/协议能看的那个多种来源直连/静态/RIP/OSPF/BGP共存含备用路径。FIBForwarding Table转发表RIB 里最优那条下发到硬件的精简版每个包查的就是它结构对 ASIC 友好。关系RIP/OSPF/BGP → RIB → 筛最优 → FIB ← 每个包查它转发RIB路由表CPU 侧DestinationNext HopInterfaceMetricProtocol0.0.0.0/0192.168.1.1eth0100static192.168.1.0/24-eth00connected10.0.0.0/810.1.1.254eth110ospf​10.0.0.0/810.2.2.254eth290rip​同目的地10.0.0.0/8有两条OSPF RIPAD 小的 OSPF 赢进 FIB 只留 OSPF 那条。FIB转发表硬件侧DestinationNext HopInterface0.0.0.0/0192.168.1.1eth0192.168.1.0/24直连eth010.0.0.0/810.1.1.254eth1Metric / Protocol / AD 这些决策字段没了只剩去哪 → 从哪出。一个数据包从头到尾的处理流程场景主机192.168.1.100发往10.1.2.50网关192.168.1.1路由器 eth0路由器 eth1 接10.1.1.0/24下一跳10.1.1.254。[主机] ──L2帧(IP:100→50, SMAC:主机, DMAC:网关)── [路由器 eth0]① L1/L2 收帧光电信号 → 比特 → 帧验 FCS 没错剥以太帧头看到内层是 IP 包MAC 的使命在这终结下一跳会重写② 看 IP 头目的 IP10.1.2.50≠ 路由器自己接口 → 走转发不是送控制面TTL 减 1原 64 → 63到 0 就丢 ICMP Time Exceededv4 重算 header checksum③ 查 FIB关键一步不查 RIB10.1.2.50跟 FIB 最长前缀匹配 → 命中10.0.0.0/8下一跳10.1.1.254出接口eth1④ 重新封 L2 头出接口是以太 → 新帧头源 MAC 路由器 eth1 的 MAC目的 MAC 下一跳10.1.1.254的 MAC通过 ARP 表拿到没缓存就先 ARP 问里面的 IP 头源 IP192.168.1.100/ 目的 IP10.1.2.50全程不变无 NAT 前提下⑤ 从 eth1 发出去交给下一跳路由器下一跳收到后重复 ①~⑤直到最后一跳目的网段直连DMAC 改成10.1.2.50本身[路由器 eth1] ──L2帧(IP:100→50, SMAC:eth1, DMAC:10.1.1.254)── [下一跳] RIP/OSPF 这些不参与单包处理——它们早在拓扑没变时就把 RIB 算好、下发 FIB 了。发包那一瞬间 CPU 都可能睡大觉ASIC 自己查 FIB 线速转。4️⃣ 分片与重组Fragmentation Reassembly不同链路层 MTU 不一样以太 1500、WiFi 2304、PPPoE 1492、令牌环可能更大。IP 包如果 出接口 MTUL3 负责切分到终点再拼回。IPv4沿途路由器也能分片终点重组IPv6只有发送端分片中途不分MTU 不够直接丢靠 ICMPv6 通知发送端调小补充IP地址简单概括1. IP 地址是干嘛的L3网络层的逻辑身份证两件正事标识这台接口是谁源 IP定位它属于哪片网网络号路由器才能按网络号聚合、逐级转发2. IP 地址有哪些分类维度按协议版本IPv432 bit/ IPv6128 bitIPv4 老分法有类A / B / C / D / E按首字节高位一刀切IPv4 新分法CIDR 之后按掩码长度任意切废掉 A/B/C 硬边界按公私属性公网 IP / RFC 1918 私网 IP / 特殊保留127、169.254、CGNAT…按通信模式单播 / 组播 / 广播v4/ 任播3. IPv4 结构32 bit 4 字节点分十进制203.107.54.123本质 网络号Network 主机号Host网络号属于哪片网路由器按它聚合主机号这网里第几台关键问题32 bit 从哪切一刀​ → 老分法靠 A/B/C 类新分法靠子网掩码。4. 老分法 A/B/C/D/E有类 Classful1981 年 RFC 790 按首字节最高几位一刀切类首字节高位首字节范围网络号每网主机A0xxx1 – 126​/81677 万B10xx128 – 191​/1665534C110x192 – 223​/24254D1110224 – 239组播—E1111240 – 255保留—注127.x.x.x是环回虽首字节 127 落在 1–126 区间里但不算 A 类可用单独划出来了。口语扫 C 段 扫一个/24里 1–254。5. 子网掩码Subnet Mask是什么干啥用是什么32 bit前面全 1 后面全 0标网络号切在第几位。IP: 203.107.54.123 11001010.01101011.00110110.01111011 掩码: 255.255.255.0 11111111.11111111.11111111.00000000 ↑ 网络号 24bit ↑ 主机号 8bit1 的个数 斜杠数 →255.255.255.0/24核心公式IP 掩码 网络地址干啥用切网络号 / 主机号告诉设备这 32 bit 里前 N bit 是网、后 32-N 是主机判同网段两台 IP 各自 掩码结果一样 → 同网段直连通信不一样 → 交网关废掉 A/B/C 硬边界CIDR/23/26随便切能细分能聚合老 A/B/C 那三档不够用才催生出它的 有类时代没有掩码概念A 默认/8、B/16、C/24暗搓搓定了CIDR 出来后才显式写掩码老设备/考证里还保留 “A 类默认掩码 255.0.0.0” 这种说法。L3 专有名词表类别名词说明协议IP网际协议L3 本体ICMP / ICMPv6诊断与差错NDPIPv6 邻居发现替代 ARP地址IPv4 / IPv632 / 128 bit 逻辑地址CIDR无类编址a.b.c.d/n子网掩码网络号/主机号分界网络地址主机号全 0广播地址主机号全 1IPv4私网地址RFC 1918 三段环回127.0.0.1 / ::1路由路由表目的地→出接口下一跳 的映射最长前缀匹配路由查表规则直连路由接口所在网段静态路由管理员手写动态路由OSPF / BGP / RIP / EIGRP默认路由0.0.0.0/0AS自治系统BGP 里一家机构的单位转发转发数据平面搬包路由控制平面算路径MTUMTU链路层最大帧承载以太 1500PMTUD路径 MTU 发现其他TTL防环路每跳-1协议号IP 头里指上层是谁Anycast同 IP 多节点路由就近送