DHCP实战
# DHCP实验
实验拓扑:
实验要求
1. DHCP服务器能够为两个网络分别分配IP地址。2. 内部客户机设置为固定获得某一个IP地址。
实验前准备
DHCP(VMnet1) 配置静态IP修改DHCP配置文件内部客户机 (VMnet1)物理地址绑定路由器 (VMnet1 VMnet2)配置IP开启路由功能开启中继器外部客户机 (VMnet2)修改对应的网络模式
一、DHCP服务器配置
1.配置ip
#!/bin/bash##关闭防火墙if systemctl status firewalld &> /dev/nullthensystemctl disabled --now firewalldelseecho "防火墙已经关闭"fiiptables -F##关闭SELinuxif [ `getenforce` == 'Disabled' ]thenecho "上下文已经关闭"elsesetenforce 0sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/selinux/configfi##配置IP地址nics=`ip a | awk -F: '/ens/{print $2}' | grep -v "^$" | tr -d " "`echo -e "当前可用网卡数量:\n$nics"while truedoread -p "输入要配置的网卡:" nicif ! [[ $nic =~ $nics ]]then continuefiread -p "输入配置网络参数的方式(dhcp|static):" tyif [ $ty == dhcp ]thenecho "TYPE=EthernetBOOTPROTO=$tyNAME=$nicDEVICE=$nicONBOOT=yes"> /etc/sysconfig/network-scripts/ifcfg-$nicifdown $nic ; ifup $nicelif [ $ty == 'static' ]thenread -p "输入ip地址:" ipread -p "子网掩码:" netmaskread -p "输入网关:" gwread -p "输入dns:" dnsecho "TYPE=EthernetBOOTPROTO=staticNAME=$nicDEVICE=$nicONBOOT=yesIPADDR=$ipPREFIX=$netmaskGATEWAY=$gwDNS1=$dns" > /etc/sysconfig/network-scripts/ifcfg-$nicifdown $nic ; ifup $nicelseecho "输入错误"exitfidone[root@bogon ~]# ./init.sh防火墙已经关闭上下文已经关闭当前可用网卡数量:ens160ens192输入要配置的网卡:nicens190
2.安装并修改DHCP配置
#!/bin/bashconfig_dhcp(){#单一地址池配置echo "subnet 192.168.100.0 netmask 255.255.255.0 {range 192.168.100.2 192.168.100.253;option domain-name-servers 192.168.100.1;#option domain-name "internal.example.org";option routers 192.168.100.254;option broadcast-address 192.168.100.255;default-lease-time 600;max-lease-time 7200;}#配置多地址池配置subnet 192.168.200.0 netmask 255.255.255.0 {range 192.168.200.2 192.168.200.253;option domain-name-servers 192.168.100.1;#option domain-name "internal.example.org";option routers 192.168.200.254;option broadcast-address 192.168.200.255;default-lease-time 600;max-lease-time 7200;} #地址绑定host ens192 {hardware ethernet 00:0c:29:62:0f:b3; #绑定内部客户机mac地址fixed-address 192.168.100.100;}" > /etc/dhcp/dhcpd.confsystemctl enable --now dhcpd}if rpm -q dhcpthenconfig_dhcpelseyum install -y dhcpconfig_dhcpfi
二、路由器配置
#!/bin/bash##配置IP地址##已经添加网卡nics=`ip a | awk -F: '/ens/{print $2}' | grep -v "^$" | tr -d " "`echo -e "当前可用网卡数量:\n$nics"while truedoread -p "输入要配置的网卡:" nicif ! [[ $nic =~ $nics ]]then continuefiread -p "输入ip地址:" ipread -p "子网掩码:" netmaskecho "TYPE=EthernetBOOTPROTO=staticNAME=$nicDEVICE=$nicONBOOT=yesIPADDR=$ip" > /etc/sysconfig/network-scripts/ifcfg-$nicifdown $nic ; ifup $nicdone#开启路由功能echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.confsysctl -p#实验dhcrelay进行DHCP广播中继转发dhcrelay 192.168.100.1
三、检验
#内部客户机[root@Inter ~]# ifconfigens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.100.165 netmask 255.255.255.0 broadcast 192.168.100.255inet6 fe80::20c:29ff:fe62:fb3 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:62:0f:b3 txqueuelen 1000 (Ethernet)RX packets 365 bytes 40366 (39.4 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 371 bytes 33902 (33.1 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0#外部客户机[root@Exter ~]# ifconfig ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.200.2 netmask 255.255.255.0 broadcast 192.168.200.255inet6 fe80::1e38:7d53:2925:746f prefixlen 64 scopeid 0x20<link>ether 00:0c:29:b4:17:17 txqueuelen 1000 (Ethernet)RX packets 111 bytes 17020 (16.6 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 291 bytes 42787 (41.7 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@Exter ~]# cat /etc/resolv.conf # Generated by NetworkManagersearch example.orgnameserver 192.168.100.1