Kea DHCP配置介紹和基本使用
目錄
摘要
配置
啟動
管理API
測試
總結
參考文獻
附錄
摘要
簡單介紹Kea DHCP從配置到啟動,再到測試的一個流程。使用MySQL作為Kea後臺資料庫。附錄部分會給出一個完整可以用於啟動的配置。
配置
Kea使用的是JSON格式。
配置路徑:{KEA_HOME}/etc/kea/kea-dhcp4.conf
以下是節選部分重點配置進行說明
{
"Dhcp4": {
# 向伺服器租用地址,借多久,如下是4000秒
"valid-lifetime": 4000,
# renew-timer和rebind-timer管理客戶端什麼時候開始進行重新續借和重綁過程。如果沒有指定這兩個值將根據RFC 2131進行設定
# 可選 續借
"renew-timer": 1000,
# 可選 重綁
"rebind-timer": 2000,
"interfaces-config": {
# 1. 指定伺服器要監聽哪張網絡卡的DHCP訊息,可以指定多張網絡卡。
# 2.允許使用*,如:"interfaces": ["*"],表示監聽所有網絡卡
"interfaces": ["eth0"],
# 預設raw,表示處理所有報文
# udp:處理udp報文
"dhcp-socket-type": "udp" ,
# 只有dhcp-socket-type為udp才生效
# 預設是same-as-inbound:從哪裡來滾哪裡去
# use-routing:從哪裡來,滾哪裡去,得問下kernel的路由表(routing table) "outbound-interface": "use-routing"
},
# 租期資料使用庫型別指定,型別不同,對應的配置也有所不同,這裡以MySQL為例
"lease-database": {
# 目前有memfile", "mysql", "postgresql", "cql"四個選項
"type": "mysql",
# 資料所在的主機ip
"host": "localhost",
# 資料庫埠號
"port": 3306,
# 資料庫名稱
"name": "kea",
# 資料庫使用者名稱
"user": "root",
# 資料庫密碼
"password": "lion",
# 當type為memfile這裡會涉及到一個比較重要的配置,這裡不說明,詳情請看(http://kea.isc.org/wiki/LFCDesign)
# 預設3600,0的時候表示禁用lease file cleanup(LFC) lease file cleanup
# "lfc-interval": 1800
},
# 1.下面的配置可選。主機預定資料使用的資料庫型別。和租期配置類同,不在贅述
# 2. 當然你也可以不使用資料庫,在資料量不大的情況下推薦使用配置檔案。隨著資料量的增大可以改用資料庫
# 3. 這個配置允許資料庫和配置檔案共存使用
# 4. 同時使用時,先檢查配置檔案,在檢查資料庫的資料
// "hosts-database": {
// "type": "mysql",
// "host": "localhost",
// "port": 3306,
// "name": "kea",
// "user": "kea",
// "password": "kea"
// },
"subnet4": [{
# 子網識別符號,沒有指定或者為0,則自動分配
# 建議手動分配,如果有多個子網,某個子網被刪除,id可能被自動重新分配,導致租期資料混亂
"id":"1024"
# 網段 這裡需要注意下網段必須和伺服器所在網段一樣,不然接收不到客戶的請求
"subnet": "192.0.2.0/24",
# 可分配地址範圍
"pools": [{"pool": "192.0.2.1 - 192.0.2.200"}]
}]
}
}
啟動
執行
keactrl start
如果報如下類似的錯誤你需要執行ldconfig
,然後重新執行上面命令
INFO/keactrl: Starting /usr/local/sbin/kea-dhcp4 -c /usr/local/etc/kea/kea-dhcp4.conf
/usr/local/sbin/kea-dhcp4: error while loading shared libraries: libkea-dhcpsrv.so.8: cannot open shared object file: No such file or directory
INFO/keactrl: Starting /usr/local/sbin/kea-dhcp6 -c /usr/local/etc/kea/kea-dhcp6.conf
/usr/local/sbin/kea-dhcp6: error while loading shared libraries: libkea-dhcpsrv.so.8: cannot open shared object file: No such file or directory
INFO/keactrl: Starting /usr/local/sbin/kea-ctrl-agent -c /usr/local/etc/kea/kea-ctrl-agent.conf
[email protected]106-155:~/install/kea-1.3.0# /usr/local/sbin/kea-ctrl-agent: error while loading shared libraries: libkea-process.so.1: cannot open shared object file: No such file or directory
成功執行介面
管理API
management API允許下發特定的管理命令,例如統計獲取,重新配置或者關閉服務等。必須啟動Control Agent元件服務
配置路徑:{KEA_HOME}/etc/kea/kea-ctrl-agent.conf
# 獲取配置資訊
curl -X POST -H "Content-Type: application/json" -d '{"command": "config-get", "service": [ "dhcp4" ]}' http://172.18.106.155:8080/
測試
功能測試
dhtest一個DHCP客戶端模擬工具。該工具用於測試DHCP伺服器。
安裝
1. 下載
http://download.csdn.net/download/z475382220/10164483 (有積分的支援下)
https://github.com/saravana815/dhtest/archive/master.zip (沒積分的點選這個下載)
2. 解壓
root@ubt64-106-10:~/zjh/#unzip dhtest-master.zip
3. 編譯
root@ubt64-106-10:~/zjh#cd dhtest-master
root@ubt64-106-10:~/zjh/dhtest-master#make
4. 基本用法
該命令會列印詳細的互動過程
root@ubt64-106-10:~/zjh/dhtest-master#./dhtest -m 00:00:11:22:33:44 -V -i eth0
效能測試
perfdhcp一個dchp伺服器效能測試工具.
- 目的
1. 檢視每秒能處理多少個discover(v4)或者solicit(v6)訊息
2. 檢視每秒能處理處理4-way packet exchanges(v4 - DORA, v6 - SARR)(即一個完成的請求動態ip的過程)
- 用法
# 請求分配一個ip
perfdhcp 172.18.106.155 -4
# 模擬1000個客戶請求ip,如果R不指定則預設為1
perfdhcp 172.18.106.155 -4 -R 1000
總結
- 測試工具介紹比較簡單,這裡只是引入,詳情檢視參考文獻
- 資料的搭建這裡不做介紹,自行網上查詢。
- 資料的kea庫的初始化可以檢視我上一篇文章Kea DHCP伺服器安裝教程
參考文獻
附錄
{
"Dhcp4": {
"renew-timer": 900,
"rebind-timer": 1800,
"valid-lifetime": 3600,
"interfaces-config": {
"interfaces": ["eth0"]
},
"control-socket": {
"socket-type": "unix",
"socket-name": "/tmp/kea-dhcp4-ctrl.sock"
},
"lease-database": {
"type": "mysql",
"name": "kea",
"user": "root",
"password": "tiger",
"host": "localhost",
"port": 3306
},
"expired-leases-processing": {
"reclaim-timer-wait-time": 10,
"flush-reclaimed-timer-wait-time": 25,
"hold-reclaimed-time": 3600,
"max-reclaim-leases": 100,
"max-reclaim-time": 250,
"unwarned-reclaim-cycles": 5
},
"option-data": [{
"name": "domain-name-servers",
"data": "192.0.2.1, 192.0.2.2"
},{
"code": 15,
"data": "example.org"
},{
"name": "domain-search",
"data": "mydomain.example.com, example.com"
},{
"name": "boot-file-name",
"data": "EST5EDT4\\,M3.2.0/02:00\\,M11.1.0/02:00"
},{
"name": "default-ip-ttl",
"data": "0xf0"
}],
"client-classes": [{
"name": "voip",
"test": "substring(option[60].hex,0,6) == 'Aastra'",
"next-server": "192.0.2.254",
"server-hostname": "hal9000",
"boot-file-name": "/dev/null"
}],
"subnet4": [{
"subnet": "172.18.106.0/24",
"pools": [{ "pool": "172.18.106.2 - 172.18.106.100" }],
"option-data": [{
"name": "routers",
"data": "172.18.106.1"
}],
"reservations": [{
"hw-address": "1a:1b:1c:1d:1e:1f",
"ip-address": "172.18.106.20"
},{
"client-id": "01:11:22:33:44:55:66",
"ip-address": "192.0.2.202",
"hostname": "special-snowflake"
},{
"duid": "01:02:03:04:05",
"ip-address": "192.0.2.203",
"option-data": [ {
"name": "domain-name-servers",
"data": "10.1.1.202, 10.1.1.203"
}]
},{
"client-id": "01:12:23:34:45:56:67",
"ip-address": "192.0.2.204",
"option-data": [{
"name": "vivso-suboptions",
"data": "4491"
},{
"name": "tftp-servers",
"space": "vendor-4491",
"data": "10.1.1.202, 10.1.1.203"
}]
},{
"client-id": "01:0a:0b:0c:0d:0e:0f",
"ip-address": "192.0.2.205",
"next-server": "192.0.2.1",
"server-hostname": "hal9000",
"boot-file-name": "/dev/null"
},{
"flex-id": "'s0mEVaLue'",
"ip-address": "192.0.2.206"
}]
}]
},
"Logging":{
"loggers": [{
"name": "kea-dhcp4",
"output_options": [{
"output": "/usr/local/var/log/kea-dhcp4.log"
}],
"severity": "INFO",
"debuglevel": 0
}]
}
}
相關推薦
Kea DHCP配置介紹和基本使用
目錄 摘要 配置 啟動 管理API 測試 總結 參考文獻 附錄 摘要 簡單介紹Kea DHCP從配置到啟動,再到測試的一個流程。使用MySQL作為Kea後臺資料庫。附錄部分會給出一個完整可以用於啟動的配
Spring的ioc介紹,配置檔案和基本使用
1. 什麼是spring,它能夠做什麼? Spring是一個開源框架,它由Rod Johnson建立。它是為了解決企業應用開發的複雜性而建立的。 Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。 &nbs
C#多線程之旅(1)——介紹和基本概念
隔離 cnblogs 影響 3-0 同時 ima 並行 logic mes 閱讀目錄 一、多線程介紹 二、Join 和Sleep 三、線程怎樣工作 四、線程和進程 五、線程的使用和誤用 原文地址:C#多線程之旅(1)——介紹和基本概念 C#多線程之旅目錄: C#
【推薦系統篇】--推薦系統介紹和基本架構流程
方案 排序 技術分享 企業 生成 線上 系統 src 測試數據 一、前述 推薦系統是企業中常用的技術,所以系統的掌握推薦系統的知識是很有必要的。本專欄主要講述手機APP下載的項目。 常用的推薦方法有兩個,分別是基於物品的推薦和基於用戶的推薦。 基於用戶的推薦原理是:跟你喜好
SQLite 數據庫介紹和基本用法
png 觸發 align rim 嵌入 pan upd 參考 add ? 簡介 SQLite 是一款輕量級的關系型數據庫,同時也是一種嵌入式數據庫,與 Oracle、MySQL、SQL Server 等數據庫不同,它可以內嵌在程序中,是程序中的一個組成部分。所以,經常被應
Vue學習(2)————————目錄檔案結構介紹和基本取值
此檔案是配置檔案,在命令列裡選擇的內容 在裡面也可以顯示 cnpm install 也是根據此檔案來構建依賴 各種依賴包 開發的各種資源 執行專案描述資源 打包配置檔案,讓Ide寫的vue檔案伺服器可以識別 路由配置檔案 Vue裡面的
IntelliJ IDEA的介紹和基本設定
一、基本介紹 1、由JetBrains公司開發的一系列開發工具:IntelliJ IDEA(java、scala、Groovy開發)、Android Studio(Android開發)、Webstrom(前端開發) PhpStrom(php開發)、RubyMine
【Android-Emulator】Android模擬器介紹和基本使用
接下來講解的是ANDROID模擬器的介紹和使用,最後還有PC電腦和ANDROID模擬器訪問模擬器之間tcp/udp通訊,寫這篇文章大部分是從網路上獲取的資訊,希望對大家有幫助 1、Android模擬器介紹 Android中提供了一個模擬器來模擬ARM核的移動裝置。Andr
OKHttp的介紹和基本用法
嗨,大家好。又和大家見面了,今天我和大家一起來學習一下OKHttp。 OKHttp是基於Http協議上的網路通訊,說白了就是Http協議。Http的功能OKHttp都有。那就問題來了,既然有了Http,這 強大的協議,為什麼還需要有OKHttp等將Ht
1.rabbitmq的介紹和基本使用
rabbitmq是一款訊息佇列。 首先什麼是訊息,訊息是指在應用間傳送的資料。訊息可以是簡單的字串, 也可以是一些複雜的物件。訊息佇列則是應用間進行通訊的一種方式,訊息傳送後可以立即返回,由訊息系統來確保訊息的可靠傳遞。訊息釋出者只管把訊息釋出到 MQ 中而不用管誰來取,訊息使用者只管從 MQ 中取訊息而不
SpringBoot多環境配置介紹和專案實戰
1、不同環境使用不同配置 例如資料庫配置,在開發的時候,我們一般用開發資料庫,而在生產環境的時候,我們是用正式的資料 2、配置檔案存放路徑
mq的基本介紹和基本用法
1.什麼是MQ,有什麼用? MQ 是message queue ,訊息佇列,也叫訊息中介軟體,遵守JMS(java message service)規範的一種軟體。(同時還有另一個叫AMQP的應用層協議,語言無關性不受產品 語言等限制,rabbitMQ支援這個 ) 是類似
curl 介紹和基本用法
curl是一個廣泛使用的用來上傳和下載的命令列工具,當然嚴格來講,它還可以有別的用途。對於測試來講,它是Web相關測試非常實用的工具,包括debugging,使用起來非常方便。而且另一方面,因為它是純命令列的工具,所以也可以非常方便的作為一個元件整合到automation或
Phoenix 介紹和基本用法
Phoenix是構建在HBase上的一個SQL層,能讓我們用標準的JDBC APIs而不是HBase客戶端APIs來建立表,插入資料和對HBase資料進行查詢。Phoenix完全使用Java編寫,作為HBase內嵌的JDBC驅動。Phoenix查詢引擎會將SQL
docker container DNS配置介紹和原始碼分析
本文主要介紹了docker容器的DNS配置及其注意點,重點對docker 1.10釋出的embedded DNS server進行了原始碼分析,看看embedded DNS server到底是個啥,它是如何工作的。 Configure container DN
mongodb配置和基本操作
特性 服務 win done service 基本 添加 close english MongoDB3.0新特性WiredTigerMMAPv1可插拔引擎API基於web的可視化管理工具 查看版本號mongod --version啟動數據庫 mongod --dbpath
java環境配置,試用和基本數據結構
總結 int 選擇 運算符 ima 表達 三目運算 ascii 數據類型 一、java環境配置 1.打開我的電腦--屬性--高級--環境變量 2.新建系統變量JAVA_HOME 和CLASSPATH 變量名:JAVA_HOME 變量值:jdk文件所在的路經變量名:CLASS
VUE 配置和基本方法的應用
12px 商品列表 sets config err emp har 別名 單獨 個人寫的一個框架 $ npm install learnvue 粗略的介紹一下這個項目 進入 learnve文件 執行 $ npm install $ npm start 項目
數組運算符和控制流程的基本介紹和範例
布爾型 存儲 連接 clas spa short i++ switch 數組運算 總結 一、數組 1、概念 2、作用及舉例 二、運算符 1、分類 1)算術運算符 2)位運算符 3)比較運算符 4)邏輯運算符 三
IDEA 學習筆記之 安裝和基本配置
window eclipse 自動 ref size 工作 ips ctr line 安裝和基本配置: 下載:https://www.jetbrains.com/idea/download/#section=windows 下載Zip安裝包: 基礎知識: