NSX Data Center 6.4.6 中使用“sni”关键字配置负载平衡器应用程序规则失败。

问题

在以下情况下会出现此问题:
  • NSX 与使用“sni”关键字配置的现有应用程序规则一起升级到 6.4.6。
  • 在 6.4.6 中使用“sni”关键字创建或配置新的负载平衡器应用程序规则。

原因

出现此问题的原因是, NSX 6.4.6 中使用以下关键字的应用程序规则已被破坏:
  • req_ssl_sni
  • req.ssl_sni
  • ssl_fc_sni
  • ssl_fc_has_sni

NSX 6.4.6 中用于支持负载平衡器应用程序规则“sni expression”的正则表达式不够严格。

解决方案

此问题是 NSX 6.4.6 中的已知问题。此问题尚无解决办法。但是,要解决此问题,请执行以下操作:
  1. 以 root 用户身份登录到 NSX Edge
  2. /opt/vmware/vshield/Plugins/features/lb/lb.pm 中,将第 879 行编辑为:
    879 @indexes = grep { $script->[$_] =~ /^sni +.+/ } 0..$#$script;