ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

思科路由器交换机五部门组网实验:VLAN划分与NAT配置全解析

思科路由器交换机五部门组网实验:VLAN划分与NAT配置全解析 我们直接说结论思科路由器、交换机组网这个实验真正难的不是敲命令而是把IP、VLAN、路由、NAT这几个概念在脑子里串成一条完整的数据通路。我这次用思科模拟器做了个五部门组网实验需求是公司5个部门、A部门100台主机、B部门50台、C部门20台要划分5个子网用路由器和交换机把全网打通。做完一遍之后不管是CCNA实验还是实际企业网络开局这套思路都可以直接复用。如果你正在准备网络工程师面试或者想搞明白企业网到底怎么从零组起来这篇可以当一份带答案的实操笔记。每一步命令、每一个坑我都写在下面。1. 实验需求拆解与拓扑选型1.1 五部门五子网先从需求倒推设计拿到这种需求第一件事不是开模拟器而是把需求翻译成网络术语。“5个部门”对应的是5个广播域“A部门100台、B部门50台、C部门20台”对应的是IP子网容量。为什么部门一定要分VLAN因为如果不隔离所有PC都在同一个二层广播域里ARP、DHCP这些广播会满网跑全网设备越多垃圾流量越大。更实际的问题是一旦某个端口出环或者中了病毒整个公司都可能跟着断网。按照常见企业规模我把D部门补成12台、E部门补成8台凑齐5个部门。A部门100台、B部门50台、C部门20台是原始需求D、E两个部门是我根据实验完整性额外设计的。生产环境里你会经常碰到这种“需求只给了一部分剩下得自己补”的情况提前留出余量永远是正确选择。规划的方式也很直接每个部门一个VLAN每个VLAN一个IP子网VLAN间通信用三层路由完成而不是用物理网络把每间办公室隔开。这种方案灵活性最高后期调整端口所属VLAN只要改一条命令不用重新拉线。1.2 设备角色分配路由器、核心交换机、接入交换机怎么配合设备清单我建议这样定设备型号角色路由器Cisco 2911出口路由器负责NAT和访问外网核心交换机Cisco Catalyst 3560三层交换配置各VLAN网关转发跨VLAN数据接入交换机Cisco Catalyst 2960 x2连接终端PC划分VLAN成员模拟外网设备Cisco 2911或云设备模拟运营商侧网关路由器、交换机、核心交换机这三层职责不要混。接入交换机只干二层活负责把PC分到正确VLAN核心交换机是三层设备每个VLAN的网关都落在它身上出口路由器管的是内外网交界做NAT和默认路由。如果所有VLAN网关都放在路由器上那就是单臂路由方案小规模实验可以但真实企业里跨VLAN流量全挤在路由器接口上性能会是瓶颈。1.3 链路设计与接口规划连接关系我做了个很经典的冗余拓扑核心交换机Gi0/1接接入交换机SwitchA的Gi0/24Trunk口。核心交换机Gi0/2接接入交换机SwitchB的Gi0/24Trunk口。交换机SwitchA的Gi0/23和SwitchB的Gi0/23之间再接一条Trunk线制造二层环路用来测生成树协议。核心交换机Gi0/0不启用二层交换配置成三层接口接路由器Gi0/0。路由器Gi0/1接模拟外网设备的Gi0/0。为什么要刻意拉一条SwitchA到SwitchB的链路因为如果没有环路PVST生成树协议根本没有发挥空间。生成树的价值就在于拓扑里有冗余链路协议会把其中一条口Block掉避免广播风暴等主链路断了再自动放开。做实验如果只求“能通”很多协议的作用根本体现不出来。2. 动手前必须算清楚的IP地址与VLAN规划2.1 VLSM子网划分可用主机数怎么算IP规划是这次实验最应该花时间的一步。A部门100台主机不能用/24直接怼过去吗能用但很浪费。一个/24有254个可用地址分给100台设备等于浪费一半多。既然需求明确就应该用VLSM可变长子网掩码做精细化划分。可用主机数公式是 (2^{32-掩码长度}-2)。减2是因为要去掉网络地址和广播地址。A部门100台需要至少102个地址选/25可用地址126个。B部门50台选/26可用地址62个。C部门20台选/27可用地址30个。D部门12台选/28可用地址14个。E部门8台选/28可用地址14个。我选用的总地址池是192.168.0.0/21也就是192.168.0.0到192.168.7.255。前四个业务子网全部压缩在192.168.0.0/24里管理子网单独用192.168.7.0/24干净且便于路由汇总。具体规划如下部门VLAN ID主机需求子网掩码网关可用地址范围可用数量A10100192.168.0.0/25255.255.255.128192.168.0.1.1-.126126B2050192.168.0.128/26255.255.255.192192.168.0.129.129-.19062C3020192.168.0.192/27255.255.255.224192.168.0.193.193-.22230D4012192.168.0.224/28255.255.255.240192.168.0.225.225-.23814E508192.168.0.240/28255.255.255.240192.168.0.241.241-.25414管理99-192.168.7.0/24255.255.255.0192.168.7.1.2-.254254这个表做出来之后实验基本成功了一半。很多人组网失败不是命令敲错而是子网掩码、网关地址根本对不上。比如B部门网关是192.168.0.129不是192.168.0.1因为.1是A部门的网关。如果规划时没算清楚后面全乱。2.2 为什么用VLAN而不是物理隔离把部门隔开有两种思路一种是每个部门单独拉一台交换机物理隔绝另一种是在同一台交换机上划分VLAN。物理隔离的好处是彻底坏处是设备成本高、扩展性差。今天A部门加两台机器就要再买一台交换机完全不现实。VLAN就是在交换机上把端口逻辑分组让不同VLAN之间的二层数据完全隔离。同样是高隔离VLAN只要在端口上改配置不需要动线缆。而且VLAN间如果需要通信可以通过三层路由打通做到“该通的通不该通的不通”。这里还要分清楚Access口和Trunk口Access口是接终端的只能属于一个VLANTrunk口是交换机之间或交换机与路由器之间传递多VLAN流量的需要在允许列表里放行对应VLAN。很多新手把PC接到了Trunk口结果网卡要么拿不到IP要么能通但行为很诡异原因就在这里。2.3 单臂路由还是三层交换实验做之前必须决定跨VLAN路由放在哪。两种主流方式第一种是单臂路由路由器接交换机一个Trunk口然后在路由器物理接口下创建子接口每个子接口对应一个VLAN做802.1Q封装。配置看起来简单但所有跨VLAN流量都必须经过这个路由器转发数据量一大路由器CPU直接被打满。适合几十台设备的小环境。第二种是三层交换核心交换机开启IP routing为每个VLAN创建SVI虚拟接口并配置IP地址VLAN间流量在交换机内部用硬件转发速度远高于路由器。现在企业网络基本都是这个方案。这次实验我用三层交换做VLAN网关出口路由器只负责NAT访问外网。这样两台设备各司其职既练了交换机的SVI配置也练了路由器的静态路由和NAT。3. 交换机配置全过程VLAN、Trunk、管理地址与PVST3.1 接入交换机创建VLAN并划分端口两台接入交换机配置基本一致以SwitchA为例。先进入全局配置模式创建VLANenable configure terminal hostname SwitchA vlan 10 name A_BuMen vlan 20 name B_BuMen vlan 30 name C_BuMen vlan 40 name D_BuMen vlan 50 name E_BuMen vlan 99 name Management然后把终端端口划到对应VLAN。A部门PC接FastEthernet0/1-10B部门接FastEthernet0/11-20interface range fastEthernet 0/1-10 switchport mode access switchport access vlan 10 interface range fastEthernet 0/11-20 switchport mode access switchport access vlan 20 interface fastEthernet 0/23 switchport mode trunk switchport trunk allowed vlan 10,20,30,40,50,99 interface fastEthernet 0/24 switchport mode trunk switchport trunk allowed vlan 10,20,30,40,50,99C、D、E部门PC也用同样方法接对应端口后划到VLAN 30、40、50。注意Access口必须显式写switchport mode access因为思科2960默认端口可能是动态协商模式如果对端设备支持DTP端口可能被协商成Trunk导致终端直接失联。这个坑我踩过不止一次。2960默认就是802.1Q Trunk不需要switchport trunk encapsulation dot1q如果是3560等较老的三层交换机可能需要在mode trunk之前手动指定封装否则会报错。实际配置时建议每配完一台就敲一遍show vlan brief确认端口划分正确。3.2 核心交换机配置Trunk和三层接口核心交换机3560配置VLAN和Trunk时命令稍微有点区别。Trunk接口需要先指定封装vlan 10,20,30,40,50,99 interface gigabitEthernet0/1 switchport trunk encapsulation dot1q switchport mode trunk switchport trunk allowed vlan 10,20,30,40,50,99 interface gigabitEthernet0/2 switchport trunk encapsulation dot1q switchport mode trunk switchport trunk allowed vlan 10,20,30,40,50,99核心交换机连接路由器的Gi0/0不再当二层端口用要手动关掉交换端口模式变成一个三层接口这样才能配置IP地址interface gigabitEthernet0/0 no switchport ip address 192.168.254.2 255.255.255.252 no shutdown192.168.254.0/30是核心交换机和路由器之间的点对点互联段。用/30的好处是只有两个可用地址正好分配两端不会产生多余广播地址浪费。这种地址段在企业里通常叫互联地址段和业务地址完全分开。3.3 PVST生成树配置把根桥握在核心交换机手里三台交换机之间存在冗余链路如果不做生成树二层环路会导致广播风暴交换机的CPU利用率瞬间飙到100%整个网络瘫痪。思科默认启用的就是PVST也就是Per-VLAN Spanning Tree每个VLAN生成一棵独立的生成树。实验里要把生成树模式明确写成PVST然后让核心交换机成为所有业务VLAN的根桥spanning-tree mode pvst spanning-tree vlan 10,20,30,40,50,99 root primary在接入交换机上连接PC的Access端口要启用PortFast和BPDUGuardinterface range fastEthernet 0/1-24 spanning-tree portfast spanning-tree bpduguard enablePortFast的作用很直接普通端口接PC上电后要经历监听、学习状态默认要等几十秒才能转发数据DHCP客户端很容易超时。PortFast让这些连接终端的端口直接进入转发状态开机就能拿到地址。BPDUGuard更狠如果这个端口收到BPDU立刻进入error-disabled状态防止有人私接交换机形成环路。配置完成后用show spanning-tree vlan 10查看生成树信息。你会看到根桥ID、根端口、指定端口和阻塞端口。三台交换机这个拓扑里SwitchA和SwitchB之间的某条链路会被Block掉这是正常现象。PVST每个VLAN都有独立的根桥和端口角色所以同一个物理端口可能这个VLAN是转发、另一个VLAN是阻塞这是PVST和传统STP最大的区别。3.4 管理VLAN与SSH远程登录配置生产环境一定要把设备管理流量和业务流量分开。我单独规划了VLAN99作为管理VLAN所有交换机管理地址都放这里。接入交换机配置管理地址和默认网关interface vlan 99 ip address 192.168.7.2 255.255.255.0 no shutdown ip default-gateway 192.168.7.1核心交换机的VLAN99 SVI地址就是192.168.7.1这里先不写后面统一配置。远程管理不要用Telnet明文密码在网络里裸奔必须开SSH。交换机上生成RSA密钥并配置本地用户ip domain-name lab.local crypto key generate rsa modulus 1024 username admin secret cisco123 enable secret cisco123 line vty 0 4 transport input ssh login local line console 0 password cisco123 loginconsole密码和SSH密码建议设置成两套不要所有设备同一个密码这是基本的等保习惯。配置完成后用管理PC SSH到192.168.7.2和192.168.7.3分别登录两台接入交换机。如果登录不上优先检查VLAN99有没有写到Trunk允许列表里。4. 三层路由与出口NAT内网互通之后怎么上外网4.1 核心交换机开路由并配置VLAN网关核心交换机承担所有业务子网的网关。进入每个VLAN的SVI接口配置IP地址interface vlan 10 ip address 192.168.0.1 255.255.255.128 no shutdown interface vlan 20 ip address 192.168.0.129 255.255.255.192 no shutdown interface vlan 30 ip address 192.168.0.193 255.255.255.224 no shutdown interface vlan 40 ip address 192.168.0.225 255.255.255.240 no shutdown interface vlan 50 ip address 192.168.0.241 255.255.255.240 no shutdown interface vlan 99 ip address 192.168.7.1 255.255.255.0 no shutdown这部分最容易犯的错是把掩码抄错。VLAN10是/25网关地址掩码就是255.255.255.128VLAN20是/26掩码就是255.255.255.192。网关和掩码必须和终端侧完全一致不然终端即使拿到了IP也ping不通网关。然后开启三层路由功能并配置默认路由指向出口路由器ip routing ip route 0.0.0.0 0.0.0.0 192.168.254.1ip routing是核心交换机从“大二层交换机”变成“三层交换机”的关键命令。没有这行命令SVI接口只能当管理接口用不同VLAN之间根本不会帮忙转发。默认路由的意思就是内网所有不知道去哪儿的流量统一丢给出口路由器的192.168.254.1。4.2 出口路由器静态路由与NAT overload配置出口路由器配置相对简单但逻辑必须清楚。Gi0/0属于内网接口Gi0/1属于外网接口两个接口的NAT方向不能搞反interface gigabitEthernet0/0 ip address 192.168.254.1 255.255.255.252 ip nat inside no shutdown interface gigabitEthernet0/1 ip address 10.0.0.2 255.255.255.252 ip nat outside no shutdown access-list 1 permit 192.168.0.0 0.0.7.255 ip nat inside source list 1 interface gigabitEthernet0/1 overloadACL里面的通配符掩码0.0.7.255对应的是192.168.0.0/21覆盖了192.168.0.0到192.168.7.255整个地址池所以业务VLAN和管理VLAN都能被NAT。overload表示所有内网地址复用一个外网接口地址也就是常见的PAT端口多路复用。家用宽带拨号上网、企业小带宽出口基本都是这个原理。同时要在路由器上写回程路由告诉路由器到内网192.168.0.0/21网段怎么走ip route 192.168.0.0 255.255.248.0 192.168.254.2 ip route 10.0.0.0 255.255.255.252 10.0.0.1第二条是去往外网模拟设备的路由。其实直连网段不需要写但为了模拟“运营商侧还有别的子网”我让模拟外网设备有一个回环接口所以显式写了一条静态路由。如果没有这条内网PC ping外网模拟设备的后端地址可能会不通。4.3 DHCP自动分配IP替代手动配置企业网络不可能每个终端都手动配IPDHCP是必须的。我把DHCP服务直接放在核心交换机上为每个业务子网建一个地址池ip dhcp excluded-address 192.168.0.1 192.168.0.10 ip dhcp pool vlan10 network 192.168.0.0 255.255.255.128 default-router 192.168.0.1 dns-server 223.5.5.5 8.8.8.8 ip dhcp excluded-address 192.168.0.129 192.168.0.138 ip dhcp pool vlan20 network 192.168.0.128 255.255.255.192 default-router 192.168.0.129 dns-server 223.5.5.5 8.8.8.8excluded-address的作用是保留地址。我会把每个子网前10个地址排除掉专门给服务器、打印机、监控设备等固定IP用。DHCP会优先从池里往后分配避免把网关或者重要设备的固定地址发出去造成冲突。如果不想把DHCP放在交换机也可以把DHCP服务放到Windows或Linux服务器上然后在核心交换机的SVI接口下配置ip helper-address 服务器IP。实验环境用交换机内置池最省事生产环境还是建议独立DHCP服务器负载和维护都更可靠。5. 实验验证与排错实战记录5.1 逐层验证从网关到跨VLAN再往外网配置完成后验证要有顺序不要一上来就ping外网。我是这样一层一层测的测试项操作预期结果检查VLANshow vlan brief所有VLAN存在端口归属正确检查Trunkshow interfaces trunk核心和接入之间Trunk状态up终端拿地址PC上ipconfig拿到对应子网IP和网关网关连通ping自己的网关通跨VLANA部门PC ping D部门PC通外网连通PC ping 10.0.0.1通NAT验证show ip nat translations能看到内网地址和外网地址的映射如果跨VLAN不通但同一VLAN能通问题往往出在核心交换机上要么ip routing没开要么某个SVI的网关地址和终端不在同一网段。如果内网能通但外网不通优先查路由器的NAT方向和ACL。5.2 我踩过的四个典型坑很多问题不是命令不会写而是细节没注意。我这次实验踩过的坑总结成一张速查表故障现象原因排查命令解决方法跨交换机同VLAN不通Trunk allowed vlan没放行show interfaces trunk两端trunk都放行对应VLANPC能link但不能通信端口被协商成Trunkshow interfaces status显式配置switchport mode access内网能通外网不通NAT inside/outside放反show ip nat statistics内网口配inside外网口配outside新加链路后全网广播风暴生成树没工作或误关show spanning-tree确认所有交换机启用PVST正确选根桥第二个坑特别隐蔽。2960默认端口可能是dynamic desirable一端是交换机一端是PC最后协商下来还是Access一般没问题。但如果你把PC接到了另一台交换机上两边都能成为TrunkPC自然拿不到正确VLAN。所以每一台交换机上连终端的口我习惯全部写成switchport mode access杜绝动态协商带来的不确定性。5.3 抓包分析ARP与ICMP转发过程模拟器里用Simulation模式或者抓包工具观察一次跨VLAN ping的完整过程比背十遍原理都有用。A部门PC192.168.0.10ping D部门PC192.168.0.226时注意抓到的包会有明显区别。A部门PC发出ICMP Echo Request之前先发一个ARP请求问的是192.168.0.1自己的网关的MAC地址而不是直接问192.168.0.226的MAC。因为A部门PC知道目标不在同一网段它要把数据帧发给网关。核心交换机收到后查路由表发现192.168.0.224/28是直连网段于是把数据帧重新封装目标MAC替换成192.168.0.226对应的MAC从D部门所在VLAN转发出去。这个过程中IP层的目的地址始终是192.168.0.226而二层帧的目的MAC在每一跳都在变化。理解了这个流程你就明白为什么“网关”在网络里这么重要也明白为什么三层交换机做VLAN间转发比单臂路由快得多。同样的逻辑放到多分支组网、专线互联上数据转发路径的分析方法是一样的。5.4 配置保存与备份的习惯实验结束后每台设备都要保存配置write memory或者用copy running-config startup-config。我自己的习惯是每完成一个大步骤就保存一次并立刻把show running-config的输出复制到本地文件里。组网排错时翻记录比翻记忆快得多。模拟器里配置丢了可以重新做一遍生产环境里配置没保存设备一重启就回到解放前这种教训不值得亲身体验。6. 这个实验做完还能怎么延伸如果只是把上面所有配置敲完、ping通一遍组网实验的基础目标已经完成。但想把这个实验价值榨干我建议再往三个方向试一试。第一把静态路由改成OSPF。核心交换机、出口路由器、模拟外网设备之间跑OSPF看看路由表怎么收敛链路断了之后恢复时间是多少。静态路由适合小网络但企业里一旦出现双出口、多上行动态路由才是正经解法。第二给核心交换机配置两台做网关冗余比如HSRP或VRRP。实验里核心挂了全网直接瘫痪现实企业不可能接受这种单点故障。配HSRP时虚拟网关IP要和各VLAN终端配置保持一致PC的网关不能指向真实接口地址要指向虚拟地址这个细节很值得练。第三把PVST的负载均衡做实。现在每个VLAN都是同一棵生成树你可以试着通过修改不同VLAN的桥优先级或者端口Cost让一部分VLAN走SwitchA上行另一部分走SwitchB上行真正体会到PVST“每个VLAN一棵树”带来的带宽利用率优势。我个人在实际操作中的体会是组网实验最忌讳“配完能通就收工”。能通只是及格线能讲清每一个包在设备之间怎么走遇到故障十分钟内定位才叫真正掌握了。思科路由器、交换机组网这一套实验做三遍不嫌多。第一遍照抄第二遍不看命令自己敲第三遍故意制造故障再排错三遍下来很多知识就是肌肉记忆了。
返回列表