模拟实战配置实验

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 间路由” 功能转发(依赖核心交换机的三层路由能力,主流思科核心交换机均支持)。

前提条件

  1. 核心交换机需支持 三层路由功能(如思科 Catalyst 3650/3850/9300 等,默认已开启三层转发,部分旧型号需手动开启 ip routing)。
  2. 核心交换机与二层交换机之间的链路需配置为 Trunk 模式(允许所有 VLAN 的流量透传)。
  3. 所有终端需正确配置 网关(网关为对应 VLAN 在核心交换机上的 “虚拟接口 IP”)。

完整配置步骤(分设备操作)

第一步:配置二层交换机(连接 4 台终端)

二层交换机的核心任务:①创建 VLAN;②将终端接口设为 Access 模式并划入对应 VLAN;③将上联核心的接口设为 Trunk 模式。

  1. 进入全局配置模式

    Switch> enable               # 进入特权模式
    Switch# configure terminal   # 进入全局配置模式
    Switch(config)# hostname L2-Switch  # 重命名(方便区分)
    
  2. 创建所需 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
    
  3. 配置终端接口为 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
    
  4. 配置上联核心的接口为 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(作为终端的网关);④开启三层路由功能(部分型号默认开启)。

  1. 进入全局配置模式

    Switch> enable
    Switch# configure terminal
    Switch(config)# hostname Core-Switch  # 重命名
    
  2. 创建与二层交换机一致的 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
    
  3. 配置下联二层的接口为 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
    
  4. 为每个 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
    
  5. 开启三层路由功能(关键!部分旧型号默认关闭)

    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

常见问题排查

  1. 跨 VLAN ping 不通?
    • 检查终端网关是否配置正确(最常见原因)。
    • 检查核心交换机 SVI 是否 no shutdown(执行 show ip interface brief 查看 SVI 状态是否为up/up)。
    • 检查 Trunk 链路是否正常(执行 show interfaces trunk 确认 VLAN 10/100/200 在 Trunk 允许列表中)。
  2. 核心交换机没有 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等)


实验1

  • 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均可以互通...

测试

  • TrunkAccess混合配置
- 单一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自己的网关都不会通)

screenshot_2025-09-26_16-31-02

  • 删除之前的配置(核心补充配置(禁止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 路由配置即可继续互通。

验证配置

  1. 测试 vlan30 内部通信:从 vlan30 的终端 ping 同 VLAN 内的其他终端,应能通。
  2. 测试 vlan30 与其他 VLAN 通信:从 vlan30 的终端 ping vlan10/20/100 等,应不通。
  3. 测试其他 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 规则:

  1. 允许 vlan100→vlan30 的 ICMP 请求(类型 8);
  2. 允许 vlan30→vlan100 的 ICMP 回应(类型 0);
  3. 阻断 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

666

  • 单向通讯的思路,参考上面,以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 转换范围实现,具体配置如下:

核心思路

  1. ACL 限制流量:在防火墙inside接口的入站 ACL 中,仅允许 192.168.150.2 和 192.168.150.10 的流量出外网,拒绝同网段其他 IP。
  2. 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

配置验证

  1. 查看 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
    
  2. 测试连通性

    • 用 192.168.150.2 和 192.168.150.10 ping 外网地址(如路由器公网 IP),应能通。
    • 用 VLAN10 内其他 IP(如 192.168.150.3)ping 外网,应不通。

关键说明

  • ACL 默认隐含 “拒绝所有未匹配的流量”,因此无需额外配置拒绝规则,删除原有允许整个网段的规则后,未被允许的 IP 会被自动拒绝。
  • 限制 NAT 范围是为了双重保障:即使 ACL 配置失误,未被允许的 IP 也因没有 NAT 转换而无法出网。

防火墙特例

posted @ 2025-09-25 16:26  清安宁  阅读(23)  评论(0)    收藏  举报