想象一下你是一家中小型企业的IT负责人,公司有市场部、财务部、研发部分布在不同楼层。每个部门的电脑需要互相通信,但又不能互相干扰;财务部的数据需要特别保护;所有部门还要共享打印机和服务器资源。这就是典型的多部门网络互联场景,也是我们今天要解决的网络架构问题。
传统二层交换网络会遇到两个致命问题:一是广播风暴,当网络设备增多时,广播包会像滚雪球一样拖慢整个网络;二是缺乏隔离,所有设备都在同一个广播域,安全性堪忧。我在实际项目中就遇到过市场部的病毒通过广播包感染整个公司网络的惨痛案例。
三层交换架构配合VLAN技术能完美解决这些问题。具体来说:
我们来看一个真实案例配置:某制造企业有生产部(172.16.1.0/24)、仓储部(172.16.2.0/24)和行政部(10.0.1.0/24),使用Cisco 3560作为核心交换机,Cisco 2960作为接入交换机。通过以下设计实现安全互联:
注意:在实际部署前,建议先用Cisco Packet Tracer或GNS3模拟器测试配置,避免直接影响生产环境。
工欲善其事,必先利其器。对于50-200人规模的企业,我推荐以下Cisco设备组合:
先看基础配置要点。以核心交换机S3为例,这些命令是每次部署都必不可少的:
bash复制Switch> enable
Switch# configure terminal
Switch(config)# hostname S3
S3(config)# enable secret My@SecurePass123! # 设置特权模式密码
S3(config)# line vty 0 15
S3(config-line)# password SSH@Access456 # 设置远程登录密码
S3(config-line)# login
S3(config-line)# exit
S3(config)# service password-encryption # 加密存储所有密码
我曾见过因为忘记设置密码导致交换机被随意配置的案例。安全配置是基础中的基础,务必注意:
接下来是接口的基础配置,这里有个容易踩坑的地方——接口速率和双工模式。某次项目实施时,我们发现网络时断时续,最后发现是交换机与路由器接口的双工模式不匹配:
bash复制S3(config)# interface GigabitEthernet0/1
S3(config-if)# description Uplink_to_Router
S3(config-if)# speed 1000 # 强制千兆速率
S3(config-if)# duplex full # 强制全双工模式
S3(config-if)# no shutdown
VLAN划分是企业网络隔离的核心。根据多年经验,我总结出这些最佳实践:
具体配置示例:
bash复制S3(config)# vlan 10
S3(config-vlan)# name Marketing
S3(config-vlan)# vlan 20
S3(config-vlan)# name Finance
S3(config-vlan)# vlan 100
S3(config-vlan)# name Management
接入交换机S1的端口分配要特别注意。曾经有客户反映网络时通时断,排查发现是Access端口误接Trunk线缆:
bash复制S1(config)# interface FastEthernet0/1
S1(config-if)# switchport mode access
S1(config-if)# switchport access vlan 10
S1(config-if)# spanning-tree portfast # 启用PortFast加速接入层收敛
Trunk配置是VLAN间通信的关键。核心交换机S3的配置要特别注意封装协议:
bash复制S3(config)# interface GigabitEthernet0/1
S3(config-if)# switchport trunk encapsulation dot1q # 必须指定封装协议
S3(config-if)# switchport mode trunk
S3(config-if)# switchport trunk allowed vlan 10,20,100 # 限制允许的VLAN
常见故障排查:如果Trunk链路不通,检查两端封装协议是否一致,以及是否在允许的VLAN列表中。
三层交换机的魔力在于它能同时处理二层交换和三层路由。启用IP路由是第一步:
bash复制S3(config)# ip routing # 这个命令开启了三层路由功能
然后配置SVI(Switch Virtual Interface),这是VLAN间的网关:
bash复制S3(config)# interface Vlan10
S3(config-if)# ip address 172.16.10.1 255.255.255.0
S3(config-if)# no shutdown
S3(config-if)# interface Vlan20
S3(config-if)# ip address 172.16.20.1 255.255.255.0
S3(config-if)# no shutdown
DHCP服务能让终端自动获取IP。这个配置经常被忽略,导致客户端无法上网:
bash复制S3(config)# ip dhcp pool Marketing
S3(dhcp-config)# network 172.16.10.0 255.255.255.0
S3(dhcp-config)# default-router 172.16.10.1
S3(dhcp-config)# dns-server 8.8.8.8 8.8.4.4
S3(dhcp-config)# lease 7 # 租期7天
OSPF配置有三个关键点:进程ID、Router ID和网络宣告。先看基础配置:
bash复制S3(config)# router ospf 1
S3(config-router)# router-id 1.1.1.1
S3(config-router)# network 172.16.10.0 0.0.0.255 area 0
S3(config-router)# network 172.16.20.0 0.0.0.255 area 0
路由器R1的配置要特别注意区域划分。骨干区域(Area 0)是必须的:
bash复制R1(config)# router ospf 1
R1(config-router)# router-id 2.2.2.2
R1(config-router)# network 192.168.1.0 0.0.0.255 area 0
R1(config-router)# network 172.16.0.0 0.0.255.255 area 0
OSPF调优技巧:
bash复制R1(config-router)# auto-cost reference-bandwidth 10000 # 单位Mbps
bash复制R1(config-if)# ip ospf hello-interval 10
配置完成后,系统化测试很重要。我通常按照这个流程:
bash复制S1# show mac address-table dynamic vlan 10
bash复制S3# show ip route ospf
bash复制R1# show ip ospf neighbor
常见故障处理案例:
端到端测试示例:
bash复制PC1> ping 172.16.20.10 # 跨VLAN ping测试
PC1> tracert 10.0.1.5 # 追踪跨路由器路径
基础网络通了还不够,安全防护必不可少:
bash复制S3(config)# ip access-list extended Protect-Finance
S3(config-ext-nacl)# deny ip 172.16.10.0 0.0.0.255 172.16.20.0 0.0.0.255
S3(config-ext-nacl)# permit ip any any
S3(config-ext-nacl)# interface Vlan20
S3(config-if)# ip access-group Protect-Finance in
bash复制R1(config-router)# area 0 authentication message-digest
R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip ospf message-digest-key 1 md5 MyOSPFKey123
性能优化建议:
bash复制S1(config-if)# switchport port-security
S1(config-if)# switchport port-security maximum 3
S1(config-if)# switchport port-security violation restrict
bash复制S3(config)# spanning-tree vlan 10,20 priority 4096 # 确保核心交换机为根桥
最后别忘了这些运维关键点:
bash复制S3# copy running-config tftp://192.168.1.100/S3-backup.cfg
bash复制S3(config)# logging host 192.168.1.101
S3(config)# logging trap informational
bash复制Switch# show version | include Software
我在管理企业网络时,每天早上会做这些快速检查: