1. 程式人生 > >Kea DHCP配置介紹和基本使用

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

成功執行介面
kea-start-successfully

管理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

總結

  1. 測試工具介紹比較簡單,這裡只是引入,詳情檢視參考文獻
  2. 資料的搭建這裡不做介紹,自行網上查詢。
  3. 資料的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
    }]
}
}

myqrcode

相關推薦

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安裝包: 基礎知識: