配置Linux系統實現dhcp功能 vim
一、背景及原理
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)一般被應用在大型的局域網絡環境中,主要做用是集中的管理、分配IP地址,使網絡環境中的主機動態的得到IP地址、Gateway地址、DNS服務器地址等信息,並可以提高地址的使用率。DHCP協議採用客戶端/服務器模型,主機地址的動態分配任務由網絡主機驅動。當DHCP服務器接收到來自網絡主機申請地址的信息時,纔會向網絡主機發送相關的地址配置等信息,以實現網絡主機地址信息的動態配置。 緩存
二、環境模擬 服務器
克隆兩臺或三臺Linux機器,第一臺命名爲dhcpd做爲dhcp服務端,第二臺和第三臺分別命名爲dhcp-client1和dhcp-client2做爲dhcp客戶端 網絡
三、配置dhcpd服務端 dom
3.1 修改dhcpd服務端的網卡配置文件 tcp
eth0 ip 192.168.214.210 網關192.168.214.2(同VMware網關地址) spa
eth1 ip 192.168.1.1 3d
3.2 清空網卡相關信息 rest
克隆的機器除了修改網卡配置文件(去掉網卡UUID和MAC地址)以外還須要執行命令 router
> /etc/udev/rules.d/70-persistent-net.rules 清空網卡信息文件
3.3 重啓機器查看ip並檢查可否與外網創建通訊
3.4 安裝配置dhcp服務
執行命令yum install dhcp –y安裝dhcp服務相關軟件
3.5 修改dhcp的配置文件
cat /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample |grep -Ev '^$|#'
查看示例,過濾掉註釋和空行
截取紅框部份內容,並修改成此處須要的配置,將配置寫入 /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 { #網段和子網掩碼
range 192.168.1.100 192.168.1.254; #可自動獲取的IP地址範圍
option domain-name-servers 223.5.5.5; #dns服務器名稱
option routers 192.168.1.1; #網關地址
option broadcast-address 192.168.1.255; #廣播地址
default-lease-time 600; #默認租約期限,單位秒
max-lease-time 7200; #最長租約期限,單位秒
}
3.6 啓動dhcpd服務
四、獲取dhcp並檢驗
4.1 在dhcp-client1上重啓網絡服務
在dhcpd上進行tcpdump指定網卡eth1,指定默認dhcp服務端端口67進行抓包
包含獲取到ip的機器的mac地址,獲取時間,通訊記錄等內容
4.2 服務端cat /var/lib/dhcpd/dhcpd.leases查看dhcp緩存
客戶端也可cat /var/lib/dhclient/dhclient-eth0.leases查看dhcp緩存
4.3 在dhcp-client1上重啓網絡服務
經過Windows平臺的wireshark抓取名爲bootp的包,能夠看到相關dhcp信息
第一個包是客戶端向dhcp服務器請求分配IP、dns、默認網關和子網掩碼
第二個包是服務端迴應客戶端請求
第三個包是客戶端詢問服務端是否確認該請求信息
第四個包是服務端迴應客戶端的確認信息
4.4 此時dhcp-client並不能鏈接外網,須要在dhcp服務端(dhcpd)作以下配置
修改配置開啓ip轉發功能
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl –p 加載內核參數
此時能夠ping通192.168.214.210
配置iptables轉發規則nat
iptables –F
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
此時能夠ping通外網
五、經過dhcp獲取固定分配的ip
若想給某一主機分配固定的IP地址,前提是知道要分配IP地址主機的網卡mac地址(物理地址)和主機名,也能固定爲主機分配一個ip地址
5.1 cat /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample |grep -Ev '^$|#'查看示例
修改成此處須要的配置,利用ifconfig查看網卡mac地址
host dhcp-client{
hardware ethernet 00:0C:29:E4:81:9A;
fixed-address 192.168.1.199;
}
5.2 將此內容追加到/etc/dhcp/dhcpd.conf文件中
5.3 /etc/init.d/dhcpd restart 重啓dhcp服務
5.4 在dhcp-client1上重啓網絡服務,查看ip,能夠發現已經成功從新獲取到新指定的ip地址
博主原創文章,轉載請務必註明出處