zoukankan      html  css  js  c++  java
  • DHCP企业实战

     

    DHCP服务简介

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、网关地址、DNS服务器地址等信息,并能够提升地址的使用率。

    DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。

    DHCP协议采用UDP作为传输协议,主机发送请求消息到DHCP服务器的68号端口,DHCP服务器回应应答消息给主机的67号端口。

    DHCP服务的工作原理:

    1、DHCP Client以广播的方式发出DHCP Discover报文。

    2、有的DHCP Server都会给出响应,向DHCP Client发送一个DHCP Offer报文。

    3、DHCP Client会发出一个广播的DHCP Request报文,在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址。

    4、DHCP Server收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同。如果相同,DHCP Server就会向DHCP Client响应一个DHCP ACK报文。

    5、DHCP Client接收到DHCP ACK报文后,检查DHCP Server分配的IP地址是否能够使用。

    6、DHCP Client在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址。

    DHCP服务器配置

    DHCP服务器:10.0.0.240

    DHCP 客户端:10.0.0.8

    1、安装DHCP软件包

    yum install -y dhcp dhcp-devel

    2、dhcp配置文件

    subnet 10.0.0.0 netmask 255.255.255.0 {        #网段和子网掩码

    range 10.0.0.3 10.0.0.254;            #可自动获取的IP地址范围

    option domain-name-servers 61.139.2.69;        #dns服务器名称

    option routers 10.0.0.2;                    #网关地址

    option broadcast-address 10.0.0.255;        #广播地址

    option ntp-servers 10.0.0.240;      #设定时间服务器地址

    default-lease-time 600;                        #默认租约期限,单位秒

    max-lease-time 7200;                        #最长租约期限,单位秒

    }

    3、启动DHCP

    systemctl start dhcpd

    [root@yum etc]# netstat -lntup|grep 67

    udp        0      0 0.0.0.0:67              0.0.0.0:*                           25197/dhcpd   

    4、把客户端10.0.0.8的eth0网卡模式更改为dhcp,配置文佳如下:

    TYPE=Ethernet

    PROXY_METHOD=none

    BROWSER_ONLY=no

    BOOTPROTO=dhcp

    DEFROUTE=yes

    IPV4_FAILURE_FATAL=yes

    NAME=eth0

    DEVICE=eth0

    ONBOOT=yes

    5、在dhcp服务器端监控dhcp

    tcpdump -nn -i eth0 port 67

    6、重启客户端

    systemctl restart network

    7、查看客户端是否获取IP

    [root@mysql ~]# ifconfig

    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

            inet 10.0.0.5  netmask 255.255.255.0  broadcast 10.0.0.255

            inet6 fe80::20c:29ff:fe4f:670f  prefixlen 64  scopeid 0x20<link>

            ether 00:0c:29:4f:67:0f  txqueuelen 1000  (Ethernet)

            RX packets 575652  bytes 370650678 (353.4 MiB)

            RX errors 0  dropped 0  overruns 0  frame 0

            TX packets 376213  bytes 142439337 (135.8 MiB)

            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    8、在dhcp服务端查看抓取的信息

    [root@yum etc]# tcpdump -nn -i eth0 port 67

    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

    listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

    12:05:11.165917 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:0c:29:4f:67:0f, length 300

    12:05:11.168283 IP 10.0.0.240.67 > 10.0.0.5.68: BOOTP/DHCP, Reply, length 300

    9、配置客户端获取固定IP 10.0.0.8,DHCP服务器的配置文件如下

    subnet 10.0.0.0 netmask 255.255.255.0 {        #网段和子网掩码

    range 10.0.0.3 10.0.0.254;            #可自动获取的IP地址范围

    option domain-name-servers 61.139.2.69;        #dns服务器名称

    option routers 10.0.0.2;                    #网关地址

    option broadcast-address 10.0.0.255;        #广播地址

    option ntp-servers 10.0.0.240;      #设定时间服务器地址

    default-lease-time 600;                        #默认租约期限,单位秒

    max-lease-time 7200;                        #最长租约期限,单位秒

    }

    #配置固定IP

    host mysql {       #客户端的主机名

    hardware ethernet 00:0c:29:4f:67:0f;  #客户端的网卡MAC

    fixed-address 10.0.0.8;   #配置的固定IP

    }

    10、重启dhcp

    systemctl restart dhcpd

    11、重启客户端网卡服务

    systemctl restart network

    12、查看客户端IP信息

    [root@mysql ~]# ifconfig

    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

            inet 10.0.0.8  netmask 255.255.255.0  broadcast 10.0.0.255

            inet6 fe80::20c:29ff:fe4f:670f  prefixlen 64  scopeid 0x20<link>

            ether 00:0c:29:4f:67:0f  txqueuelen 1000  (Ethernet)

            RX packets 12496  bytes 17114035 (16.3 MiB)

            RX errors 0  dropped 0  overruns 0  frame 0

            TX packets 5465  bytes 371841 (363.1 KiB)

            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    13、dhcp服务端的抓包信息

    [root@yum etc]# tcpdump -nn -i eth0 port 67

    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

    listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

    12:52:32.169685 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:0c:29:4f:67:0f, length 300

    12:52:32.169893 IP 10.0.0.240.67 > 10.0.0.8.68: BOOTP/DHCP, Reply, length 300

    I have a dream so I study hard!!!
  • 相关阅读:
    windows 临界区 InitializeCriticalSectionAndSpinCount以及InitializeCriticalSection的区别
    SRWLock 轻量级的读写锁
    QT 遍历获取Form上的控件
    mssql 查询作业执行情况,耗时 等
    C++ builder FMX 遍历窗口所有控件 并 动态消失
    delphi fmx 控件从天上掉下来
    Vue2入门必知必会
    人人开源&项目脚手架&微服务整合
    Spring Security应用到源码分析
    K8S系统学习笔记总览
  • 原文地址:https://www.cnblogs.com/yaokaka/p/11619578.html
Copyright © 2011-2022 走看看