OpenStack創建2臺VM之間的DHCP服務設置

要求:

要用openstack創建的的2臺VM,一臺作爲DHCP server,爲另一臺VM提供IP地址。


前提:

當前openstack的租戶 子網爲:192.168.10.0/24,默認啓用了DHCP(記住這一點很重要)。

2臺虛擬機在啓用後都獲取到了IP,分別爲192.168.10.6(作爲DHCP SERVER端)和192.168.10.7(作爲DHCP CLIENT端)。

linux系統爲:centos6.5


說在最前:

本次配置的完成,參考了網上很多文章,對比下來,最全最細緻的爲這一篇:http://www.cnblogs.com/linux-wangkun/p/5910709.html,對我的啓發和幫助很大,感謝~


下面開始配置:

一、配置DHCP SERVER

1. 安裝DHCP包

本文使用yum安裝

yum install dhcp*

2. DHCP SERVER配置

文件路徑:/etc/dhcp/dhcpd.conf
(如果是centos7,可能/etc/dhcp/路徑下沒有dhcpd.cfg,可以去/usr/share/doc/dhcp-4.1.1/路徑下拷貝dhcpd.conf.sample到/etc/dhcp/dhcpd.conf。dhcpd.conf.sample裏對參數都做了介紹,可以幫助理解下面的配置都是什麼含義。

vim /etc/dhcp/dhcpd.conf
看到我當前對dhcp server的配置,具體爲:

ddns-update-style none; #可能非必須
ignore client-updates;  #可能非必須

default-lease-time 600; #必須
max-lease-time 7200; #必須
log-facility local7; #必須
#對子網的約束
subnet 192.168.10.0 netmask 255.255.255.0 { 
  range 192.168.10.100 192.168.10.110;         #爲區別ip地址是本dhcp server提供的,所以講IP的起始範圍做了約束
  option domain-name-servers 114.114.114.114;  #DNS設置,非必須
  option routers 192.168.10.99;                #爲了跟openstack的路由做區分,隨便寫了一個IP
  option subnet-mask 255.255.255.0;            #非必須
  option broadcast-address 192.168.10.222;     #爲了跟openstack的路由做區分,隨便寫了一個IP,非必須
}


注:

1). broadcast本非必須,特意加上,除了爲跟openstack的子網廣播地址做區分外,還因爲,dhcp discover階段,是以廣播報文的方式發送給dhcp server的,很多dhcp server都會給vm回覆dhcp offer消息。如果不加上,VM有可能收到192.168.10.255 (openstack子網的廣播地址)的消息。

2). 這裏,我還走了一個彎道,繞了我好久。原因應該就是我對dhcpd.conf.sample的用例註釋沒理解透吧。以下是我最初寫的dhcp server的配置內容:

log-facility local7;
subnet 192.168.10.0 netmask 255.255.255.224 {
  range 192.168.10.100 192.168.10.110;
  option domain-name-servers 114.114.114.114;
  option routers 192.168.10.1;
  default-lease-time 600;
  max-lease-time 7200;
}

將default-lease-time 600;、max-lease-time 7200;等參數寫在了大括號內,以爲寫在裏面與寫在外面的意思是一樣的。但,如果寫在裏面,啓動DHCP服務會一直報錯~


3. 配置文件,綁定DHCP SERVER到網卡

文件目錄:/etc/sysconfig/dhcpd,修改DHCPDARGS="eth0"

[root@host-192-168-10-6 sysconfig]# vim /etc/sysconfig/dhcpd

# Command line options here
DHCPDARGS="eth0"


4. 啓動DHCP server

service dhcpd restart

如果,缺少第三步,啓動服務時會報錯,查看log:tail -40 /var/log/message,內容爲:

May  5 15:44:26 host-192-168-10-6 dhcpd:    No subnet declaration for eth0 (192.168.10.6).
May  5 15:44:26 host-192-168-10-6 dhcpd: ** Ignoring requests on eth0.  If this is not what
May  5 15:44:26 host-192-168-10-6 dhcpd:    you want, please write a subnet declaration
May  5 15:44:26 host-192-168-10-6 dhcpd:    in your dhcpd.conf file for the network segment
May  5 15:44:26 host-192-168-10-6 dhcpd:    to which interface eth0 is attached. Not configured to listen on any interfaces!


至此,DHCP SERVER配置完畢!

二、配置DHCP CLIENT

1.  配置網卡文件

文件目錄:/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTR=dhcp
TYPE=Ethernet
ONBOOT=yes
NAME=eth0
#BROADCAST=192.168.10.222   #本以爲是必須的,但註釋掉後嘗試沒有問題
#HWADDR=FA:16:3E:AE:D8:6E   #本以爲是必須的,但註釋掉後嘗試沒有問題


2. 重啓網卡
service network restart
查看192.168.10.7的IP地址,是否變更爲192.168.10.100-192.168.10.110之間的IP

使用命令:ifconfig

===》發現IP地址沒變,還是192.168.10.7,廣播地址仍然爲:192.168.10.255


原因是什麼呢? 我嘗試了a.192.168.10.7的IP消失,禁用網卡; b.修改廣播地址……均無效

後來,想到192.168.10.7的IP是如何來的呢?===》 在openstack啓動子網的時候,有個默認選項:啓動DHCP!


3. 關閉openstack子網的DHCP

在網絡--子網--選擇VM的子網--編輯子網 -- 子網詳情中,去勾選dhcp



再次重啓網卡,查看IP地址,發現IP地址變了,在地址池範圍內的IP地址出現~  恭喜恭喜啊~~


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章