DHCP服務

DHCP概念提出

為了實現網絡可以動態合理地分配IP地址給主機使用,提出了DHCP協議。
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個局域網的網絡協議,使用UDP協議工作。

DHCP相對于靜態手工配置的優點:
(1)效率高
(2)靈活性強
(3)易于管理

把一個主機接入到tcp/ip網絡,要為其配置網絡參數:

  • IP/mask:僅有此項時,只能進行本地通信,不能跨網段通信
  • Gateway:非本地通信時配置
  • DNS Server:可實現基于主機名通信

參數配置方式:

  • 靜態指定
  • 動態分配
    (1)BOOTP:BOOTP用于無盤工作站的局域網中,可以讓無盤工作站從一個中心服務器上獲得IP地址。通過BOOTP協議可以為局域網中的無盤工作站分配動態IP地址,這樣就不需要管理員去為每個用戶去設置靜態IP地址。
    (2)DHCP:引入了“租約”的BOOTP;也可實現為特定主機保留某固定地址;

DHCP:動態主機配置協議

DHCP應用場景
  • DHCP服務器能夠為大量主機分配IP地址,并能夠集中管理
  • DHCP采用C/S模式

監聽的端口:
服務端:udp/67 (源端口:接收客戶端請求的)
客戶端:udp/68(目的端口:向客戶端發送請求成功或失敗的回應)

DHCP基礎工作過程

免費ARP用于檢測沖突的IP地址,如果發現沖突IP地址,客戶端會回Decline報文,重新發Discover報文,請求新的IP地址服務器端收到Decline報文后,會把剛才的IP地址列為沖突地址,當服務器沒有空閑地址可用的時候,才會從沖突地址中選擇進行分配。

DHCP租期更新

一般租約到達一半時50%,就開始續租;如果找不到dhcp,就續租到75%,再找不到就續租87.5%,再找不到dhcp就重新發起dchp請求;

IP地址釋放

若IP租約到期前沒有收到DHCP服務器響應,客戶端會停止使用此IP地址。
若DHCP客戶端不再使用分配的IP地址,也可以主動向DHCP服務器發送DHCP Release報文,釋放該地址。

注意:dhcp服務器必須先提供本地dhcp服務,才能可以給另一網絡提供服務,否則不允許直接向另一網絡提供dhcp服務;每一個地址分配的范圍叫一個作用域;
dhcp服務器可提供的服務不止是分配網絡地址,還可提供文件路徑;

DHCP服務

Linux DHCP協議的實現程序:

  • dhcp:(ISC,named):只提供能提供dhcp服務;
  • dnsmasq:dhcp & dns :輕量化,沒有配置文件,通過命令行+選項參數進行指定;

dhcp程序包:提供兩個程序,二者不同同時啟用;
dhcpd:提供dhcp服務;
dhcrelay:提供中繼服務;

部署dhcp服務

[root@promote ~]# yum info dhcp
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.cn99.com
 * epel: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.cn99.com
 * updates: mirrors.cn99.com
Installed Packages
Name        : dhcp
Arch        : x86_64
Epoch       : 12
Version     : 4.2.5
Release     : 77.el7.centos
Size        : 1.4 M
Repo        : installed
From repo   : base
Summary     : Dynamic host configuration protocol software
URL         : http://isc.org/products/DHCP/
License     : ISC
Description : DHCP (Dynamic Host Configuration Protocol) is a protocol which allows
            : individual devices on an IP network to get their own network
            : configuration information (IP address, subnetmask, broadcast address,
            : etc.) from a DHCP server. The overall purpose of DHCP is to make it
            : easier to administer a large network.
            : 
            : To use DHCP on your network, install a DHCP service (or relay agent),
            : and on clients run a DHCP client daemon.  The dhcp package provides
            : the ISC DHCP service and relay agent.

[root@promote ~]# yum -y install dhcp 安裝dhcp
...
[root@promote ~]# rpm -ql dhcp 查看安裝dhcp生成的文件
其中:
/etc/dhcp/dhcpd.conf 提供dhcp服務的配置文件
/etc/dhcp/dhcpd.conf 為ipv4的配置文件
/etc/dhcp/dhcpd6.conf 為ipv6的配置文件
/usr/lib/systemd/system/dhcpd.service 啟動dhcp服務(ipv4)
/usr/lib/systemd/system/dhcpd6.service 
/usr/lib/systemd/system/dhcrelay.service 啟動中繼服務器
/usr/sbin/dhcpd 主程序(啟動包括了ipv4和ipv6)
/usr/sbin/dhcrelay 中繼程序
/var/lib/dhcpd/dhcpd.leases  DHCP的租約記錄

編輯配置文件:

[root@promote ~]# vim /etc/dhcp/dhcpd.conf 顯示復制文件即可;
[root@promote ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
[root@promote ~]# cat /etc/dhcp/dhcpd.conf 
顯示部分內容:
default-lease-time 600; 默認租約期限,單位是秒鐘
subnet 10.5.5.0 netmask 255.255.255.224 {
  range 10.5.5.26 10.5.5.30; 指明地址池
  option domain-name-servers ns1.internal.example.org; 可有3個dhcp服務器
  option domain-name "internal.example.org"; 搜索后綴
  option routers 10.5.5.1; 指明默認網關
  option broadcast-address 10.5.5.31; 指明廣播地址
  default-lease-time 600;
  max-lease-time 7200;
}

host passacaglia {
  hardware ethernet 0:0:c0:5d:bd:95;
  filename "vmunix.passacaglia"; 加載文件的文件名
  server-name "toccata.fugue.com";
}

host fantasia {
  hardware ethernet 08:00:07:26:c0:a5;
  fixed-address fantasia.fugue.com; 固定的分配一個地址,可直接指明IP地址;
}

其中:
option 定義選項,可定義在全局中也可定義在subnet中;
subnet 定義子網
host 表示在dhcp中主機名,并不代表真正的主機名,只是個標識;

[root@promote ~]# vim /etc/dhcp/dhcpd.conf 
把沒用的行注釋:輸入:.,$s/^[^#]/#/g
option domain-name "magedu.com";
option routers 172.18.100.1;
option domain-name-servers 172.18.0.1, 192.168.255.1; 設定DNS服務器

default-lease-time 43200;
max-lease-time 86400;

log-facility local7;

subnet 172.18.0.0 netmask 255.255.0.0 {
    range 172.18.11.100 172.18.11.120;
    option routers 172.18.0.1;
    option domain-name-servers 1.1.1.1;
}

host passacaglia { 這種某主機使用固定ip地址
    hardware ethernet 0:0:c0:5d:bd:95; 為要設定ip地址主機的mac地址
    option routers 172.18.11.254; 指定網關
    fixed-address 172.18.11.1; 注意不能使用地址池中的地址
}

[root@promote ~]# systemctl start dhcp.service
[root@promote ~]# ss -tnl 
服務端監聽在udp/67

dhcp已經分配的結果記錄存放在:/var/lib/dhcpd/dhcpd.leases
[root@promote ~]# less /var/lib/dhcpd/dhcpd.leases
dhcp客戶端

前提要網卡地址設為動態分配;
但不用把網卡改為dhcp,使用dhclient命令測試;

[root@promote ~]# dhclient -h 查看使用幫助
[root@promote ~]# dhclient -d 運行dhcp在前端,可觀察工作過程
[root@promote ~]# ss -tunl 可查看客戶端udp的68端口監聽
[root@promote ~]# route -n 查看客戶端的網關
[root@promote ~]# cat /etc/resolv.conf 查看客戶端DNS服務器

如果不期望使用dhcp分配的DNS服務器地址,就想用自己指定的,可修改過客戶端網卡配置文件:

[root@promote ~]# vim /etc/resolv.conf
nameserver 2.1.1.1 用自己指定的DNS服務器
[root@promote ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
PEERDNS=no

此時dhcp服務器搭建完畢

dhcpd程序

配置文件:/etc/dhcp/dhcpd.conf
主要配置ipv4的網絡服務

注:啟動對于Centos 6和7是不同的

option routers GW;
option domain-name-servers IP,IP,IP;
default-lease-time ...;
max-lease-time ...;

subnet NET netmask MASK {
    range ;
    ...
}

host HOST_ID {
   hardware ethernet MAC;
   fixed-address IP; 不能是在地址池中的地址
}

分配信息庫:/var/lib/dhcp/dhcpd.leases~

[root@promote ~ ]# man dhcpd.conf
其它配置選項:
filename:指明引導文件名稱;可認為是基于網絡引導的Bootloader文件;
next-server:指明引導文件所在的服務器主機的ip地址;

例如:

filename "pxelinux.0";
next-server 172.18.0.1;
通常next-server所指向的服務器為tftp服務器;
tftp:trivial ftp 簡單文件傳輸協議,通過udp/69
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,572評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,071評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,409評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,569評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,360評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,895評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,979評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,123評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,643評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,559評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,742評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,250評論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,981評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,363評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,622評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,354評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,707評論 2 370

推薦閱讀更多精彩內容