【project】--模拟搭建一个中小型校园网的网络平台
文章目录
- 项目介绍
- 设备及IP地址分配
- node01配置
- 网卡配置
- DHCP配置
- 路由转发
- node02配置
- 网卡配置
- 安装并配置授权 Unbound DNS
- node03配置
- 网卡配置
- 安装防火墙
- SNAT配置
- DNAT配置(端口转发)
- 纯缓存 Unbound DNS 配置
- node04配置
- node05配置
- node06配置
项目介绍
本项目通过1台物理机和VMware Workstation软件,构建了一个具有4个内部子网、一个外部模拟公网、4台虚拟交换机和6台虚拟机的网络
设备及IP地址分配
物理机配置 | 虚拟机名称 | 服务器功能描述 | 网卡及IP地址配置 | 网卡连接的虚拟交换机 |
---|---|---|---|---|
Win10 内存≧16GB 10.1.80.X 能上互联网 | node01 | 软路由器 DHCP | ens37: 192.168.1.11/24 ens38: 192.168.2.11/24 ens39: 192.168.3.11/24 ens40: 192.168.4.11/24 | VMnet1 VMnet2 VMnet3 VMnet4 |
node02 | 授权Unbound DNS | ens37: 192.168.1.12/24 | VMnet1 | |
node03 | Firewalld防火墙 SNAT内网用户共享上网 DNAT发布内网应用服务 纯缓存Unbound DNS | 内网卡ens37: 192.168.1.13 外网卡ens33: 10.1.80.X+60 | VMnet1 VMnet8 | |
node04 | httpd+vsftpd+MariaDB | ens37: 192.168.1.14/24 | VMnet1 | |
node05 | 用于测试的流动客户机,在外网测试时,其网卡应连接至VMnet0虚拟交换机,在内网测试时, 其网卡应先后连接至VMnet1,Vmnet2、VMnet3、VMnet4虚拟交换机,以作为不同子网内客户机角色对搭建的服务器进行验证 | |||
node06 | NFS+Samba共享服务 Postfix+Dovecot服务 | ens37: 192.168.1.16/24 | VMnet1 |
node01配置
systemctl stop systemd-resolved
systemctl disable systemd-resolved
网卡配置
network:version: 2renderer: networkdethernets:ens37:dhcp4: noaddresses: [192.168.1.11/24]routes:- to: 0.0.0.0/0 # 额外的默认路由(可选)via: 192.168.1.13on-link: true # 替代旧的 on-link: ens37ens38:dhcp4: noaddresses: [192.168.2.11/24]ens39:dhcp4: noaddresses: [192.168.3.11/24]ens40:dhcp4: noaddresses: [192.168.4.11/24]
DHCP配置
apt update
apt install isc-dhcp-server -y
vim /etc/dhcp/dhcpd.conf#vmnet1
subnet 192.168.1.0 netmask 255.255.255.0 {range 192.168.1.20 192.168.1.100;option routers 192.168.1.11;option domain-name-servers 192.168.1.12;
}
#vmnet2
subnet 192.168.2.0 netmask 255.255.255.0 {range 192.168.2.20 192.168.2.100;option routers 192.168.2.11;option domain-name-servers 192.168.1.12;
}
#vmnet3
subnet 192.168.3.0 netmask 255.255.255.0 {range 192.168.3.20 192.168.3.100;option routers 192.168.3.11;option domain-name-servers 192.168.1.12;host principal-pc { # 为校长计算机保留IPhardware ethernet 00:0c:29:xx:xx:xx; # 替换为校长计算机的MAC地址fixed-address 192.168.3.58;}
}
#vmnet4
subnet 192.168.4.0 netmask 255.255.255.0 {range 192.168.4.20 192.168.4.100;option routers 192.168.4.11;option domain-name-servers 192.168.1.12;
}vim /etc/default/isc - dhcp - server
INTERFACESv4="ens37 ens38 ens39 ens40"systemctl start isc-dhcp-server
systemctl enable isc-dhcp-server
路由转发
vim /etcc/sysctl.conf找到 `net.ipv4.ip_forward=0` 这一行,将其修改为 `net.ipv4.ip_forward=1`
node02配置
网卡配置
network:version: 2renderer: networkdethernets:ens37:dhcp4: noaddresses: [192.168.1.12/24]
安装并配置授权 Unbound DNS
systemctl stop systemd-resolved
systemctl disable systemd-resolved
echo "nameserver 192.168.1.2" | sudo tee /etc/resolv.confapt install unbound
vim /etc/unbound/unbound.conf
server:# 基本设置interface: 192.168.1.12 # 监听内网IPinterface: 127.0.0.1 # 允许本机查询access-control: 192.168.1.0/24 allow # 允许子网1查询access-control: 192.168.2.0/24 allow # 允许子网2查询access-control: 192.168.3.0/24 allow # 允许子网3查询access-control: 192.168.4.0/24 allow # 允许子网4查询do-ip4: yesdo-ip6: noverbosity: 1# 权威DNS配置(定义本地域)local-zone: "example.local." staticlocal-data: "node01.example.local. IN A 192.168.1.11"local-data: "node04.example.local. IN A 192.168.1.14"local-data: "node06.example.local. IN A 192.168.1.16"# 递归解析优化prefetch: yescache-min-ttl: 3600# 递归解析转发规则(外部查询)
forward-zone:name: "."forward-addr: 8.8.8.8forward-addr: 114.114.114.114systemctl start unbound
systemctl enable unbound
node03配置
网卡配置
#01-netcfg.yaml
network:version: 2renderer: networkdethernets:ens33:dhcp4: noaddresses:- 192.168.121.134/24gateway4: 192.168.121.2nameservers:addresses:- 114.114.114.114#02-vmnet1.yaml
network:version: 2renderer: networkdethernets:ens37:addresses:- 192.168.1.13/24
安装防火墙
apt install -y firewalld
systemctl start firewalld
systemctl enable firewalld#配置内外网卡
#将 ens37 添加到 internal 区域:
firewall-cmd --permanent --zone=internal --add-interface=ens37
#将 ens33 添加到 external 区域:
firewall-cmd --permanent --zone=external --add-interface=ens33#设置服务访问规则:比如允许 SSH 服务通过防火墙(如果需要远程管理服务器),执行命令
firewall-cmd --permanent --zone=internal --add-service=ssh firewall-cmd --reload
SNAT配置
#开启ip转发
vim /etc/sysctl.conf找到 `net.ipv4.ip_forward=0` 这一行,将其修改为 `net.ipv4.ip_forward=1`
# 使配置立即生效
sysctl -p#配置 SNAT 规则:使用命令
firewall-cmd --permanent --add-masquerade
#这条命令会在 public 区域(默认)开启源地址伪装,也就是 SNAT 功能。如果网卡在其他区域,需指定对应区域,如 --zone=external
# firewall-cmd --permanent --zone=external --add-masquerade
DNAT配置(端口转发)
# Web (HTTP 80)
firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=80:toaddr=192.168.1.14# FTP (21)
firewall-cmd --permanent --add-forward-port=port=21:proto=tcp:toport=21:toaddr=192.168.1.14# DNS (53 UDP)
firewall-cmd --permanent --add-forward-port=port=53:proto=udp:toport=53:toaddr=192.168.1.12# 邮件服务(SMTP 25)
firewall-cmd --permanent --add-forward-port=port=25:proto=tcp:toport=25:toaddr=192.168.1.16# 重新加载 Firewalld
firewall-cmd --reload# 查看转发规则
firewall-cmd --list-forward-ports
纯缓存 Unbound DNS 配置
systemctl stop systemd-resolved
systemctl disable systemd-resolved
echo "nameserver 192.168.1.13" | sudo tee /etc/resolv.confvim /etc/unbound/unbound.confserver:# 基本设置interface: 192.168.1.13 # 监听内网IPinterface: 127.0.0.1 # 允许本机查询access-control: 192.168.1.0/24 allow # 允许子网1查询access-control: 192.168.2.0/24 allow # 允许子网2查询access-control: 192.168.3.0/24 allow # 允许子网3查询access-control: 192.168.4.0/24 allow # 允许子网4查询do-ip4: yesdo-ip6: noverbosity: 1# 纯缓存优化prefetch: yescache-min-ttl: 3600num-threads: 4 # 根据CPU核心数调整# 所有查询转发到 node02(授权DNS)
forward-zone:name: "."forward-addr: 192.168.1.12 # 优先使用 node02forward-addr: 8.8.8.8 # 备用公共DNSsystemctl restart unbound
systemctl enable unbound
9
# 测试 node03 自身解析
dig @127.0.0.1 google.com# 测试 node02(授权DNS)
dig @192.168.1.12 example.local