title: linux-运维进阶-18 DHCP动态管理主机地址
date: 2019-01-23 11:35:47
description: linux-运维进阶-18 DHCP动态管理主机地址
categories:
- linux
- linux-运维进阶
tags: - linux
- Centos
- RedHat
linux-运维进阶-18 DHCP动态管理主机地址
概念
1、工作过程
2、IP地址和主机名转换的方法
1)Host表 ,是简单的文本文件(/etc/hosts文件),其中存放了主机 名和IP地址的映射表,它通过在该文件中搜索来匹配主 机名和IP地址。
2)NIS(Network Information System), 是由Sun Microsystems开发的,它将主机表用作NIS主机数 据库,从它这里,客户机可以得到他们所需的主机表信 息。
3)DNS(Domain Name Server) , 是一种新的主机名和IP地址的转换机制,它使用一种分 层的分布式数据库来处理Internet上的成千上万个主机和 IP地址的转换。
配置实验环境
有Test和client两台虚拟机,Test用作服务器,client用作客户端,客户端的ip由服务器分配而来。举个栗子,就是你连上了别人家wifi后,那么他家的路由器会给你的电脑或者手机分配一个ip,这样你的电脑或手机才能上网。
VMware Workstation Pro 软件设置
在软件上找到“编辑”->”虚拟网络编辑器”->”更改设置”,做如下图的设置
注意:ip不用改,例如我的VMnet1的ip是192.168.23.0网段,VMnet8的ip是192.168.141.0网段,那就让它保持原样,不用去改。
注意,不要勾选“使用本地DHCP服务将ip分配给虚拟机”,如果你勾选了,那分配ip给client的就不是Test这台服务器,而是VMware Workstation Pro软件分配的了。
Test配置DHCP服务
配置网络
Test中能上网的网卡(NAT模式的网卡,也就是网络适配器1,也就是ens33)不用管,给新增的网卡(仅主机模式的网卡,也就是网络适配器2,也就是ens37)配置一个跟默认网卡不同网段的固定IP,此处以网段192.168.10.0/24为例。
1 | [root@localhost ~]# nmcli connection add con-name ens37 ifname ens37 type ethernet autoconnect yes ipv4.method manual ipv4.addresses 192.168.10.254/24 |
安装dhcp服务
1 | [root@localhost ~]# yum install dhcp -y |
查看参考示例
1 | [root@localhost ~]# cat /usr/share/doc/dhcp*/dhcpd.conf.example | grep -v "^$" | grep -v "#" |
参数 | 作用 | |
---|---|---|
ddns-update-style [类型] | 定义DNS服务动态更新的类型,类型包括none(不支持动态更新)、interim(互动更新模式)与ad-hoc(特殊更新模式) | |
[allow \ | ignore] client-updates | 允许/忽略客户端更新DNS记录 |
default-lease-time [21600] | 默认超时时间 | |
max-lease-time [43200] | 最大超时时间 | |
option domain-name-servers [8.8.8.8] | 定义DNS服务器地址 | |
option domain-name [“domain.org”] | 定义DNS域名 | |
range | 定义用于分配的IP地址池 | |
option subnet-mask | 定义客户端的子网掩码 | |
option routers | 定义客户端的网关地址 | |
broadcase-address[广播地址] | 定义客户端的广播地址 | |
ntp-server[IP地址] | 定义客户端的网络时间服务器(NTP) | |
nis-servers[IP地址] | 定义客户端的NIS域服务器的地址 | |
Hardware[网卡物理地址] | 指定网卡接口的类型与MAC地址 | |
server-name[主机名] | 向DHCP客户端通知DHCP服务器的主机名 | |
fixed-address[IP地址] | 将某个固定的IP地址分配给指定主机 | |
time-offset[偏移误差] | 指定客户端与格林尼治时间的偏移差 |
配置dhcp服务
1 | [root@localhost ~]# vim /etc/dhcp/dhcpd.conf |
PS:如果要将某个固定的IP分配给指定的主机,需要在主配置文件追加如下(实际上是将MAC地址和IP做了一个映射):
1 | host subnet1 |
参数作用
参数 | 解析 |
---|---|
ddns-update-style none; | 设置DNS服务不自动进行动态更新 |
ignore client-updates; | 忽略客户端更新DNS记录 |
subnet 192.168.1.0 netmask 255.255. 255.0 | 作用域为192.168.1.0/24网段 |
range 192.168.1.50 192.168.1.150; | IP地址池为192.168.1.50-150(约100个IP地址) |
option subnet-mask 255.255.255.0; | 定义客户端默认的子网掩码 |
option routers 192.168.1.1; | 定义客户端的网关地址 |
option domain-name “test.com”; | 定义默认的搜索域 |
option domain-name-servers 192.168. 1.1; | 定义客户端的DNS地址 |
default-lease-time 21600; | 定义默认租约时间(单位:秒) |
max-lease-time 43200; | 定义最大预约时间(单位:秒) |
} | 结束符 |
启动dhcp服务
1 | [root@localhost ~]# firewall-cmd --add-service=dhcp --permanent |
client客户端设置成自动获取ip(默认就是),测试
1 | [root@localhost ~]# systemctl restart network |
可以看到,client获取到的ip是192.168.10.50/24,恰恰是我们IP地址池为192.168.1.50-150(约100个IP地址)的第一个地址,说明我们的DHCP服务配置成功了。
这时,我们试试在Test上关掉DHCP服务
Test上:
1 | [root@localhost ~]# systemctl stop dhcpd |
client上:
1 | [root@localhost ~]# systemctl restart network |
可以看到,一旦Tset上面的DHCP服务关掉了,那么client重启网络服务就会直接报错,再次查看其ip发现,它连IP地址都没了,只能看到其物理地址(Mac地址),上图中我的Mac地址就是00:0c:29:98:66:4e。
接下来,我们把它的ens33网卡的Mac地址记下来,加入到Test的DHCP配置中(Mac地址这么长不要敲错了哈,那个冒号:是英文的冒号,容易敲错):
Test上:
1 | [root@localhost ~]# vim /etc/dhcp/dhcpd.conf |
client上:
1 | [root@localhost ~]# systemctl restart network |
虚拟机和虚拟网卡的通信原理
host-only(仅主机)模式与VMnet1虚拟网卡进行通信
NAT模式与VMnet8虚拟网卡进行通信
桥接使用的是你机器的真实网卡进行上网
1.仅主机模式
此模式下,虚拟机与VMnet1虚拟网卡进行通信,咱们做一下测试:
在虚拟网络编辑器中,我们将VMnet1如下图设置,给它设置一个DHCP地址池192.168.23.50-150。这样一来,我们的虚拟机网络适配器但凡是使用仅主机模式且以DHCP方式获取ip的,就能从这个地址池中获取到ip。
这样设置以后,只要你的虚拟机网卡是仅主机模式且网卡配置文件里设置的ip获取方式是DHCP(默认就是DHCP),则其ip就会从上图中那个DHCP地址池中选取。例如,我新安装的一台虚拟机,网卡设置为仅主机模式后,打开后其ip为192.168.23.50,恰恰是上述地址池的第一个ip。那么上述地址池的最后一个ip用来干嘛了呢?如下图,打开控制面板,查看VMnet1的详细信息,可以看到上述地址池最后一个ip:192.168.23.150充当的是DHCP服务器的ip。
2.NAT模式
此模式下,虚拟机与VMnet8虚拟网卡进行通信,咱们做一下测试:
在虚拟网络编辑器中,我们将VMnet8如下图设置,给它设置一个DHCP地址池192.168.100.50-150。这样一来,我们的虚拟机网络适配器但凡是使用NAT模式且以DHCP方式获取ip的,就能从这个地址池中获取到ip。
这样设置以后,只要你的虚拟机网卡是NAT模式且网卡配置文件里设置的ip获取方式是DHCP(默认就是DHCP),则其ip就会从上图中那个DHCP地址池中选取。例如,刚刚那台虚拟机,网卡设置为NAT模式后,打开后其ip为192.168.100.50,恰恰是上述地址池的第一个ip。要注意的是,在日常使用电脑的过程中,偶尔可能会把虚拟网卡VMnet1和VMnet8改动,出现下面这种情况:
3.桥接模式
桥接模式使用的是你机器的真实网卡进行上网,也就是说,如果你的虚拟机网络适配器设置为桥接模式的话,则相当于虚拟机与你的电脑物理主机桥接,桥指的是网桥,就是交换机。所以,桥接模式下,你的虚拟机和你的物理机是在同一个网段的,如下图:
我们将刚刚那台虚拟机设置为桥接模式,查看其ip为192.168.1.105,那么我们看看我的物理机ip是192.168.1.108,与之确实是同一个网段的。