模拟实战配置实验
vlan之间的互通
要实现 VLAN 10(192.168.150.0/24)、VLAN 100(192.168.100.0/24)、VLAN 200(192.168.200.0/24) 之间的互联互通,核心原理是:二层交换机仅负责 VLAN 内流量转发,跨 VLAN 流量需通过三层设备(核心交换机)的 “VLAN 间路由” 功能转发(依赖核心交换机的三层路由能力,主流思科核心交换机均支持)。
前提条件
- 核心交换机需支持 三层路由功能(如思科 Catalyst 3650/3850/9300 等,默认已开启三层转发,部分旧型号需手动开启
ip routing)。 - 核心交换机与二层交换机之间的链路需配置为 Trunk 模式(允许所有 VLAN 的流量透传)。
- 所有终端需正确配置 网关(网关为对应 VLAN 在核心交换机上的 “虚拟接口 IP”)。
完整配置步骤(分设备操作)
第一步:配置二层交换机(连接 4 台终端)
二层交换机的核心任务:①创建 VLAN;②将终端接口设为 Access 模式并划入对应 VLAN;③将上联核心的接口设为 Trunk 模式。
-
进入全局配置模式
Switch> enable # 进入特权模式 Switch# configure terminal # 进入全局配置模式 Switch(config)# hostname L2-Switch # 重命名(方便区分) -
创建所需 VLAN(需与核心交换机一致)
L2-Switch(config)# vlan 10 L2-Switch(config-vlan)# name VLAN10-150 L2-Switch(config-vlan)# exit L2-Switch(config)# vlan 100 L2-Switch(config-vlan)# name VLAN100-100 L2-Switch(config-vlan)# exit L2-Switch(config)# vlan 200 L2-Switch(config-vlan)# name VLAN200-200 L2-Switch(config-vlan)# exit -
配置终端接口为 Access 模式(划入对应 VLAN)
假设二层交换机连接终端的接口如下(需根据实际接线调整接口编号,如 FastEthernet0/1~0/4):
- 终端 1(192.168.150.2)→ 接口 Fa0/1 → VLAN10
- 终端 2(192.168.150.3)→ 接口 Fa0/2 → VLAN10
- 终端 3(192.168.100.2)→ 接口 Fa0/3 → VLAN100
- 终端 4(192.168.200.2)→ 接口 Fa0/4 → VLAN200(注:原需求 “终端 1 重复”,此处修正为终端 4)
配置命令(以 Fa0/1 为例,其他接口同理)
# 配置终端1的接口(Fa0/1) L2-Switch(config)# interface FastEthernet0/1 L2-Switch(config-if)# switchport mode access # 强制为Access模式 L2-Switch(config-if)# switchport access vlan 10 # 划入VLAN10 L2-Switch(config-if)# no shutdown # 启用接口 L2-Switch(config-if)# exit # 配置终端2的接口(Fa0/2) L2-Switch(config)# interface FastEthernet0/2 L2-Switch(config-if)# switchport mode access L2-Switch(config-if)# switchport access vlan 10 L2-Switch(config-if)# no shutdown L2-Switch(config-if)# exit # 配置终端3的接口(Fa0/3) L2-Switch(config)# interface FastEthernet0/3 L2-Switch(config-if)# switchport mode access L2-Switch(config-if)# switchport access vlan 100 L2-Switch(config-if)# no shutdown L2-Switch(config-if)# exit # 配置终端4的接口(Fa0/4) L2-Switch(config)# interface FastEthernet0/4 L2-Switch(config-if)# switchport mode access L2-Switch(config-if)# switchport access vlan 200 L2-Switch(config-if)# no shutdown L2-Switch(config-if)# exit -
配置上联核心的接口为 Trunk 模式(允许所有 VLAN 透传)
假设二层交换机上联核心的接口为 GigabitEthernet0/1(核心侧对应接口需同样配置 Trunk):
Core-Switch(config-if)# switchport trunk encapsulation dot1q # 指定为802.1Q封装(不一定需要这句) Core-Switch(config-if)# switchport mode trunk # 此时即可成功配置 Core-Switch(config-if)# switchport trunk allowed vlan 10,100,200 # 允许指定VLAN透传 Core-Switch(config-if)# no shutdown # 确保接口启用
第二步:配置核心交换机(实现 VLAN 间路由)
核心交换机的核心任务:①创建相同 VLAN;②将下联二层的接口设为 Trunk;③为每个 VLAN 创建 SVI(交换虚拟接口) 并配置 IP(作为终端的网关);④开启三层路由功能(部分型号默认开启)。
-
进入全局配置模式
Switch> enable Switch# configure terminal Switch(config)# hostname Core-Switch # 重命名 -
创建与二层交换机一致的 VLAN
Core-Switch(config)# vlan 10 Core-Switch(config-vlan)# name VLAN10-150 Core-Switch(config-vlan)# exit Core-Switch(config)# vlan 100 Core-Switch(config-vlan)# name VLAN100-100 Core-Switch(config-vlan)# exit Core-Switch(config)# vlan 200 Core-Switch(config-vlan)# name VLAN200-200 Core-Switch(config-vlan)# exit -
配置下联二层的接口为 Trunk 模式
假设核心交换机下联二层的接口为 GigabitEthernet0/2(需与二层交换机上联接口对应):
Core-Switch(config)# interface GigabitEthernet0/2 Core-Switch(config-if)# switchport trunk encapsulation dot1q # 指定为802.1Q封装(不一定需要这句) Core-Switch(config-if)# switchport mode trunk Core-Switch(config-if)# switchport trunk allowed vlan 10,100,200 # 与二层一致 Core-Switch(config-if)# no shutdown Core-Switch(config-if)# exit -
为每个 VLAN 创建 SVI 并配置网关 IP
SVI 是核心交换机上 “代表 VLAN 的三层接口”,其 IP 即为对应 VLAN 终端的网关(需与终端网段同网段):
# 配置VLAN10的SVI(网关:192.168.150.1/24) Core-Switch(config)# interface Vlan10 # 进入VLAN10的SVI接口 Core-Switch(config-if)# ip address 192.168.150.1 255.255.255.0 # 配置网关IP Core-Switch(config-if)# no shutdown # 启用SVI(必须开启,否则无法转发) Core-Switch(config-if)# exit # 配置VLAN100的SVI(网关:192.168.100.1/24) Core-Switch(config)# interface Vlan100 Core-Switch(config-if)# ip address 192.168.100.1 255.255.255.0 Core-Switch(config-if)# no shutdown Core-Switch(config-if)# exit # 配置VLAN200的SVI(网关:192.168.200.1/24) Core-Switch(config)# interface Vlan200 Core-Switch(config-if)# ip address 192.168.200.1 255.255.255.0 Core-Switch(config-if)# no shutdown Core-Switch(config-if)# exit -
开启三层路由功能(关键!部分旧型号默认关闭)
Core-Switch(config)# ip routing # 启用IP路由(允许跨网段转发)
第三步:配置终端的网关(必做!)
所有终端需手动配置 网关地址(指向对应 VLAN 的 SVI IP),否则无法跨 VLAN 通信:
- 终端 1/2(VLAN10,192.168.150.x):网关 → 192.168.150.1
- 终端 3(VLAN100,192.168.100.x):网关 → 192.168.100.1
- 终端 4(VLAN200,192.168.200.x):网关 → 192.168.200.1
常见问题排查
- 跨 VLAN ping 不通?
- 检查终端网关是否配置正确(最常见原因)。
- 检查核心交换机 SVI 是否
no shutdown(执行show ip interface brief查看 SVI 状态是否为up/up)。 - 检查 Trunk 链路是否正常(执行
show interfaces trunk确认 VLAN 10/100/200 在 Trunk 允许列表中)。
- 核心交换机没有 Vlan 接口?
- 确认核心交换机支持三层功能(纯二层核心需额外接路由器实现 VLAN 间路由,不推荐)。
- 部分旧型号需先开启 “三层接口模式”(如
switchport nonegotiate,但主流型号无需此操作)。
常用命令
- show vlan # 显示更详细的 VLAN 信息(包括 VLAN 类型、MTU、所属接口等)
- show vlan brief # 显示 VLAN 的简要信息(包括 VLAN ID、名称、状态和所属端口)
- show ip interface brief # 快速列出所有接口状态(辅助确认接口名称)
- show interfaces switchport # 列出所有接口的详细交换配置(包含模式)
- Switch# show interfaces GigabitEthernet0/1 switchport # 列出某个接口的详细交换配置(包含模式)
- show arp
- show ip route
Core-Switch(config)# default interface g1/0/3 ! 恢复接口的默认配置
Core-Switch# show interfaces g1/0/3 switchport ! 查看接口的switchport详细状态(trunk/access、允许的VLAN等)

vlan20配置如下
- 二层配置如下(Trunk配置)
Switch(config)#vlan 20
Switch(config)#interface f0/2
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 20
Switch(config-if)#exit
Switch(config)#interface f0/3
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 20
Switch(config-if)#exit
Switch(config)#interface f0/1
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk allowed vlan 20
Switch(config-if)#exit
- 核心配置如下(Trunk配置)
Core-Switch(config)#vlan 20
Core-Switch(config)#interface vlan 20
Core-Switch(config-if)#ip address 192.168.14.254 255.255.255.0
Core-Switch(config-if)#exit
Core-Switch(config)#interface g1/0/2d
Core-Switch(config-if)#switchport trunk encapsulation dot1q
Core-Switch(config-if)#switchport mode trunk
Core-Switch(config-if)#switchport trunk allowed vlan 20
Core-Switch(config-if)#no sh
Core-Switch(config-if)#exit
- 由于这个二层底下,只有一个vlan20,所以采用Access方案其实更好,效率更高
# 二层上联口配置
Switch(config)#interface f0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 20
# 三层下联口配置
Core-Switch(config)#interface g1/0/2
Core-Switch(config-if)#switchport mode access
Core-Switch(config-if)#switchport access vlan 20
- 测试效果: 不管采用
Trunk还是Access模式,vlan20和之前的vlan均可以互通...

Trunk和Access混合配置
- 单一vlan的二层配置
Switch(config)#vlan 30
Switch(config-vlan)#exit
Switch(config)#interface f0/2
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 30
Switch(config-if)#exit
Switch(config)#interface f0/3
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 30
Switch(config-if)#exit
Switch(config)#interface f0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 30
- 多vlan的二层配置
Switch(config)#vlan 50
Switch(config-vlan)#vlan 60
Switch(config-vlan)#exit
Switch(config)#interface f0/2
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 50
Switch(config-if)#exit
Switch(config)#interface f0/3
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 60
Switch(config-if)#exit
Switch(config)#interface f0/1
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk allowed vlan 50,60
- 汇聚层配置(Access+Trunk混合配置)
Switch(config)#vlan 30
Switch(config-vlan)#vlan 50
Switch(config-vlan)#vlan 60
Switch(config-vlan)#exit
Switch(config)#interface f0/3
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 30
Switch(config-if)#exit
Switch(config)#interface f0/2
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk allowed vlan 50,60
Switch(config-if)#exit
Switch(config)#interface f0/1
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk allowed vlan 30,50,60
Switch(config-if)#exit
- 核心配置(允许vlan之间互通)
Core-Switch(config)#vlan 30
Core-Switch(config-vlan)#vlan 50
Core-Switch(config-vlan)#vlan 60
Core-Switch(config-vlan)#exit
Core-Switch(config)#interface vlan 30
Core-Switch(config-if)#ip address 192.168.1.254 255.255.255.0
Core-Switch(config-if)#no shu
Core-Switch(config-if)#exit
Core-Switch(config)#interface vlan 50
Core-Switch(config-if)#ip address 192.168.5.254 255.255.255.0
Core-Switch(config-if)#no shu
Core-Switch(config-if)#exit
Core-Switch(config)#interface vlan 60
Core-Switch(config-if)#ip address 192.168.6.254 255.255.255.0
Core-Switch(config-if)#no shu
Core-Switch(config)#interface g1/0/3
Core-Switch(config-if)#switchport trunk encapsulation dot1q
Core-Switch(config-if)#switchport mode trunk
Core-Switch(config-if)#switchport trunk allowed vlan 30,50,60
- 核心补充配置(禁止vlan之间互通)
Core-Switch(config)#interface g1/0/3
Core-Switch(config-if)#switchport trunk allowed vlan remove 30
Core-Switch(config-if)#switchport trunk allowed vlan remove 50
Core-Switch(config-if)#switchport trunk allowed vlan remove 60
- 测试效果,同vlan终端可以互通,不同vlan终端不能互通(终端ping自己的网关都不会通)

- 删除之前的配置(核心补充配置(禁止vlan之间互通),先删除再配置,不要覆盖配置(不生效)),
vlan之间互不通讯,我们使用ACL来实现
- 先实现互联互通,然后再使用ACL来实现需求
要实现 vlan30、vlan50、vlan60 只能内部通信(intra-VLAN),不能与其他 VLAN 互通(inter-VLAN),可以通过在三层交换机的 SVI(交换机虚拟接口)上应用访问控制列表(ACL)来限制跨 VLAN 流量。以下是具体实现步骤:
前提条件
假设各 VLAN 已配置对应的 IP 子网(示例):
- vlan10:192.168.10.0/24
- vlan20:192.168.20.0/24
- vlan30:192.168.30.0/24
- vlan50:192.168.50.0/24
- vlan60:192.168.60.0/24
- vlan100:192.168.100.0/24
- vlan200:192.168.200.0/24
实现原理
三层交换机中,VLAN 间通信依赖 SVI(每个 VLAN 的三层接口)进行路由。通过在vlan30、50、60 的 SVI 上应用 ACL,可过滤跨 VLAN 的三层流量(仅允许本 VLAN 内部流量通过,拒绝与其他 VLAN 的通信)。
注:同一 VLAN 内的终端通信是二层交换,不经过 SVI,因此不受 ACL 影响。
配置步骤
1. 为每个受限制 VLAN 创建扩展 ACL
扩展 ACL 可精确控制源和目的 IP 地址,这里需允许 “本 VLAN 子网→本 VLAN 子网” 的流量,拒绝所有其他跨 VLAN 流量(核心配置)
! 配置vlan30的ACL(仅允许vlan30内部通信)
access-list 101 permit ip 192.168.30.0 0.0.0.255 192.168.30.0 0.0.0.255 ! 允许本VLAN内部流量
access-list 101 deny ip any any ! 拒绝所有其他流量(隐含规则,可省略)
! 配置vlan50的ACL
access-list 102 permit ip 192.168.50.0 0.0.0.255 192.168.50.0 0.0.0.255
! 配置vlan60的ACL
access-list 103 permit ip 192.168.60.0 0.0.0.255 192.168.60.0 0.0.0.255
2. 将 ACL 应用到对应 VLAN 的 SVI 接口
需在 SVI 的in 方向(控制其他 VLAN 进入本 VLAN 的流量)和out 方向(控制本 VLAN 发往其他 VLAN 的流量)同时应用 ACL,确保双向阻断跨 VLAN 通信。
! 应用到vlan30的SVI
interface Vlan30
ip address 192.168.30.1 255.255.255.0 ! 假设vlan30的网关
ip access-group 101 in ! 阻断其他VLAN进入vlan30的流量
ip access-group 101 out ! 阻断vlan30发往其他VLAN的流量
! 应用到vlan50的SVI
interface Vlan50
ip address 192.168.50.1 255.255.255.0
ip access-group 102 in
ip access-group 102 out
! 应用到vlan60的SVI
interface Vlan60
ip address 192.168.60.1 255.255.255.0
ip access-group 103 in
ip access-group 103 out
3. 保持其他 VLAN 的互通性
vlan10、vlan20、vlan100、vlan200 无需配置上述限制 ACL,保持原有的 SVI 路由配置即可继续互通。
验证配置
- 测试 vlan30 内部通信:从 vlan30 的终端 ping 同 VLAN 内的其他终端,应能通。
- 测试 vlan30 与其他 VLAN 通信:从 vlan30 的终端 ping vlan10/20/100 等,应不通。
- 测试其他 VLAN 间通信:从 vlan10 的终端 ping vlan20/vlan100 等,应保持互通。
通过以上配置,可实现 vlan30、50、60 的 “隔离式内部通信”,同时不影响其他 VLAN 的原有互通性。
- 注意事项
- 此时其他vlan终端ping vlan30的网关,是可以通的,但是ping不同vlan30的终端
- 而vlan30的终端也无法ping通自己的网关
解决办法: 先删除之前的ACL配置
第一步:移除接口上应用的旧 ACL
先进入对应 VLAN 的 SVI 接口,删除 in/out 方向的 ACL 应用(避免删除 ACL 后接口配置残留):
! 进入vlan30的SVI接口
interface Vlan30
no ip access-group 101 in ! 移除in方向的旧ACL
no ip access-group 101 out ! 移除out方向的旧ACL
exit
! 同理处理vlan50和vlan60
interface Vlan50
no ip access-group 102 in
no ip access-group 102 out
exit
interface Vlan60
no ip access-group 103 in
no ip access-group 103 out
exit
第二步:删除旧的 ACL 规则
彻底删除之前创建的 ACL 101、102、103:
! 删除vlan30的旧ACL
no access-list 101
! 删除vlan50的旧ACL
no access-list 102
! 删除vlan60的旧ACL
no access-list 103
最后 ACL 规则,明确允许 “网关与终端的通信”,并优化应用方向:
! 修改vlan30的ACL,明确包含网关IP与终端的通信(vlan50和vlan60一样的操作方法)
access-list 101 permit ip 192.168.30.0 0.0.0.255 192.168.30.0 0.0.0.255
access-list 101 permit ip host 192.168.30.1 192.168.30.0 0.0.0.255 ! 允许网关到终端
access-list 101 permit ip 192.168.30.0 0.0.0.255 host 192.168.30.1 ! 允许终端到网关
! 仅在out方向应用ACL(控制VLAN30发往外部的流量),取消in方向应用
interface Vlan30
no ip access-group 101 in ! 移除in方向应用
ip access-group 101 out ! 保留out方向(阻止VLAN30终端访问其他VLAN)
这样既保证 VLAN30 内部(包括终端与网关)正常通信,又能阻断其与其他 VLAN 的互通,效果如下
- vlan30的终端和其他vlan终端都可以ping通vlan30的网关
- 其他vlan终端 ping不通vlan30的终端,反之亦然
要实现 “vlan100 能 ping 通 vlan30,但 vlan30 不能 ping 通 vlan100” 的单向通信,需要通过精确过滤 ICMP 协议的请求和回应报文来实现。核心原理是:允许 vlan100 发起的 ping 请求(ICMP Echo Request)和 vlan30 返回的回应(ICMP Echo Reply),但阻断 vlan30 发起的 ping 请求。
技术细节
ping 命令依赖 ICMP 协议的两种报文:
- ICMP Echo Request(类型 8):源终端发起的 “请求” 报文;
- ICMP Echo Reply(类型 0):目标终端返回的 “回应” 报文。
要实现单向 ping 通,需配置 ACL 规则:
- 允许 vlan100→vlan30 的 ICMP 请求(类型 8);
- 允许 vlan30→vlan100 的 ICMP 回应(类型 0);
- 阻断 vlan30→vlan100 的 ICMP 请求(类型 8)及其他主动流量。
配置步骤(以 vlan30 与 vlan100 为例,vlan50/60 同理)
1. 清除旧 ACL 配置(若有)
! 移除vlan30接口上的旧ACL
interface Vlan30
no ip access-group VLAN30_ACL in
no ip access-group VLAN30_ACL out
exit
! 删除旧ACL
no ip access-list extended VLAN30_ACL
2. 配置单向通信的 ACL(命名 ACL)
! 假设子网:
! vlan30: 192.168.30.0/24
! vlan100: 192.168.100.0/24
! vlan200: 192.168.200.0/24(若vlan200也需要单向访问,规则同vlan100)
! 配置vlan30的单向访问ACL
ip access-list extended VLAN30_ACL
! 1. 允许vlan30内部通信(最高优先级)
10 permit ip 192.168.30.0 0.0.0.255 192.168.30.0 0.0.0.255
! 2. 允许vlan100→vlan30的所有流量(包括ping请求)
20 permit ip 192.168.100.0 0.0.0.255 192.168.30.0 0.0.0.255
! 3. 允许vlan30→vlan100的ICMP回应(仅回应ping请求,不允许主动请求)
30 permit icmp 192.168.30.0 0.0.0.255 192.168.100.0 0.0.0.255 echo-reply ! 允许回应报文(类型0)
! 4. 阻断vlan30→vlan100的主动流量(包括ping请求)
40 deny ip 192.168.30.0 0.0.0.255 192.168.100.0 0.0.0.255 ! 拒绝vlan30到vlan100的所有IP流量
! 5. 若vlan200也需要单向访问,添加类似规则
50 permit ip 192.168.200.0 0.0.0.255 192.168.30.0 0.0.0.255 ! 允许vlan200→vlan30
60 permit icmp 192.168.30.0 0.0.0.255 192.168.200.0 0.0.0.255 echo-reply ! 允许回应vlan200
70 deny ip 192.168.30.0 0.0.0.255 192.168.200.0 0.0.0.255 ! 阻断vlan30→vlan200
! 6. 拒绝vlan30与其他所有VLAN的通信(如vlan50/60/10等)
80 deny ip any any
exit
3. 将 ACL 应用到 vlan30 的 SVI 接口
interface Vlan30
ip access-group VLAN30_ACL in ! 控制外部进入vlan30的流量
ip access-group VLAN30_ACL out ! 控制vlan30发出的流量
exit
4. 对 vlan50/60 执行相同配置(替换子网即可)
例如 vlan50 的 ACL 核心规则:
ip access-list extended VLAN50_ACL
10 permit ip 192.168.50.0 0.0.0.255 192.168.50.0 0.0.0.255 ! 内部通信
20 permit ip 192.168.100.0 0.0.0.255 192.168.50.0 0.0.0.255 ! 允许vlan100→vlan50
30 permit icmp 192.168.50.0 0.0.0.255 192.168.100.0 0.0.0.255 echo-reply ! 允许回应
40 deny ip 192.168.50.0 0.0.0.255 192.168.100.0 0.0.0.255 ! 阻断vlan50→vlan100
! (vlan200相关规则同上)
80 deny ip any any
exit
interface Vlan50
ip access-group VLAN50_ACL in
ip access-group VLAN50_ACL out
exit
规则验证
| 测试场景 | 预期结果 | 原理 |
|---|---|---|
| vlan100 终端 ping vlan30 终端 | 通 | 允许 vlan100 的请求(规则 2)和 vlan30 的回应(规则 3) |
| vlan30 终端 ping vlan100 终端 | 不通 | vlan30 的请求被规则 4 阻断,无回应 |
| vlan30 终端 ping 同 vlan30 终端 | 通 | 规则 1 允许内部通信 |
| vlan30 终端 ping vlan50 终端 | 不通 | 规则 80 拒绝所有其他 VLAN 通信 |
关键说明
- ICMP 类型过滤:通过
echo-reply(类型 0)明确允许回应报文,确保 vlan100 的 ping 能收到回复; - 规则顺序:拒绝规则(如阻断 vlan30→vlan100)必须放在允许规则之后,否则会误阻断合法回应;
- vlan200 适配:若 vlan200 也需要单向访问,复制 vlan100 的规则并替换子网即可。
通过这种配置,既能实现 vlan100/200 对 vlan30/50/60 的单向访问,又能保持目标 VLAN 的内部隔离。
- 韧件网思路: 先允许vlan之间互联互通,再做
ACL流量控制
- 接入层配置
- 创建vlan70和vlan80
- 连接终端的接口设置为Access
- 上联接口(连接核心)的接口设置为Trunk并允许vlan70和vlan80
Switch(config)#vlan 70
Switch(config-vlan)#vlan 80
Switch(config-vlan)#exit
Switch(config)#interface f0/2
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 70
Switch(config-if)#no shutdown
Switch(config-if)#exit
Switch(config)#interface f0/3
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 80
Switch(config-if)#no shutdown
Switch(config-if)#exit
Switch(config)#interface f0/1
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk allowed vlan 70,80
Switch(config-if)#no shutdown
Switch(config-if)#exit
- 汇聚层配置
- 划分 vlan40,vlan70,vlan80
- 连接接入层交换机的接口配置为Trunk
- 连接其他终端的接口设置为Access
- 连接核心交换机的接口配置为Trunk
Switch(config)#vlan 40
Switch(config-vlan)#vlan 70
Switch(config-vlan)#vlan 80
Switch(config)#interface f0/4
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk allowed vlan 70,80
Switch(config-if)#no shutdown
Switch(config-if)#exit
Switch(config)#interface f0/1r
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk allowed vlan 40,70,80
Switch(config-if)#no shutdown
Switch(config-if)#exit
Switch(config)#interface f0/2
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 40
Switch(config-if)#exit
Switch(config)#interface f0/3
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 40
Switch(config-if)#no shutdown
- 核心配置
- 划分 vlan40,vlan70,vlan80,配置IP地址
- 连接汇聚层交换机的接口配置为Trunk,并允许vlan40,vlan70,vlan80
Core-Switch(config)#vlan 40
Core-Switch(config-vlan)#vlan 70
Core-Switch(config-vlan)#vlan 80
Core-Switch(config-vlan)#exit
Core-Switch(config)#interface vlan40
Core-Switch(config-if)#ip address 192.168.2.254 255.255.255.0
Core-Switch(config-if)#no shutdown
Core-Switch(config-if)#exit
Core-Switch(config)#interface vlan 70
Core-Switch(config-if)#ip address 192.168.7.254 255.255.255.0
Core-Switch(config-if)#no shutdown
Core-Switch(config-if)#exit
Core-Switch(config)#interface vlan 80
Core-Switch(config-if)#ip address 192.168.8.254 255.255.255.0
Core-Switch(config-if)#no shutdown
Core-Switch(config-if)#exit
Core-Switch(config)#interface g1/0/4
Core-Switch(config-if)#switchport trunk encapsulation dot1q
Core-Switch(config-if)#switchport mode trunk
Core-Switch(config-if)#switchport trunk allowed vlan 40,70,80
Core-Switch(config-if)#no shutdown
Core-Switch(config-if)#exit

- 单向通讯的思路,参考上面,以
vlan40为例如下(vlan70和vlan80同理)
! 假设子网:
! vlan40: 192.168.2.0/24
! vlan100: 192.168.100.0/24
! vlan200: 192.168.200.0/24(若vlan200也需要单向访问,规则同vlan100)
! 配置vlan40的单向访问ACL
ip access-list extended VLAN40_ACL
! 1. 允许vlan40内部通信(最高优先级)
10 permit ip 192.168.2.0 0.0.0.255 192.168.2.0 0.0.0.255
! 2. 允许vlan100→vlan40的所有流量(包括ping请求)
20 permit ip 192.168.100.0 0.0.0.255 192.168.2.0 0.0.0.255
! 3. 允许vlan40→vlan100的ICMP回应(仅回应ping请求,不允许主动请求)
40 permit icmp 192.168.2.0 0.0.0.255 192.168.100.0 0.0.0.255 echo-reply ! 允许回应报文(类型0)
! 4. 阻断vlan40→vlan100的主动流量(包括ping请求)
40 deny ip 192.168.2.0 0.0.0.255 192.168.100.0 0.0.0.255 ! 拒绝vlan40到vlan100的所有IP流量
! 5. 若vlan200也需要单向访问,添加类似规则
50 permit ip 192.168.200.0 0.0.0.255 192.168.2.0 0.0.0.255 ! 允许vlan200→vlan40
60 permit icmp 192.168.2.0 0.0.0.255 192.168.200.0 0.0.0.255 echo-reply ! 允许回应vlan200
70 deny ip 192.168.2.0 0.0.0.255 192.168.200.0 0.0.0.255 ! 阻断vlan40→vlan200
! 6. 拒绝vlan40与其他所有VLAN的通信(如vlan50/60/10等)
80 deny ip any any
exit
- 应用
interface Vlan40
ip access-group VLAN40_ACL in ! 控制外部进入vlan40的流量
ip access-group VLAN40_ACL out ! 控制vlan40发出的流量
exit
添加防火墙
- 思路如下
基础网络: 配置接口IP,让网络通。
路由指引: 配置默认路由指向互联网,配置回程路由指向内网。
地址转换: 通过NAT策略,将大量内网用户的私有IP转换为一个公网IP去访问互联网,解决了IPv4地址不足的问题。
安全划分: 通过安全区域区分内网外网。
- 通过安全策略放行流量
- 允许内网访问外网(应用于inside)
- 放行外网的回程流量(应用于outside)
- 先搞定
三层交换机,配置物理接口地址,然后写一条静态路由指向防火墙即可(本次采用这种方法)
Core-Switch(config)#interface g1/0/5
Core-Switch(config-if)#no switchport # 将物理接口转换为三层接口
Core-Switch(config-if)#ip address 10.10.10.1 255.255.255.0
Core-Switch(config-if)#no shu
Core-Switch(config-if)#exit
Core-Switch(config)#ip route 0.0.0.0 0.0.0.0 10.10.10.2
Core-Switch(config)#exit
三层备用方案:使用SVI(推荐)
这是最常用的方法,通过创建VLAN接口来配置IP地址:
! 进入全局配置模式
configure terminal
! 创建VLAN(比如VLAN 10)
vlan 10
name INSIDE_VLAN
exit
! 将G1/0/5接口分配到VLAN 10
interface GigabitEthernet1/0/5
switchport mode access
switchport access vlan 10
no shutdown
exit
! 创建VLAN接口并配置IP地址
interface Vlan10
ip address 10.10.10.1 255.255.255.0
no shutdown
exit
- 外网路由器配置
Router(config)#interface f0/0
Router(config-if)#ip address 64.1.1.2 255.255.255.0
Router(config-if)#no shu
Router(config-if)#exit
Router(config)#ip route 0.0.0.0 0.0.0.0 64.1.1.1
! 若想精确配置,可以这么写
ip route 192.168.150.0 255.255.255.0 64.1.1.1
ip route 192.168.14.0 255.255.255.0 64.1.1.1
......
防火墙配置
! 1. 接口配置
interface GigabitEthernet1/1
nameif inside
security-level 100
ip address 10.10.10.2 255.255.255.0
no shutdown
exit
interface GigabitEthernet1/2
nameif outside
security-level 0
ip address 64.1.1.1 255.255.255.0
no shutdown
exit
! 2. 路由配置
route outside 0.0.0.0 0.0.0.0 64.1.1.2
route inside 192.168.150.0 255.255.255.0 10.10.10.1
route inside 192.168.14.0 255.255.255.0 10.10.10.1
route inside 192.168.1.0 255.255.255.0 10.10.10.1
! 3. NAT配置 - 使用方法一
object network INSIDE_ALL
subnet 0.0.0.0 0.0.0.0
nat (inside,outside) dynamic interface
exit
! 4. 安全策略
! 允许内网的流量发出来
access-list inside_out extended permit ip any any
access-group inside_out in interface inside
! 创建outside接口入站ACL,允许回程流量(已建立的连接)
access-list outside_in extended permit ip any 192.168.150.0 255.255.255.0
access-list outside_in extended permit ip any 192.168.14.0 255.255.255.0
! 更安全的配置:仅允许已建立的连接回程(可选)
! access-list outside_in extended permit tcp any 192.168.150.0 255.255.255.0 established
! access-list outside_in extended permit tcp any 192.168.14.0 255.255.255.0 established
! 将ACL应用到outside接口的入方向
access-group outside_in in interface outside
exit
write memory

需求: 要实现仅允许 VLAN10(192.168.150.0/24)中的 192.168.150.2 和 192.168.150.10 访问外网,需通过精确控制 ACL(访问控制列表) 和限制 NAT 转换范围实现,具体配置如下:
核心思路
- ACL 限制流量:在防火墙
inside接口的入站 ACL 中,仅允许 192.168.150.2 和 192.168.150.10 的流量出外网,拒绝同网段其他 IP。 - NAT 精准转换:仅为这两个允许访问外网的 IP 配置 NAT 转换(避免其他 IP 即使绕过 ACL 也无法通过 NAT 出网)。
具体配置步骤
1. 修改防火墙inside_out ACL(限制流量)
删除原允许整个 192.168.150.0/24 网段的规则,替换为仅允许指定 IP 的规则:
configure terminal
! 移除原有允许192.168.150.0/24整个网段的ACL条目
! no access-list inside_out extended permit ip 192.168.150.0 255.255.255.0 any
no access-list inside_out extended permit ip any any
! 添加允许192.168.150.2和192.168.150.10访问外网的规则
access-list inside_out extended permit ip host 192.168.150.2 any
access-list inside_out extended permit ip host 192.168.150.10 any
! 保留其他网段(vlan20、vlan30)原有的访问权限(如果需要)
! (如果不需要其他网段访问外网,可删除对应条目)
access-list inside_out extended permit ip 192.168.14.0 255.255.255.0 any
! 重新应用ACL到inside接口(确保生效)
access-group inside_out in interface inside
exit
2. 调整 NAT 配置(仅允许指定 IP 转换)
原 NAT 配置对所有内网 IP 生效(subnet 0.0.0.0 0.0.0.0),需修改为仅针对允许的 IP 进行 NAT 转换:
configure terminal
! 删除原有的宽泛NAT配置(避免非允许IP被转换)
no object network INSIDE_ALL
! 为192.168.150.2创建NAT对象
object network VLAN10_PERMIT_2
host 192.168.150.2
nat (inside,outside) dynamic interface ! 动态转换为outside接口IP
exit
! 为192.168.150.10创建NAT对象
object network VLAN10_PERMIT_10
host 192.168.150.10
nat (inside,outside) dynamic interface ! 动态转换为outside接口IP
exit
! (如果需要保留其他网段的NAT,补充对应配置,例如vlan20和vlan30)
object network VLAN20_NETWORK
subnet 192.168.14.0 255.255.255.0
nat (inside,outside) dynamic interface
exit
write memory
配置验证
-
查看 ACL 配置:确认仅允许指定 IP:
show access-list inside_out应显示类似条目:
access-list inside_out line 1 extended permit ip host 192.168.150.2 any access-list inside_out line 2 extended permit ip host 192.168.150.10 any access-list inside_out line 3 extended permit ip 192.168.14.0 255.255.255.0 any access-list inside_out line 4 extended permit ip 192.168.1.0 255.255.255.0 any -
测试连通性:
- 用 192.168.150.2 和 192.168.150.10 ping 外网地址(如路由器公网 IP),应能通。
- 用 VLAN10 内其他 IP(如 192.168.150.3)ping 外网,应不通。
关键说明
- ACL 默认隐含 “拒绝所有未匹配的流量”,因此无需额外配置拒绝规则,删除原有允许整个网段的规则后,未被允许的 IP 会被自动拒绝。
- 限制 NAT 范围是为了双重保障:即使 ACL 配置失误,未被允许的 IP 也因没有 NAT 转换而无法出网。


浙公网安备 33010602011771号