NSX-V 6.4.5 Route Redistribution Greyed Out Issue

I’ve seen this issue with a couple of customer builds over the last few months and for some reason it seems to only affect the ESG’s on the secondary site in a cross site NSX-V deployment.

The issue is the ESG’s in the secondary site have the route redistribution settings greyed out as can be seen in the screenshot below.

There is no way to edit, enabled or add settings from the GUI. This issue is present in both the HTML 5 and Flash client.
In the screenshot route redistribution is enabled and configured, in order to do that I had to run the configuration via an API call.
I’ll add to this blog when I get time detailing how to do the configuration via API but essentially the easiest way to do it is to pull the configuration from an already configured ESG, edit the configuration to that of the ESG with the issue with the correct settings obviously and then push the config onto the troubled ESG.

This is my first bug that I’ve found and reported and VMware have confirmed that this is a bug in 6.4.5 and that it will be fixed in the next release 6.4.6 below is the response from VMware support.

Engineering confirmed that for any Edge the Route Redistribution GUI should be available, whereas it is not in your NSX version 6.4.5.
The only workaround for your version is to use the REST API call as for now.

The fix will be present in the upcoming NSX version 6.4.6.

As promised here are the details on how to enable Route Redistribution via an API call.
For this I’m using Postman, I’ll do a separate post on how to configure postman with NSX.

First of all you need to configure all the other routing settings you need.
Once thats done and you go to Route redistribution and see the greyed out options as in the screenshot below then we need to jump into postman.

You need to run a GET command with the following.
HTTPS://NSX Manager FQDN or IP/api/4.0/edges/edge-id/routing/config
So for example
HTTPS://nsxman01.lab.local/api/4.0/edges/edge-1/routing/config
Send the GET query and in the output section click ‘Pretty’ and you will see the configuration of the Edge.
Below is a customer Edge with redacted details for security

Text of the output

 <?xml version="1.0" encoding="UTF-8"?>
<routing>
    <version>4</version>
    <enabled>true</enabled>
    <routingGlobalConfig>
        <routerId>xx.xx.xx.xx</routerId>
        <ecmp>true</ecmp>
        <logging>
            <enable>false</enable>
            <logLevel>info</logLevel>
        </logging>
    </routingGlobalConfig>
    <staticRouting>
        <staticRoutes/>
    </staticRouting>
    <ospf>
        <enabled>true</enabled>
        <ospfAreas>
            <ospfArea>
                <areaId>10</areaId>
                <type>nssa</type>
                <authentication>
                    <type>md5</type>
                    <value>********</value>
                </authentication>
                <translateType7ToType5>false</translateType7ToType5>
            </ospfArea>
        </ospfAreas>
        <ospfInterfaces>
            <ospfInterface>
                <vnic>2</vnic>
                <areaId>10</areaId>
                <helloInterval>1</helloInterval>
                <deadInterval>3</deadInterval>
                <priority>128</priority>
                <cost>200</cost>
                <mtuIgnore>false</mtuIgnore>
            </ospfInterface>
        </ospfInterfaces>
        <redistribution>
            <enabled>false</enabled>
            <rules/>
        </redistribution>
        <gracefulRestart>false</gracefulRestart>
        <defaultOriginate>false</defaultOriginate>
    </ospf>
</routing>

The bit we are interested in is.

<redistribution>
            <enabled>false</enabled>
            <rules/>
        </redistribution>

We need to add the configuration and this will depend on the settings you need. The best idea is to run the same get command on the primary site ESG and copy the configuration from there. For this customer the config is

<redistribution>
            <enabled>true</enabled>
            <rules>
                <rule>
                    <id>0</id>
                    <from>
                        <ospf>false</ospf>
                        <bgp>false</bgp>
                        <static>true</static>
                        <connected>true</connected>
                    </from>
                    <action>permit</action>
                </rule>
            </rules>
        </redistribution>

Either copy the config to notepad and edit there or on Postman click the Body tab and edit directly. Paste the redistribution section with the configuration we want into the config replacing the existing config for the section so the end on the config looks like this

         </ospfInterfaces>
           <redistribution>
            <enabled>false</enabled>
            <rules>
                <rule>
                    <id>0</id>
                    <from>
                        <ospf>false</ospf>
                        <bgp>false</bgp>
                        <static>true</static>
                        <connected>true</connected>
                    </from>
                    <action>permit</action>
                </rule>
            </rules>
        </redistribution>
        <gracefulRestart>false</gracefulRestart>
        <defaultOriginate>false</defaultOriginate>
    </ospf>
</routing>

Once edited and added to the Body section of postman as in the screenshot below. Change the call to Put and click send.

You won’t see any response or error but if we now look at the Edge in the UI we can see the Route redistribution configuration has been applied.

Leave a Reply

Your email address will not be published. Required fields are marked *