安装

 
  
  1. yum install dhcp 

 

占用的端口

dhcp服务器使用 UDP协议的 67 端口

 
  
  1. netstat -anulp | grep 67 
  2. udp        0      0 0.0.0.0:67                  0.0.0.0:*                               11634/dhcpd 

 

配置文件,可以这样 cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf,每个subnet对应一个vlan 一共10个subnet,192.168.50.1-192.168.59.1

 
  
  1. # cat /etc/dhcpd.conf  
  2. ddns-update-style interim; 
  3. ignore client-updates; 
  4. default-lease-time 86400; 
  5. max-lease-time 86400; 
  6.  
  7. subnet 192.168.0.0 netmask 255.255.255.0 { 
  8.  
  9. # --- default gateway 
  10.     range 192.168.0.10 192.168.0.126
  11.     option routers          192.168.0.1; 
  12.     option subnet-mask      255.255.255.0; 
  13.  
  14.     option nis-domain       "domain.org"; 
  15.     option domain-name      "test"; 
  16.     option domain-name-servers  202.106.46.151,202.106.0.20; 
  17.  
  18.     option time-offset      -18000; # Eastern Standard Time 
  19. #   option ntp-servers      192.168.1.1; 
  20. #   option netbios-name-servers 192.168.1.1; 
  21. # --- Selects point-to-point node (default is hybrid). Don't change this unless 
  22. # -- you understand Netbios very well 
  23. #   option netbios-node-type 2; 
  24.  
  25.     #range dynamic-bootp 192.168.0.128 192.168.0.254; 
  26.     default-lease-time 21600; 
  27.     max-lease-time 43200; 
  28.  
  29.     # we want the nameserver to appear at a fixed address 
  30.     host ns { 
  31.         next-server marvin.redhat.com; 
  32.         hardware ethernet 12:34:56:78:AB:CD; 
  33.         fixed-address 207.175.42.254; 
  34.     } 
  35.  
  36. subnet 192.168.51.0 netmask 255.255.255.0 { 
  37. range 192.168.51.10 192.168.51.99; 
  38. option routers   192.168.51.1; 
  39. option subnet-mask  255.255.255.0; 
  40. option domain-name-servers      202.106.46.151,202.106.0.20; 
  41. #option netbios-name-ser7ers     192.168.6.10,10.20.6.10; 
  42. option time-offset              -18000; 
  43. default-lease-time 86400; 
  44. max-lease-time 86400; 
  45.  
  46. subnet 192.168.52.0 netmask 255.255.255.0 { 
  47. range 192.168.52.10 192.168.52.99; 
  48. option routers   192.168.52.1; 
  49. option subnet-mask  255.255.255.0; 
  50. option domain-name-servers      202.106.46.151,202.106.0.20; 
  51. #option netbios-name-servers     192.168.6.10,10.20.6.10; 
  52. option time-offset              -18000; 
  53. default-lease-time 86400; 
  54. max-lease-time 86400; 
  55.  
  56. subnet 192.168.53.0 netmask 255.255.255.0 { 
  57. range 192.168.53.10 192.168.53.99
  58. option routers   192.168.53.1; 
  59. option subnet-mask  255.255.255.0; 
  60. option domain-name-servers      202.106.46.151,202.106.0.20; 
  61. #option netbios-name-servers     192.168.6.10,10.20.6.10; 
  62. option time-offset              -18000; 
  63. default-lease-time 86400; 
  64. max-lease-time 86400; 
  65.  
  66. subnet 192.168.54.0 netmask 255.255.255.0 { 
  67. range 192.168.54.10 192.168.54.99
  68. option routers   192.168.54.1; 
  69. option subnet-mask  255.255.255.0; 
  70. option domain-name-servers      202.106.46.151,202.106.0.20; 
  71. #option netbios-name-servers     192.168.6.10,10.20.6.10; 
  72. option time-offset              -18000; 
  73. default-lease-time 86400; 
  74. max-lease-time 86400; 
  75.  
  76. subnet 192.168.55.0 netmask 255.255.255.0 { 
  77. range 192.168.55.10 192.168.55.99
  78. option routers   192.168.55.1; 
  79. option subnet-mask  255.255.255.0; 
  80. option domain-name-servers      202.106.46.151,202.106.0.20; 
  81. #option netbios-name-servers     192.168.6.10,10.20.6.10; 
  82. option time-offset              -18000; 
  83. default-lease-time 86400; 
  84. max-lease-time 86400; 
  85.  
  86. subnet 192.168.56.0 netmask 255.255.255.0 { 
  87. range 192.168.56.10 192.168.56.99
  88. option routers   192.168.56.1; 
  89. option subnet-mask  255.255.255.0; 
  90. option domain-name-servers      202.106.46.151,202.106.0.20; 
  91. #option netbios-name-servers     192.168.6.10,10.20.6.10; 
  92. option time-offset              -18000; 
  93. default-lease-time 86400; 
  94. max-lease-time 86400; 
  95.  
  96. subnet 192.168.57.0 netmask 255.255.255.0 { 
  97. range 192.168.57.10 192.168.57.99
  98. option routers   192.168.57.1; 
  99. option subnet-mask  255.255.255.0; 
  100. option domain-name-servers      202.106.46.151,202.106.0.20; 
  101. #option netbios-name-servers     192.168.6.10,10.20.6.10; 
  102. option time-offset              -18000; 
  103. default-lease-time 86400; 
  104. max-lease-time 86400; 
  105.  
  106. subnet 192.168.58.0 netmask 255.255.255.0 { 
  107. range 192.168.58.10 192.168.58.99
  108. option routers   192.168.58.1; 
  109. option subnet-mask  255.255.255.0; 
  110. option domain-name-servers      202.106.46.151,202.106.0.20; 
  111. #option netbios-name-servers     192.168.6.10,10.20.6.10; 
  112. option time-offset              -18000; 
  113. default-lease-time 86400; 
  114. max-lease-time 86400; 
  115.  
  116. subnet 192.168.59.0 netmask 255.255.255.0 { 
  117. range 192.168.59.10 192.168.59.99
  118. option routers   192.168.59.1; 
  119. option subnet-mask  255.255.255.0; 
  120. option domain-name-servers      202.106.46.151,202.106.0.20; 
  121. #option netbios-name-servers     192.168.6.10,10.20.6.10; 
  122. option time-offset              -18000; 
  123. default-lease-time 86400; 
  124. max-lease-time 86400; 
  125.  
  126. subnet 192.168.50.0 netmask 255.255.255.0 { 
  127. range 192.168.50.10 192.168.50.99
  128. option routers   192.168.50.1; 
  129. option subnet-mask  255.255.255.0; 
  130. option domain-name-servers      202.106.46.151,202.106.0.20; 
  131. #option netbios-name-servers     192.168.6.10,10.20.6.10; 
  132. option time-offset              -18000; 
  133. default-lease-time 86400; 
  134. max-lease-time 86400; 


参数详解

参考了这篇文章

 
  
  1. ddns-update-style interim;      //配置使用过渡性DHCP-DNS互动更新模式 
  2.  
  3. ignore client-updates;       //忽略客户端更新 
  4.  
  5. subnet 192.168.0.0 netmask 255.255.255.0 {    //为192.168.0.0子网分配地址 
  6.  
  7.   option routers              192.168.0.1;   //为客户机指定默认网关 
  8.  
  9.   option subnet-mask         255.255.255.0;  //为客户机指定子网掩码 
  10.  
  11.   option nis-domain       "domain.org";//为客户机分配NIS域 
  12.  
  13.   option domain-name      "domain.org";//为客户机分配DNS域 
  14.  
  15.   option domain-name-servers   192.168.1.1;//分配的DNS地址 
  16.  
  17.   range dynamic-bootp 192.168.0.128 192.168.0.254; //地址池 
  18.  
  19.   default-lease-time   21600;          //默认租约时间(秒) 
  20.  
  21.   max-lease-time      43200;           //最大租约时间(秒) 
  22.  
  23.  
  24.   
  25.  
  26. 注:1)无论您创建一个还是多个作用域,其中必须要有一个作用域在subnet 之后的申明是该DHCP服务器的IP所在的子网地址,否则DHCP将无法启动,比如DHCP服务器的IP地址是192.168.1.1/24,那么必须有一个这样的作用域: 
  27.  
  28.     subnet 192.168.1.0 mask 255.255.255.0 { 
  29.  
  30.     } 
  31.  
  32.     2)若有多个DNS,需要用逗号分开,一一列出,如 
  33.  
  34. Option domain-name-servers   192.168.1.1,192.168.1.2;  
  35.  
  36. 3)若为某一网段分配的地址并不是连续的,我们只需创建多条地址池记录,如: 
  37.  
  38.   Range dynamic-bootp 192.168.1.1 192.168.1.40;  
  39.  
  40.   Range dynamic-bootp 192.168.1.61 192.168.1.254; 
  41.  
  42. 此时,便可分配192.168.1.0网段中的除去192.168.1.41-192.168.1.60范围的地址。 
  43.  
  44.   
  45.  
  46. (2)主机的绑定 
  47.  
  48.     对于有些客户机,我们总希望它们每次获取的IP都是固定的,这时可以进行主机绑定设置, 
  49.  
  50.  host  ns{ 
  51.  
  52.                 next-server marvin.redhat.com; //设置用于定义服务器从引导文件中装入的主机名,用于无盘工作站 
  53.  
  54.                 hardware ethernet 12:34:56:78:AB:CD; //要绑定的DHCP客户机的MAC地址 
  55.  
  56.                 fixed-address 207.175.42.254; //要固定分配给DHCP客户机的IP地址 
  57.  
  58.         } 
  59.  
  60.   
  61.  
  62. (3)超级作用域 
  63.  
  64. 超级作用域主要用在给不同网段的客户机分配地址的情况,配置时,只需要将多个作用域放在shared-network中即可,其形式如下: 
  65.  
  66. shared-network 名称{ 
  67.  
  68. subnet 子网地址 netmask 子网掩码 {}; 
  69.  
  70. subnet 子网地址 netmask 子网掩码 {}; 
  71.  
  72. ...... 
  73.  
  74.  
  75.   
  76.  
  77. (4)服务器选项 
  78.  
  79. 如果dhcp中存在多个作用域,而且每个作用域均有一些相同的配置,这时我们可以减少配置工作量,将那些相同的配置统一放在超级作用域之外,如: 
  80.  
  81. shared-network 名称 {}; 
  82.  
  83. default-lease-time   21600;       
  84.  
  85. max-lease-time      43200;  
  86.  
  87. 这样会为不同作用域的主机均设置相同的租约。 
  88.  
  89.   
  90.  
  91. (5)按照客户机的类别分配IP地址 
  92.  
  93. 将客户机按照某种属性分类,根据不同的属性类分配不同范围的地址,如: 
  94.  
  95. subnet 192.168.10.0 network 255.255.255.0 { 
  96.  
  97. class  "vm" { 
  98.  
  99. match if substring (hardware,1,3)=00:0c:29 
  100.  
  101. }                         //根据MAC定义匹配虚拟机的类 
  102.  
  103. pool { 
  104.  
  105. allow members of "vm"; 
  106.  
  107. range 192.168.10.10 192.168.10.50; 
  108.  
  109. }                         //为匹配"vm"的客户机分配IP 
  110.  
  111. pool { 
  112.  
  113. deny members of "vm"; 
  114.  
  115. range 192.168.10.100 192.168.10.110; 
  116.  
  117.  
  118. }                             //为不匹配"vm"的客户机分配IP 
  119.  
  120.   
  121.  
  122. 4、语法检查 
  123.  
  124. #service dhcpd configtest 
  125.  
  126. 5、启动DHCP服务 
  127.  
  128. #service dhcpd start 
  129.  

 

dhcpd 日志

相关日志记录在 /var/log/messages,比如下面的!

 
  
  1. tail /var/log/messages
  2. Sep 22 19:29:08 gw-new dhcpd: DHCPDISCOVER from 00:16:d3:46:0b:38 via 192.168.50.1 
  3. Sep 22 19:29:09 gw-new dhcpd: DHCPOFFER on 192.168.50.99 to 00:16:d3:46:0b:38 (BJBXHH) via 192.168.50.1 
  4. Sep 22 19:29:09 gw-new dhcpd: DHCPREQUEST for 192.168.50.99 (192.168.0.1) from 00:16:d3:46:0b:38 (BJBXHH) via 192.168.50.1 
  5. Sep 22 19:29:09 gw-new dhcpd: DHCPACK on 192.168.50.99 to 00:16:d3:46:0b:38 (BJBXHH) via 192.168.50.1 
  6. Sep 22 19:44:04 gw-new dhcpd: DHCPREQUEST for 192.168.0.125 from 00:22:68:1c:83:c3 (KevinChia) via 192.168.58.1: ignored (not authoritative). 

使用 dhcpd.log 记录日志

 
  
  1. vim /etc/syslog.conf  
  2. local0.*                        /var/log/dhcpd.log #添加此行 
  3.  
  4. vim /etc/dhcpd.conf  
  5. log-facility local0;                               #添加此行 
  6.  
  7. touch /var/log/dhcpd.log                           #建立一个空文件 
  8.  
  9. /etc/init.d/syslog restart                         #重启syslog
  10. Shutting down kernel logger:                               [  OK  ] 
  11. Shutting down system logger:                               [  OK  ] 
  12. Starting system logger:                                    [  OK  ] 
  13. Starting kernel logger:                                    [  OK  ] 
  14. /etc/init.d/dhcpd restart                          #重启dhcpd
  15. Starting dhcpd:                                            [  OK  ] 
  16.  
  17. tail /var/log/dhcpd.log  
  18. Sep 23 16:28:20 one dhcpd: Internet Systems Consortium DHCP Server V3.0.5-RedHat 
  19. Sep 23 16:28:20 one dhcpd: Copyright 2004-2006 Internet Systems Consortium. 
  20. Sep 23 16:28:20 one dhcpd: All rights reserved. 
  21. Sep 23 16:28:20 one dhcpd: For info, please visit http://www.isc.org/sw/dhcp/ 
  22. Sep 23 16:28:20 one dhcpd: Wrote 10 leases to leases file. 
  23. Sep 23 16:28:20 one dhcpd: Listening on LPF/eth0/e2:ab:72:55:e2:e2/192.168.6/24 
  24. Sep 23 16:28:20 one dhcpd: Sending on   LPF/eth0/e2:ab:72:55:e2:e2/192.168.6/24 
  25. Sep 23 16:28:20 one dhcpd: Sending on   Socket/fallback/fallback-net