1. 程式人生 > 其它 >Linux-DHCP原理與配置

Linux-DHCP原理與配置

一、DHCP服務

1、DHCP (Dynamic HostConfiguration Protocol,動態主機配置協議)

2、由Internet] C作任務小組設計開發

3、專門用於為TCP/IP網路中的計算機自動分配TCP/IP引數的協議

4、使用DHCP的好處

  • 減少管理員的工作量

  • 避免輸入錯誤的可能

  • 避免IP地址衝突

  • 當更改IP地址段時,不需要重新配置每個使用者的IP地址

  • 提高了IP地址的利用率

  • 方便客戶端的配置

5、DHCP的分配方式

  • 自動分配:分配到一個IP地址後永久使用

  • 手動分配:由DHCP伺服器管理員專門]指定IP地址

  • 動態分配:使用完後釋放該IP,供其它客戶機使用

二、DHCP的租約過程

1、客戶機從DHCP伺服器獲得IP地址的過程稱為DHCP的租約過程

2、分為四個步驟

(1)客戶端在網路中搜索伺服器
(2)伺服器向客戶端響應服務
(3)客戶端向目標伺服器發出服務請求
(4)伺服器向客戶端提供服務

詳情:

① 客戶機請求IP地址

  • 當一個DHCP客戶機啟動時,客戶機還沒有IP地址,所以客戶機要通過DHCP獲取一個合法的地址

  • 此時DHCP客戶機以廣播方式傳送DHCP Discover發現資訊來尋找DHCP伺服器

② 伺服器響應

  • DHCP伺服器接收到來自客戶機請求IP地址的資訊時,在自己的IP地址池中查詢是否有合法的IP地址提供給客戶機

  • 如果有,DHCP伺服器將此IP地址做上標記,加入到DHCP Offer的訊息中,然後廣播- -則DHCP Offer訊息

③ 客戶機選擇IP地址

  • DHCP客戶機從接收到的第一個DHCP Offer訊息中提取IP地址,發出IP地址的DHCP伺服器將該地址保留,這樣該地址就不能再分配給另一個DHCP客戶機

④ 伺服器確定租約

  • DHCP伺服器接收到DHCP Request訊息後,以DHCP ACK訊息的形式向客戶機廣播成功確認,該訊息包含有IP地址的有效租約和其他可配置的資訊

  • 當客戶機收到DHCP ACK訊息時,配置IP地址,完成TCP/IP的初始化

⑤ 重新登入

  • DHCP客戶機每次重新登入網路時,不需要再發送DHCP Discover資訊,而是直接傳送包含前一次所分配的IP地址的DHCP Request請求資訊

⑥ 更新租約

  • 當DHCP伺服器向客戶機出租的IP地址租期達到50%時,就需要更新租約

  • 客戶機直接向提供租約的伺服器傳送DHCP Request包,要求更新現有的地址租約

租約過程:

重新登入:

三、使用DHCP動態配置主機地址

1、DHCP服務

  • 為大量客戶機自動分配地址,提供集中管理

  • 減輕管理和維護成本、提高網路配置效率

2、可分配的地址資訊主要包括

  • 網絡卡的IP地址、子網掩碼

  • 對應的網路地址、廣播地址

  • 預設閘道器地址

  • DNS伺服器地址

四、安裝DHCP伺服器

DHCP伺服器軟體

  • CentOS光碟中的dhcp-4.2.5-47.el7.centos.x86_ 64 .rpm

■ DHCP軟體包的主要檔案

  • 主配置檔案: /etc/dhcpd.conf

  • 執行程式: /usr/sbin/dhcpd、/usr/sbin/dhcrelay

詳情:

配置DHCP伺服器

yum install -y dhcp

cd /etc/dhcp/
ls
less dhcpd. conf

cd /usr/share/doc/dhcp-4.2.5/
ls
less dhcpd.conf.example

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf

vim /etc/ dhcp/ dhcpd.conf

#設定全域性配置引數

default-lease-time 21600;                                    #預設租約為6小時,單位為秒

max-lease-time 43200;                                        #最大租約為12小時,單位為秒

option domain-name "benet.com";                              #指定預設域名

option domain-name-servers 202.106.0.20,202.106.148.1;      #指定DNS伺服器地址

ddns-update-style none;                                      #禁用DNS動態更新
#subnet網段宣告(作用於整個子網段,部分配置引數優先順序高於全域性配置引數)
subnet 192.168.80.0 netmask 255.255.255.0 {    #宣告要分配的網段地址
 range 192.168.80.10 192.168.80.20;            #設定地址池
 option routers 192.168.80.254;                #指定預設閘道器地址
}

subnet 192.168.1.0 netmask 255.255.255.0 {
 range 192. 168.1.100 192.168.1.200;
 option routers 192.168.1.254;
}

subnet 192.168.2.0 netmask 255.255.255.0 {
 range 192.168.2.20 192.168.2.30;
 option routers 192.68.2.254;
}

#host主機宣告(給單機分配固定的IP地址)
host hostname{                               #指定需要分配固定IP地址的客戶機名稱
 hardware ethernet 00:c0:c3:22:46:81;        #指定該主機的MAC地址
 fixed-address 192.168.4.100;               #指定保留給該主機的IP地址
}

#後面內容可都刪除

systemctl start dhcpd
systemctl stop firewalld
setenforce 0

Linux客戶端使用DHCP 動態獲取IP

#方法一:

vi /etc/ sysconfig/network-scripts/i fcfg-ens33
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=dhcp
ifdown ens33 ; ifup ens33

#方法二:

dhclient -d ens33

檢視租約檔案
less / var/lib/ dhcpd/ dhcpd. lease

舉例

安裝軟體包以及備份:

更改連線模式,配置宿主機和虛擬機器網段、閘道器:

如何連線雲:

配置相關vl介面,以及虛擬閘道器:

subnet網段宣告(作用於整個子網段,部分配置引數優先順序高於全域性配置引數):

配置中繼伺服器:

host主機宣告(給單機分配固定的IP地址):

FTP服務–用來傳輸檔案的協議

1、FTP伺服器預設使用TCP協議的20、21埠與客戶端進行通訊

  • 20埠用於建立資料連線,並傳輸檔案資料

  • 21埠用於建立控制連線,並傳輸FTP控制命令

2、FTP資料連線分為主動模式和被動模式

  • 主動模式: 伺服器主動發起資料連線

  • 被動模式: 伺服器被動等待資料連線

yum install -y vsftpd
cd /etc/vsftpd/
cp vsftpd.conf vsftpd.conf.bak

設定匿名使用者訪問的FTP服務(最大許可權)::

#修改配置檔案
vim /etc/vs ftpd/vs ftpd.conf

anonymous_enable=YES               #開啟匿名使用者訪問。預設E開啟

write enable=YES                   #開放伺服器的寫許可權(若要上傳,必須開啟)。預設已開啟

anon umask=022                     #設定匿名使用者所上傳資料的許可權掩碼(反掩碼)

anon_ upload_ enable=YES           #允許匿名使用者.上傳檔案。預設E已註釋,需取消註釋

anon_ mkdir_ write_ enable=YES     #允許匿名使用者建立(上傳)目錄。預設已註釋,需取消註釋

anon other write enable=YES        #允許刪除、重新命名、覆蓋等操作。需新增

#為匿名訪問ftp的根目錄下的pub子目錄設定最大許可權,以便匿名使用者.上傳資料
chmod 777 / var/ ftp/pub/
#開啟服務,關閉防火牆和增強型安全功能
systemctl start vsftpd
systemctl stop firewalld
setenforce 0

#匿名訪問測試
在Windows系統開啟開始選單,輸入cmd命令開啟命令提示符

#建立ftp連線
ftp 192.168.80.10

#匿名訪問,使用者名稱為ftp,密碼為空,直接回車即可完成登入

ftp> pwd               #匿名訪問ftp的根目錄為Linux系統的/var/ftp/目錄
ftp> ls                #檢視當前目錄
ftp> cd pub            #切換到pub目錄
ftp> get 檔名        #下載檔案到當前windows本地目錄
ftp> put 檔名        #上傳檔案到ftp目錄
ftp> quit              #退出

設定本地使用者驗證訪問ftp,並禁止切換到ftp以外的目錄(預設登入的根目錄為本地使用者的家目錄):

#修改配置檔案
vim /etc/vsftpd/vs ftpd. conf

local enable=Yes                 #啟用本地使用者
anonymous_enable=NO              #關閉匿名使用者訪問
write enable=YES                 #開放伺服器的寫許可權(若要_上傳,必須開啟)
local_umask=077                  #可設定僅宿主使用者擁有被上傳的檔案的許可權( 反掩碼)
chroot_local_user=YES            #將訪問禁錮在使用者的宿主目錄中
allow_writeable_chroot=YES       #允許被限制的使用者主目錄具有寫許可權

重啟服務
systemctl restart vsftpd

ftp 192.168.80.10
或
ftp://[email protected]

修改匿名使用者、本地使用者登入的預設根目錄
anon root=/ var/ Www/ html      #anon_ root 針對匿名使用者
local root=/ var/www/html       #local_ root 針對系統使用者
使用user_list 使用者列表檔案
vim /etc/vsftpd/user_ list
//末尾新增zhangsan使用者
zhangsan


vim /etc/vsttpd/vsttpd.cont
userlist enable=YES   #啟用user_list 使用者列表檔案
userlist deny=NO      #設定白名單,僅允許user_ list使用者列表檔案的使用者訪問。預設為YES,為黑名單,禁用

舉例

開啟服務,關閉防火牆和增強型安全功能:

匿名訪問測試:

設定本地使用者驗證訪問ftp,並禁止切換到ftp以外的目錄(預設登入的根目錄為本地使用者的家目錄):

ftp:/ /[email protected]:

設定白名單,僅允許user_ list使用者列表檔案的使用者訪問。預設為YES,為黑名單,禁用: