1. 程式人生 > 實用技巧 >Linux中利用DHCP服務為特定裝置分配固定IP

Linux中利用DHCP服務為特定裝置分配固定IP

實質:實現裝置與IP的繫結。

服務模式:伺服器/客戶端

PC1為伺服器,PC2為客戶端。PC1和PC2均為RHEL7系統

1、檢視伺服器PC1系統版本,ip資訊

[root@PC1 ~]# cat /etc/redhat-release  ## 檢視系統版本
Red Hat Enterprise Linux Server release 7.0 (Maipo)
[root@PC1 ~]# ifconfig | head -n 3  ## 檢視IP
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 
192.168.10.10 netmask 255.255.255.255 broadcast 192.168.10.10 inet6 fe80::20c:29ff:fe66:37f7 prefixlen 64 scopeid 0x20<link>

2、安裝DHCP服務 (提前配置好yum倉庫)

[root@PC1 ~]# yum install dhcp
Loaded plugins: langpacks, product-id, subscription-manager
This system is not registered to Red Hat Subscription 
Installed size: 
1.4 M Is this ok [y/d/N]: y ……………… Installed: dhcp.x86_64 12:4.2.5-27.el7 Complete!

3、DHCP服務配置檔案所在位置

[root@PC1 dhcp]# pwd
/etc/dhcp
[root@PC1 dhcp]# ls
dhclient.d  dhcpd6.conf  dhcpd.conf

4、在伺服器PC1中修改DHCP服務配置檔案

[root@PC1 dhcp]# vim /etc/dhcp/dhcpd.conf   ## ip地址範圍為50-150
ddns
-update-style none; ignore client-updates; subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.50 192.168.10.150; option subnet-mask 255.255.255.0; option routers 192.168.10.1; option domain-name "linuxprobe.com"; option domain-name-servers 192.168.10.1; default-lease-time 21600; max-lease-time 43200; }

各引數意義:

5、在伺服器PC1中重啟DHCP服務,並設動為開機自動啟動

[root@PC1 dhcp]# systemctl restart dhcpd
[root@PC1 dhcp]# systemctl enable dhcpd
ln -s '/usr/lib/systemd/system/dhcpd.service' '/etc/systemd/system/multi-user.target.wants/dhcpd.service'

6、 在客戶機PC2中驗證自動分配IP效果

[root@PC2 Desktop]# ifconfig | head -n 3  ## 檢視當前ip,未分配
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:25:bb:3e  txqueuelen 1000  (Ethernet)
        RX packets 445  bytes 27249 (26.6 KiB)
[root@PC2 Desktop]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777728  ## 修改網絡卡配置檔案,設為開機啟動
HWADDR=00:0C:29:25:BB:3E
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777728
UUID=a0c2aa6b-48e1-4822-a67c-151155cc14bd
ONBOOT=yes
[root@PC2 Desktop]# systemctl restart network  ## 重啟網絡卡
[root@PC2 Desktop]# ifconfig | head -n 3  ## 檢視此時ip
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.50  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::20c:29ff:fe25:bb3e  prefixlen 64  scopeid 0x20<link>

7、檢視客戶機PC2網絡卡MAC地址、PC2主機名稱(繫結ip時需要使用MAC地址,MAC地址具有唯一性)

[root@PC2 Desktop]# ifconfig | head -n 6  ## 檢視PC2的MAC地址
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.50  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::20c:29ff:fe25:bb3e  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:25:bb:3e  txqueuelen 1000  (Ethernet)
        RX packets 498  bytes 31249 (30.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
[root@PC2 Desktop]# hostname  ## 檢視主機名稱
PC2

8、在伺服器PC1中修改配置檔案,將特定IP和客戶機PC2繫結

[root@PC1 dhcp]# vim /etc/dhcp/dhcpd.conf
ddns-update-style none;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.50 192.168.10.150;
option subnet-mask 255.255.255.0;
option routers 192.168.10.1;
option domain-name "linuxprobe.com";
option domain-name-servers 192.168.10.1;
default-lease-time 21600;
max-lease-time 43200;
host PC2 {
hardware ethernet 00:0c:29:25:bb:3e;
fixed-address 192.168.10.100;
}
}

9、在伺服器PC1中重啟DHCP服務

[root@PC1 dhcp]# systemctl restart dhcpd

10、在客戶機PC2中進行驗證

[root@PC2 Desktop]# ifconfig | head -n 3  ## 檢視此時ip,仍然是50
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.50  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::20c:29ff:fe25:bb3e  prefixlen 64  scopeid 0x20<link>
[root@PC2 Desktop]# systemctl restart network  ## 重啟網絡卡服務
[root@PC2 Desktop]# ifconfig | head -n 3 ## 檢視此時ip,可見已經實現了繫結
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.100  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::20c:29ff:fe25:bb3e  prefixlen 64  scopeid 0x20<link>

總結:

  • 實現特定IP與特定裝置的繫結僅需要修改伺服器端配置檔案,然後在客戶端重啟網絡卡
  • 伺服器端修改配置檔案需要的關鍵資訊為客戶端網絡卡MAC地址、主機名稱