linux kernel 如何bind() VRF端口上的源IP
前文 linux kernel bind()時(shí)發(fā)生了什么 講了bind()的實(shí)現(xiàn)機(jī)制。
今天,我用bind()綁定一個(gè)VRF上的源IP,發(fā)生如下報(bào)錯(cuò):
bind(11.1.1.64) failed (99: Cannot assign requested address)
經(jīng)過(guò)分析kernel代碼,確認(rèn)需要先設(shè)置 setsockopt(SO_BINDTODEVICE)
細(xì)節(jié)如下:
bind() 用 dev_if 找到 tb_id
__inet_bind() linux/net/ipv4/af_inet.c:457

setsockopt(SO_BINDTODEVICE) 時(shí)會(huì)更新 dev_if

posted on 2025-01-10 14:20 toong 閱讀(49) 評(píng)論(0) 收藏 舉報(bào)
浙公網(wǎng)安備 33010602011771號(hào)