FutureNet

NXR,WXRシリーズ

REST-API編

6. NAT設定

6-2. 宛先NAT設定(dnat)

 処理概要

宛先NAT設定に関する処理を実行します。

 

URIおよびメソッド

機能 Version URI メソッド
POST PUT GET DELETE
DNAT v2 /api/v2/nat/dnat
/api/v2/nat/dnat/nat-list
/api/v2/nat/dnat/nat-list/{NAME}

凡例:〇対応、-未対応

  • api/v1は対応していません。

 

実行例

DNAT名の定義および設定の作成

メソッド URI
POST /api/v2/nat/dnat/nat-list
JSON
リクエスト

POST /api/v2/nat/dnat/nat-list
Content-Type: application/json

 

{
"nat-list": {
"name": "eth0_dnat",
"rule": {
"protocol": "ip",
"destination": "192.168.1.1",
"translation_ip": {
"from": "192.168.0.1"
}
}
}
}

 

レスポンス

201 Created

 

XML
リクエスト

POST /api/v2/nat/dnat/nat-list
Content-Type: application/xml

 

<dnat>
<nat-list>
<name>eth0_dnat</name>
<rule>
<protocol>ip</protocol>
<destination>192.168.1.1</destination>
<translation_ip>
<from>192.168.0.1</from>
</translation_ip>
</rule>
</nat-list>
</dnat>

 

レスポンス

201 Created

 

DNAT設定の追加

メソッド URI
PUT /api/v2/nat/dnat/nat-list/{NAME}
  • PUT時は、既存のDNAT名へのルールの追加のみ可能です。

 

JSON
リクエスト

PUT /api/v2/nat/dnat/nat-list/eth0_dnat
Content-Type: application/json

 

{
"name": "eth0_dnat",
"rule": {
"protocol": "tcp",
"src_port": {
"min": "any"
},
"destination": "192.168.1.2",
"dst_port": {
"min": 80
},
"translation_ip": {
"from": "192.168.0.2"
},
"translation_port": {
"min": 8080
}
}
}

 

レスポンス

204 No content

 

XML
リクエスト

PUT /api/v2/nat/dnat/nat-list/eth0_dnat
Content-Type: application/xml

 

<nat-list>
<name>eth0_dnat</name>
<rule>
<protocol>tcp</protocol>
<src_port>
<min>any</min>
</src_port>
<destination>192.168.1.2</destination>
<dst_port>
<min>80</min>
</dst_port>
<translation_ip>
<from>192.168.0.2</from>
</translation_ip>
<translation_port>
<min>8080</min>
</translation_port>
</rule>
</nat-list>

 

レスポンス

204 No content

 

DNAT設定の取得

メソッド URI
GET /api/v2/nat/dnat/nat-list/{NAME}
JSON
リクエスト

GET /api/v2/nat/dnat/nat-list/eth0_dnat
Accept: application/json

 

レスポンス

200 OK
Content-Type: application/json

 

{
"name": "eth0_dnat",
"rule": [
{
"protocol": "ip",
"destination": "192.168.1.1",
"translation_ip": {
"from": "192.168.0.1"
}
},
{
"protocol": "tcp",
"src_port": {
"min": "any"
},
"destination": "192.168.1.2",
"dst_port": {
"min": 80
},
"translation_ip": {
"from": "192.168.0.2"
},
"translation_port": {
"min": 8080
}
}
]
}

 

XML
リクエスト

GET /api/v2/nat/dnat/nat-list/eth0_dnat
Accept: application/xml

 

レスポンス

200 OK
Content-Type: application/xml

 

<nat-list>
<name>eth0_dnat</name>
<rule>
<protocol>ip</protocol>
<destination>192.168.1.1</destination>
<translation_ip>
<from>192.168.0.1</from>
</translation_ip>
</rule>
<rule>
<protocol>tcp</protocol>
<src_port>
<min>any</min>
</src_port>
<destination>192.168.1.2</destination>
<dst_port>
<min>80</min>
</dst_port>
<translation_ip>
<from>192.168.0.2</from>
</translation_ip>
<translation_port>
<min>8080</min>
</translation_port>
</rule>
</nat-list>

 

TEXT/PLAIN
リクエスト

GET /api/v2/nat/dnat/nat-list/eth0_dnat
Accept: text/plain

 

レスポンス

200 OK
Content-Type: text/plain

 

ip dnat eth0_dnat ip any 192.168.1.1 192.168.0.1
ip dnat eth0_dnat tcp any any 192.168.1.2 80 192.168.0.2 8080

 

DNAT設定の削除

メソッド URI
DELETE /api/v2/nat/dnat/nat-list/{NAME}
  • Bodyを指定しなかった場合、指定したNAMEのDNAT設定を全て削除します。

 

JSON
リクエスト

DELETE /api/v2/nat/dnat/nat-list/eth0_dnat
Content-Type: application/json

 

{
"name": "eth0_dnat",
"rule": {
"protocol": "ip",
"destination": "192.168.1.1",
"translation_ip": {
"from": "192.168.0.1"
}
}
}

 

レスポンス

204 No content

 

XML
リクエスト

DELETE /api/v2/nat/dnat/nat-list/eth0_dnat
Content-Type: application/xml

 

<nat-list>
<name>eth0_dnat</name>
<rule>
<protocol>ip</protocol>
<destination>192.168.1.1</destination>
<translation_ip>
<from>192.168.0.1</from>
</translation_ip>
</rule>
</nat-list>

 

レスポンス

204 No content