EBPG and IBGP next-hop processing is different and as in the previous messages next-hop self solves need for reachability of next-hop address since in that case static (or another Routing Protocol as OSPF for the unreachable next-hops from the physical to the DLR Ip address.
For Optimal routing, next-hop announced to IBGP Peers is not changed, so if the next-hop (which is the DLR IP address of DLR-PLR transit link) is not reachable on the Physical Router, then routes (Logical Switch Subnets) announced from DLR to the Edge are not put into to routing table of the physical router being flagged as unreachable.
EBGP has different next-hop announcement than IBPG, the next-hop announced by the Edge to the Physical router is the Edge itself instead of DLR IP address, and in that case next-hop self may not be necessary since Physical router already knows the directly connected link Edge-Physical connected IP address.
One exception may be if the routes are redistributed into EBGP (static or ospf) instead of originating locally on the Edge, or being learned from another BGP neighbor. In that case EBGP may behave similar to IBPG (i,e announcing the DLR IP address as next-hop instead of itself). Although again for route optimality, this may create problems again without next-hop self.
This link may be helpful about the next-hops on BGP different scenarios:
http://blog.ipspace.net/2011/08/bgp-next-hop-processing.html
BGP next hop of a locally originated routes
When a router originates a BGP route configured with a network router configuration command or through route redistribution (redistribute router configuration command), it sets the BGP next hop to the IGP next hop (the same value you’d find in the IP routing table). BGP next hop is set to 0.0.0.0 for routes with unknown next hops – connected interfaces, static routes to null 0 or summary routes configured with aggregate-address router configuration command.
When a BGP route with missing next hop is sent to BGP neighbors, the BGP next hop is set to the source IP address of the BGP session.
If this is per RFC every BGP implementation should behave like this, but if left optional then this may change from different products.
So if the same test is done by configuring BGP between DLR and Edge instead of static route redistribution on the Edge, the next-hop may change to the Edge IP address. DLR-Edge may be IBGP as well as EBGP, since the Edge in both cases learns these routes from BGP instead of locally originating due to static routes.
On SDDC Reference some designs Ospf is recommended, and for some designs EBGP or IBGP is recommended:
https://pubs.vmware.com/vmware-validated-design-41/topic/com.vmware.ICbase/PDF/vmware-validated-design-41-sddc-ospf-bgp-routing.pdf
The VMware Validated Design documentation supports the following configuration:
- Use eBGP between the physical environment (ToR) and ECMP-enabled NSX Edge (ESG) devices.
- Use iBGP between NSX ESGs and UDLRs and DLRs.
- On the NSX ESGs, configure route redistribution between the physical and software-defined infrastructure