linux kernel 如何bind() VRF端口上的源IP
前文 linux kernel bind()时发生了什么 讲了bind()的实现机制。
今天,我用bind()绑定一个VRF上的源IP,发生如下报错:
bind(11.1.1.64) failed (99: Cannot assign requested address)
经过分析kernel代码,确认需要先设置 setsockopt(SO_BINDTODEVICE)
细节如下:
bind() 用 dev_if 找到 tb_id
__inet_bind() linux/net/ipv4/af_inet.c:457

setsockopt(SO_BINDTODEVICE) 时会更新 dev_if

浙公网安备 33010602011771号