FutureNet

NXR,WXRシリーズ

REST-API編

5. フィルタ設定

5-1. IPv4アクセスリスト設定(acl_v4)

 処理概要

IPv4アクセスリスト設定に関する処理を実行します。

 

URIおよびメソッド

機能 Version URI メソッド
POST PUT GET DELETE
IPv4 ACL v1 /api/v1/acl_v4
/api/v1/acl_v4/access-list
/api/v1/acl_v4/access-list/{NAME}
v2 /api/v2/acl_v4
/api/v2/acl_v4/verdict
/api/v2/acl_v4/access-list
/api/v2/acl_v4/access-list/{NAME}

凡例:〇対応、-未対応

 

実行例

IPv4アクセスリスト名の定義および設定の作成

メソッド URI
POST /api/{VERSION}/acl_v4/access-list
JSON
リクエスト

POST /api/v2/acl_v4/access-list
Content-Type: application/json

 

{
"access-list": {
"name": "eth0_in",
"rule": {
"permission": "permit",
"destination": "192.168.0.0/24",
"source": "192.168.1.0/24"
}
}
}

 

レスポンス

201 Created

 

XML
リクエスト

POST /api/v2/acl_v4/access-list
Content-Type: application/xml

 

<acl_v4>
<access-list>
<name>eth0_in</name>
<rule>
<permission>permit</permission>
<destination>192.168.0.0/24</destination>
<source>192.168.1.0/24</source>
</rule>
</access-list>
</acl_v4>

 

レスポンス

201 Created

 

IPv4アクセスリスト設定の追加

メソッド URI
PUT /api/{VERSION}/acl_v4/access-list/{NAME}
  • PUT時は、既存のアクセスリスト名へのルールの追加のみ可能です。

 

JSON
リクエスト

PUT /api/v2/acl_v4/access-list/eth0_in
Content-Type: application/json

 

{
"name": "eth0_in",
"rule": {
"permission": "deny",
"destination": "192.168.0.0/24",
"source": "192.168.2.0/24",
"protocol": "tcp",
"dst_port": {
"min": 880
},
"src_port": {
"min": "any"
}
}
}

 

レスポンス

204 No content

 

XML
リクエスト

PUT /api/v2/acl_v4/access-list/eth0_in
Content-Type: application/xml

 

<access-list>
<name>eth0_in</name>
<rule>
<permission>deny</permission>
<destination>192.168.0.0/24</destination>
<source>192.168.2.0/24</source>
<protocol>tcp</protocol>
<dst_port>
<min>880</min>
</dst_port>
<src_port>
<min>any</min>
</src_port>
</rule>
</access-list>

 

レスポンス

204 No content

 

IPv4アクセスリスト設定の取得

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

 

JSON
リクエスト

GET /api/v2/acl_v4/access-list/eth0_in
Accept: application/json

 

レスポンス

200 OK
Content-Type: application/json

 

{
"name": "eth0_in",
"rule": [
{
"permission": "permit",
"destination": "192.168.0.0/24",
"source": "192.168.1.0/24"
},
{
"permission": "deny",
"destination": "192.168.0.0/24",
"source": "192.168.2.0/24",
"protocol": "tcp",
"dst_port": {
"min": 880
},
"src_port": {
"min": "any"
}
}
]
}

 

XML
リクエスト

GET /api/v2/acl_v4/access-list/eth0_in
Accept: application/xml

 

レスポンス

200 OK
Content-Type: application/xml

 

<access-list>
<name>eth0_in</name>
<rule>
<permission>permit</permission>
<destination>192.168.0.0/24</destination>
<source>192.168.1.0/24</source>
</rule>
<rule>
<permission>deny</permission>
<destination>192.168.0.0/24</destination>
<source>192.168.2.0/24</source>
<protocol>tcp</protocol>
<dst_port>
<min>880</min>
</dst_port>
<src_port>
<min>any</min>
</src_port>
</rule>
</access-list>

 

TEXT/PLAIN
リクエスト

GET /api/v2/acl_v4/access-list/eth0_in
Accept: text/plain

 

レスポンス

200 OK
Content-Type: text/plain

 

ip access-list eth0_in permit 192.168.1.0/24 192.168.0.0/24
ip access-list eth0_in deny 192.168.2.0/24 192.168.0.0/24 tcp any 880

 

IPv4アクセスリスト設定の削除

メソッド URI
DELETE /api/{VERSION}/acl_v4/access-list/{NAME}
  • Bodyを指定しなかった場合、指定したNAMEのIPv4アクセスリスト設定を全て削除します。

 

JSON
リクエスト

DELETE /api/v2/acl_v4/access-list/eth0_in
Content-Type: application/json

 

{
"name": "eth0_in",
"rule": {
"permission": "permit",
"destination": "192.168.0.0/24",
"source": "192.168.1.0/24"
}
}

 

レスポンス

204 No content

 

XML
リクエスト

DELETE /api/v2/acl_v4/access-list/eth0_in
Content-Type: application/xml

 

<access-list>
<name>eth0_in</name>
<rule>
<permission>permit</permission>
<destination>192.168.0.0/24</destination>
<source>192.168.1.0/24</source>
</rule>
</access-list>

 

レスポンス

204 No content

 

verdict設定の更新

メソッド URI
PUT /api/v2/acl_v4/verdict
JSON
リクエスト

PUT /api/v2/acl_v4/verdict
Content-Type: application/json

 

{
"verdict": "separate"
}

 

レスポンス

204 No content

 

XML
リクエスト

PUT /api/v2/acl_v4/verdict
Content-Type: application/xml

 

<acl_v4>
<verdict>separate</verdict>
</acl_v4>

 

レスポンス

204 No content

 

verdict設定の取得

メソッド URI
GET /api/v2/acl_v4/verdict
JSON
リクエスト

GET /api/v2/acl_v4/verdict
Accept: application/json

 

レスポンス

200 OK
Content-Type: application/json

 

{
"verdict": "separate"
}

 

XML
リクエスト

GET /api/v2/acl_v4/verdict
Accept: application/xml

 

レスポンス

200 OK
Content-Type: application/xml

 

<acl_v4>
<verdict>separate</verdict>
</acl_v4>

 

TEXT/PLAIN
リクエスト

GET /api/v2/acl_v4/verdict
Accept: text/plain

 

レスポンス

200 OK
Content-Type: text/plain

 

ip access-list-verdict forward separate

 

verdict設定の削除

メソッド URI
DELETE /api/v2/acl_v4/verdict
リクエスト

DELETE /api/v2/acl_v4/verdict

 

レスポンス

204 No content

 

パラメータ

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

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

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

 

パラメータおよびレベル 説明
Lv.1 Lv.2 Lv.3 Lv.4 Lv.5
acl_ipv4 verdict 転送フィルタの判定 … [combine | separate]
access-list name ACL名
rule permission 動作 … [permit | deny]
destination 宛先IPv4アドレス …

  • any
  • A.B.C.D
  • A.B.C.D/M
  • FQDN
dst_set 宛先ipset名
source 送信元IPv4アドレス …

  • any
  • A.B.C.D
  • A.B.C.D/M
  • FQDN
src_set 送信元ipset名
protocol プロトコル … [tcp | udp | icmp | <0-255>]
icmp_type ICMPタイプ … <0-255>
icmp_code ICMPコード … <0-255>
dst_port min 宛先ポート番号 … [any | <1-65535>]
max 宛先ポート番号 … <1-65535>
※範囲指定時のみ有効
src_port min 送信元ポート番号 … [any | <1-65535>]
max 送信元ポート番号 … <1-65535>
※範囲指定時のみ有効
tcp_flag TCPフラグ … syn
src_mac 送信元MACアドレス … XX:XX:XX:XX:XX:XX
log フィルタログ … log
tag ログタグ名