拓冰建站拓冰建站
首页 / 资讯中心 / 正文

CCNA综合实验实战:VLAN间路由、NAT overload与ACL子接口配置,打通企业网隔离与互访

简介《CCNA的一个综合实验经典》是一份面向思科CCNA初学者的综合性实验PDF聚焦企业网络中NAT、VLAN与ACL三种核心技术的联合应用。文档以一家拥有工程部、财务部、技术部的企业为背景演示如何利用单一公网地址让全员访问互联网同时通过VLAN划分部门并借助ACL实现“经理可互访、普通员工隔离”的权限控制。实验环境描述完整涵盖PC地址规划、R1/R2路由器配置、子接口dot1Q封装以及交换机Trunk链路设置等关键环节命令与步骤均由浅入深适合需要动手练习路由交换配置的读者对照实操。资源包仅含1个PDF文件大小527KB内容紧凑无冗余方便随时查阅。目前已有57人学习浏览对于想快速理解NAT、VLAN、ACL协同场景的入门者来说是一份省时高效的参考资料。1. 一个公网地址、三个部门、一张 ACL —— CCNA 综合实验在解决什么CCNA 的练习题大多是单点技术验证而这份经典实验把 NAT、VLAN、ACL 压进了一个典型的企业网场景公司只有一个公网地址几十个员工要共用它上网工程部、财务部、技术部要在二层隔开三个部门经理之间要能互相通信普通员工之间要互相隔离。它不是让你背三条孤立配置而是要求把「二层隔离、三层互联、出口转换、访问控制」这四件事在一条链路上排好顺序。我按文档在模拟器里复现时发现命令本身不难难的是两类判断ACL 该绑在哪个子接口的哪个方向以及 NAT 的匹配列表能不能和接口过滤列表共用编号。大多数人在这一步会卡住靠猜或者反复重启模拟器解决而不是靠 show 命令定位问题。这篇就从这两类判断出发把实验从头拆开讲。2. 先打通三层VLAN、Trunk 与子接口的对应关系三部门隔离靠 VLAN跨 VLAN 通信靠路由而路由要落在路由器上就必须在 R1 的 FastEthernet 0/0 上做子接口并用 802.1Q 封装。这一章先把地址规划讲清楚再依次配置交换机与路由器最后说清楚子接口编号和 VLAN ID 之间那个最容易踩的坑。2.1 拓扑与地址规划先画清楚再动手实验里交换机接了一台路由器 R1R1 通过串行口连到 R2R2 模拟公网设备。三个部门各占一个 VLAN、一个网段具体对应关系如下。VLAN部门交换机端口PCIP 地址网关VLAN 2工程部F0/2-F0/3PC1 / PC2192.168.1.2 / 192.168.1.3192.168.1.1VLAN 3财务部F0/4-F0/5PC3 / PC4192.168.2.2 / 192.168.2.3192.168.2.1VLAN 4技术部F0/6-F0/7PC5 / PC6192.168.3.2 / 192.168.3.3192.168.3.1公网互联R1-R2串行口 S0/0-172.16.1.1 / 172.16.1.2172.16.1.1三个部门的经理是 PC1、PC3、PC5普通员工是 PC2、PC4、PC6。注意 VLAN ID 是 2、3、4不是 1、2、3网关全部落在 R1 的子接口上R2 只需要一个串口地址因为它的角色就是「公网里的一个目标地址」。2.2 在交换机上划分 VLAN 并配置 Trunk交换机的配置分三步F0/1 上联路由器的端口做成 Trunk创建三个 VLAN 并命名再把接入 PC 的六个端口分别划入对应的 VLAN。Switchenable Switch#configure terminal Switch(config)#interface fastethernet 0/1 Switch(config-if)#switchport mode trunk Switch(config-if)#exit Switch(config)#vlan 2 Switch(config-vlan)#name gongchengbu Switch(config-vlan)#exit Switch(config)#vlan 3 Switch(config-vlan)#name caiwubu Switch(config-vlan)#exit Switch(config)#vlan 4 Switch(config-vlan)#name jishubu Switch(config-vlan)#exit Switch(config)#interface fastethernet 0/2 Switch(config-if)#switchport access vlan 2 Switch(config-if)#exit Switch(config)#interface fastethernet 0/3 Switch(config-if)#switchport access vlan 2 Switch(config-if)#exit Switch(config)#interface fastethernet 0/4 Switch(config-if)#switchport access vlan 3 Switch(config-if)#exit Switch(config)#interface fastethernet 0/5 Switch(config-if)#switchport access vlan 3 Switch(config-if)#exit Switch(config)#interface fastethernet 0/6 Switch(config-if)#switchport access vlan 4 Switch(config-if)#exit Switch(config)#interface fastethernet 0/7 Switch(config-if)#switchport access vlan 4 Switch(config-if)#exit Switch(config)#endswitchport mode trunk的作用是让 F0/1 这条链路允许携带多个 VLAN 的 802.1Q 标签帧因为这条链路上要同时承载 VLAN 2、3、4 的流量。其余六个端口是 access 口switchport access vlan 2表示把端口静态划入某个 VLANPC 发出的普通以太网帧在进入交换机时会被打上对应 VLAN 的标签。配置完成后可以用show vlan brief检查端口归属这是排错时第一个要看的表。2.3 路由器子接口dot1Q 封装中的编号陷阱路由器侧采用单臂路由router-on-a-stick的方式在物理口 F0/0 上创建三个子接口每个子接口对应一个 VLAN 的网关。r1(config)#interface fastethernet 0/0 r1(config-if)#no shutdown r1(config-if)#exit r1(config)#interface fastethernet 0/0.1 r1(config-subif)#encapsulation dot1Q 2 r1(config-subif)#ip address 192.168.1.1 255.255.255.0 r1(config-subif)#no shutdown r1(config-subif)#exit r1(config)#interface fastethernet 0/0.2 r1(config-subif)#encapsulation dot1Q 3 r1(config-subif)#ip address 192.168.2.1 255.255.255.0 r1(config-subif)#exit r1(config)#interface fastethernet 0/0.3 r1(config-subif)#encapsulation dot1Q 4 r1(config-subif)#ip address 192.168.3.1 255.255.255.0 r1(config-subif)#exitencapsulation dot1Q 2这条命令是全部配置里最容易写错的一行等号右边是 VLAN ID不是子接口编号。F0/0.1 这个名称只是接口编号真正决定它归属哪个 VLAN 的是封装语句里的数字 2所以它对应的是 VLAN 2。如果把这里写成dot1Q 1子接口会去匹配一个根本不存在的 VLAN 1 标签三个部门的流量就全断了。物理口 F0/0 在这里只做no shutdown不配 IP三层地址全部落在子接口上。配完后可以在 R1 上show ip route应该能看到 192.168.1.0/24、192.168.2.0/24、192.168.3.0/24 三条直连路由。到这里三层链路已经通了接下来才是 NAT 和 ACL 的活。3. NAT overload用唯一公网地址承载整张内网三层打通之后内网 PC 已经可以跨 VLAN 互访但互联网访问还不行。R1 的串口地址是 172.16.1.1内网全是 192.168.x.x 私有地址必须做网络地址转换。3.1 为什么只有 NAT overload 能满足「一个地址多人上网」NAT 有三种常见形态静态 NAT 把内网地址一对一映射到公网地址适合服务器发布动态 NAT 从地址池里取地址做一对一转换有多少个公网地址就只能同时支持多少个内网主机而 overload 模式也就是 PAT让多个内网主机复用同一个公网地址用传输层端口号区分不同的会话。这个实验里全局地址池只有一个 172.16.1.1所以只能选 overload。它的工作方式是把内网主机的「源 IP 源端口」映射成「公网 IP 随机端口」响应流量到达 R1 后R1 根据端口号反查映射表再送回对应的内网主机。R2 看到的每一个会话都来自 172.16.1.1 的不同端口。3.2 地址池、匹配列表与接口绑定的完整配置NAT 的配置可以拆成四步定义全局地址池、定义哪些内网地址允许转换、建立二者之间的映射关系、在内外网接口上做绑定。r1(config)#ip nat pool internet 172.16.1.1 172.16.1.1 netmask 255.255.255.0 r1(config)#access-list 20 permit 192.168.0.0 0.0.255.255 r1(config)#ip nat inside source list 20 pool internet overload r1(config)#interface serial 0/0 r1(config-if)#ip nat outside r1(config-if)#exit r1(config)#interface fastethernet 0/0 r1(config-if)#ip nat inside r1(config-if)#end逐条解释一下参数。ip nat pool internet 172.16.1.1 172.16.1.1 netmask 255.255.255.0定义了一个地址池起始地址和结束地址都是 172.16.1.1表示池子里只有一个公网地址掩码必须和出口接口所在网段一致。地址池里的地址与 R1 出口接口地址相同在这里是允许的配合 overload 使用就是 PAT 的典型形态。access-list 20 permit 192.168.0.0 0.0.255.255用标准 ACL 圈定内网范围。反掩码 0.0.255.255 表示前 16 位必须匹配、后 16 位任意所以它覆盖 192.168.0.0 到 192.168.255.255。对本实验来说这个范围正好完整包含三个部门的网段。ip nat inside source list 20 pool internet overload是核心映射命令意思是凡是匹配 ACL 20 的内网源地址在出去时都转换成 internet 地址池里的地址overload 开启端口复用。注意这里我特意把 ACL 编号写成 20而不是原实验里的 10原因是原实验在 NAT 部分和后面的子接口过滤部分都用 10 号 ACL数字 ACL 重复输入会追加规则而不是覆盖两个功能共用一份规则列表会互相污染。这个坑在第五章专门展开。最后的内外接口绑定不能漏。ip nat outside必须绑在连接公网的 S0/0 上ip nat inside绑在连接内网的 F0/0 主接口上。子接口是 F0/0 的子接口流量从子接口进来会被算作 inside不需要在三个子接口上重复绑定。很多人 NAT 不生效就是 inside/outside 标反或者漏标了一个。3.3 验证 NAT 转换是否生效配置完成后从任意一台 PC ping 172.16.1.2然后到 R1 上查看转换条目。r1#show ip nat translations r1#show ip nat statistics r1#debug ip natshow ip nat translations的输出里会看到 Pro协议、Inside global转换后的公网地址、Inside local内网原始地址、Outside local/global 这几列。例如 PC1 发起 ping 后能看到类似icmp 172.16.1.1:12345 192.168.1.2:1 172.16.1.2:1 172.16.1.2:1这样的条目。debug ip nat会实时打印转换过程适合定位「流量到了路由器但没有被转换」的问题但在生产环境不要长时间开着验证完立刻undebug all。4. ACL 的匹配顺序与子接口绑定方向NAT 解决了上网问题接下来是部门之间的访问控制。实验目标很明确三个部门经理两两互通普通员工跨部门互访全部拒绝。这个需求用三条标准 ACL 就能实现但规则顺序和绑定方向如果搞错就会出现「所有流量都能通」或者「经理之间也 ping 不通」这两种典型故障。4.1 三条访问控制列表的设计逻辑在 R1 上定义 ACL 10、11、12分别绑定到三个子接口的 out 方向控制进入对应部门的流量。r1(config)#access-list 10 permit host 192.168.2.2 r1(config)#access-list 10 deny 192.168.2.0 0.0.0.255 r1(config)#access-list 10 permit host 192.168.3.2 r1(config)#access-list 10 deny 192.168.3.0 0.0.0.255 r1(config)#access-list 10 permit any r1(config)#interface fastethernet 0/0.1 r1(config-subif)#ip access-group 10 outpermit host 192.168.2.2等价于permit 192.168.2.2 0.0.0.0host 写法更直观。ACL 10 绑在 F0/0.1 的 out 方向控制的是「从路由器进入工程部网段」的流量。它先把财务部经理的 IP 放行再拒绝整个财务部网段接着放行技术部经理再拒绝整个技术部网段最后用permit any兜底。这个顺序是整份配置的命门。Cisco 的编号 ACL 按顺序逐条匹配第一条命中就立即执行不再往后查。如果把deny 192.168.2.0 0.0.0.255写在permit host 192.168.2.2前面那么 PC3 访问工程部时源地址 192.168.2.2 会先被网段的 deny 规则击中经理之间就彻底断连了。所以「更具体的主机规则」必须放在「网段规则」上面。ACL 11 和 12 是完全对称的思路ACL绑定位置控制的流量规则顺序ACL 10F0/0.1 out进入 VLAN 2工程部permit 192.168.2.2 → deny 192.168.2.0 → permit 192.168.3.2 → deny 192.168.3.0 → permit anyACL 11F0/0.2 out进入 VLAN 3财务部permit 192.168.1.2 → deny 192.168.1.0 → permit 192.168.3.2 → deny 192.168.3.0 → permit anyACL 12F0/0.3 out进入 VLAN 4技术部permit 192.168.1.2 → deny 192.168.1.0 → permit 192.168.2.2 → deny 192.168.2.0 → permit any每一条 ACL 的两条 permit 放行的就是另外两个部门的经理主机两条 deny 拦截的是另外两个部门的普通员工网段。这样一来财务部经理 PC3 访问工程部经理 PC1 时流量从 F0/0.1 出去ACL 10 第一条就命中放行而普通员工 PC4 想访问工程部员工 PC2 时源地址 192.168.2.3 不匹配permit 192.168.2.2接着被deny 192.168.2.0 0.0.0.255拦下。4.2 out 方向绑定每个子接口就是一道门禁ACL 绑定方向的判断是初学者最容易卡住的地方。判断方法其实只有一句话站在路由器上看流量准备从哪个接口出去ACL 就绑在哪个接口的 out 方向。以 PC1 访问 PC3 为例。数据包从 PC1 发出进入交换机后被 VLAN 2 隔离交换机通过 Trunk 链路把帧送到 R1R1 的 F0/0.1 子接口收到后查路由表发现目标 192.168.2.2 在 F0/0.2 网段于是从 F0/0.2 转发出去。这个过程中F0/0.2 是出接口所以控制「进入财务部」的 ACL 11 必须绑在 F0/0.2 out。反过来ACL 10 绑在 F0/0.1 out它管的是「进入工程部」的流量也就是源地址来自其他网段、目标指向 192.168.1.0/24 的数据包。每条 ACL 都像一道设在部门门口的门禁而不是设在部门门口向外看的岗哨。理解这一点之后再看三条 ACL 的绑定位置就顺了。4.3 验证矩阵经理通、员工不通配置完成后用 ping 验证的效果应该如下源目标预期结果原因PC1 192.168.1.2PC3 192.168.2.2通ACL 11 第一条 permit 192.168.1.2 命中PC1 192.168.1.2PC5 192.168.3.2通ACL 12 第一条 permit 192.168.1.2 命中PC3 192.168.2.2PC5 192.168.3.2通ACL 12 第二条 permit 192.168.2.2 命中PC2 192.168.1.3PC4 192.168.2.3不通ACL 11 先放行 PC1再 deny 192.168.1.0 网段PC2 192.168.1.3PC6 192.168.3.3不通ACL 12 先放行 PC1再 deny 192.168.1.0 网段PC4 192.168.2.3PC6 192.168.3.3不通ACL 12 先放行 PC1 和 PC3再 deny 192.168.2.0 网段这里有一个容易被忽略的边界PC1 和 PC2 同属 VLAN 2它们之间的通信在交换机内部直接二层转发根本不会经过路由器ACL 完全管不到。所以实验里的「普通员工不能相互通信」指的是跨部门员工同部门内部员工之间的通信不受影响。验证的时候不要拿同部门的 PC 去测试 ACL测了也不会有预期效果。5. 排错顺序先看 NAT 表再查 ACL 命中实验做完并不代表结束能复现「每个人都能上网、经理通而员工不通」才是真掌握。这一章把排错时的检查顺序和两个最容易翻车的隐蔽问题讲透。5.1 从 show 命令倒查配置遇到不互通按下面的顺序排查。r1#show ip interface brief r1#show ip route r1#show ip nat translations r1#show access-lists r1#show ip interface fastethernet 0/0.1先确认所有接口和路由都在再查 NAT 表。show ip nat translations里如果完全没有条目说明流量没有触发 NAT检查 inside/outside 是否绑定正确如果有条目但 PC 还是不通检查 R2 的回程路由或者 ACL。show access-lists是查 ACL 问题最好用的命令每一条规则后面都有 matches 计数。比如 PC2 ping PC4 不通你想确认是不是 ACL 11 拦的就清空计数器再 ping 一次如果deny 192.168.1.0 0.0.0.255这行的 matches 在涨说明 ACL 拦截符合预期如果第一条 permit 的计数在涨说明流量被放行了问题出在别处。5.2 编号冲突与规则顺序两个最隐蔽的坑第一个坑是 NAT 匹配列表和接口 ACL 共用编号。原实验文档在 NAT 部分用的是 ACL 10后面子接口过滤也用了 ACL 10这在真实设备上是有隐患的。数字 ACL 在同一台设备上以同一个编号重复输入时行为是追加规则不是替换原列表。所以 NAT 引用的 ACL 10 最终会混入后面那几条 permit/deny而子接口绑定的 ACL 10 前面也多了一条permit 192.168.0.0 0.0.255.255两个功能用同一份规则列表show 的时候根本分不清谁是谁。复现这个实验时把 NAT 的匹配列表独立成一个编号比如用 ACL 20是最省心的做法。第二个坑是 ACL 内部规则的顺序。这个问题在第 4 章已经强调过但排错时仍然值得再核对一遍deny 网段必须写在 permit 主机之后否则经理主机会被自己的网段规则误伤。另外还要检查每条 ACL 最后有没有permit any。去掉它会出现一个很隐蔽的现象经理之间可以互通但内网 PC 访问互联网的流量如果走到某个子接口的 out 方向会被隐含 deny 拦掉表现为「能 ping 通网关但上不了网」。5.3 用命名 ACL 替换数字 ACL排错更直观数字 ACL 的缺点是规则长什么样只能靠命令逐条看绑到接口上之后也不直观。把这个实验改成命名 ACL排错体验会好很多。r1(config)#ip access-list standard TO-VLAN2 r1(config-std-nacl)#permit host 192.168.2.2 r1(config-std-nacl)#deny 192.168.2.0 0.0.0.255 r1(config-std-nacl)#permit host 192.168.3.2 r1(config-std-nacl)#deny 192.168.3.0 0.0.0.255 r1(config-std-nacl)#permit any r1(config-std-nacl)#exit r1(config)#interface fastethernet 0/0.1 r1(config-subif)#ip access-group TO-VLAN2 out命名为 TO-VLAN2 之后show access-lists里会显示规则描述一眼就能看出这条 ACL 是管哪个部门的。逻辑和数字 ACL 完全一致但可读性高很多。如果你的模拟器支持命名扩展 ACL还可以进一步把规则写成permit ip host 192.168.2.2 any这种形式将来要限制端口时直接在命令里加eq 80或eq 443即可。换掉编号 ACL 之后清一次计数器再跑一遍测试你会发现 show access-lists 里每一行的 matches 都在按预期增长排错速度比对着配置逐行看快得多。本文还有配套的精品资源点击获取
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门