Edualk12/homelab-network

GitHub: Edualk12/homelab-network

个人网络实验室,用于网络配置与安全实践。

Stars: 0 | Forks: 0

# **家庭实验室网络** 我的家庭实验室网络是为了让我学习和获得网络知识以及不同网络设备之间如何相互交互的实践经验而构建的。通过构建这个家庭实验室,我能够更好地控制并深入了解数据在不同组件中的移动及其用途。 ## 网络拓扑 ![网络图](https://github.com/Edualk12/HOMELAB-NETWORK/blob/main/HOMELAB%20V4.png) ## 硬件 ### 网络设备 | 设备 | 型号 | 角色 | |------|------|------| | 路由器 | Cisco ISR4321 | 间VLAN路由,DHCP服务器,NAT | | 防火墙(进行中) | MikroTik(进行中) | 边界防火墙 | | 交换机 | EnGenius EWS7928P | 管理交换 | | 无线接入点 | EnGenius ews300ap | Wi-Fi | ### 服务器/计算机 | 设备 | CPU | RAM | 存储 | OS/角色 | |------|-----|-----|---------|------| | HP瘦客户端T530 | AMD嵌入式G系列GX-215JJ | 4GB | 256GB | Ubuntu服务器(运行Pihole 24/7,主要DNS服务器) | | 戴尔Optiplex 3050微型 | 英特尔酷睿I5-8500T | 16GB | 256GB | Proxmox VE(测试环境) | ## VLAN设计 | VLAN ID | 名称 | 子网 | 连接的设备 | |---------|------|--------|------------------| | 10 | klaude | 192.168.1.0/24 | Klaude PC,HP瘦客户端 | | 20 | kamange | 192.168.2.0/24 | Kamange PC,访客PC | | 30 | others | 192.168.3.0/24 | Engenius AP,WIFI | ## 配置 ### 思科 ISR4321 对于路由器,我使用了“路由器在棍上”的方法进行间VLAN路由,并在访问特权执行模式时添加了密码以增加额外的安全性。 ``` ! KlaudeRouter - Cisco ISR4321 ! Last modified: Jun 2 2026 ! version 16.9 service timestamps debug datetime msec service timestamps log datetime msec platform qfp utilization monitor load 80 no platform punt-keepalive disable-kernel-core ! hostname KlaudeRouter ! vrf definition Mgmt-intf ! address-family ipv4 exit-address-family ! address-family ipv6 exit-address-family ! enable secret ! no aaa new-model ! ip domain name KlaudeRouter ip dhcp excluded-address 192.168.1.1 ip dhcp excluded-address 192.168.2.1 ip dhcp excluded-address 192.168.3.1 ip dhcp excluded-address 192.168.4.1 ! ip dhcp pool VLAN10 network 192.168.1.0 255.255.255.0 dns-server 192.168.1.69 8.8.8.8 domain-name klaudeVlan10 default-router 192.168.1.1 lease infinite ! ip dhcp pool VLAN20 network 192.168.2.0 255.255.255.0 dns-server 8.8.8.8 default-router 192.168.2.1 domain-name klaudeVlan20 lease infinite ! ip dhcp pool VLAN30 network 192.168.3.0 255.255.255.0 dns-server 8.8.8.8 default-router 192.168.3.1 domain-name klaudeVlan30 lease infinite ! ip dhcp pool DEFAULTVLAN network 192.168.4.0 255.255.255.0 dns-server 8.8.8.8 default-router 192.168.4.1 domain-name klaudeDefaultVlan lease infinite ! subscriber templating multilink bundle-name authenticated ! license udi pid ISR4321/K9 sn no license smart enable diagnostic bootup level minimal ! spanning-tree extend system-id ! username secret ! redundancy mode none ! interface GigabitEthernet0/0/0 ip address dhcp ip nat outside negotiation auto ! interface GigabitEthernet0/0/1 no ip address ip nat inside negotiation auto ! interface GigabitEthernet0/0/1.1 encapsulation dot1Q 10 ip address 192.168.1.1 255.255.255.0 ip nat inside ! interface GigabitEthernet0/0/1.2 encapsulation dot1Q 20 ip address 192.168.2.1 255.255.255.0 ip nat inside ! interface GigabitEthernet0/0/1.3 encapsulation dot1Q 30 ip address 192.168.3.1 255.255.255.0 ip nat inside ! interface GigabitEthernet0/0/1.4 encapsulation dot1Q 1 native ip address 192.168.4.1 255.255.255.0 ip nat inside ! interface GigabitEthernet0 vrf forwarding Mgmt-intf no ip address shutdown negotiation auto ! ip nat inside source list 1 interface GigabitEthernet0/0/0 overload ip forward-protocol nd ip http server ip http authentication local ip http secure-server ip tftp source-interface GigabitEthernet0 ! ip ssh version 2 ! access-list 1 permit 192.168.1.0 0.0.0.255 access-list 1 permit 192.168.2.0 0.0.0.255 access-list 1 permit 192.168.3.0 0.0.0.255 access-list 1 permit 192.168.4.0 0.0.0.255 ! control-plane ! line con 0 login local transport input none stopbits 1 line aux 0 stopbits 1 line vty 0 4 exec-timeout 30 0 login local transport input ssh line vty 5 97 exec-timeout 30 0 login local transport input ssh ! end ``` ### 英飞凌 EWS7928P 我使用串行到USB转换器配置了交换机,并使用PuTTy终端访问交换机的终端,将gi1端口配置为连接到思科路由器的trunk端口或混合端口,并将不同的端口分配给不同的VLAN,如下面的配置所示。 ``` ! Firmware: v1.05.45-c1.8.57 ! ipv6 state autoconfig username "admin" secret encrypted username "klaude" secret encrypted vlan 1 name "default" vlan 10 name "klaude" vlan 20 name "Kamange" vlan 30 name "others" spanning-tree mst configuration name "" ! snmp community private rw snmp community public ro snmp engineid ! no ip telnet ip ssh ! interface gi1 switchport mode hybrid switchport hybrid allowed vlan add 10,20,30 tagged ! Trunk port to Cisco ISR4321 - carries all VLANs tagged ! interface gi3 switchport mode hybrid switchport hybrid pvid 10 switchport hybrid allowed vlan add 10 untagged ! Access port - VLAN 10 ! interface gi5 switchport mode hybrid switchport hybrid pvid 30 switchport hybrid allowed vlan add 30 untagged switchport hybrid allowed vlan remove 1 ! Access port - VLAN 30, removed from default VLAN ! interface gi7 switchport mode hybrid switchport hybrid pvid 10 switchport hybrid allowed vlan add 10 untagged switchport hybrid allowed vlan remove 1 ! Access port - VLAN 10 ! interface gi19 switchport mode hybrid switchport hybrid pvid 20 switchport hybrid allowed vlan add 20 untagged switchport hybrid allowed vlan remove 1 ! Access port - VLAN 20 ! interface gi21 switchport mode hybrid switchport hybrid pvid 10 switchport hybrid allowed vlan add 10 untagged switchport hybrid allowed vlan remove 1 ! Access port - VLAN 10 ! interface gi25 switchport mode hybrid speed auto duplex full ! interface gi26 switchport mode hybrid speed auto duplex full ! interface gi27 switchport mode hybrid speed auto duplex full ! interface gi28 switchport mode hybrid speed auto duplex full ! ``` ## 运作方式 ### 流量流向 流量从ISP调制解调器进入Cisco ISR4321路由器的G0/0/0接口,并通过G0/0/1接口进入网络。 ### VLAN路由 Cisco ISR4321使用单个物理接口(GigabitEthernet0/0/1)通过dot1Q子接口为每个VLAN进行路由: ``` ! interface GigabitEthernet0/0/1.1 encapsulation dot1Q 10 ip address 192.168.1.1 255.255.255.0 ip nat inside ! interface GigabitEthernet0/0/1.2 encapsulation dot1Q 20 ip address 192.168.2.1 255.255.255.0 ip nat inside ! interface GigabitEthernet0/0/1.3 encapsulation dot1Q 30 ip address 192.168.3.1 255.255.255.0 ip nat inside ! interface GigabitEthernet0/0/1.4 encapsulation dot1Q 1 native ip address 192.168.4.1 255.255.255.0 ip nat inside ! ``` ### 交换 EnGenius EWS7928P连接到Cisco路由器,并通过gi1作为标记的trunk携带VLAN 10、20和30。访问端口按VLAN分配: - gi3,gi7,gi21 → VLAN 10(主要) - gi19 → VLAN 20 - gi5 → VLAN 30(访客) ### DHCP 每个VLAN在Cisco路由器上都有自己的DHCP池。 其中,思科路由器的接口地址被排除在外。 ``` ip dhcp excluded-address 192.168.1.1 ip dhcp excluded-address 192.168.2.1 ip dhcp excluded-address 192.168.3.1 ip dhcp excluded-address 192.168.4.1 ! ``` 每个VLAN的DHCP池,其中只有VLAN10将主DNS服务器设置为Pihole PC。 ``` ip dhcp pool VLAN10 network 192.168.1.0 255.255.255.0 dns-server 192.168.1.69 8.8.8.8 domain-name klaudeVlan10 default-router 192.168.1.1 lease infinite ! ip dhcp pool VLAN20 network 192.168.2.0 255.255.255.0 dns-server 8.8.8.8 default-router 192.168.2.1 domain-name klaudeVlan20 lease infinite ! ip dhcp pool VLAN30 network 192.168.3.0 255.255.255.0 dns-server 8.8.8.8 default-router 192.168.3.1 domain-name klaudeVlan30 lease infinite ! ip dhcp pool DEFAULTVLAN network 192.168.4.0 255.255.255.0 dns-server 8.8.8.8 default-router 192.168.4.1 domain-name klaudeDefaultVlan lease infinite ! ``` ### DNS 通过VLAN 10连接的HP瘦客户端使用192.168.1.69上的Pi-hole作为主DNS。 Cisco ISR4321还充当二级或备用DNS,以防HP瘦客户端出现故障。 ### NAT 所有四个子网通过GigabitEthernet0/0/0通过Cisco路由器上的PAT过载进行NAT。 ### 安全性 使用Cisco ISR4321板载路由器作为防火墙,并使用Pihole广告拦截器和DNS服务器用于过滤。 ## 我学到的知识 - 使用dot1Q子接口进行VLAN的路由器在棍上 - 不同品牌如何处理配置(Cisco,Engenius) - 每个VLAN的间VLAN路由和DHCP池 - 排除网关IP地址从DHCP的重要性 - 通过在所有设备上启用SSH和禁用telnet来提高安全性 - Pi-hole如何作为每个VLAN的主DNS集成 - Cisco IOS-XE软件许可限制 ## 我想要改进的(进行中) - 添加MikroTik作为边界防火墙 - 实施间VLAN ACL以隔离访客流量 - 将路由移至MikroTik以绕过50Mbps限制 - 为所有设备添加Zabbix SNMP监控