グループ ポリシー オプションを使用した VXLAN ファブリックのマイクロセグメンテーション(GPO)

概要

ネットワーク管理者は、マイクロセグメンテーションを使用して、アプリケーション属性などの特定の基準に基づいてネットワーク リソースを論理的にグループ化できます。セキュリティ グループ(SG)およびセキュリティ グループ ACL(SGACL)でマイクロセグメンテーションを使用すると、ネットワーク トポロジに関係なく、セキュリティ グループ間でカスタマイズされたアプリケーション中心のセキュリティ ポリシーを作成および適用できます。

従来のデータセンター環境では、アプリケーションまたはワークロードのセキュリティは、外部のデータセンター ファブリックからのユーザーが入る境界または南北境界に実装されることがよくあります。これは、多くの場合、境界ファイアウォールやその他のセキュリティ検査デバイスを使用して実装されます。ただし、このアプローチは、最近の攻撃の高度な性質に対しては効果的ではありません。攻撃対象領域は、East-West および North-South フローを含むデータセンター全体に及ぶ。

セキュリティ グループおよびセキュリティ グループ ACL でマイクロセグメンテーションを使用すると、この機能は NX-OS プラットフォームのユーザーに効果的なセキュリティ ソリューションを提供できます。マイクロセグメンテーションは従来の汎用アクセス制御リスト(ACL)よりも柔軟性が高く、複雑さが軽減されます。マイクロセグメンテーションを使用すると、組織は、アプリケーションがネットワーク内のどこに常駐するかに関係なく、アプリケーション ワークロードの通信方法を操作する固有のポリシーを提供できます。

GPO

グループ ポリシー オプション(GPO)は VXLAN の下位互換性のある拡張機能であり、セキュリティ ポリシーを適用するために VXLAN ヘッダーにセキュリティ グループ タグ(SGT)を追加します。

図 1. VXLAN ヘッダーのセキュリティ グループ タグ

GPO 対応の VXLAN ネットワークでは、VXLAN EVPN ファブリックにセキュリティ グループを作成してセグメンテーションを定義できます。小規模で分離されたアプリケーション セグメントを定義することで、アプリケーション階層間およびアプリケーション間のネットワーク トラフィックのフローをより適切に制御できるマイクロセグメンテーション ポリシーを展開できます。マイクロセグメンテーションにより、セキュリティ ポリシーが必要な場所にのみ適用され、アプリケーションとワークロードのセキュリティが向上し、セキュリティ体制が向上します。

複数の属性に基づいて、ネットワーク リソースをセキュリティ グループ タグに分類できます。セキュリティ グループ間のトラフィックは、セキュリティ グループ アクセス コントロール リスト(SGACL)(セキュリティ コントラクトとも呼ばれる)によって制御できます。これは、セキュリティ グループ タグを使用して送信元と接続先のセキュリティ グループを照合します。

用語

Security Group(SG)

セキュリティ グループは、属性/セレクタに基づいて分類される物理または仮想ネットワーク エンドポイントの収集を含む論理エンティティです。

送信元セキュリティ グループ タグ(S-SGT)

送信元属性から派生したタグは、送信元セキュリティ グループ タグと呼ばれます。

宛先セキュリティグループタグ(D-SGT)

宛先属性から派生したタグは、宛先セキュリティ グループ タグと呼ばれます。

セキュリティ グループ アクセス コントロール リスト(SGACL)

SGACL は、異なるセキュリティ グループ間で特定のセキュリティ ルール(L4 フィルタ)を適用するためにセキュリティ タグを使用します。タグは、IP、VLAN、VM 属性から取得されます。SGACL を使用すると、SG 間でセキュリティ ポリシーを適用できます。SGACL はコントラクトとも呼ばれます。このドキュメントの一部では、SGACL はコントラクトと呼ばれます。

VRF レベルの適用

セキュリティ グループ セレクタは、どのエンドポイントおよび外部 IP がセキュリティ グループに属するかを定義します。セキュリティ グループには、さまざまな VRF の一部であるエンドポイントを含めることができます。異なる VRF のエンドポイント部分が同じ SG に関連付けられている場合、それらの間の通信は、必要な VRF ルートリーク構成を適用した後にのみ可能になります。

デフォルトでは、新しく定義されたテナント VRF のポリシー適用は [適用なし(Unenforced)] に設定されています。つまり、セキュア グループ間の分類基準と SGACL がプロビジョニングされた場合でも、ポリシーを適用することはできません。 VRF で SGACL の適用を有効にするには、VRF を [適用( Enforced)] モードで明示的に構成する必要があります。

適用モードで VRF を構成する場合、デフォルトの動作を次のいずれかに定義できます。

  • [拒否(Deny)]:許可リストで許可されていない限り、すべてのユニキャスト トラフィック フローがドロップされます。

  • [許可(Permit)]:拒否リストによって拒否されない限り、すべてのユニキャスト トラフィック フローが許可されます。

SG 内のホストは、明示的な SGACL なしで自由に通信できます。SGACL はセキュリティ ルールのみを作成します。

注意事項と制約事項

GPO には、次の注意事項と制限事項 があります。

  • サポートされているすべての N9000 プラットフォームでは、この機能をサポートするために 24GB 以上のシステム メモリが必要です。

  • Cisco NX-OS リリース 10.4(3)F 以降、GPO は次のプラットフォームでサポートされます。

    • 9300-FX3

    • 9300-GX

    • 9300-GX2

  • SGACL は VXLAN EVPN 展開のコンテキストでのみサポートされSGACL は、VXLAN が有効になっていない VRF には展開できません。

  • SGACL は BUM およびマルチキャスト トラフィックには適用されません。BUM およびマルチキャスト トラフィックには、システムによって生成されたデフォルトの許可ポリシーが存在します。

  • system reserved-vlan-range 値の VLAN 部分を使用して VLAN ベースのセキュリティ グループ セレクタを構成することはできません。

  • VLAN ベースのセキュリティ グループ セレクタがすでに構成されている場合、SG セレクタで使用される VLAN 値を含めるように system-reserved-vlan-range を変更することはできません。

  • GPO は、ポリシー対応ノードとポリシー非対応ノードがあるサイトではサポートされません。GPO は、ポリシー対応サイト、またはポリシー対応サイトとポリシー非対応サイトの混在でサポートされます。

  • ユニキャストリバースパスフォワーディング(uRPF)は、ルーティングプロファイルテンプレートセキュリティグループ(system routing template-security-groups )ではサポートされません。

GPO を使用したマイクロセグメンテーションの構成

GPO の有効化

マイクロセグメンテーション機能を有効にするには、次の手順を実行します。この機能を初めて有効にする場合は、ルーティング テンプレートを system routing template-security-groups に構成する必要があります。


警告


  • このルーティングテンプレートは、 feature security-groupに必要です。テンプレート モードを適用した後、機能が有効になっていることを確認します。

  • このルーティング テンプレートには、拡張 SSD の再パーティション化が必要です。これは、 copy running-config startup-config および system flash sda resize extended コマンドを実行することで実現できます。



(注)  


続行する前に、ブートフラッシュ、ログフラッシュ、および実行コンフィギュレーション内の内容をバックアップすることを推奨します。詳細については、『Cisco Nexus 9000 シリーズ NX-OS 基本構成ガイド、リリース 10.4(x)』を参照してください。


feature security-group の連続した無効化および再有効化は、スイッチリロードする必要なく完了できます。

手順の概要

  1. configure terminal
  2. system routing template-security-groups
  3. copy running-config startup-config
  4. system flash sda resize extended
  5. [no] feature security-group
  6. show nve peers detail

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
               

グローバル コンフィギュレーション モードを開始します。

ステップ 2

system routing template-security-groups

例:

switch(config-if)# system routing template-security-groups
               

スイッチのルーティング プロファイルを変更します。

(注)  

 

ルーティング テンプレートは、 system routing template-security-groups に構成する必要があります。ルーティング テンプレートには、リロードを開始する system flash sda resize を介して実行される拡張 SSD パーティショニングが必要です。

ステップ 3

copy running-config startup-config

例:

switch(config-if)# copy running-config startup-config
               

実行コンフィギュレーションをスタートアップ コンフィギュレーションにコピーします

ステップ 4

system flash sda resize extended

例:

switch(config-if)# system flash sda resize extended
!!!! WARNING !!!!

      Attempts will be made to preserve drive contents during
      the resize operation, but risk of data loss does exist.
      Backing up of bootflash, logflash, and running configuration
      is recommended prior to proceeding.

!!!! WARNING !!!!


current scheme is
sda           8:0    0 119.2G  0 disk
|-sda1        8:1    0   512M  0 part
|-sda2        8:2    0    32M  0 part /mnt/plog
|-sda3        8:3    0   128M  0 part /mnt/pss
|-sda4        8:4    0 110.5G  0 part /bootflash
|-sda5        8:5    0    64M  0 part /mnt/cfg/0
|-sda6        8:6    0    64M  0 part /mnt/cfg/1
`-sda7        8:7    0     8G  0 part /logflash


 target scheme is
sda           8:0    0 120GB|250GB  0 disk
|-sda1        8:1    0   512M       0 part
|-sda2        8:2    0    32M       0 part /mnt/plog
|-sda3        8:3    0   128M       0 part /mnt/pss
|-sda4        8:4    0    rem       0 part /bootflash
|-sda5        8:5    0   1.0G       0 part /mnt/cfg/0
|-sda6        8:6    0   1.0G       0 part /mnt/cfg/1
|_sda7        8:7    0    39G       0 part /logflash

Continue? (y/n)  [n] y
  A module reload is required for the resize operation to proceed
  Please, do not power off the module during this process.

ストレージ容量を増やします。

ステップ 5

[no] feature security-group

例:

switch(config-if)# feature security-group

グループ ポリシー オプション(GPO)機能を有効にします。機能を無効にするには、「no」プレフィックスを使用します。GPO 機能は、実行時に無効または有効にできます。

ステップ 6

show nve peers detail

例:

switch(config-if)# show nve peers detail
Details of nve Peers:
----------------------------------------
Peer-Ip: 1.1.1.1
    NVE Interface       : nve1
    Peer State          : Up
    Peer Uptime         : 1d12h
    Router-Mac          : 5292.ca60.1b08
    Peer First VNI      : 101
    Time since Create   : 1d12h
    Configured VNIs     : 100-101,200-201
    Provision State     : peer-add-complete
    Learnt CP VNIs      : 100-101,200-201
    vni assignment mode : SYMMETRIC
    Peer Location       : FABRIC
    Group policy option : yes
----------------------------------------

ピア デバイスにグループ ポリシー オプションが有効になっていることを確認します。

セキュリティ グループの作成

セキュリティ グループを作成または更新し、メンバー選択基準を構成するには、次の手順を実行します。グループ メンバーを選択するには、次の属性を任意に組み合わせて指定できます。

  • 接続されたエンドポイントと外部サブネットの IPv4 アドレスまたはサブネット。

  • 接続されたエンドポイントと外部サブネットの IPv6 アドレスまたはサブネット。

  • スイッチ レベルで VLAN を照合します。

手順の概要

  1. configure terminal
  2. security-group sg-id name sg-name
  3. [no] match [connected-endpoints | external-subnets] vrf vrf-name [ipv4|ipv6] ip-prefix
  4. [no] match vlan vlan-id
  5. show security-group id sg-id

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)# 

グローバル コンフィギュレーション モードを開始します。

ステップ 2

security-group sg-id name sg-name

例:

switch(config)# security-group 100 name webservers
switch(config-security-group)# 

一意の ID が sg-id で名前が sg-nameであるセキュリティ グループを作成(または既存を選択)します。

ステップ 3

[no] match [connected-endpoints | external-subnets] vrf vrf-name [ipv4|ipv6] ip-prefix

例:

switch(config-security-group)# match connected-endpoints vrf vrf_blue ipv4 61.1.1.141/32
switch(config-security-group)# match external-subnets vrf vrf_blue ipv4 10.0.0.0/8
switch(config-security-group)# match connected-endpoints vrf vrf_blue ipv6 61:1:1:2:1::141/128
switch(config-security-group)# match external-subnets vrf vrf_blue ipv6 10:11:12:13::/64

このコマンドは、ホスト(接続されたエンドポイント)または外部(外部サブネット)リソースの IPv4-VRF または IPv6-VRF セレクタです。

特定の分類を無効にするには、「no」プレフィックスを使用します。

ステップ 4

[no] match vlan vlan-id

例:

switch(config-security-group)# match vlan 10

スイッチ レベルで VLAN セレクタを構成します。

ステップ 5

show security-group id sg-id

例:

switch(config-if)# show security-group id all
Security Group ID 100 , Name webservers, Type Layer4-7 Service
  Selector Type : External IPv4 Subnets
    VRF-Name                            IPv4-Address/mask-len                    
    vrf_blue                            10.0.0.0/8                               
  Selector Type : Connected IPv4 Endpoints
    VRF-Name                            IPv4-Address/mask-len                    
    vrf_blue                            61.1.1.141/32                            
  Selector Type : External IPv6 Subnets
    VRF-Name                            IPv6-Address/mask-len                    
    vrf_blue                            10:11:12:13::/64                         
  Selector Type : Connected IPv6 Endpoints
    VRF-Name                            IPv6-Address/mask-len                    
    vrf_blue                            61:1:1:2:1::141/128                      
  Selector Type : Vlan
    VLAN-Id                              
    Vlan10                                   
    Vlan11                                   
    Vlan12                                   
    Vlan13                                   
    Vlan14                                   
    Vlan15                                   
    Vlan16                                   
    Vlan17                                   
    Vlan18                                   
    Vlan19                                   
    Vlan20                                   
    Vlan30                                   
    Vlan35                                   
    Vlan40                                   
    Vlan41                                   
    Vlan42                                   
    Vlan43                                   
    Vlan44                                   
    Vlan45                                   
  Selector Type : Interface
    Interface                            
    Vlan10

グループ ポリシー セレクタを確認します。

セキュリティ クラスマップの作成

クラスマップは、クラスマップ内で設定されたさまざまな一致基準に基づいてネットワーク トラフィックを分類します。特定のトラフィック フローを識別するフィルタを定義するセキュリティ クラスマップを作成するには、次の手順を実行します。

手順の概要

  1. configure terminal
  2. class-map type security match-any web-class
  3. match [default | ip | ipv4 | ipv6]

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル コンフィギュレーション モードを開始します。

ステップ 2

class-map type security match-any web-class

例:

switch(config)# class-map type security match-any web-class2

特定のトラフィック フローを識別するセキュリティ クラス マップを作成します。

ステップ 3

match [default | ip | ipv4 | ipv6]

例:

switch(config-cmap-sec)# match ipv4 udp sport 399 to 402 dport 400 to 403
switch(config-cmap-sec)# match ipv6 udp sport 399 to 402 dport 400 to 403

トラフィック タイプに基づいて照合することで、セキュリティ クラスを構成します。

セキュリティ ポリシー マップの作成

ポリシー マップは、クラス マップおよび ACL を使用して分類されたトラフィックの処理内容を示すポリシーを定義します。次の手順を実行して、セキュリティ ポリシー マップを作成し、以前に作成したセキュリティ クラス マップによって識別されるアクション(許可、拒否、ログ トラフィック フローを定義します。

手順の概要

  1. configure terminal
  2. policy-map type security policy-map
  3. class web-class
  4. [no] [permit | deny | log]
  5. [no] service-chain <svc-chain>

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル コンフィギュレーション モードを開始します。

ステップ 2

policy-map type security policy-map

セキュリティ ポリシー マップを作成します。

ステップ 3

class web-class

ルールが適用されるトラフィックを定義するポリシーマップに関連付けるセキュリティ クラスマップを指定します。

ステップ 4

[no] [permit | deny | log]

一致するトラフィックに対して実行するアクションを定義します。

  • [拒否(Deny)]: 一致するトラフィックを拒否します。

  • [ログ(Log)]: 一致するトラフィックをログに記録します。

  • [許可(Permit)]:一致するトラフィックを許可します。

何も指定されていない場合、[許可(Permit )] がデフォルトのアクションです。[ログ(Log)] アクションは、許可または拒否で設定できます。一致するトラフィックは、 show logging ip access-list cache [detail] に記録されます。

ステップ 5

[no] service-chain <svc-chain>

クラスマップマッチングのサービスチェーンを設定して、コントラクトのサービスリダイレクションを有効にします。サービスチェーンを伴う SGACL は、許可アクションでのみ有効にできます。これは、サービス リダイレクションに適用されます。詳細については、『Cisco Nexus 9000 シリーズ NX-OS ePBR 構成ガイド』を参照してください。

セキュリティ グループ間のセキュリティ コントラクトの構成

この手順では、セキュリティ グループ間のセキュリティ ポリシーを適用する SGACL(コントラクト)を作成します。

始める前に

  • セキュリティ グループの作成

  • セキュリティ クラスマップの作成

  • セキュリティ ポリシー マップの作成

手順の概要

  1. configure terminal
  2. vrf context vrf-name
  3. security enforce tag sg-id default [permit | deny]
  4. security contract source [sg-id | any] destination [sg-id | any] policy policy-map-name [ bidir | unidir]

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

vrf context vrf-name

例:

switch(config)# vrf context blue

指定した VRF の構成モードを開始します。

ステップ 3

security enforce tag sg-id default [permit | deny]

例:

switch(config-vrf)# security enforce tag 100 default deny

VRF を強制モードに移行します。

  • sg-id: デフォルト オプションが追加されるテナント VRF のセキュリティ グループ タグを定義します。

  • default deny: 明示的なセキュリティ コントラクトなしで VRF 内のすべてのトラフィックを拒否します。

  • default permit: 明示的なセキュリティ コントラクトなしで VRF 内のすべてのトラフィックを許可します。

ステップ 4

security contract source [sg-id | any] destination [sg-id | any] policy policy-map-name [ bidir | unidir]

例:

switch(config-vrf)# security contract source 100 destination 200 policy policyMap1 bidir

以前に定義したセキュリティ ポリシー マップを、対応するアクションとともに、指定したセキュリティ グループ間で適用します。

方向が指定されていない場合、デフォルトのオプションは bidir です。デフォルト オプションの bidir は、SGACL を両方向のトラフィックに適用します(たとえば、100 から 200 および 200 から 100)。

たとえば、宛先ポート 80 を指定するフィルタを使用して SG 100 と SG 200 の間にセキュリティ ルールを作成する場合、 bidir を使用すると、送信元ポート 80 を使用する SG 200 と SG 100 間の通信にもルールが適用され、双方向通信を正常に確立できます。

GPO の構成例

図 2. セキュリティ グループの作成

ステップ 1:GPO を有効にします

Switch1# configure terminal
Switch1(config)# system routing template-security-groups
Switch1(config)#feature security-group
 
Switch2# configure terminal
Switch2(config)# system routing template-security-groups
Switch2(config)#feature security-group

ステップ 2:特定のトラフィック フローを識別するためのセキュリティ クラス マップを作成します。

Switch1(config)#class-map type security match-any web-class
match ipv4 tcp dport 443
match ipv4 tcp dport 80	
 
Switch2(config)#class-map type security match-any web-class
match ipv4 tcp dport 443
match ipv4 tcp dport 80 

ステップ 3:セキュリティ ポリシー マップを作成します

 
Switch1(config)#policy-map type security policyMap1
class web-class
permit           
Switch2(config)#policy-map type security policyMap1
class web-class
permit            

ステップ 4:セキュリティ グループを作成します。

switch1(config)security-group 1000 name webserver1
switch1(config-security-group)# match connected-endpoints vrf vrf_blue ipv4 61.1.1.141/32
switch1(config-security-group)# match external-subnets vrf vrf_blue ipv4 10.0.0.0/8
switch1(config-security-group)# match connected-endpoints vrf vrf_blue ipv6 61:1:1:2:1::141/128
switch1(config-security-group)# match external-subnets vrf vrf_blue ipv6 10:11:12:13::/64
switch1(config-security-group)# match connected-endpoints vrf vrf_red ipv4 100.5.150.125/32 
switch1(config-security-group)# match connected-endpoints vrf vrf_red ipv6 100:1:1:495::125/128 
switch1(config-security-group)# match external-subnets vrf vrf_red ipv4 11.0.0.0/8
switch1(config-security-group)# match vlan 10
 
switch2(config)security-group 2000 name webserver2
switch2(config-security-group)# match connected-endpoints vrf vrf_blue ipv4 61.1.1.142/32
switch2(config-security-group)# match external-subnets vrf vrf_blue ipv4 20.0.0.0/8
switch2(config-security-group)# match connected-endpoints vrf vrf_blue ipv6 61:1:1:2:1::142/128
switch2(config-security-group)# match external-subnets vrf vrf_blue ipv6 20:11:12:14::/64
switch2(config-security-group)# match connected-endpoints vrf vrf_red ipv4 100.5.150.126/32 
switch2(config-security-group)# match connected-endpoints vrf vrf_red ipv6 100:1:1:495::126/128 
switch2(config-security-group)# match external-subnets vrf vrf_red ipv4 21.0.0.0/8
switch2(config-security-group)# match vlan 10

ステップ 5:VRF を強制モードに移行します

switch1(config)# vrf context vrf_blue
switch1(config-vrf)# security enforce tag 100 default deny
switch2(config)# vrf context vrf_red
switch2(config-vrf)# security enforce tag 101 default deny

ステップ 6:契約を適用します

switch1(config-vrf-blue)# security contract source 1000 destination 2000 policy policyMap1   
switch1(config-vrf-red)# security contract source 1000 destination 2000 policy policyMap1  
          
switch2(config-vrf-blue)# security contract source 1000 destination 2000 policy policyMap1   
switch2(config-vrf-red)# security contract source 1000 destination 2000 policy policyMap1 

GPO の確認

次に、GPO 構成に関連するいくつかの show コマンドを示します。

show contracts

すべての vrfs のスイッチに適用されているすべてのコントラクトを表示します。

switch(config)# show contracts
 
VRF              SGT   DGT   Policy           Dir    Stats        Class            Action       OperSt
--------------------------------------------------------------------------------------------------------
vrf_blue             1000   2000 policyMap1        bidir  350370       web-class        permit,log   enabled
vrf_red              1000   2000 policyMap1        bidir  373270       web-class        permit,log   enabled
show run security-group

スイッチのセキュリティ グループ関連の構成をすべて表示します。

switch1(config)# show run security-group 
!Command: show running-config security-group
!Running configuration last done at: Fri Dec  8 12:23:52 2023
!Time: Fri Dec  8 12:27:09 2023
version 10.4(2) Bios:version 05.50 
feature security-group
security-group 1000 name webserver1
match connected-endpoints vrf vrf_blue ipv4 61.1.1.141/32
match external-subnets vrf vrf_blue ipv4 10.0.0.0/8
match connected-endpoints vrf vrf_blue ipv6 61:1:1:2:1::141/128
match external-subnets vrf vrf_blue ipv6 10:11:12:13::/64
match connected-endpoints vrf vrf_red ipv4 100.5.150.125/32 
match connected-endpoints vrf vrf_red ipv6 100:1:1:495::125/128 
match external-subnets vrf vrf_red ipv4 11.0.0.0/8
match vlan 10
 
class-map type security match-any web-class
  match ip udp
  match ip tcp
 
policy-map type security policyMap1
  class web-class
 
vrf context vrf_blue
  security contract source 1000 destination 2000 policy policyMap1 
  security enforce tag 100 default deny
 
vrf context vrf_red
  security contract source 1000 destination 2000 policy policyMap1 
  security enforce tag 101 default deny
show contracts detail

クラスマップとポリシーマップの詳細を含む、スイッチに適用されるすべてのコントラクトの詳細を表示します。

switch1(config)# show contracts detail
 
VRF: vrf_blue
  Contract source group any dest group 2000
    Policy: policyMap1 Direction: bidir
      Stats: 350370
      Class: web-class
        match ip udp
        match ip tcp
      Action: permit,log
      OperSt: enabled
 
VRF: vrf_red
  Contract source group any dest group 2000
    Policy: policyMap1 Direction: bidir
      Stats: 373270
      Class: web-class
        match ip udp
        match ip tcp
      Action: permit,log
      OperSt: enabled
show contracts policy policyMap1

ポリシー名に基づいてコントラクトを表示します。

Switch1(config)show contracts policy policyMap1
VRF              SGT   DGT   Policy           Dir    Stats        Class            Action       OperSt
 
--------------------------------------------------------------------------------------------------------
 
vrf_blue             1000  2000   policyMap1       bidir  0            web-class       permit       enabled 
vrf_red              1000  2000   policyMap1       bidir  0            web-class       permit       enabled 
show contracts vrf vrf_blue

vrf に基づいてコントラクトを表示します。

switch1(config)show contracts vrf vrf_blue
VRF              SGT   DGT   Policy           Dir    Stats        Class            Action       OperSt
--------------------------------------------------------------------------------------------------------
vrf_blue         1000  2000   policyMap1       bidir  0            web-class       permit       enabled 
show contracts sgt 1000

特定の SGT に基づいてコントラクトを表示します。

switch1(config)# show contracts sgt 1000
 
VRF              SGT   DGT   Policy           Dir    Stats        Class            Action       OperSt
--------------------------------------------------------------------------------------------------------
vrf_blue     1000  2000  policyMap1        bidir  0            web-class          permit,log   enabled
vrf_red      1000  2000  policyMap1        bidir  0            web-class          permit,log   enabled
show contracts dgt 2000

特定の DGT に基づいてコントラクトを表示します。

switch1(config)# show contracts dgt 2000
 
VRF              SGT   DGT   Policy           Dir    Stats        Class            Action       OperSt
--------------------------------------------------------------------------------------------------------
vrf_blue     1000  2000  policyMap1        bidir  0            web-class         permit,log   enabled
vrf_red      1000  2000  policyMap1        bidir  0            web-class         permit,log   enabled
show contracts sgt 1000 dgt 2000

特定の SGT および DGT に基づいてコントラクトを表示します。

switch1(config)# show contracts sgt 1000 dgt 2000
 
VRF              SGT   DGT   Policy           Dir    Stats        Class            Action       OperSt
--------------------------------------------------------------------------------------------------------
vrf_blue     1000  2000  policyMap1        bidir  0            web-class         permit,log   enabled
vrf_red      1000  2000  policyMap1        bidir  0            web-class         permit,log   enabled

サービスリダイレクションを伴うコントラクトを表示するには、次の show コマンドを活用します。

switch1(config)# show contracts policy ipv4tcp
VRF     SGT   DGT     Policy   Dir   Stats   Class    Action   OperSt
--------------------------------------------------------------------------------------------------------
ixia    2004  3004   ipv4tcp   bidir   0    ipv4tcp   redir    enabled

switch1(config)# show contracts policy ipv4tcp detail
VRF: ixia
  Contract source group 2004 dest group 3004
   Policy: ipv4tcp Direction: bidir
     Stats: 0
     Class: ipv4tcp
       match ipv4 tcp
     Action: redir-1node2arm
     OperSt: enabled

switch1(config)# show contracts sgt 2004 dgt 3004
VRF    SGT    DGT    Policy    Dir    Stats   Class     Action   OperSt
--------------------------------------------------------------------------------------------------------
ixia   2004   3004   ipv4tcp   bidir   0      ipv4tcp   redir    enabled

VXLAN マルチサイトと GPO の相互運用性

Cisco NX-OS リリース 10.4(3)F 以降、SG および SGACL は、同じマルチサイト ドメインの VXLAN EVPN ファブリック部分でサポートされます。ポリシー対応ファブリックとポリシー非対応ファブリックは、同じマルチサイト ドメインの一部として展開できます。

エニーキャスト ボーダーゲートウェイ(BGW)および vPC BGW は、SGACL 機能でサポートされます。ポリシー対応サイトのボーダー ゲートウェイ ノードは、ポリシー対応サイトおよびポリシー非対応サイトとのマルチサイト EVPN 接続を確立できます。SGACL は、別のファブリックでローカルに定義された SG 間に適用できます。さらに、SG を複数のファブリックに拡張することもできます。

ポリシー非対応サイトからのすべての EVPN ルートは、ポリシー対応サイトに配布され、予約済みのセキュリティ グループ タグ値 15 でインストールされます。ポリシー非対応サイトとポリシー対応サイト間のワークロード通信を許可するには、タグ 15 と目的の宛先タグを使用して明示的なコントラクトを作成する必要があります。

リモート プレフィックスがポリシー非対応ファブリックとポリシー対応ファブリックの混在に属する複数のネクスト ホップで学習される場合、ポリシー対応ファブリックのネクスト ホップが優先されます。複数のネクストホップがすべてポリシー非対応ファブリックに属している場合、受信したプレフィックス ルートがインストールされ、ポリシー非対応タグを使用してポリシー対応ファブリック内に再発信されます。

図 3. ポリシー対応およびポリシー非対応タグ ネクストホップ プリファレンス

この図では、BGW 1 と BGW 2 はポリシー対応サイトの一部であり、BGW 3 はポリシー非対応サイトに属しています。外部ネットワーク 10.1.1.0/24 は、サイト 3 およびサイト 2 からサイト 1 にアドバタイズされます。サイト 2 はポリシー対応であるため、ルート 10.1.1.0/24 はサイト 2 で構成された「TagY」でアドバタイズされます。サイト 3 はポリシー非対応であるため、BGW3 からアドバタイズされたルートはポリシー情報を伝送せず、BGW1 が受信したときにデフォルトのポリシー非対応タグ「15」を持つようにローカルに割り当てられます。

BGW1 では、ルートには BGW2 と BGW3 のオーバーレイ ECMP があり、それぞれ TagY と '15' のタグが付いています。ただし、TagY はポリシー対応サイトからの有効なタグであるため、10.1.1.0/24 は Tag 'TagY' でプログラムされます。同様に、BGW1 がサイト 1 のリーフへのルートを再発信すると、タグ「TagY」がルートに追加されます。

一般的なエニーキャスト BGW セットアップでは、L2VNI の SVI 構成はありません。ただし、L2 ブリッジド IP トラフィックの GPO をサポートするには、エニーキャスト BGW で L2VNI の SVI を構成する必要があります。SVI の構成には、IP アドレスまたは「ip forward」コマンドは必要ありません。唯一の要件は、テナント VRF で構成することです。これは、L2VNI セグメントに接続されたエンドポイントのホスト IP ルックアップ用のテナント VRF 情報を取得し、セキュリティ ポリシーを適用するために必要な SGT および DGT タグを提供するために必要です。

マルチサイト ドメインのポリシー対応ファブリック

ここでは、ポリシー対応マルチサイト ドメイン内の 2 つのホスト間でルート アドバタイズメントとパケット移動がどのように行われるかについて説明します。

図 4. ポリシー対応マルチサイト

上記のトポロジでは、サイト 1 とサイト 2 がポリシー対応です。

リーフ L1 からリーフ L5 へのホスト H1 のルートアドバタイズメント

ホスト ルート H1 が L1 サイト 1 から L5 サイト 2 にアドバタイズされる場合、ルート アドバタイズメント フローは次のようになります。

  1. ネクストホップ ルータ L1 は、ルータ L1 のポリシーによって構成された L1 ネクストホップと送信元グループ タグ(TagX)を使用してルートをアドバタイズします。

  2. サイト 1 の BGW であるルータ A1 は、ネクストホップとして BGW のマルチサイト VIP を使用してルートを再発信しますが、L1 から受信した SGT タグ(TagX)を保持します。

  3. 同様に、ルータ B2(サイト 2 の BGW)は、ネクストホップとして B2 BGW のマルチサイト VIP と同じ SGT タグ(TagX)を使用して、ローカル ファブリック内のルート H1 を再発信します。

  4. L5 はルータ B2 からルートを受信し、関連付けられたセキュリティ タグ「TagX」とともに転送テーブルにインストールします。このようにして、発信元リーフからのタグは、マルチサイト ドメイン全体で保持されます。

さまざまなノードで学習されたエンドポイント情報については、次の図を参照してください。

図 5. ポリシー対応マルチサイトでのルート アドバタイズメント

ホスト H5 からホスト H1 へのパケットフロー

図 6. ホスト H5 からホスト H1 へのパケットフロー

ホスト H5 と H1 間のパケット フローは次のようになります。

  1. ルータ L5 は、ホスト H5 からトラフィックを受信します。SRC タグと DST タグの両方を使用できるため、L5 はセキュリティ ポリシーをローカルに適用します。ポリシーアクションが許可されている場合、VXLAN-GPO ヘッダーにポリシー適用(PA)ビットを設定し、宛先ホスト H1 に到達するためのネクストホップを表す BGW ルータ B2 にトラフィックを送信します。

  2. これとともに、PA ビット設定は VXLAN GPO ヘッダー B2 に保持されます。VXLAN ヘッダーに設定された PA ビットを確認すると、ポリシーは再適用されず、BGW A1 に送信するトラフィックのカプセル化が解除され、再カプセル化され、サイト 1 は、宛先ホスト H1 に到達するためのネクスト ホップを表します。これとともに、PA ビット設定は VXLAN GPO ヘッダーに保持されます。

  3. BGW A1 は BGW B2 と同様のアクションを実行し、トラフィックをルータ L1 に転送します。

  4. ルータ L1 は、PA ビットが設定されているため、ポリシーも適用せず、トラフィックを宛先ホスト H1 に転送します。

マルチサイト ドメインのポリシー対応ファブリックとポリシー非対応ファブリック

図 7. ポリシー対応ポリシー非対応マルチサイト

上の図では、サイト 1 はポリシー対応サイトで、サイト 2 はポリシー非対応サイトです。

ルータ L1 からルータ L5 へのホスト H1 のルート アドバタイズメント

ルータ L1 からルータ L5 へのホスト H1 のルート アドバタイズメントは次のようになります。

  1. ルータ L1 は、L1 の構成に基づいて、ネクストホップを L1 とし、SGT タグ(TagY)を使用してルート H1 をアドバタイズします。

  2. ルータ A1 は、ネクストホップ L1(および関連付けられたタグ TagY)を持つルートをローカルにインストールし、A1 マルチサイト VIP および同じ SGT タグ(TagY)としてネクストホップを持つリモート BGW B2 へのルートを再発信します。

  3. BGW B2 は、SGT タグ(TagY)を含むルートを受信すると、A1 をネクストホップとするルートをローカルにインストールし、SGT タグはポリシー非対応であるため無視します。次に、ネクストホップを B2 マルチサイト VIP としてルータ L5 へのルートを再発信します。

  4. ルータ L5 はルート H1 をインストールします。

ルータ L5 からルータ L1 へのホスト H5 のルート アドバタイズメント

ルータ L5 からルータ L1 へのホスト H5 のルート アドバタイズメントは次のようになります。

  1. ルータ L5 は、ネクストホップを L5 としてホスト H5 のルートをアドバタイズします。

  2. BGW B2 は、ネクストホップとして L5 を持つルートをローカルにインストールし、ネクストホップを持つプレフィックスを B2 マルチサイト VIP として再発信します。

  3. A1 はポリシー対応サイトにあり、ポリシー非対応ファブリックからルートを受信したため、A1 はポリシー非対応サイトのデフォルト タグ(タグ '15')を持つルートをインストールします。

  4. BGW ルータ A1 は、ネクストホップを A1 マルチサイト VIP およびタグ 15 として、L1 へのルートを再発信します。

  5. ルータ L1 は、SGT TAG 15 およびネクストホップを A1 マルチサイト VIP として使用するルートをインストールします。

さまざまなノードで学習されたエンドポイント情報については、次の図を参照してください。

図 8. ポリシー非認識から認識サイトへのルートアドバタイズメント

ホスト H5 からホスト H1 へのパケット フロー

図 9. ホスト H5 からホスト H1 へのパケット フロー

ホスト H5 と H1 間のパケット フローは次のようになります。

  1. ルータ L5 はホスト H5 からトラフィックを受信し、標準 VXLAN ヘッダーを使用してトラフィックを B2 にルーティングします。

  2. B2 は、標準 VXLAN ヘッダーでカプセル化を解除し、再カプセル化します。

  3. A1 はトラフィックのカプセル化を解除し、送信元タグ「15」と宛先「タグ Y」に基づいてポリシーを適用します。ポリシーに基づいて、トラフィックは VXLAN GPO トンネルとポリシー適用ビットが設定された L1 に転送されます。

  4. L1 はトラフィックのカプセル化を解除し、PA ビットが設定されているため、ポリシーは再度適用されず H1 に転送されます。

ホスト H1 からホスト H5 へのパケット フロー

図 10. ホスト H1 からホスト H5 へのパケット フロー

ホスト H1 からホスト H5 へのパケット フローは次のようになります。

  1. ルータ L1 は H1 からトラフィックを受信し、送信元タグ「TagY」、宛先タグ「15」に基づいてポリシーを適用します。ポリシーの結果に基づいて、L1 はポリシー適用(PA)ビットが設定された VXLAN GPO トンネルを使用してトラフィックを A1 にルーティングします。

  2. A1 はカプセル化を解除し、PA ビットが設定されているため、ポリシーを再適用せず、標準 VXLAN トンネルの B2 にトラフィックを転送します。

  3. B2 から H5 へのトラフィック フローは、マルチサイト展開と同様です。

NX-OS ユーザーは、マイクロセグメンテーションと GPO を使用して、ネットワーク内に小規模で分離されたセグメントを作成し、セキュリティ ポリシーを適用できます。これにより、ユーザーはトラフィック フローをより適切に制御し、必要な場所にのみセキュリティ ポリシーを適用できます。

関連資料

https://www.cisco.com/c/en/us/td/docs/dcn/nx-os/nexus9000/104x/configuration/scalability/cisco-nexus-9000-series-nx-os-verified-scalability-guide-1043.html

https://www.cisco.com/c/en/us/td/docs/switches/datacenter/sw/nx-os/licensing/guide/cisco-nexus-nx-os-smart-licensing-using-policy-user-guide.html

https://www.cisco.com/c/dam/en/us/td/docs/Website/datacenter/platform/platform.html

https://developer.cisco.com/docs/cisco-nexus-3000-and-9000-series-nx-api-rest-sdk-user-guide-and-api-reference-release-10-4-x/