今回はNSX-TのDFWのGroupと呼ばれる機能の検証証跡についてまとめました。
概要
DFWのGroupについて
一般的に、仮想マシンのIPアドレスが変化した場合や、新規に仮想マシンを追加した場合、FWの設定変更が発生してしまいます。
NSX-TではGroupと呼ばれるコンポーネントを使用することで、仮想マシンのIPアドレスが変化した場合や新規に仮想マシンが追加された場合に、DFWの設定を動的に更新することが可能です。
Groupは仮想マシンをグループ化するためのコンポーネントで、DFWの送信元や送信先として使用することが可能です。Groupでは、仮想マシン名や仮想マシンが所属するSegmentなど様々な条件を使用して、Groupに所属させる仮想マシンを指定可能です。
NSX ManagerはDFWのルールのGroupの部分をVMware ToolsやARP Snooping等を介して把握した仮想マシンのIPアドレスに置き換えて、dvfilter slot 2に対してフィルタリングルールを適用します。
もし、仮想マシンのIPアドレスが変化したり、新規に仮想マシンが追加された場合は、自動的にdvfilter slot 2に適用されているフィルタリングルールが更新されます。
検証結果
検証内容、構成
Segment 1にR1とR2を収容します。
DFWでSegment 1に存在する仮想マシン間のICMPトラフィックをブロックします。
ネットワーク機器のCLIの設定
interface GigabitEthernet2
ip address 10.1.1.1 255.255.255.0
interface GigabitEthernet2
ip address 10.1.1.2 255.255.255.0
DFW設定前
DFWの状態確認
R1のDFWのルールでは全トラフィックが許可されていることが確認できます。
[root@esxi1:~] vsipioctl getrules -f nic-2222203-eth1-vmware-sfw.2
ruleset mainrs {
# generation number: 0
# realization time : 2020-12-09T13:42:55
# FILTER (APP Category) rules
rule 3 at 1 inout inet6 protocol ipv6-icmp icmptype 135 from any to any accept;
rule 3 at 2 inout inet6 protocol ipv6-icmp icmptype 136 from any to any accept;
rule 4 at 3 inout protocol udp from any to any port {67, 68} accept;
rule 2 at 4 inout protocol any from any to any accept;
}
ruleset mainrs_L2 {
# generation number: 0
# realization time : 2020-12-09T13:42:55
# FILTER rules
rule 1 at 1 inout ethertype any stateless from any to any accept;
}
疎通確認
R1の10.1.1.1からR2の10.1.1.2にPingとTelnetを実施します。
R1の10.1.1.1からR2の10.1.1.2へのPingとTelnetが成功することが確認できます。
R1#ping 10.1.1.2 source 10.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.2, timeout is 2 seconds:
Packet sent with a source address of 10.1.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
R1#telnet 10.1.1.2 /source-interface GigabitEthernet2
Trying 10.1.1.2 ... Open
R2#
DFW設定後
Groupの設定
Segment 1を参照するGroupを定義します。
DFWの設定
DFWにSegment 1に存在する仮想マシン間のICMPトラフィックを却下するルールを追加します。
DFWの状態確認
R1のDFWにICMPを却下するルールが追加されたことが確認できます。また、ルールの送信元アドレスと送信先アドレスが変数になっていることが確認できます。
[root@esxi1:~] vsipioctl getrules -f nic-2222203-eth1-vmware-sfw.2
ruleset mainrs {
# generation number: 0
# realization time : 2020-12-09T14:16:07
# FILTER (APP Category) rules
rule 1005 at 1 inout protocol icmp from addrset 932fb6ee-9658-42b3-bed2-0ff7ae28349e to addrset 932fb6ee-9658-42b3-bed2-0ff7ae28349e reject;
rule 3 at 2 inout inet6 protocol ipv6-icmp icmptype 135 from any to any accept;
rule 3 at 3 inout inet6 protocol ipv6-icmp icmptype 136 from any to any accept;
rule 4 at 4 inout protocol udp from any to any port {67, 68} accept;
rule 2 at 5 inout protocol any from any to any accept;
}
ruleset mainrs_L2 {
# generation number: 0
# realization time : 2020-12-09T14:16:07
# FILTER rules
rule 1 at 1 inout ethertype any stateless from any to any accept;
}
DFWのルールで使用されているアドレス変数の中身はsipioctl getaddrsets -f <名前>コマンドで確認可能です。アドレス変数にR1とR2のアドレスが含まれていることが確認できます。
[root@esxi1:~] vsipioctl getaddrsets -f nic-2222203-eth1-vmware-sfw.2
addrset is shared for this filter
global addrset
addrset 932fb6ee-9658-42b3-bed2-0ff7ae28349e {
ip 10.1.1.1,
ip 10.1.1.2,
mac 00:50:56:b9:98:2c,
mac 00:50:56:b9:a2:c5,
}
local addrset
No address sets.
疎通確認
R1の10.1.1.1からR2の10.1.1.2にPingとTelnetを実施します。
R1の10.1.1.1からR2の10.1.1.2へのPingは失敗するが、Telnetは成功することが確認できます。
R1#ping 10.1.1.2 source 10.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.2, timeout is 2 seconds:
Packet sent with a source address of 10.1.1.1
UUUUU
Success rate is 0 percent (0/5)
R1#telnet 10.1.1.2 /source-interface GigabitEthernet2
Trying 10.1.1.2 ... Open
R2#
コメント