- 论坛徽章:
- 0
|
请教达人:
假设设备有多个接口,设备有多个接口,有些接口还有多IP,可能还有vlan。
connect 一个公网地址时,协议栈是如何选择用哪个源IP的? 应该是在路由之前选择的吧?
如果使用 setsockopt 通过 SO_BINDTODEVICE 套接字选项 绑定了某个接口,这种情况下,又会如何选择?
---------------------------------------------------------------------------------------------
真实场景举例:(这例子可能有点复杂,不需要一定按这问题给出答案,甚至不用看这例子也行)
br0 1.1.1.1/24
br0:1 2.2.2.2/24
br0.100 vlan100子接口,10.1.100.5/24
br1 172.16.5.3/24
eth1 192.168.78.3/24
br0由 eth0和eth2组成, br0接口默认路由(网关)在vlan接口上 0/0 via 10.1.100.1/24 dev br0.100
br1由 eth3和eth4组成, br1接口默认路由(网关)是 0/0 via 172.16.5.1/24 dev br1
main路由表默认路由在eth1上
0/0 via 192.168.78.1/24 dev eth1
假设还有策略路由规则
[hello#] ip rule ls
0: from all lookup local
30: from 1.1.1.1 lookup 30 //30号路由表默认路由是 0/0 via 10.1.100.1/24 dev br0.100
31: from 2.2.2.2 lookup 30
32: from 172.16.5.3 lookup 31 //31号路由表默认路由是 0/0 via 172.16.5.1/24 dev br1
32766: from all lookup main
32767: from all lookup 253
|
|