DHCP

DHCP

DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)通常被應用在大型的局域網絡環境中,主要作用是集中的管理、分配IP地址,使網絡環境中的主機動態的獲得IP地址、Gateway地址、DNS服務器地址等信息,并能夠提升地址的使用率。
DHCP協議采用客戶端/服務器模型,主機地址的動態分配任務由網絡主機驅動。當DHCP服務器接收到來自網絡主機申請地址的信息時(基于rarp協議廣播,rarp協議即由mac地址到ip地址的地址解析),才會根據實現定義的地址池向網絡主機發送相關的地址配置等信息,以實現網絡主機地址信息的動態配置。

工作流程:基于廣播的方式,dhcp不可以跨網段工作

1、Client:dhcp discover
    客戶端發送請求報文
2、Server: dhcp offer
    服務端響應報文,向客戶端提供IP/Netmask,GW, DNS Server,還可以有 NTP Server, Wins Server。。。
3、Client:dhcp request
    客戶端發送確認報文,確認使用dhcp服務器提供的哪個地址。
4、Server:dhcp ack
    服務器端確認客戶端可使用此地址

lease time:租約期限;

客戶端從服務端獲取地址以后,此地址的可使用時長,客戶端在使用期限到達一半的時候向服務器端發送續租請求,如果第一次請求為得到響應,則繼續使用此地址待剩余租期的一半時間時再次向服務端發送續租請求,依次類推,直到獲得續租響應為止,得到續租響應以后租期會重新從最初租約期限開始,再次到達租約期限一般的時候重新發起續租請求。如果直到租約到期還為得到續租響應的話,客戶端則會在租約期限的93.75時再次向服務端發送申請新的地址請求。

dhcp relay:dhcp中繼

由代理服務路由器隔開的兩個局域網,且兩個局域網之間可以相互通信,其中局域網1啟動一個dhcp服務器,局域網2的地址請求統統發往中間代理,這個中間代理接收到局域網2廣播地址的請求之后,由單播形式將請求轉發至局域網1中的dhcp服務器,然后得到dhcp服務器的單播形式的響應。繼而中間代理再通過廣播形式向局域網2中響應請求。整個工作流程中中間代理和局域網1中的dhcp服務器通信都是單播形式的,和局域網2的通信都是廣播形式的。就就叫做dhcp relay server

dhcp協議的實現

dhcp:(isc.org) – The dhcp package provides the ISC DHCP service and relay agent.
dnsmasq:(dns, dhcp) – Dnsmasq is lightweight, easy to configure DNS forwarder and DHCP server. It is designed to provide DNS and, optionally, DHCP, to a small network.

程序環境

dhcp server:dhcp服務
    /usr/sbin/dhcpd
    IPV4網絡:
        /etc/dhcp/dhcpd.conf
        /usr/lib/systemd/system/dhcpd.service
    IPV6網絡:
        /etc/dhcp/dhcpd6.conf
        /usr/lib/systemd/system/dhcpd6.service
dhcrelay:dhcp代理
    /usr/sbin/dhcrelay
    /usr/lib/systemd/system/dhcrelay.service

監聽的地址和端口:

Server: 67/udp
Client: 68/udp

配置文件:/etc/dhcp/dhcpd.conf

配置指令:
    option選項:配置給客戶端的相信息
    指令:定義dhcp server的工作特性
配置級別:
    全局配置
    子網配置
    主機配置
常用的配置:
    default-lease-time 600; 默認租約期限
    max-lease-time 7200; 最大租約期限
    option domain-name "search_domain.tld"; 指定搜索域
    option domain-name-servers DNS_SERVER1, DNS_SERVER2, DNS_SERVER3; 指明配置給客戶端的dns服務地址
    option routers GW1, GW2, ...; 配置給客戶端的默認網關
    option broadcast-address BROADCAST_ADDRESS; 配置給客戶端的廣播地址

定義網絡作用域,即一個子網,主要用于指明地址池;
    subnet NETWORK  netmask MASK {  IP和掩碼
        range START_IP END_IP; 起始地址IP和結束地址IP
    }  

為某一個地址固定分配一個地址,固定ip的優先級比subnet優先級高,切subnet的網關配置對固定ip不生效
    host passacaglia { 
        hardware ethernet 0:0:c0:5d:bd:95; 主機的mac地址
        fixed-address IP_ADDR; 要分配給主機的固定IP地址
    }

其他配置指令
    filename:指明引導文件名稱;
    next-server:指明引導文件所在的服務器的主機IP;

        filename “pxelinux.0";
        next-server 10.1.0.6;
            tftp server
配置示例:
]# yum install dhcp -y 安裝服務程序
]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf 復制配置文件樣本到配置文件目錄
]# vim /etc/dhcp/dhcpd.conf
    option domain-name "ali.com"; 搜索域
    option domain-name-servers 192.168.25.138,8.8.8.8,114.114.114.114; 指明配置給客戶端的dns服務地址
    option routers 192.168.25.138; 指明配置給客戶端的網關


    default-lease-time 3600; 默認租約期限
    max-lease-time 7200;最大租約期限

    log-facility local7; 日志發送位置

    subnet 192.168.25.0 netmask 255.255.255.0 { 定義一個子網網段和網關
    range 192.168.25.143 192.168.25.150; 指定起始ip和結束ip
    option routers 192.168.25.200; 在子網中指明的網關優先級高
    }

    :.,$s/^[[:space:]]*[#&]/#/g 在配置文件中使用vim命令注釋掉其他行

]# service dhcpd start 啟動服務
]# ss -unl 查看udp67號端口是否已經打開
]# 手動設置虛擬機服務器端和客戶端的網絡接口為vmnet1 然后啟動客戶端主機
]# dhclient -d 客戶端執行命令進行測試 查看是否獲得地址池中的地址,注意測試時需要關閉虛擬機的dhcp服務
]# route -n 客戶端執行命令進行測試 查看是否獲得指定的網關,注意測試時需要關閉虛擬機的dhcp服務
配置示例,給一個地址固定的ip地址
]# ifconfig  先查看一個主機的mac地址
    ether 00:0c:29:5f:86:eb
]# vim /etc/dhcp/dhcpd.conf 編輯配置文件
    host fantasia {
        hardware ethernet 00:0c:29:5f:86:eb; 主機的mac地址
        fixed-address 192.168.25.155; 需要給其配置的固定ip可以是地址池之外的ip
        option routers 192.168.25.100;指明配置給客戶端的網關
    }
]# service dhcpd restart 重啟dhcp服務   
]# dhclient -d 響應的mac地址的客戶端進行測試
]# route -n 客戶端執行命令進行測試 查看是否獲得指定的網關

原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/58173

(1)
M20-1馬星M20-1馬星
上一篇 2016-11-07
下一篇 2016-11-07

相關推薦

  • 第五周

      第五周 1 顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;      grep "^[[:space:]]\+" /boot/grub/grub.conf 2 顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至…

    Linux干貨 2017-01-02
  • 第九周

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash for i in `cut -d':' -f7 /etc/passwd`;do &n…

    Linux干貨 2016-09-26
  • linux中擴展swap分區和移動設備使用掛載以及常用的工具free、df 、du、dd命令

    swap分區 swap分區作用:內存不足時充當系統內存,所以swap盡量放在告訴硬盤上也就是盡量使用磁盤的第一個分區 動手創建swap分區       1、創建分區,將分區類型轉換成swap分區格式           &nbsp…

    Linux干貨 2016-08-29
  • Linux基礎

    Linux基礎

    Linux干貨 2017-12-04
  • nmcli命令使用,解析性能監控工具

    nmcli nmcli地址配置工具,NetworkManager client 網絡管理客戶端 相關命令:nmcli connection show        查看當前連接狀態 nmcli connection reload      重啟服務 nmcli connection sho…

    Linux干貨 2016-09-07
  • SQL Server 2012 故障轉移群集最佳實踐

    一、Windows server  2012 系統主域的安裝配置 功能介紹:  SQL Server 故障轉移群集在網絡上顯示為一臺計算機上的單個 SQL Server 實例。在群集內部,一次只有一個節點擁有群集資源組,滿足針對該故障轉移群集實例的所有客戶端請求。在出現故障(硬件故障、操作系統故障、應用程序或服務故障)或進行計劃升級時,組…

    Linux干貨 2015-10-27
欧美性久久久久