FutureNet

NXR,VXRシリーズ

REST-API編

8. 各種サービス設定

8-1. IPv4DHCPサーバ設定(dhcp-server)

 処理概要

IPv4DHCPサーバ設定に関する処理を実行します。

 

URIおよびメソッド

機能 Version URI メソッド
POST PUT GET DELETE
DHCP Server v1 /api/v1/dhcp-server
/api/v1/dhcp-server/network
/api/v1/dhcp-server/network/{NUM}
/api/v1/dhcp-server/bind
/api/v1/dhcp-server/bind/{MAC}
v2 /api/v2/dhcp-server
/api/v2/dhcp-server/network
/api/v2/dhcp-server/network/{NUM}
/api/v2/dhcp-server/bind
/api/v2/dhcp-server/bind/{MAC}
/api/v2/dhcp-server/option-space
/api/v2/dhcp-server/option-space/{NAME}
/api/v2/dhcp-server/vendor-class
/api/v2/dhcp-server/vendor-class/{NAME}

凡例:

● : 読み取り専用ユーザも含めアクセス可

〇 : 読み取り専用ユーザはアクセス不可

- : 未対応

※ NXR-G100シリーズ以外の機種ではREST-APIv2の利用を推奨します。

 

実行例

DHCPサーバ設定の作成

メソッド URI
POST /api/{VERSION}/dhcp-server/network
JSON
リクエスト

POST /api/v2/dhcp-server/network
Content-Type: application/json

 

{
"network": {
"index": 1,
"prefix": "192.168.0.0/24",
"range": {
"min": "192.168.0.1",
"max": "192.168.0.100"
},
"gateway": "192.168.0.254",
"dns": {
"primary": "203.0.113.1",
"secondary": "203.0.113.2"
}
}
}

 

レスポンス

201 Created

 

XML
リクエスト

POST /api/v2/dhcp-server/network
Content-Type: application/xml

 

<dhcp-server>
<network>
<index>1</index>
<prefix>192.168.0.0/24</prefix>
<range>
<min>192.168.0.1</min>
<max>192.168.0.100</max>
</range>
<gateway>192.168.0.254</gateway>
<dns>
<primary>203.0.113.1</primary>
<secondary>203.0.113.2</secondary>
</dns>
</network>
</dhcp-server>

 

レスポンス

201 Created

 

全DHCPサーバ設定の取得

メソッド URI
GET /api/{VERSION}/dhcp-server/network
  • api/v1は、text/plainに対応していません。

 

JSON
リクエスト

GET /api/v2/dhcp-server/network
Accept: application/json

 

レスポンス

200 OK
Content-Type: application/json

 

{
"network": [
{
"index": 1,
"prefix": "192.168.0.0/24",
"range": {
"min": "192.168.0.1",
"max": "192.168.0.100"
},
"gateway": "192.168.0.254",
"dns": {
"primary": "203.0.113.1",
"secondary": "203.0.113.2"
}
},
{
"index": 2,
・・・・・

 

XML
リクエスト

GET /api/v2/dhcp-server/network
Accept: application/xml

 

レスポンス

200 OK
Content-Type: application/xml

 

<dhcp-server>
<network>
<index>1</index>
<prefix>192.168.0.0/24</prefix>
<range>
<min>192.168.0.1</min>
<max>192.168.0.100</max>
</range>
<gateway>192.168.0.254</gateway>
<dns>
<primary>203.0.113.1</primary>
<secondary>203.0.113.2</secondary>
</dns>
</network>
<network>
<index>2</index>
・・・・・

 

TEXT/PLAIN
リクエスト

GET /api/v2/dhcp-server/network
Accept: text/plain

 

レスポンス

200 OK
Content-Type: text/plain

 

dhcp-server 1
network 192.168.0.0/24 range 192.168.0.1 192.168.0.100
gateway 192.168.0.254
dns-server 203.0.113.1 203.0.113.2
exit
dhcp-server 2
・・・・・

 

DHCPサーバ設定の更新

メソッド URI
PUT /api/v2/dhcp-server/network/{NUM}
JSON
リクエスト

PUT /api/v2/dhcp-server/network/1
Content-Type: application/json

 

{
"index": 1,
"prefix": "192.168.0.0/24",
"range": {
"min": "192.168.0.1",
"max": "192.168.0.100"
},
"gateway": "192.168.0.254",
"dns": {
"primary": "203.0.113.1",
"secondary": "203.0.113.2"
},
"wins": {
"primary": "203.0.113.3",
"secondary": "203.0.113.4"
}
}

 

レスポンス

204 No content

 

XML
リクエスト

PUT /api/v2/dhcp-server/network/1
Content-Type: application/xml

 

<network>
<index>1</index>
<prefix>192.168.0.0/24</prefix>
<range>
<min>192.168.0.1</min>
<max>192.168.0.100</max>
</range>
<gateway>192.168.0.254</gateway>
<dns>
<primary>203.0.113.1</primary>
<secondary>203.0.113.2</secondary>
</dns>
<wins>
<primary>203.0.113.3</primary>
<secondary>203.0.113.4</secondary>
</wins>
</network>

 

レスポンス

204 No content

 

DHCPサーバ設定の取得

メソッド URI
GET /api/{VERSION}/dhcp-server/network/{NUM}
  • api/v1は、text/plainに対応していません。

 

JSON
リクエスト

GET /api/v2/dhcp-server/network/1
Accept: application/json

 

レスポンス

200 OK
Content-Type: application/json

 

{
"index": 1,
"prefix": "192.168.0.0/24",
"range": {
"min": "192.168.0.1",
"max": "192.168.0.100"
},
"gateway": "192.168.0.254",
"dns": {
"primary": "203.0.113.1",
"secondary": "203.0.113.2"
},
"wins": {
"primary": "203.0.113.3",
"secondary": "203.0.113.4"
}
}

 

XML
リクエスト

GET /api/v2/dhcp-server/network/1
Accept: application/xml

 

レスポンス

200 OK
Content-Type: application/xml

 

<network>
<index>1</index>
<prefix>192.168.0.0/24</prefix>
<range>
<min>192.168.0.1</min>
<max>192.168.0.100</max>
</range>
<gateway>192.168.0.254</gateway>
<dns>
<primary>203.0.113.1</primary>
<secondary>203.0.113.2</secondary>
</dns>
<wins>
<primary>203.0.113.3</primary>
<secondary>203.0.113.4</secondary>
</wins>
</network>

 

TEXT/PLAIN
リクエスト

GET /api/v2/dhcp-server/network/1
Accept: text/plain

 

レスポンス

200 OK
Content-Type: text/plain

 

dhcp-server 1
network 192.168.0.0/24 range 192.168.0.1 192.168.0.100
gateway 192.168.0.254
dns-server 203.0.113.1 203.0.113.2
netbios-server 203.0.113.3 203.0.113.4
exit

 

DHCPサーバ設定の削除

メソッド URI
DELETE /api/{VERSION}/dhcp-server/network/{NUM}
リクエスト

DELETE /api/v2/dhcp-server/network/1

 

レスポンス

204 No content

 

固定IPアドレス割り当て設定の作成

メソッド URI
POST /api/{VERSION}/dhcp-server/bind
JSON
リクエスト

POST /api/v2/dhcp-server/bind
Content-Type: application/json

 

{
"bind": {
"address": "192.168.0.101",
"hw-address": "00:00:5E:00:53:01"
}
}

 

レスポンス

201 Created

 

XML
リクエスト

POST /api/v2/dhcp-server/bind
Content-Type: application/xml

 

<dhcp-server>
<bind>
<address>192.168.0.101</address>
<hw-address>00:00:5E:00:53:01</hw-address>
</bind>
</dhcp-server>

 

レスポンス

201 Created

 

全固定IPアドレス割り当て設定の取得

メソッド URI
GET /api/{VERSION}/dhcp-server/bind
  • api/v1は、text/plainに対応していません。

 

JSON
リクエスト

GET /api/v2/dhcp-server/bind
Accept: application/json

 

レスポンス

200 OK
Content-Type: application/json

 

{
"bind": [
{
"address": "192.168.0.101",
"hw-address": "00:00:5E:00:53:01"
},
{
"address": "192.168.0.102",
"hw-address": "00:00:5E:00:53:02"
}
]
}

 

XML
リクエスト

GET /api/v2/dhcp-server/bind
Accept: application/xml

 

レスポンス

200 OK
Content-Type: application/xml

 

<dhcp-server>
<bind>
<address>192.168.0.200</address>
<hw-address>00:00:5E:00:53:01</hw-address>
</bind>
<bind>
<address>192.168.0.102</address>
<hw-address>00:00:5E:00:53:02</hw-address>
</bind>
</dhcp-server>

 

TEXT/PLAIN
リクエスト

GET /api/v2/dhcp-server/bind
Accept: text/plain

 

レスポンス

200 OK
Content-Type: text/plain

 

dhcp-server bind 00:00:5E:00:53:01 192.168.0.101
dhcp-server bind 00:00:5E:00:53:02 192.168.0.102

 

固定IPアドレス割り当て設定の更新

メソッド URI
PUT /api/{VERSION}/dhcp-server/bind/{MAC}
JSON
リクエスト

PUT /api/v2/dhcp-server/bind/00:00:5E:00:53:01
Content-Type: application/json

 

{
"bind": {
"address": "192.168.0.201",
"hw-address": "00:00:5E:00:53:01"
}
}

 

レスポンス

204 No content

 

XML
リクエスト

PUT /api/v2/dhcp-server/bind/00:00:5E:00:53:01
Content-Type: application/xml

 

<bind>
<address>192.168.0.201</address>
<hw-address>00:00:5E:00:53:01</hw-address>
</bind>

 

レスポンス

204 No content

 

固定IPアドレス割り当て設定の取得

メソッド URI
GET /api/{VERSION}/dhcp-server/bind/{MAC}
  • api/v1は、text/plainに対応していません。

 

JSON
リクエスト

GET /api/v2/dhcp-server/bind/00:00:5E:00:53:01
Accept: application/json

 

レスポンス

200 OK
Content-Type: application/json

 

{
"bind": {
"address": "192.168.0.201",
"hw-address": "00:00:5E:00:53:01"
}
}

 

XML
リクエスト

GET /api/v2/dhcp-server/bind/00:00:5E:00:53:01
Accept: application/xml

 

レスポンス

200 OK
Content-Type: application/xml

 

<bind>
<address>192.168.0.201</address>
<hw-address>00:00:5E:00:53:01</hw-address>
</bind>

 

TEXT/PLAIN
リクエスト

GET /api/v2/dhcp-server/bind/00:00:5E:00:53:01
Accept: text/plain

 

レスポンス

200 OK
Content-Type: text/plain

 

dhcp-server bind 00:00:5E:00:53:01 192.168.0.201

 

固定IPアドレス割り当て設定の削除

メソッド URI
DELETE /api/{VERSION}/dhcp-server/bind/{MAC}
リクエスト

DELETE /api/v2/dhcp-server/bind/00:00:5E:00:53:01

 

レスポンス

204 No content

 

オプションスペース設定の作成

メソッド URI
POST /api/v2/dhcp-server/option-space
JSON
リクエスト

POST /api/v2/dhcp-server/option-space
Content-Type: application/json

 

{
"option-space": {
"name": "OPSPACE",
"options": {
"option-name": "SERVER-ADDR",
"code": 1,
"type": "ip",
"value": "192.168.0.1"
}
}
}

 

レスポンス

201 Created

 

XML
リクエスト

POST /api/v2/dhcp-server/option-space
Content-Type: application/xml

 

<dhcp-server>
<option-space>
<name>OPSPACE</name>
<options>
<option-name>SERVER-ADDR</option-name>
<code>1</code>
<type>ip</type>
<value>192.168.0.1</value>
</options>
</option-space>
</dhcp-server>

 

レスポンス

201 Created

 

全オプションスペース設定の取得

メソッド URI
GET /api/v2/dhcp-server/option-space
JSON
リクエスト

GET /api/v2/dhcp-server/option-space
Accept: application/json

 

レスポンス

200 OK
Content-Type: application/json

 

{
"option-space": [
{
"name": "OPSPACE",
"options": {
"option-name": "SERVER-ADDR",
"code": 1,
"type": "ip",
"value": "192.168.0.1"
}
},
{
"name": "OPSPACE2",
"options": {
"option-name": "SERVER-NAME",
"code": 1,
"type": "text",
"value": "server1"
}
}
]
}

 

XML
リクエスト

GET /api/v2/dhcp-server/option-space
Accept: application/xml

 

レスポンス

200 OK
Content-Type: application/xml

 

<dhcp-server>
<option-space>
<name>OPSPACE</name>
<options>
<option-name>SERVER-ADDR</option-name>
<code>1</code>
<type>ip</type>
<value>192.168.0.1</value>
</options>
</option-space>
<option-space>
<name>OPSPACE2</name>
<options>
<option-name>SERVER-NAME</option-name>
<code>1</code>
<type>text</type>
<value>server1</value>
</options>
</option-space>
</dhcp-server>

 

TEXT/PLAIN
リクエスト

GET /api/v2/dhcp-server/option-space
Accept: text/plain

 

レスポンス

200 OK
Content-Type: text/plain

 

dhcp-server option-space OPSPACE
option SERVER-ADDR code 1 ip 192.168.0.1
exit
dhcp-server option-space OPSPACE2
option SERVER-NAME code 1 text server1
exit

 

オプションスペース設定の更新

メソッド URI
PUT /api/v2/dhcp-server/option-space/{NAME}
JSON
リクエスト

PUT /api/v2/dhcp-server/option-space/OPSPACE
Content-Type: application/json

 

{
"name": "OPSPACE",
"options": {
"option-name": "SERVER-ADDR",
"code": 1,
"type": "ip",
"value": "192.168.0.2"
}
}

 

レスポンス

204 No content

 

XML
リクエスト

PUT /api/v2/dhcp-server/option-space/OPSPACE
Content-Type: application/xml

 

<option-space>
<name>OPSPACE</name>
<options>
<option-name>SERVER-ADDR</option-name>
<code>1</code>
<type>ip</type>
<value>192.168.0.2</value>
</options>
</option-space>

 

レスポンス

204 No content

 

オプションスペース設定の取得

メソッド URI
GET /api/v2/dhcp-server/option-space/{NAME}
JSON
リクエスト

GET /api/v2/dhcp-server/option-space/OPSPACE
Accept: application/json

 

レスポンス

200 OK
Content-Type: application/json

 

{
"name": "OPSPACE",
"options": {
"option-name": "SERVER-ADDR",
"code": 1,
"type": "ip",
"value": "192.168.0.2"
}
}

 

XML
リクエスト

GET /api/v2/dhcp-server/option-space/OPSPACE
Accept: application/xml

 

レスポンス

200 OK
Content-Type: application/xml

 

<option-space>
<name>OPSPACE</name>
<options>
<option-name>SERVER-ADDR</option-name>
<code>1</code>
<type>ip</type>
<value>192.168.0.2</value>
</options>
</option-space>

 

TEXT/PLAIN
リクエスト

GET /api/v2/dhcp-server/option-space/OPSPACE
Accept: text/plain

 

レスポンス

200 OK
Content-Type: text/plain

 

dhcp-server option-space OPSPACE
option SERVER-ADDR code 1 ip 192.168.0.2
exit

 

オプションスペース設定の削除

メソッド URI
DELETE /api/v2/dhcp-server/option-space/{NAME}
リクエスト

DELETE /api/v2/dhcp-server/option-space/OPSPACE

 

レスポンス

204 No content

 

ベンダクラス設定の作成

メソッド URI
POST /api/v2/dhcp-server/vendor-class
JSON
リクエスト

POST /api/v2/dhcp-server/vendor-class
Content-Type: application/json

 

{
"vendor-class": {
"name": "CENTURY_ROUTER",
"vendor-class-id": {
"type": "text",
"value": "CENTURY_ROUTER"
},
"options": {
"option-name": "IP-ADDR",
"type": "ip",
"value": "192.168.0.1"
}
}
}

 

レスポンス

201 Created

 

XML
リクエスト

POST /api/v2/dhcp-server/vendor-class
Content-Type: application/xml

 

<dhcp-server>
<vendor-class>
<name>CENTURY_ROUTER</name>
<vendor-class-id>
<type>text</type>
<value>CENTURY_ROUTER</value>
</vendor-class-id>
<options>
<option-name>IP-ADDR</option-name>
<type>ip</type>
<value>192.168.0.1</value>
</options>
</vendor-class>
</dhcp-server>

 

レスポンス

201 Created

 

全ベンダクラス設定の取得

メソッド URI
GET /api/v2/dhcp-server/vendor-class
JSON
リクエスト

GET /api/v2/dhcp-server/vendor-class
Accept: application/json

 

レスポンス

200 OK
Content-Type: application/json

 

{
"vendor-class": [
{
"name": "CENTURY_ROUTER",
"vendor-class-id": {
"type": "text",
"value": "CENTURY_ROUTER"
},
"options": {
"option-name": "IP-ADDR",
"type": "ip",
"value": "192.168.0.1"
}
},
{
"name": "OTHER_ROUTER",
"vendor-class-id": {
"type": "text",
"value": "OTHER_ROUTER"
},
"options": {
"option-name": "IP-ADDR",
"type": "ip",
"value": "192.168.0.2"
}
}
]
}

 

XML
リクエスト

GET /api/v2/dhcp-server/vendor-class
Accept: application/xml

 

レスポンス

200 OK
Content-Type: application/xml

 

<dhcp-server>
<vendor-class>
<name>CENTURY_ROUTER</name>
<vendor-class-id>
<type>text</type>
<value>CENTURY_ROUTER</value>
</vendor-class-id>
<options>
<option-name>IP-ADDR</option-name>
<type>ip</type>
<value>192.168.0.1</value>
</options>
</vendor-class>
<vendor-class>
<name>OTHER_ROUTER</name>
<vendor-class-id>
<type>text</type>
<value>OTHER_ROUTER</value>
</vendor-class-id>
<options>
<option-name>IP-ADDR</option-name>
<type>ip</type>
<value>192.168.0.2</value>
</options>
</vendor-class>
</dhcp-server>

 

TEXT/PLAIN
リクエスト

GET /api/v2/dhcp-server/vendor-class
Accept: text/plain

 

レスポンス

200 OK
Content-Type: text/plain

 

dhcp-server vendor-class CENTURY_ROUTER
identifier text CENTURY_ROUTER
option IP-ADDR ip 192.168.0.1
exit
dhcp-server vendor-class OTHER_ROUTER
identifier text OTHER_ROUTER
option IP-ADDR ip 192.168.0.2
exit

 

ベンダクラス設定の更新

メソッド URI
PUT /api/v2/dhcp-server/vendor-class/{NAME}
JSON
リクエスト

PUT /api/v2/dhcp-server/vendor-class/CENTURY_ROUTER
Content-Type: application/json

 

{
"name": "CENTURY_ROUTER",
"vendor-class-id": {
"type": "text",
"value": "CENTURY_ROUTER"
},
"options": {
"option-name": "IP-ADDR",
"type": "ip",
"value": "192.168.0.10"
}
}

 

レスポンス

204 No content

 

XML
リクエスト

PUT /api/v2/dhcp-server/vendor-class/CENTURY_ROUTER
Content-Type: application/xml

 

<vendor-class>
<name>CENTURY_ROUTER</name>
<vendor-class-id>
<type>text</type>
<value>CENTURY_ROUTER</value>
</vendor-class-id>
<options>
<option-name>IP-ADDR</option-name>
<type>ip</type>
<value>192.168.0.10</value>
</options>
</vendor-class>

 

レスポンス

204 No content

 

ベンダクラス設定の取得

メソッド URI
GET /api/v2/dhcp-server/vendor-class/{NAME}
JSON
リクエスト

GET /api/v2/dhcp-server/vendor-class/CENTURY_ROUTER
Accept: application/json

 

レスポンス

200 OK
Content-Type: application/json

 

{
"name": "CENTURY_ROUTER",
"vendor-class-id": {
"type": "text",
"value": "CENTURY_ROUTER"
},
"options": {
"option-name": "IP-ADDR",
"type": "ip",
"value": "192.168.0.10"
}
}

 

XML
リクエスト

GET /api/v2/dhcp-server/vendor-class/CENTURY_ROUTER
Accept: application/xml

 

レスポンス

200 OK
Content-Type: application/xml

 

<vendor-class>
<name>CENTURY_ROUTER</name>
<vendor-class-id>
<type>text</type>
<value>CENTURY_ROUTER</value>
</vendor-class-id>
<options>
<option-name>IP-ADDR</option-name>
<type>ip</type>
<value>192.168.0.10</value>
</options>
</vendor-class>

 

TEXT/PLAIN
リクエスト

GET /api/v2/dhcp-server/vendor-class/CENTURY_ROUTER
Accept: text/plain

 

レスポンス

200 OK
Content-Type: text/plain

 

dhcp-server vendor-class CENTURY_ROUTER
identifier text CENTURY_ROUTER
option IP-ADDR ip 192.168.0.10
exit

 

ベンダクラス設定の削除

メソッド URI
DELETE /api/v2/dhcp-server/vendor-class/{NAME}
リクエスト

DELETE /api/v2/dhcp-server/vendor-class/CENTURY_ROUTER

 

レスポンス

204 No content

 

パラメータ

指定可能なパラメータは下記の通りです。

なお、指定可能なパラメータは製品およびファームウェアのバージョンにより異なりますので、各パラメータの詳細については各製品のユーザーズガイド(CLI版)も合わせてご参照ください。

  • パラメータ表の説明文中の表記について
    < > … 括弧内の値の範囲から選択することを示しています。
    [ ] … 括弧内の値のどれかを選択することを示しています。
    数字,文字列 … 初期値
  • パラメータ表の説明文中のデータタイプについて
    A.B.C.D … IPv4アドレス
    A.B.C.D/M … IPv4プレフィックスおよびマスク長
    XX:XX:XX:XX:XX:XX … MACアドレス

 

パラメータおよびレベル 説明
Lv.1 Lv.2 Lv.3 Lv.4
dhcp-server network index インデックス番号 … <1-64>
prefix ネットワークプレフィックス …

  • A.B.C.D/M
  • インタフェース名
range min リース開始アドレス … A.B.C.D
max リース終了アドレス … A.B.C.D
lease-time default デフォルトリース時間 … <60-15552000(21600)>
max 最大リース時間 … <60-15552000(43200)>
gateway ゲートウェイアドレス … A.B.C.D
domain ドメイン名
dns primary プライマリDNSサーバアドレス … A.B.C.D
secondary セカンダリDNSサーバアドレス … A.B.C.D
wins primary プライマリWINSサーバアドレス … A.B.C.D
secondary セカンダリWINSサーバアドレス … A.B.C.D
scope-id スコープID
sip primary プライマリSIPサーバアドレス … A.B.C.D
secondary セカンダリSIPサーバアドレス … A.B.C.D
rfc2131-compatibility broadcast-bit RFC2131準拠 … [ enable | disable ]
vendor-class-id type ベンダクラスIDタイプ … [ hex | text ]
value ベンダクラスID
vendor-specific type ベンダー固有情報タイプ … [ hex | ip | space | text ]
value ベンダー固有情報
bind address IPアドレス … A.B.C.D
hw-address MACアドレス … XX:XX:XX:XX:XX:XX
option-space name オプションスペース名
options option-name オプション名
code オプションコード … <1-255>
type オプションタイプ … [ hex | ip | text ]
value オプション値
vendor-class name ベンダクラス名
vendor-class-id type ベンダクラスIDタイプ … [ hex | text ]
value ベンダクラスID
option-space name オプションスペース名
options option-name オプション名
type オプションタイプ … [ hex | ip | text ]
value オプション値