VLAN间通信与DHCP接口地址池:三层交换机配置实验指南

VLAN间通信与DHCP接口地址池:三层交换机配置实验指南 在园区网、企业办公网和校园网项目中交换机划分 VLAN 之后的两个高频需求恰恰是让不同 VLAN 之间能通信并让终端设备自动获取 IP 地址。VLAN 间通信和 DHCP 基于接口地址池方式配置实验正好把这两个需求放在同一个实验里落地通过三层交换机上的 VLANIF 接口作为网关完成 VLAN 10 和 VLAN 20 的三层互通再在 VLANIF 接口上启用 DHCP 接口地址池让两个网段的 PC 分别自动获取地址。这个实验适合刚学完 VLAN 基础、准备接触三层交换和 DHCP 的初学者也适合需要快速验证交换机功能差异的运维人员。读完并做完这套配置你会理解 VLANIF 为什么能承担网关、接口地址池与全局地址池有什么区别、Trunk 链路在跨交换机场景下如何放行 VLAN以及 DHCP 拿不到地址时该按什么顺序排查。1. 先理清问题VLAN 隔离了二层为什么还要让它们通信1.1 VLAN 隔离的是广播域不是业务需求VLAN 的核心作用是隔离广播域。默认情况下交换机所有接口都在 VLAN 1 中广播帧会被转发到所有接口划分 VLAN 之后广播帧只会在同一个 VLAN 内转发不同 VLAN 之间的二层帧天然无法互通。这个隔离带来了安全和抑制广播风暴的好处但业务上往往又要求财务、办公、服务器这些不同 VLAN 之间能够受控地互访。于是问题变成了两个 VLAN 的数据包怎么跨过二层边界完成通信。答案是在三层上打通。不同 VLAN 本质上是两个不同的二层网段要让它们通信必须走三层路由。实现三层路由的常见方式有三层交换机 VLANIF、路由器单臂路由子接口、以及交换机的三层路由口。其中 VLANIF 是三层交换机上最常用的方案因为它直接建立在 VLAN 之上配置直观性能也远高于外挂路由器子接口。1.2 三层转发是 VLAN 间通信的前提当 PC1 处在 VLAN 10PC2 处在 VLAN 20PC1 要访问 PC2 时PC1 发现目的地址不在自己的网段内会先把报文交给自己的网关。这个网关就是交换机上 VLAN 10 对应的三层逻辑接口 VLANIF10。交换机收到 VLAN10 的报文后剥离二层帧头根据目的 IP 查找路由表发现 192.168.20.0/24 直连在自己的 VLANIF20 上于是重新封装成 VLAN20 的二层帧从对应接口转发出去。整个过程是“入接口打 VLAN 标签 - 三层路由决策 - 出接口重新封装”。理解这一流程的关键点在于VLANIF 既是终端网段的网关也是一个三层路由接口。只要每个 VLAN 都有一个 VLANIF并且终端把网关指向 VLANIF 地址VLAN 间就能路由。实验中要验证的正是这条三层通路是否通畅。1.3 为什么用 VLANIF 而不是单臂路由单臂路由的经典做法是在路由器上启用子接口如 GigabitEthernet0/0/1.10、GigabitEthernet0/0/1.20让路由器通过一个物理接口终结多个 VLAN 的流量。这种方案适合设备数量少、没有三层交换机的环境。三层交换机上的 VLANIF 则直接把路由能力放进交换机内部数据包在交换机内部完成三层转发不需要绕到外部路由器转发效率和可靠性都更高也更符合现网的中小型园区组网习惯。所以这个实验采用两台华为模拟器交换机一台作为接入交换机负责划分 VLAN一台作为核心三层交换机提供网关和 DHCP 服务既覆盖了 VLAN 基础配置又覆盖了三层通信和接口地址池配置。2. DHCP 接口地址池适合实验也最容易理解2.1 接口地址池与全局地址池的区别DHCP 服务在交换机上有两种典型实现方式全局地址池和接口地址池。全局地址池在系统视图下创建需要用network命令指定网段和掩码然后在接口下引用地址池与接口之间是“手动关联”的关系。接口地址池则不需要单独创建地址池直接在三层接口下执行dhcp select interface交换机会根据该接口的 IP 地址自动计算网段并在这个网段内分配地址。接口地址池的最大优点是配置量小、不易写错。接口 IP 是 192.168.10.254/24接口地址池的分配网段自动就是 192.168.10.0/24网关和 DNS 也都能在接口下直接下发。缺点是比较难做复杂的自定义例如跨网段分配、特定 Option 下发、地址池复用等。真机生产环境更常见的是全局地址池或独立 DHCP 服务器。2.2 为什么这个实验使用接口地址池在实验场景中接口地址池更适合入门。PC1 属于 VLAN 10数据包进入核心交换机时最终交给 VLANIF10那么直接在 VLANIF10 下启用接口地址池含义非常直白谁从这个 VLAN 进来就从对应接口的地址池里拿地址。不需要先创建一个系统视图下的地址池再回去接口下引用对初学 DHCP 的人来说少绕了一层弯。接口地址池也适合用来理解 DHCP 报文从 PC 发到交换机、交换机按接口选择地址池、再把配置参数回给 PC 的完整过程。等把这个过程理解透了再切换到全局地址池、DHCP 中继、独立 DHCP 服务器都不会有理解障碍。2.3 地址分配四步Discover、Offer、Request、ACKDHCP 客户端拿到地址之前会经历四个报文交互阶段。PC 接入网络后会发送 DHCP Discover 广播报文寻找 DHCP 服务器收到 Discover 的服务器会回应 DHCP Offer 报文携带候选 IP 和其他参数PC 如果接受这个 Offer会发送 DHCP Request 确认请求服务器最终回复 DHCP ACK 确认分配结果。这个过程中广播报文会在 VLAN 内转发这是为什么 DHCP 基于接口地址池工作时PC 和服务器交换机必须处在同一个二层广播域内或者中间链路必须能够转发对应 VLAN 的广播帧。实验里两台 PC 分别属于 VLAN 10 和 VLAN 20DHCP Discover 会分别在各自 VLAN 内广播经过接入交换机的 Trunk 口到核心交换机再由核心交换机上对应的 VLANIF 接口响应。Trunk 如果放行 VLAN 失败DHCP 报文就过不去这也是后面排查时要优先检查的点。3. 搭建实验拓扑并规划地址3.1 拓扑结构与设备选择实验使用华为 eNSP 模拟器设备选择如下LS1核心三层交换机型号选择 S5700负责 VLANIF、三层路由和 DHCP。LS2接入交换机型号选择 S5700负责 VLAN 划分和 Trunk 上联。PC1接 LS2 的 GE0/0/2属于 VLAN 10。PC2接 LS2 的 GE0/0/3属于 VLAN 20。LS1 的 GE0/0/1 与 LS2 的 GE0/0/1 互联链路类型为 Trunk。两台交换机之间的链路使用 Trunk是因为 Trunk 要承载 VLAN 10 和 VLAN 20 两个 VLAN 的流量。接入交换机下联 PC 的接口用 Access因为每个 PC 只需要属于一个固定 VLAN。3.2 地址与 VLAN 规划表配置前先把地址规划写清楚后续排查时会有明确依据。对象VLAN网段网关接口/用途PC110192.168.10.0/24192.168.10.254LS2 GE0/0/2DHCP 获取PC220192.168.20.0/24192.168.20.254LS2 GE0/0/3DHCP 获取VLANIF1010192.168.10.254/24-LS1 三层接口兼网关VLANIF2020192.168.20.254/24-LS1 三层接口兼网关LS1-LS2 互联10,20--两台交换机各自 GE0/0/1TrunkDNS 地址在实验里可以填写运营商公共 DNS 的常见值也可填写网关地址。不同网络环境需要的 DNS 不同重点是让 PC 能通过 DHCP 拿到可用的 DNS 参数。课程实验如果想避免外部网络干扰把 DNS 填成网关地址也能验证“PC 获取到完整 IP 配置”这一结果。3.3 实验前置准备与模拟器版本说明开始配置前先确认两点。第一eNSP 中的 S5700 设备已经启动PC 处于开机状态所有连线正常。第二不同 eNSP 版本对应的 VRP 版本有差异个别命令可能在老版本模拟器上不识别例如接口编号、dhcp server dns-list的参数位置。如果输入命令后报错优先检查版本再检查命令拼写。模拟器环境的优势是可以随意配置、重置和重来但也要养成和真机一致的操作习惯。配置完成后先display current-configuration检查再执行save保存配置文件避免模拟器重启后配置丢失。4. 配置交换机基础 VLAN 和 Trunk 链路4.1 接入交换机 LS2创建 VLAN 和 Access 接口先配置 LS2。进入系统视图后批量创建 VLAN 10 和 VLAN 20然后进入下联接口 GE0/0/2 和 GE0/0/3把接口类型设置为 Access 并指定默认 VLAN。system-view sysname LS2 vlan batch 10 20 interface GigabitEthernet0/0/2 port link-type access port default vlan 10 quit interface GigabitEthernet0/0/3 port link-type access port default vlan 20 quitAccess 接口收到的无标签帧会进入接口的默认 VLAN交换机会给这个帧打上对应的 VLAN 标签。PC1 发出的广播帧最后会以 VLAN 10 的标签在交换机内部转发PC2 的流量则进入 VLAN 20。这样就完成了基础 VLAN 划分。这里要注意 Access 和 Trunk 的职责差异。接终端设备用 Access因为终端通常只属于一个 VLAN不需要在一条链路上携带多个 VLAN 的标签。两台交换机之间需要同时传 VLAN 10 和 VLAN 20所以必须用 Trunk。4.2 Trunk 链路放行 VLAN 并保持两端一致在 LS2 的上联接口 GE0/0/1 配置 Trunk类型为 Trunk 后必须放行 VLAN 10 和 VLAN 20否则这两个 VLAN 的帧无法通过这条链路到达核心交换机。interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 quit saveTrunk 链路两端都要配置一致。LS1 的 GE0/0/1 也要是 Trunk并且放行相同的 VLAN。现实中如果两端 Trunk 放行不一致会出现某个 VLAN 单向不通或无法获取 IP 的情况。PVID 默认保持 1 即可不需要特意修改只有在需要让不带标签的帧进入非 VLAN 1 时才考虑修改 PVID例如搜索词里常见的port trunk pvid vlan 10这个命令会改变 Trunk 口对无标签帧的默认 VLAN使用前必须确认链路两端的 PVID 一致否则会导致 VLAN 标签错乱。4.3 配置核心交换机 LS1 的 Trunk 和基础 VLANLS1 同样创建 VLAN 10 和 VLAN 20并在 GE0/0/1 上配置 Trunk 放行。system-view sysname LS1 vlan batch 10 20 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 quit配置完后可以查看 VLAN 内接口状态。display vlan能看到每个 VLAN 包含哪些接口display port vlan能更清楚地看到每个接口的链路类型、PVID 和允许通过的 VLAN。这个阶段先确认 Trunk 放行是否生效再进入下一层配置。注意如果 PC 始终无法获取 IP先回到这一步检查 Trunk。很多 DHCP 故障不是地址池配置错而是二层链路没有把对应 VLAN 的广播报文送达到服务器。5. 配置 VLANIF 实现 VLAN 间三层通信5.1 VLANIF 为什么能同时承担网关和路由功能VLANIF 是三层交换机上基于 VLAN 创建的三层逻辑接口。交换芯片会把某个 VLAN 内收到的数据帧交给这个逻辑接口处理三层路由模块再根据目的 IP 查找路由表。对终端来说VLANIF 地址就是网关地址对交换机来说VLANIF 就是直连路由条目。在 eNSP 的 S5700 上只要 VLAN 内存在物理接口且接口状态为 UpVLANIF 就会 Up。VLANIF 的 IP 地址可以直接作为该网段的网关下发给终端不需要额外配置任何路由协议因为交换机对于直连网段会自动生成直连路由。5.2 在核心交换机上创建 VLANIF 并设置网关地址在 LS1 上配置两个 VLANIF 接口。VLANIF10 的地址是 192.168.10.254掩码 255.255.255.0VLANIF20 的地址是 192.168.20.254掩码 255.255.255.0。interface Vlanif10 ip address 192.168.10.254 255.255.255.0 quit interface Vlanif20 ip address 192.168.20.254 255.255.255.0 quit这里有两个容易错的地方。第一VLANIF 对应的是 VLAN 编号不是物理接口。VLANIF10 必须建立在 VLAN10 存在的基础上。第二VLANIF 地址必须是该网段的网关掩码要和规划一致。如果掩码写错成 255.255.255.128交换机会认为自己管理的网段只有 192.168.10.0/25DHCP 分配地址时也会受到影响。5.3 用直连路由理解 VLAN 间通信路径配置完成后LS1 上会存在两条直连路由192.168.10.0/24 出接口是 Vlanif10192.168.20.0/24 出接口是 Vlanif20。PC1 访问 PC2 时PC1 先把包发给网关 192.168.10.254LS1 查路由表后把包从 Vlanif20 转发出去再交给 VLAN20 内的 PC2。这一过程在交换机内部完成不需要外部路由器参与。验证时可以先在交换机上看display ip routing-table确认两条直连路由已经存在。之后 PC 配置好 IP 后能 ping 通对端 PC就说明 VLAN 间三层通信已经打通。如果只通网关但不通对端重点检查 VLANIF 配置和 PC 网关参数。6. 配置 DHCP 接口地址池6.1 全局开启 DHCP 服务华为交换机上即使接口配置了dhcp select interface也必须先全局启用 DHCP 服务否则接口不会响应 PC 的 DHCP 请求。这是一种常见的“配置了但没生效”原因。dhcp enable执行后可以用display dhcp status查看全局 DHCP 状态。这里要注意dhcp enable必须在系统视图下执行不在某个接口下执行。6.2 在 VLANIF 接口下启用接口地址池全局启用后分别进入 Vlanif10 和 Vlanif20执行dhcp select interface启动接口地址池并下发 DNS 和租期参数。interface Vlanif10 dhcp select interface dhcp server dns-list 223.5.5.5 dhcp server lease day 1 quit interface Vlanif20 dhcp select interface dhcp server dns-list 223.5.5.5 dhcp server lease day 1 quit savedhcp select interface的意思很明确该接口的 IP 是 192.168.10.254/24那么地址池网段自动按 192.168.10.0/24 分配。PC 的请求落到哪个 VLANIF就从哪个接口地址池分配地址两者天然对应。dhcp server dns-list可以给客户端指定 DNS。dhcp server lease day 1表示租期为 1 天实际环境可以按业务需要调整。部分 VRP 版本下dhcp server dns-list可能不支持或命令位置有差异如果报错可以先去掉这一条只保留dhcp select interface验证基本分配再根据版本手册补齐 DNS 配置。6.3 完整配置汇总与查看方式最终 LS1 的核心配置如下system-view sysname LS1 vlan batch 10 20 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 quit dhcp enable interface Vlanif10 ip address 192.168.10.254 255.255.255.0 dhcp select interface dhcp server dns-list 223.5.5.5 quit interface Vlanif20 ip address 192.168.20.254 255.255.255.0 dhcp select interface dhcp server dns-list 223.5.5.5 quit save配置完成后用display ip interface brief检查多个三层接口的 IP 和状态用display dhcp server statistics查看 DHCP 报文统计。如果 PC 还没有请求地址这条统计可能没有明显变化这是正常的先开启 PC 的 DHCP 后再看。注意接口地址池的网段由接口 IP 自动决定。VLANIF10 的 IP 如果是 192.168.10.254/24地址池就是 192.168.10.0/24不会自动匹配其他网段。如果 PC 拿到的地址与接口网段不一致优先检查 VLANIF 掩码和 PC 接入的 VLAN。7. 验证实验结果和排错7.1 验证 PC 地址获取在 eNSP 中双击 PC1在 IPv4 配置中选择 DHCP 自动获取等几秒后打开命令行执行ipconfig。预期 PC1 拿到 192.168.10.0/24 网段地址PC2 拿到 192.168.20.0/24 网段地址。ipconfig如果 PC 一直处于获取中依次检查PC 与 LS2 的链路是否正常PC 是否已经开机并连接正确接口。LS2 的 Access 口默认 VLAN 是否和规划一致。LS1 上是否执行了dhcp enable。Vlanif 接口下是否配置了dhcp select interface。Trunk 口是否放行了对应 VLAN。获取到地址后可以先 ping 网关确认本网段三层接口正常。PC1 ping 192.168.10.254PC2 ping 192.168.20.254。7.2 验证 VLAN 间通信地址获取成功后再验证跨 VLAN 通信。PC1 执行ping 192.168.20.25这里的 192.168.20.25 是 PC2 实际获取到的地址需要以 PC2 的ipconfig结果为准。如果 ping 通说明 VLAN 间三层通信和 DHCP 配置都正常工作。ping 192.168.20.25之后可以分别测试从 LS1 上display arp确认交换机能学到 PC1 和 PC2 的 ARP 表项。在 LS1 上display ip routing-table确认 192.168.10.0/24 和 192.168.20.0/24 两条直连路由存在。在 LS2 上display port vlan确认接口的 VLAN 和 Trunk 放行状态。7.3 常见问题与排查顺序实验中常见的故障可以用下面的表格快速定位。问题现象可能原因检查方式处理建议PC 获取不到 IP全局 DHCP 未启用display dhcp status系统视图执行dhcp enablePC 获取不到 IPVLANIF 下未启用接口地址池display current-configuration interface Vlanif10接口下执行dhcp select interfacePC 获取不到 IPTrunk 未放行对应 VLANdisplay port vlan在 Trunk 口放行 VLAN 10 20PC 获取到错误网段地址接错 Access 口或 Vlanif 地址规划错误查看 PC 所属 VLAN 和接口 IP调整接口 VLAN 或 VLANIF 地址PC 能 ping 通网关但不通对端 VLAN对端 PC 网关不对或三层不通查看对端 PC 的 ipconfig 和 LS1 路由表检查对端 PC 的网关和 DHCP 参数PC 能获取 IP 但上网异常DNS 或默认网关配置有误PCipconfig /all查看 DNS调整dhcp server dns-list参数排查顺序遵循“二层链路 - 三层接口 - DHCP 服务 - PC 参数”的路径。先确认 PC 能通网关再确认 DHCP 能下发地址最后验证跨 VLAN 通信。不要一开始就怀疑 DHCP 地址池写错而要先确认 VLAN、Trunk 和 VLANIF 这些基础链路状态。8. 生产环境中的差异与最佳实践8.1 模拟器与真实设备的主要差异eNSP 的 S5700 模拟器可以完整验证这个实验但真实设备仍有差异。第一是接口编号不同型号可能是 GigabitEthernet0/0/x也可能是 Ethernet0/0/x甚至是 XGE 接口配置前要用display interface brief确认当前设备接口名。第二是 VRP 版本同一命令在不同版本下实现细节不同例如 DNS 下发命令、地址排除参数、保存命令后的提示都可能不同。第三是模拟器不会真实产生端口协商、STP 收敛和转发延迟问题真实环境如果拓扑里有环路还需要考虑生成树。8.2 到生产环境需要补充的内容模拟器实验跑通只是第一步生产环境还要补几类内容。地址规划方面要给 DHCP 预留排除段避免把服务器的静态地址分配出去。安全方面建议在接入交换机启用 DHCP Snooping防止终端私接 DHCP 服务器影响全网。可靠性方面如果交换机要做网关最好配合链路聚合、VRRP 或堆叠避免单点故障导致整个网段失去网关。日志方面DHCP 报错、接口 Down、ARP 攻击都应有监控和告警不能等终端报障后再去逐台查。如果网络规模变大不建议继续在交换机上堆接口地址池。全局地址池可以统一管理多个网段集中定义 DNS、租期和排除地址。更大型的网络通常把 DHCP 服务放到专用服务器上交换机只配置 DHCP 中继把广播请求转成单播交给服务器处理。接口地址池只是理解 DHCP 机制的起点不是大规模网络的终点。8.3 从实验出发的继续学习路径这个实验做完后可以从三个方向继续深入。第一个方向是 DHCP 中继把 DHCP 服务器部署在核心网段让其他 VLAN 的 PC 通过中继获取地址这会进一步理解广播域和三层的边界。第二个方向是 DHCP Snooping在接入交换机上信任上联口、过滤非法 DHCP 服务器这是现网里非常实用的安全特性。第三个方向是动态路由与网关冗余在大型园区里多个三层交换机之间往往配置 OSPF 或 VRRPVLANIF 只是网关的第一个层级路由协议和网关冗余才是网络稳定性的保障。建议把配置命令的每个参数都理解成“为什么”而不只是背下来。dhcp select interface为什么能工作因为接口 IP 确定了网段port trunk allow-pass vlan为什么必须写因为二层广播域跨设备时靠标签流转VLANIF 为什么是网关因为三层逻辑接口终结了 VLAN 的二层广播域。把这些关系串起来以后再遇到真实设备配置或网络故障才能从原理层面定位问题。