Loading

×Sorry to interrupt
Uncaught ReferenceError: addCTracking is not defined
throws at https://kb.vmware.com/resource/KM_TealiumTrackingJS?v=0.5:100:1

Refresh

Cookie Preference Center

General Information on cookies

When you visit our website, we use cookies to ensure that we give you the best experience. This information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies by clicking on the different category headings to find out more and change your settings. However, blocking some types of cookies may impact your experience on the site and the services we are able to offer. Further information can be found in our

Cookie Policy.

Strictly Necessary

Strictly Necessary

Always Active

Strictly Necessary

Strictly necessary cookies are always enabled since they are essential for our website to function. They enable core functionality such as security, network management, and website accessibility. You can set your browser to block or alert you about these cookies, but this may affect how the website functions. For more information please visit www.aboutcookies.org or www.allaboutcookies.org.

Cookie Details‎

Performance

Performance

Performance

Performance cookies are used to analyze the user experience to improve our website by collecting and reporting information on how you use it. They allow us to know which pages are the most and least popular, see how visitors move around the site, optimize our website and make it easier to navigate.

Cookie Details‎

Please confirm your settings by refreshing the page.

Functional

Functional

Functional

Functional cookies help us keep track of your past browsing choices so we can improve usability and customize your experience. These cookies enable the website to remember your preferred settings, language preferences, location and other customizable elements such as font or text size. If you do not allow these cookies, then some or all of these services may not function properly.

Cookie Details‎

Advertising

Advertising

Advertising

Advertising cookies are used to send you relevant advertising and promotional information. They may be set through our site by third parties to build a profile of your interests and show you relevant advertisements on other sites. These cookies do not directly store personal information, but their function is based on uniquely identifying your browser and internet device.

Cookie Details‎

Advertising Cookies

Consent Leg.Interest

Select All Vendors

Select All Vendors

Select All Hosts

Select All

Clear Filters

Information storage and access

Apply

Confirm My Choices Reject All Allow All

My Subscriptions

Loading

Knowledge Base

FTP LB on IPv6 address does not work (66900)

Last Updated: 3/11/2019Categories: TroubleshootingTotal Views: 3368Language:
English

Subscribe to get an email
newsletter with new updates

Please provide article feedback:

Symptoms

FTP LB configured with IPv6 address does not work.
It only works if it is configured with IPv4 address.

Purpose

This article is to explain the limitation of Edge LB.
Currently Edge LB doesn't support FTP over IPv6.

Cause

Architecture of FTP

FTP establishes 2 TCP connections, one for control connection and one for data connection.
First control connection is established. It is established from client to server, usually to 21 port.
Then data connection is established using another port which is decided by PASV command or PORT command.
In passive FTP, the client issues PASV command and the server responds with its IP address / port. The client establishes the data connection accordingly.
In active FTP, the client issues PORT comannd to specify the IP address / port and the server establishes the data connection accordingly.
Files are transferred on the data connection.

FTP ALG

LB must understand PASV and PORT commands and handle the data connection properly.
This feature is called FTP ALG.
For example, LB must do the following to handle passive FTP.

1. Catch the response to PASV command.

2. Replace the IP address / port in the response.

It is originally the IP address / port of the backend server, but LB replaces it with its own IP address / port so that clients can establish the data connection to the VIP of LB.

3. Apply dynamic NAT rules to forward the data connection to the appropriate backend server / port as the control connection.

Edge LB utilizes IPVS to support FTP ALG.
IPVS is a load balancer that is built in Linux kernel.

FTP over IPv6

If FTP is over IPv6, FTP uses extended commands defined in RFC 2428, EPSV and EPRT, instead of PASV and PORT commands.
They are required for FTP to support IPv6 addresses because PASV and PORT commands support only IPv4 addresses.

Support for FTP over IPv6

Currently Linux kernel of NSX Edge does not recognize the extended commands and FTP ALG can not be applied.
As a result, NSX Edge does not support load balancing of FTP over IPv6.

Resolution

Currently there is no resolution.

Workaround

Workaround for passive FTP.

First configure the backend servers so that it returns the VIP in the response to EPSV command.

Thus Edge LB doesn't need to understand the response and replace the IP address in it.

Also make sure each server uses unique ports for data connection.
Then configure NAT rules on NSX Edge to forward connections to the ports to the appropriate backend servers.

Thus Edge LB doesn't need to replace the port in the response.
By the static NAT rules, data connections are forwarded to the same backend servers as the control connection.

Workaround for active FTP.

There is no workaround for active FTP.

Detectable by VMware SkylineTM

Actions

Copy

link to clipboard
copied!

Print

Language:
English

Attachments

Additional Resources

No results for undefined

Ask The Community

Get answers quickly from VMware experts in the community

Post Subject

CONTINUE IN COMMUNITIES

Related Products:

VMware NSX for vSphere

Related Versions:

Take Our Survey

Support Assistant