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,為黑名單,禁用