10. Copyright 2019 FUJITSU CLOUD TECHNOLOGIES LIMITED
運用ツール開発はどうなっているのか
コミット
テスト
環境作成 テスト
リリース
NS
X
VM VM
nested
ESXi
nested
ESXi
nested
ESXi
vC VM VM
テスト環境 VMware vSphere®
nested の環境をクローン
NS
X
VM VM
nested
ESXi
nested
ESXi
nested
ESXi
vC VM VM
テスト環境 VMware vSphere®
ESXi ESXi
テスト
環境
テスト
環境
テスト
環境
new
VM 変更したコードを実行し
vSphere を含む全体の挙動をテスト
10
CI 利用
12. Copyright 2019 FUJITSU CLOUD TECHNOLOGIES LIMITED
大きく分けると2種類
IP Port Act
A 80 Allow
12
IP Port Act
A 80 Allow
A 443 Allow
設定が反映されていない ルールで許可しているがドロップ
SrcIP:A
80/tcp
IP Port Act
A 80 Allow
参考: vForum 2016 資料 「マイクロセグメンテーション運用のためのNSX for vSphere -Distributed Firewall トラブルシューティング」
13. Copyright 2019 FUJITSU CLOUD TECHNOLOGIES LIMITED
大きく分けると2種類
IP Port Act
A 80 Allow
13
IP Port Act
A 80 Allow
A 443 Allow
設定が反映されていない ルールで許可しているがドロップ
SrcIP:A
80/tcp
IP Port Act
A 80 Allow
17. Copyright 2019 FUJITSU CLOUD TECHNOLOGIES LIMITED
設定が反映されていない場合の切り分け
◼ vsm.log (NSX Manager のログ)
17
NSX Manager
ESXi
dvfilter
vsip
vsfwd
NSX Manager から各ホストに配信されているか?(ログ)
# クラスタへの配信開始
ConfigurationPublisher:89 - Updating Cluster domain-c136174 with Generation Number
1558017119337
# ホストへの配信開始
ConfigurationPublisher:248 - Updating host host-160805 status for firewall, generation
1558017119337 ; StatusCode - 0, Status Message –
# ホストへの配信完了
FirewallDao:1241 - Host Status update for host host-160805 with latest generation
number 1558017119337 , end time 1558017151737, errorCode null
18. Copyright 2019 FUJITSU CLOUD TECHNOLOGIES LIMITED
設定が反映されていない場合の切り分け
◼ ルールセットが正しく vsip まで展開されているかは
以下のコマンドで確認できる
18
NSX Manager
ESXi
dvfilter
vsip
vsfwd
ESXi 上で正しく展開されているか?
[root@host:~] vsipioctl loadruleset | grep ^Generation
Generation : 1557974013000
2019-05-16T18:22:57Z vsfwd: [INFO] Applying firewall config to vnic list on host
host-24459
2019-05-16T18:22:57Z vsfwd: [INFO] Applied RuleSet 1557974013000 on vnic
50190c49-ffcf-4e6c-fd97-3b12a0849333.001
2019-05-16T18:22:57Z vsfwd: [INFO] Applied RuleSet 1557974013000 on vnic
50190c49-ffcf-4e6c-fd97-3b12a0849333.000
2019-05-16T18:22:57Z vsfwd: [INFO] Applied RuleSet 1557974013000 for all
vnics
2019-05-16T18:22:57Z vsfwd: [INFO] Sending vsa reply of domain-c113 host
host-24459: 0
◼ ログで確認する事もできる
(ESXi) vsfwd.log
19. Copyright 2019 FUJITSU CLOUD TECHNOLOGIES LIMITED
設定が反映されていない場合の切り分け
◼ 各 dvfilter は ID 単位で操作できる
◼ 以下のコマンドが dvfilter を識別するコマンド
19
NSX Manager
ESXi
dvfilter
vsip
vsfwd
ESXi 上で正しく展開されているか?
[root@host:~] summarize-dvfilter
…
port 84136444 vm.eth0
vNic slot 2
name: nic-102377785-eth0-vmware-sfw.2
…
[root@host:~] vsipioctl getrules -f nic-102377785-eth0-vmware-sfw.2
ruleset domain-c113 {
# Filter rules
rule 1006 at 1 in protocol tcp from addrset ip-ipset-7 to any port 10050 accept;
rule 1005 at 2 in protocol tcp from addrset ip-ipset-8 to any port 10050 accept;
rule 1001 at 3 inout protocol any from any to any accept;
}
◼ vsipioctl getrules で各 dvfilter ごとに適用されてい
るルールを確認できる
22. Copyright 2019 FUJITSU CLOUD TECHNOLOGIES LIMITED
大きく分けると2種類
IP Port Act
A 80 Allow
22
IP Port Act
A 80 Allow
A 443 Allow
設定が反映されていない ルールで許可しているがドロップ
SrcIP:A
80/tcp
IP Port Act
A 80 Allow
23. Copyright 2019 FUJITSU CLOUD TECHNOLOGIES LIMITED
ルールで許可しているがドロップするケース
◼ コネクショントラッカーテーブルとルールテーブルを持っている
◼ 既存コネクション
• コネクショントラッカーテーブルで評価され一致すれば通過
◼ 新規コネクション
• ルールテーブルに一致する場合通過、コネクショントラッカーテーブル
にエントリーを追加
23
sIP sPort dIP dPort State Seq IP Port Dir State
コネクション有
TCP正常
コネクション無 Allow
Reject/Drop
コネクション有
TCP異常
ruleconntrack
dfwpktlogs.log
DFW のメカニズム概要
24. Copyright 2019 FUJITSU CLOUD TECHNOLOGIES LIMITED
ルールで許可しているがドロップするケース
◼ Dvfilter の統計情報から確認
24
sIP sPort dIP dPort State Seq IP Port Dir State
コネクション有
TCP正常
コネクション無 Allow
Reject/Drop
コネクション有
TCP異常
ruleconntrack
dfwpktlogs.log
ファイアウォールで拒否していることを切り分ける方法
[root@host:~] vsipioctl getfilterstat -f nic-16002942-eth1-vmware-sfw.2
PACKETS IN OUT
------- -- ---
v4 pass: 83 3
v4 drop: 608 0
25. Copyright 2019 FUJITSU CLOUD TECHNOLOGIES LIMITED
ルールで許可しているがドロップするケース
◼ DFW 前後でパケットキャプチャから差分を確認
25
sIP sPort dIP dPort State Seq IP Port Dir State
コネクション有
TCP正常
コネクション無 Allow
Reject/Drop
コネクション有
TCP異常
ruleconntrack
dfwpktlogs.log
ファイアウォールで拒否していることを切り分ける方法
# ファイアウォール直前パケットキャプチャ
pktcap-uw --capture PreDvFilter --dvfilter $DVFILTER
# ファイアウォール直後パケットキャプチャ
pktcap-uw --capture PostDvFilter --dvfilter $DVFILTER
詳細はドキュメント「DVFilter レベルでのパケットのキャプチャ」
26. Copyright 2019 FUJITSU CLOUD TECHNOLOGIES LIMITED
ルールで許可しているがドロップするケース
◼ dfwpktlogs.log
26
sIP sPort dIP dPort State Seq IP Port Dir State
コネクション有
TCP正常
コネクション無 Allow
Reject/Drop
コネクション有
TCP異常
ruleconntrack
dfwpktlogs.log
ルールテーブルでドロップしている場合の切り分け方
INET match DROP domain-c171871/11064 IN 40 TCP 192.168.0.31/50325->192.168.0.32/80 S
ルールにマッチしドロップ
ルールID 送信元/送信先
方向 TCP フラグ
27. Copyright 2019 FUJITSU CLOUD TECHNOLOGIES LIMITED
ルールで許可しているがドロップするケース
◼ 拒否するケースに合致しないか調査する
• 拒否するケースが記載されているKB:
PF reason codes in NSX for vSphere 6.x (2149586)
◼ 具体的に知りたい場合:
パケットキャプチャと dfwpktlogs.log の差分を調べる
27
sIP sPort dIP dPort State Seq IP Port Dir State
コネクション有
TCP正常
コネクション無 Allow
Reject/Drop
コネクション有
TCP異常
ruleconntrack
dfwpktlogs.log
コネクショントラッカーテーブルで拒否しているパケットを切り分ける方法
29. Copyright 2019 FUJITSU CLOUD TECHNOLOGIES LIMITED
Conntrack が理由でドロップするケース
◼ クライアントが異常終了した場合など、サーバーが ESTABLISHED 状
態で有るにかかわらず SYN を送ってしまうケースがある
◼ NSX6.2.3 以降だと challenge ack を返すようになり改善されている
29
EST 状態で SYN を受け取った場合(6.2.3 で改善)
SYN
SYN/ACK
ACK
EST
SYN
HA 等の理由でクライアントの
コネクションがリセット
(ハーフオープン状態)
ESTABLISHED 状態で
SYN 受信は不正と判断しドロップ
30. Copyright 2019 FUJITSU CLOUD TECHNOLOGIES LIMITED
Conntrack が理由でドロップするケース
◼ クライアントが異常終了した場合など、サーバーが ESTABLISHED 状
態で有るにかかわらず SYN を送ってしまうケースがある
◼ NSX6.2.3 以降だと challenge ack を返すようになり改善されている
30
EST 状態で SYN を受け取った場合(6.2.3 で改善)
SYN
SYN/ACK
ACK
EST
SYN
HA 等の理由でクライアントの
コネクションがリセット
(ハーフオープン状態)
ステートクリア
ACK
RST
SYN
SYN/ACK
ACK
DFW が代理応答で ACK
SYNSENT 状態で ACK を受け取り
RST を返却、DFWのステートが
クリアされる
NSX 6.2.3 以降
31. Copyright 2019 FUJITSU CLOUD TECHNOLOGIES LIMITED
今日の内容
IP Port Act
A 80 Allow
31
IP Port Act
A 80 Allow
A 443 Allow
設定が反映されていない ルールで許可しているがドロップ
SrcIP:A
80/tcp
IP Port Act
A 80 Allow