目次
はじめに
クラスタを分断してスプリットブレインを発生させたい!(サーバ間のハートビートが出来ないようにしたい!)
...ということでパケットドロップが起きるようにiptablesによるフィルタを実施しました。
※その時のメモです。
フィルタ作成と削除
フィルタ作成
$ iptables -A INPUT -t filter -p tcp --dport 50000 -j DROP
<パラメータ説明>
パラメータ | 意味 |
---|---|
-A | ルールの追加 |
INPUT | 入力(受信)パケット |
-t filter | 対象テーブル=filter(パケットフィルタリングを参照するテーブル) |
-p tcp | プロトコル=tcp |
--dport 50000 | 送信先ポート番号=50000 |
-j DROP | ターゲット=パケット破棄 |
フィルタ確認
$ iptables --list
<パラメータ説明>
パラメータ | 意味 |
---|---|
--list | ルール一覧表示 |
こんな感じで表示されたらちゃんと設定されています!
[root@host ~]# iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- anywhere anywhere tcp dpt:50000
フィルタ削除
$ iptables -D INPUT -t filter -p tcp --dport 50000 -j DROP
※フィルタ追加で使用するパラメータ-A
を-D
にすればOK
<パラメータ説明>
パラメータ | 意味 |
---|---|
-D | ルールの削除 |
INPUT | 入力(受信)パケット |
-t filter | 対象テーブル=filter(パケットフィルタリングを参照するテーブル) |
-p tcp | プロトコル=tcp |
--dport 50000 | 送信先ポート番号=50000 |
-j DROP | ターゲット=パケット破棄 |
パラメータ毎のまとめ
フィルタ作成、フィルタ削除で使用した下記コマンドで設定したパラメータについて
まとめて記載します。
iptables コマンド チェイン -t テーブル -p プロトコル 照合オプション -j ターゲット
-
コマンド
オプション 意味 -A 指定したチェインにルールを追加 -D 指定したチェインからルールを削除 -
チェイン
オプション 意味 INPUT 入力(受信) OUTPUT 出力(送信) FORWARD 転送 -
テーブル
オプション 意味 filter パケットフィルタリングを参照するテーブル -
プロトコル
オプション 意味 tcp TCPプロトコル udp UDPプロトコル icmp ICMPプロトコル -
照合オプション
オプション 意味 --sport port portに送信元ポート番号/ポート範囲を指定 --dport port portに送信先ポート番号/ポート範囲を指定 -
ターゲット
オプション 意味 ACCEPT パケット許可 DROP パケット破棄