NSX-V to NSX-T Load balancer http header migration issue
search cancel

NSX-V to NSX-T Load balancer http header migration issue

book

Article ID: 317514

calendar_today

Updated On:

Products

VMware NSX

Issue/Introduction

  • NSX-V http header syntax is not accepted in NSX-T.
  • During NSX-V to NSX-T migration, the http header should be modified to match NSX-T http header format, else there will be a Management plane to Dataplane sync issue. 

Environment

VMware NSX Data Center for vSphere

Cause

header=STRING Any other tags to be sent in HTTP header. Use multiple times for additional headers.

For example:

header="Host: app1.xyz.com

 

  • NSX-T http header doesn't supports the format mentioned above. Especially (" in front), (Add an Active Monitor)

Resolution

  • From V2T the LB monitor HTTP header should be configured in "Extensions". As it was mentioned in the following official document

Create a Service Monitor

Workaround:

  • Change the NSX-T http header to match the correct syntax,
  • NSX-T load balancers http monitor only supports the following formats,

Http header:
RFC:
Request Header Fields


Host:
Host = uri-host [ ":" port ]
Example:
Host: www.example.org:8080
      ~~~~~~~~~~~~~~~ ^^^^
        uri-host port
RFC:
Host


uri-host: regular domain name
RFC:
Preferred name syntax

Additional Information

Impact/Risks:

  • If NSX-T http header is configured with incorrect syntax then it will cause Management Plane to Dataplane sync issue. 
  • For example, Customer has 10 virtual servers migrated from NSX-V to NSX-T. Which is successful. 
  • Next, 2 more virtual server with invalid http header (under lb monitoring) migrated. 
  • Post that subsequent configurations will not take effect in Data path because the problematic monitors led to reload failure. However Management plane has realized those configurations but Dataplane does not match with management plane. 
  • Now if you  migrate the 13th virtual server from NSX-V to NSX-T , then we can see there is a sync issue between Dataplane and Management plane. The pool members will show "unused" status. 
  • If you reboot the edge node which has the lb, then the entire lb status will show unknown.