Linux基础命令(十一)dhcp

、概念

 明确:IP是谁给的,怎么给的,获取IP的前的设置!

DHCP: Dynamic Host Configuration Protocol,动态主机配置协议,局域网的网络协议,使用UDP协议工作。DHCP服务器一旦开机就会给同一物理网段有需求的客户端自动分配IP,并有一定的租期,租期到了则收回,IP可以续租,续租失败则收回并重新分配,如果服务器关闭则收回IP,遵从先到先得的原则,哪台主机先申请就优先分配,并且基于广播机制

注意:服务器和给客户端分配的IP必须在同一个网段

主要用途:用于内部网络和网络服务供应商自动分配ip地址给用户

########################

部署dhcpd服务程序

客户端的说明:得有动态获取IP的需求,就跟要饭的似的,有人给就要!

客户端设置IP的方式动态获取

#演示:命令行的方式,也可以通过配置文件、 nm-connection-editor 图形界面、nmtui命令的文本界面

nmcli connection add type ethernet con-name wzj ifname br0 autoconnect yes

服务器端的核心:提供自动分配服务!

server端的操作

(1)下载

     1)如果是mount将7.0镜像挂载在指定目录上,可以通过 yum -y install dhcp

     2)如果是单独下载的,可以通过 rpm -ivh dhcp-4.2.5-27.el7.x86_64 (7.0版本对应的dhcp软件)

(2)rpm -q dhcp          -->查看软件是否安装
(3)cd /etc/dhcp/ ;ls    -->此目录是相应的配置文件(默认:安装后dhcpd.conf 是没有做任何配置的)
(4)cp /usr/share/doc/dhcp/dhcpd.conf.example /etc/dhcp/dhcpd.conf -->复制配置文件的模版文件
(5)vim  /etc/dhcp/dhcpd.conf -->根据需要修改配置文件

补充:rpm -qa dhcp -->看到安装软件对应的文件的安装位置!

注意:是dhcpd.conf配置文件,不是dhcp.conf配置文件,一个字符之差

此配置文件默认的内容

Linux基础命令(十一)dhcp_第1张图片

Linux基础命令(十一)dhcp_第2张图片

所作的操作说明

7行     ##是域名设置
8行     ##是DNS地址,在路由器需要解析时会用到
10行    ##11行,是租赁时间长度,建议默认值
27行    ##27、28行,删除,不用。
32行    ##就是主机位,子网掩码的设置
33行    ##分配的ip池范围设置
34行    ##网关的设定
35行    ##后面的都删除了

达到的效果:服务器端配置文件

# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#
# option definitions common to all supported networks...
# 
# (1)为客户端指明DNS名字
#
option domain-name "example.com";
# 
# (2)为客户端指明DNS服务器IP地址(最好指定:114.114.114)
option domain-name-servers 172.25.2.254;

###上面这两个设定会"影响客户端"的/etc/resolv.conf
###作用:访问一些网站的域名时,此DNS服务器会给与域名的解析,目前不影响我们既定的实验效果!

# (3)默认的租赁时间长度,单位是秒
default-lease-time 600;

# (4)指定最大租赁时间长度,单位是秒
max-lease-time 7200;

##说明:上面两个是ip的有效期,过了就会被回收!

# Use this to enble / disable dynamic dns updates globally.
#ddns-update-style none;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

# No service will be given on this subnet, but declaring it helps the 
# DHCP server to understand the network topology.

# This is a very basic subnet declaration.

#(5)为客户端设定子网掩码,(subnet)描述一个IP地址属于该子网的例子!
subnet 172.25.1.0 netmask 255.255.255.0 {
#(6)设定分配IP的地址池(空格分开),给客户端分配ip的区间
  range 172.25.1.100 172.25.2.120;
#(7)给客户端路指定默认的网关,后续可以通过此网关来实现不同网段的通信!
  option routers 172.25.1.215;
}

本质:dhcp服务器目的为了给客户端主机自动分配IP地址,子网掩码,还有网关,DNS用的!

服务器配置之后的设置

(1)开机启动方式
systemctl start dhcpd ##打开dhcp服务
systemctl enable dhcpd ##自启动开启

#####################

(2)防火墙配置(安全配置)
firewall-cmd --permanent --add-service=dhcp    ##添加dhcp服务
firewall-cmd --reload                          ##重新载入
firewall-cmd --list-all                        ##查看dhcp是否通行

注:防火墙的配置也可以先关闭防火墙,即:systemctl stop firewall-cmd

说明:至此一个DHCP服务器的搭建过程就完成了

###################

三、测试

注意:为了消除影响,应先关掉其他dhcp服务器,或断开与其他dhcp服务器的连接!

客户端的测试

/var/lib/dhclient/* 特点:该文件记录了客户端的根据dhcpd设置的租约信息

图片

服务器端验证

/var/log/message             ##可以清晰的看到,服务器的IP给了哪个MAC地址

/var/lib/dhcpd/dhcpd.leases  ##该文件专门记录了dhcp服务端与每个客户端的租约时间、客户端主机名等信息

小细节:多网卡的时候,我们用临时关闭其中一个网卡来测试

ifconfig eth0 down 

   多网卡:网上看的解决办法

/etc/sysconfig/dhcpd

文件特点:该文件用来定义dhcpd监听的网络卡接口,防止服务器多个网卡造成混乱

CentOS5之后的版本不需要配置该文件,而是系统自动做出判断!

分析原理

dhcp工作原理(前4种经常用到)

        DHCP DISCOVER:客户端到服务端  客户端设置为自动获取后一开机就会向网络发广播
	DHCP OFFER:   服务器到客户端  如果网络中有DHCP服务器就会分配一个IP并同时在网络中进行标记此IP已被占用
	DHCP REQUEST: 客户端到服务器  网络中有多个DHCP同时分配IP这时就需要进行选择一个
	DHCP ACK:     服务器到客户端  服务器最终确认

################分割线##################

	DHCP NAK:     服务器到客户端,通知用户无法分配合适的ip地址
	DHCP DECLINE: 客户端到服务器,只是地址已被使用
	DHCP RELEASE: 客户端到服务器,放弃网络地址和取消剩余的租约时间
	DHCP INFORM:  客户端到服务器,客户端如果需要从DHCP服务器端获取更为详细的配置信息 ,则发行inform报文向服务器进行请求,极少用到

相关连接

五、排错

错误1

Linux基础命令(十一)dhcp_第3张图片

原因:系统的配置文件错误或者dhcpd服务器本身IP地址没有被划入dhcp分配范围!

错误2:服务虽然开启了,但是有报错

Linux基础命令(十一)dhcp_第4张图片

说明:由于没有声明哪个网卡启动dhcp功,RHEL5以后会自动尝试匹配不影响实验结果

解决思路

/etc/sysconfig/dhcpd中添加一行

内容:DHCPDARGS=eth0

不建议:RHEL5之后就可以自己判断了!

错误3

Linux基础命令(十一)dhcp_第5张图片

说明:多网卡出现的问题,不知道原因!

######################

、linux的DHCP服务启动失败原因

出现问题的可能有以下几个可能: 
  1. 配置文件有问题。 
    1.1) 内容不符合语法结构,例如:少个分号;
    1.2) 声明的子网和子网掩码不符合; 
  2. 主机IP地址和声明的子网不在同一网段-->经常容易犯错的!
  3. 主机没有配置IP地址 
  4. 配置文件路径出问题,RHEL6以下的版本中配置文件保存在了/etc/dhcpd.conf,rhel6及以上版本中,却保存在了/etc/dhcp/dhcpd.conf

细化

配置错误类型                     错误原因

IP 地址设置错误               ##网络层无法到达;

掩码设置错误                  ##导致主机误划入其他网段,引起路由无法访问;

网关设置错误                  ##导致网络不通,或者路由不可达;

DNS设置错误                   ##网络物理连通真传,但无法获得目的IP地址,无法组包进行通信;

注意: dhcpd服务配置的时候一定要将本身IP地址划入dhcp分配范围!

相关参考连接:手把手教你搭建DHCP服务器、服务多网卡多地址池链接

扩展需求

下边是实例
公司IP地址是192.168.1.0/24网段,可以容纳254台机器,使用DHCP服务器建立一个192.168.1.0网段的作用域,动态管理IP地址;但网络规模扩大到500台机器,一个C类网络就无法满足要求,这时可以再为DHCP服务器添加一个新的作用域,管理分配192.168.0.0网段的IP,为网络增加254个新地址,这样就需要DHCP服务器有双网卡
每个网卡连接一个子网,发布对应的作用域

1,配置双网卡IP
[root@mylab ~]# ifconfig eth0 192.168.0.1 netmask 255.255.255.0
[root@mylab ~]# ifconfig eth0 192.168.1.1 netmask 255.255.255.0

2,编辑配置文件/etc/dhcpd.conf

ddns-update-style interim;
ignore client-updates;

subnet 192.168.0.1 netmask 255.255.255.0; {
option routers 192.168.0.1;
default-lease-time 43200;
max-lease-time 86400;
range dynamic-bootp 192.168.0.10 192.168.0.250;
}

subnet 192.168.1.1 netmask 255.255.255.0; {
option routers 192.168.1.1;
default-lease-time 43200;
max-lease-time 86400;
range dynamic-bootp 192.168.1.10 192.168.1.250;
}

八、配置文件

连接、超级棒

九、中继dhcp服务搭建

链接1:如何搭建DHCP及DHCP中继服务器

链接2:拓扑结构

链接3:RHEL7系统管理之网络管理

你可能感兴趣的:(运维,Linux基础)