DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手。
  DHCP有3个端口,其中UDP68和UDP67为正常的DHCP服务端口,分别作为DHCP Client(广播请求配置)和DHCP Server(回应广播请求)的服务端口;546号端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是需要特别开启的服务,DHCP failover是用来做“双机热备”的。
 
使用虚拟机做该实验,常见的问题:
1. 局域网里面出现多个 DHCP 服务器,比如vmware 里面没有把vmnet1 网段的dhcp 服务关闭,解决方法:
  使用vmware 的Virtuan Network Editor 来设置vmnet1 的网段,关闭该网段的DHCP 服务(我实验主机的网络环境是 host-only/仅主机 模式,所以各位关闭的时候要注意下自己实验主机使用的是什么网络);
 
2. NetworkManager 服务干扰,解决方法:
# chkconfig --level 2345 NetworkManager off
# service NetworkManager stop
3. vmware上的vmnet1 的IP自动变化,导致该IP 与DHCP 服务器的配置文件不相符,解决方法:
  使用vmware 的Virtuan Network Editor 来设置vmnet1 的网段,这样vmnet1 的IP 就会自动设置好了
 
一、基本搭建:
1、实验环境
1.1、 一台虚拟机做服务器,另外一台虚拟机做客户机,都连接到 host-only 网络vmnet1
1.2、用 vmware 的Virtual Network Editor 确保存在所需的 host-only 网络,并关闭 vmware 在相应网络的 dhcp 功能
2、实验准备(服务器端)
# service iptables stop --暂时关闭防火墙
# setenforce 0 --暂时关闭 selinux
# service NetworkManager stop --关闭网络管理服务
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static --服务器不使用dhcp获取IP
IPADDR=192.168.33.128 --我的host-only网络网段是: 192.168.33.0
GATEWAY=192.168.33.2 --vmware虚拟机里的网关一般是 XX.XX.XX.2
# yum install dhcp* --安装DHCP服务
3、简单配置dhcp
# vim /etc/dhcp/dhcpd.conf --一份最简单的配置,仅有下面几行。
allow bootp;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.33.0 netmask 255.255.255.0 {
option routers 192.168.33.2; --给 client 的默认网关
option subnet-mask 255.255.255.0; --给 client 的子网掩码
option domain-name "abc.com"; --给 client 的搜索域
option domain-name-servers 192.168.33.2; --给 client 的域名服务器
range dynamic-bootp 192.168.33.100 192.168.33.111; --可供分配的IP范围
}
# service dhcpd restart --重启 dhcp 服务
4、测试(client端)
# vim /etc/sysconfig/network-scripts/ifcfg-eth0 --客户端在虚拟机中也要使用host-only网络模式
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp --获取IP地址方式为通过dhcp服务
# service network restart --重启网络
# ifconfig --确实从我们的DHCP服务器中获得了IP地址,而且还是范围内的第一个IP,100
inet addr:192.168.33.100 Bcast:192.168.33.255 Mask:255.255.255.0
--我们也可以做更进一步的测试,在服务器中将 DHCP 服务关闭。然后在到客户端上运行命令 service network restart ,会发现,一直卡在那里。
 
二、搭建多个局域网中的DHCP服务
1、实验环境
  1.1、准备三台虚拟机,两张host-only模式的网卡,vmware默认有一张host-only模式的网卡VMnet1,我们再添加一张VMnet2,如下:
 
   这样,一张新的 host-only 网卡添加成功,网段为 192.168.253.0 ; 记得去掉 vmware 自带的 DHCP服务。
  1.2、物理机要连上 VMnet1&&VMnet2 两张网卡,两台虚拟机分别连上其中一张。
  1.3、将三台机器网卡配置好
    1.3.1、服务器如下(物理机有两张):
 
     注意网卡设备名与MAC地址以及网段之间的对应关系。
    1.3.2、客户机如下:
DEVICE=eth0
HWADDR=00:0C:29:02:B1:61
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
2、配置DHCP服务器
  # vim /etc/dhcp/dhcpd.conf --配置多局域网服务
allow bootp;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.133.0 netmask 255.255.255.0 {
option routers 192.168.133.1;
option subnet-mask 255.255.255.0;
option domain-name "abc.com";
option domain-name-servers 192.168.133.3;
range dynamic-bootp 192.168.133.100 192.168.133.111;
}
subnet 192.168.253.0 netmask 255.255.255.0 {
option routers 192.168.253.1;
option subnet-mask 255.255.255.0;
option domain-name "def.com";
option domain-name-servers 192.168.253.3;
range dynamic-bootp 192.168.253.100 192.168.253.111;
}
  # service dhcpd restart
3、测试(client端)
# service network restart --两台实验客户机重启网络
# ifconfig --查看IP地址,如下为连接网络 host-only (VMnet1)的主机IP
  inet addr:192.168.133.100 Bcast:192.168.133.255 Mask:255.255.255.0
# ifconfig --查看IP地址,如下为连接网络 host-only (VMnet2)的主机IP
  inet addr:192.168.253.100 Bcast:192.168.253.255 Mask:255.255.255.0
--我们也可以做更进一步的测试,在服务器中将 DHCP 服务关闭。然后在到客户端上运行命令 service network restart ,会发现,一直卡在那里。
 
 

DHCP服务搭建的更多相关文章

  1. DHCP协议格式、DHCP服务搭建、DHCP协商交互过程入门学习

    相关学习资料 http://www.rfc-editor.org/rfc/rfc2131.txt http://baike.baidu.com/view/7992.htm?fromtitle=DHCP ...

  2. Linux 之dhcp服务搭建

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议 dhcp服务器端监控端口67 涉及的配置文件:/etc/dhcp/dhcpd ...

  3. CentOS7 DHCP 服务搭建

    一.实验环境 1.VMware12.俩台Linux(Ser  和  Client ).DHCP安装包. 二.操作流程 1.安装DHCP 2.配置DHCP的配置文件:  /etc/dhcp/dhcpd. ...

  4. 24、dhcp服务搭建

    1.dhcp介绍: DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,DHCP 协议主要是用来自动为局域网中的客户机分配 TCP/IP 信息的网络协 ...

  5. DHCP服务

    DHCP服务 DHCP服务(需要dhcp命令):负责ip,掩码,网关地址,DNS地址等自动分发的软件服务 /usr/sbin/dhcpd或/usr/sbin/dhcrelay(中继命令):执行程序 / ...

  6. dhcp服务简单配置

    dhcp服务搭建 注意事项: > 配置虚拟机虚拟网络编辑器,取消"使用本地DHCP服务将IP地址分配给虚拟机" > 虚拟机网络连接设置为"仅主机模式" ...

  7. DHCP服务原理与搭建(Linux系统+路由器,二选一方案)

    大家都知道上网的最基本前提是要在终端上设置IP.子网掩码.网关.DNS等地址信息,在家里或者在办公室很多时候打开电脑后发现就可以上网,并没有手动设置IP.掩码.DNS地址也能上网,这是什么原因呢?其实 ...

  8. centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课

    centos  DNS服务搭建  DNS原理  使用bind搭建DNS服务器 配置DNS转发 配置主从  安装dig工具  DHCP  dhclient  各种域名解析记录  mydns DNS动态更 ...

  9. DHCP服务基本搭建

    DHCP原理 DHCP租约四部曲: A:客户端进行IP请求 当一个DHCP客户机启动时,会自动将自己的IP地址配置成0.0.0.0,由于使用0.0.0.0不能进行正常通信,所以客户机就必须通过DHCP ...

随机推荐

  1. 删除eclipse无效的工作空间路径

    eclipse会记录我们使用过的工作空间的路径,方便下面使用.也可以根据自己的需要删除无用的工作空间路径.

  2. JavaScript设计模式-21.命令模式

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. 使用VNC访问Windows桌面

    1. 背景介绍 两台电脑,一个笔记本,一个台式机 笔记本上装的是Windows 10, 通过上网小助手上网 (P.S.  上网小助手...Stupid Policy...) 台式机上装的是Ubuntu ...

  4. jquery validate(转)

    转自:http://blog.sina.com.cn/s/blog_608475eb0100h3h1.html 官网地址:http://bassistance.de/jquery-plugins/jq ...

  5. <机器学习实战>读书笔记--朴素贝叶斯

    1.朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法, 最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model, ...

  6. Scrum 冲刺博客第五篇

    一.当天站立式会议照片一张 二.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中 昨天已完成的工作 实现题目的生成并将其显示到页面上,设置了背景音乐 今天计划完成的工作 判断 ...

  7. Connection to https://dl-ssl.google.com refused的解决办法

    使用SDK Manager.exe安装Android开发环境的时候会遇到: Fetching https://dl-ssl.google.com/android/repository/addons_l ...

  8. shell通过ping检测整个网段IP的网络状态脚本

    要实现Ping一个网段的所有IP,并检测网络连接状态是否正常,很多方法都可以实现,下面简单介绍两种,如下:脚本1#!/bin/sh# Ping网段所有IP# 2012/02/05ip=1 #通过修改初 ...

  9. JS中的 ES6新类型iterable

    1.1 iterable字面意思:可迭代的,可重复的 iterable是ES6标准引入的新的类型.而Array.Map和Set都属于iterable类型 1.2 为什么加入iterable类型? 遍历 ...

  10. 简单封装axios api

    可以在代码逻辑中写axios请求,处理请求结果,但是随着项目越来越大,代码会很繁琐,不容易维护,所以,可以把一些在所有请求中都要处理的逻辑抽取出来,封装成api方法.比如每次请求中都要判断是否有权限, ...