Re: some trouble when using vrf

From: linmiaohe
Date: Wed Apr 17 2019 - 02:52:56 EST




On 2019/4/17 12:56, David Ahern wrote:
> On 4/16/19 8:22 PM, linmiaohe wrote:
>>
>>
>> On 2019/4/16 23:20, David Ahern wrote:
>>> On 4/16/19 5:26 AM, linmiaohe wrote:
>>>> ...
>>>> bind(sock_fd, (struct sockaddr *)&addr_serv, sizeof(addr_serv));
>>>> ...
>>>> ret = setsockopt(sock_fd, SOL_SOCKET, SO_BINDTODEVICE, bind_dev, strlen(bind_dev)+1);
>>>> ...
>>>> This code snipet doesn't work if the ip address of addr_serv is not in default vrf. And
>>>> "Cannot assign requested address" will occurs.
>>>
>>> Applications must bind to the device first and then bind to the local
>>> address. As I recall this applies regardless of whether it is a VRF or
>>> other.
>>>
>>>
>> It should be, but unfortunately some applications break this.
>>
>
> Sure, I have an open item on my to-do list about re-verifying bound
> addresses when the device binding changes (and vice versa). This is not
> a problem VRF introduced, but VRF use case does bring more attention to it.
>
>

Cherrs! I can't wait to enjoy the source code of the item. Please let
me know if you work out it. Thanks a lot.