网卡 1:192.168.10.10/24 网卡 2:192.168.6.10/24 双网卡环境下,数据包在网络层封装 IP 头的时候,源 IP 是根据什么来填写具体网卡的 IP 地址阿?是路由表么?
1
mason961125 2019-06-08 17:26:04 +08:00 via iPhone
是
|
2
Cyshall OP @mason961125 老哥能具体点么,我有点模糊...
|
3
mason961125 2019-06-08 17:32:12 +08:00
@Cyshall #2 简单来说,包从哪个口出去就是哪个口的 IP。那么问题来了,从哪个口走是谁决定的嘞(不考虑手动指定网卡 /源地址的情况),那只能是根据路由表来决定了。
|
4
mooncakejs 2019-06-08 17:33:13 +08:00
socket 有个 interface 参数,设置出口地址,不设置操作系统自动设置
|
5
Cyshall OP @mooncakejs 我知道,我的意思就是系统自动设置的时候是根据什么来进行设置的。
|
6
mooncakejs 2019-06-08 17:52:00 +08:00
@Cyshall socket 可以用 setsockopt 设置本地出口,如果不设置由系统设置,设置规则不太清楚,我猜是根据跃点数 和 默认网关等路由规则?
|
7
zzlzhang 2019-06-08 17:59:38 +08:00
就是跃点数而已 可以手动调整跃点数 一般第一张卡 25 第二张 40 也可以手动全调一样就自动分流 不过 443 容易出错
|
8
realpg 2019-06-08 19:49:29 +08:00
linux iproute2 的话
你添加 route 的时候会有 src 属性的 如果你不填,默认读取的接口的 ip 地址 |
9
fonlan 2019-06-08 22:44:44 +08:00 via Android
就是根据路由表来啊,如果只有一个默认路由那源地址就是默认路由所绑定网卡的地址
|