双网卡环境下数据包网络层 IP 包头

2019-06-08 16:58:05 +08:00
 Cyshall

网卡 1:192.168.10.10/24 网卡 2:192.168.6.10/24 双网卡环境下,数据包在网络层封装 IP 头的时候,源 IP 是根据什么来填写具体网卡的 IP 地址阿?是路由表么?

2546 次点击
所在节点    程序员
10 条回复
mason961125
2019-06-08 17:26:04 +08:00
Cyshall
2019-06-08 17:28:44 +08:00
@mason961125 老哥能具体点么,我有点模糊...
mason961125
2019-06-08 17:32:12 +08:00
@Cyshall #2 简单来说,包从哪个口出去就是哪个口的 IP。那么问题来了,从哪个口走是谁决定的嘞(不考虑手动指定网卡 /源地址的情况),那只能是根据路由表来决定了。
mooncakejs
2019-06-08 17:33:13 +08:00
socket 有个 interface 参数,设置出口地址,不设置操作系统自动设置
Cyshall
2019-06-08 17:43:35 +08:00
@mooncakejs 我知道,我的意思就是系统自动设置的时候是根据什么来进行设置的。
mooncakejs
2019-06-08 17:52:00 +08:00
@Cyshall socket 可以用 setsockopt 设置本地出口,如果不设置由系统设置,设置规则不太清楚,我猜是根据跃点数 和 默认网关等路由规则?
zzlzhang
2019-06-08 17:59:38 +08:00
就是跃点数而已 可以手动调整跃点数 一般第一张卡 25 第二张 40 也可以手动全调一样就自动分流 不过 443 容易出错
realpg
2019-06-08 19:49:29 +08:00
linux iproute2 的话
你添加 route 的时候会有 src 属性的
如果你不填,默认读取的接口的 ip 地址
fonlan
2019-06-08 22:44:44 +08:00
就是根据路由表来啊,如果只有一个默认路由那源地址就是默认路由所绑定网卡的地址
Cyshall
2019-06-09 09:39:01 +08:00
@fonlan 知道了,感谢回答。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/571994

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX