IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux之DHCP服务及配置 -> 正文阅读

[系统运维]Linux之DHCP服务及配置

概念

dhcp(Dynamic Host configuration Protocol,动态主机配置协议 )是一个局域网的网络协议,它主要是通过客户端发送广播数据包给整个物理网段内的所有主机,若局域网内有DHCP服务器时,才会响应客户端的IP参数要求。

建立条件

  • 拥有真实物理网卡,或者连接广播域的真实物理网卡;
  • 该接口或者该物理网卡必须有一个合理的ip地址;

Firstinput firstoutput 先进先出的问题,所以有两台dhcp服务器时使用的是最先用最先配置的dhcp服务器
在这里插入图片描述
当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。

DHCP有三种机制分配IP地址

  1. 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
  2. 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
  3. 手工分配方式(Manual
    Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。

工作原理

DHCP协议采用UDP作为传输协议,主机发送请求消息到DHCP服务器的67号端口,DHCP服务器回应应答消息给主机的68号端口。详细的交互过程如下图。
在这里插入图片描述

DHCP八种报文类型

  1. DHCP Discover
    DHCP客户端请求地址时,并不知道DHCP服务器的位置,因此DHCP客户端会在本地网络内以广播方式发送请求报文,这个报文成为Discover报文,目的是发现网络中的DHCP服务器,所有收到Discover报文的DHCP服务器都会发送回应报文,DHCP客户端据此就可以知道网络中存在的DHCP服务器的位置。
  2. DHCP Offer
    DHCP服务器收到Discover报文后,就会在所配置的地址池中查找一个合适的ip地址,加上相应的租约期限和其他配置信息(网关,DNS服务器等),构造一个Offer报文,发送给客户,告知用户本服务器可以为其提供IP地址。(只是告诉client可以提供,是预分配,还需要client通过ARP检测该IP是否重复)
  3. DHCP Request
    DHCP客户端会收到很多Offer,所以必须在这些回应中选择一个。Client通常选择第一个回应Offer报文的服务器作为自己的目标服务器,并回应一个广播Request报文,通告选择的服务器。DHCP客户端成功获取IP地址后,在地址使用租期过去1/2时,会向DHCP服务器发送单播Request报文续延租期,如果没有收到DHCPACK报文,在租期过去3/4时,发送广播Request报文续延租期。
  4. DHCP ACK
    DHCP服务器收到Request报文后,根据Request报文中携带的用户MAC来查找有没有相应的续约记录,如果有则发送ACK报文作为回应,通知用户可以使用分配的ip地址。
  5. DHCP NAK
    如果DHCP服务器收到Request报文后,没有发现相应的租约记录或者由于某些原因无法正常分配ip地址,则发送ACK报文作为回应,通知用户无法分配合适的ip地址。
  6. DHCP Release
    当用户不在需要使用分配ip地址时,就会向DHCP服务器发送Release报文,告知服务器用户不再需要分配ip地址,DHCP服务器会释放被绑定的租约。
  7. DHCP Decline
    DHCP客户端收到DHCP服务器回应的ACK报文后,通过地址冲突检测发现服务器分配的地址冲突或者由于其他原因导致不能使用,则发送Decline报文,通知服务器所分配的ip地址不可用。
  8. DHCP Inform
    DHCP客户端如果需要从DHCP服务器端获取更为详细的配置信息,则发送Inform报文向服务器进行请求,服务器收到该报文后,将根据租约进行查找,找到相应的配置信息后,发送ACK报文回应DHCP客户端(极少用到)。

动态分配

挂载

[root@redhat ~]# mount /dev/sr0 /mnt

安装DHCP包

注意8的版本需要在后面加-server

[root@redhat ~]# yum install dhcp-server

启动服务

[root@redhat ~]# systemctl start dhcpd

1、修改配置文件

示例文件 /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example

[root@redhat ~]# vim /etc/dhcp/dhcpd.conf

//配置文件内容
subnet 192.168.12.0 netmask 255.255.255.0 {    //声明网段和掩码
  option domain-name-servers 114.114.114.114;     //指定DNS
  option routers 192.168.12.2;    //指定网关
  range dynamic-bootp 192.168.12.140 192.168.12.150;  //指定地址池范围
  default-lease-time 3600;  //默认租约时间
  max-lease-time 7200;     //最大租约时间
}         

1.2重启服务

   [root@redhat ~]# systemctl restart dhcpd

2、客户端

在虚拟网络编辑器中将dhcp分配关掉

在这里插入图片描述

2.1在客户端命令窗口输入dhclient命令使用动态主机配置协议动态的配置网络接口的网络参数

网络进程接口为51346

[root@localhost ~]# dhclient
dhclient(51346) is already running - exiting. 

This version of ISC DHCP is based on the release available
on ftp.isc.org.  Features have been added and other changes
have been made to the base software release in order to make
it work better with this distribution.

Please report for this software via the CentOS Bugs Database:
    http://bugs.centos.org/

exiting.

2.2关掉之前的网络接口

[root@localhost ~]# kill -9 51346

2.3再次declient动态获取IP

[root@localhost ~]# dhclient

2.4查看ip

[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:4f:53:7d brd ff:ff:ff:ff:ff:ff
    inet 192.168.12.141/24 brd 192.168.12.255 scope global dynamic ens33
       valid_lft 3215sec preferred_lft 3215sec
    inet6 fe80::fba6:88de:97e8:be1d/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:d0:41:23 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:d0:41:23 brd ff:ff:ff:ff:ff:ff

手工分配

1、修改配置文件

[root@redhat ~]# vim /etc/dhcp/dhcpd.conf
//配置文件内容
subnet 192.168.12.0 netmask 255.255.255.0 {
  option domain-name-servers 114.114.114.114;
  option routers 192.168.12.2;
  range dynamic-bootp 192.168.12.140 192.168.12.160;
  default-lease-time 3600;
  max-lease-time 7200;
}
host fantasia {
   hardware ethernet 00:0c:29:4f:53:7d;  //客户端硬件地址
   fixed-address 192.168.12.150;       //指定ip地址
}

1.2 重启服务

[root@redhat ~]# systemctl restart dhcpd

2、客户端

2.1 在客户端命令窗口输入dhclient命令使用动态主机配置协议动态的配置网络接口的网络参数

网络进程接口为51605

[root@localhost ~]# dhclient
dhclient(51605) is already running - exiting. 

This version of ISC DHCP is based on the release available
on ftp.isc.org.  Features have been added and other changes
have been made to the base software release in order to make
it work better with this distribution.

Please report for this software via the CentOS Bugs Database:
    http://bugs.centos.org/

exiting.

2.2 断开网络

[root@localhost ~]# kill -9 51605

2.3再次dhclient动态获取IP

[root@localhost ~]# dhclient

2.4再次查看ip

[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.12.150  netmask 255.255.255.0  broadcast 192.168.12.255
        inet6 fe80::fba6:88de:97e8:be1d  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:4f:53:7d  txqueuelen 1000  (Ethernet)
        RX packets 3265  bytes 996836 (973.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 674  bytes 72295 (70.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-20 15:29:39  更:2021-08-20 15:30:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 20:06:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计