Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

2.8.9.5.2. ipset コマンド

ipset コマンドの形式は以下のとおりです。
ipset [options] コマンド [command-options]
ここでの command は以下のいずれかになります。
Create | add | del | test | destroy | list | save | restore | flush | rename | swap | help | version | - 
使用できる オプション は以下のとおりです。
-exist | -output [ plain | save | xml ] | -quiet | -resolve | -sorted | -name | -terse
create コマンドは、IP データのセットを格納するために新しいデータ構造を作成するために使用されます。この add コマンドは、セットに新しいデータを追加します。追加されたデータはセットの要素と呼ばれます。
この -exist オプションは、要素がすでに存在する場合はエラーメッセージを非表示にします。また、タイムアウト値の更新に特別なロールがあります。タイムアウトを変更するには、ipset add コマンドを使用して要素の全データを再指定し、必要に応じてタイムアウト値のみを変更し、-exist オプションを使用します。
test オプションは、セット内に要素がすでに存在する場合をテストするためのものです。
create コマンドの形式は以下のとおりです。
ipset create set-name type-name [create-options]
set-name はユーザーが選択する適切な名前です。type-name は、セットで構成されるデータを格納するために使用されるデータ構造の名前です。type-name の形式は以下のとおりです。
method:datatype[,datatype[,datatype]]
データの保存に許可される方法は以下のとおりです。
 メールボックス | ハッシュ | リスト 
使用できるデータタイプは次のとおりです。
ip | net | mac | port | iface 
セット内のエントリーを追加、削除、またはテストする場合は、セット内のエントリー(要素)を構成するデータ構文と同じコンマ区切りのデータ構文を使用する必要があります。以下に例を示します。
ipset add set-name ipaddr,portnum,ipaddr
注記
セットに IPv4 アドレスと IPv 6 アドレスを同時に含めることはできません。セットが作成されると、IPv4 または IPv inet6 6 inet の場合はファミリーにバインドされ、デフォルトはになり inetます。

例2.3 IP セットの作成

ソース IP アドレス、ポート、宛先 IP アドレスで構成される IP セットを作成するには、以下のコマンドを実行します。セットが作成され
~]# ipset create my-set hash:ip,port,ip
たら、以下のようにエントリーを追加できます。
~]# ipset add my-set 192.168.1.2,80,192.168.2.2
~]# ipset add my-set 192.168.1.2,443,192.168.2.2
セットタイプには、以下のオプションのパラメーターが共通です。この設定を使用するには、セットの作成時に指定する必要があります。
  • timeout : create コマンドで指定される値は、作成されるセットのデフォルト値になります。add コマンドで値が指定された場合、これは要素の初期値以外の値になります。

例2.4 IP セットの一覧表示

特定の IP セットの内容を一覧表示するには my-set、以下のコマンドを発行します。
~]# ipset list my-set
Name: my-set
Type: hash:ip,port,ip
Header: family inet hashsize 1024 maxelem 65536 
Size in memory: 8360
References: 0
Members:
192.168.1.2,tcp:80,192.168.2.2
192.168.1.2,tcp:443,192.168.2.2
すべてのセットの一覧を表示するには、set name を省略します。

例2.5 IP セットの要素のテスト

大規模なセットのコンテンツの一覧表示には時間がかかります。要素の存在は、以下のようにテストできます。
~]# ipset test my-set 192.168.1.2,80,192.168.2.2
192.168.1.2,tcp:80,192.168.2.2 is in set my-set.