After upgrading to 30.2.1, LDAP health monitors may fail causing the pool and virtual service to be marked down.
The response string from the LDAP server may show , "URL using bad/illegal format" or "URL rejected: Malformed input to a URL function" error
This is due to changes in a recent version of the curl library.
These changes result in an issue with special characters (such as spaces) in the Base DN or User DN.
They may also cause a "Payload Timeout" error even for a Base DN or User DN with no special characters.
The workaround for this issue is to create an External health monitor to query the LDAP server.
In the Avi UI navigate to Templates > Profiles > Health Monitors
Click "Create"
Enter a name for the health monitor (ex. LDAP-External)
For "Type" choose "External"
In the section that says "Paste script code here" copy and paste the script below (modify the values for the base DN and password to match your environment)
#!/bin/bash
#curl -v $IP:$PORT >/run/hmuser/$HM_NAME.$IP.$PORT.out
if [[ $IP =~ : ]];
then curl -v ldap://[$IP]:$PORT/cn=users,dc=company,dc=com -u "cn=administrator,cn=users,dc=company,dc=com":"Password";
else curl -v ldap://$IP:$PORT/cn=users,dc=company,dc=com -u "cn=administrator,cn=users,dc=company,dc=com":"Password";
fi
Save the change.
Edit the pool, and change the health monitor to the new External monitor just created