V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Cyshall
V2EX  ›  程序员

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

  •  
  •   Cyshall · 2019-06-08 16:58:05 +08:00 · 2423 次点击
    这是一个创建于 1783 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    10 条回复    2019-06-09 09:39:01 +08:00
    mason961125
        1
    mason961125  
       2019-06-08 17:26:04 +08:00 via iPhone
    Cyshall
        2
    Cyshall  
    OP
       2019-06-08 17:28:44 +08:00
    @mason961125 老哥能具体点么,我有点模糊...
    mason961125
        3
    mason961125  
       2019-06-08 17:32:12 +08:00
    @Cyshall #2 简单来说,包从哪个口出去就是哪个口的 IP。那么问题来了,从哪个口走是谁决定的嘞(不考虑手动指定网卡 /源地址的情况),那只能是根据路由表来决定了。
    mooncakejs
        4
    mooncakejs  
       2019-06-08 17:33:13 +08:00
    socket 有个 interface 参数,设置出口地址,不设置操作系统自动设置
    Cyshall
        5
    Cyshall  
    OP
       2019-06-08 17:43:35 +08:00
    @mooncakejs 我知道,我的意思就是系统自动设置的时候是根据什么来进行设置的。
    mooncakejs
        6
    mooncakejs  
       2019-06-08 17:52:00 +08:00
    @Cyshall socket 可以用 setsockopt 设置本地出口,如果不设置由系统设置,设置规则不太清楚,我猜是根据跃点数 和 默认网关等路由规则?
    zzlzhang
        7
    zzlzhang  
       2019-06-08 17:59:38 +08:00
    就是跃点数而已 可以手动调整跃点数 一般第一张卡 25 第二张 40 也可以手动全调一样就自动分流 不过 443 容易出错
    realpg
        8
    realpg  
       2019-06-08 19:49:29 +08:00
    linux iproute2 的话
    你添加 route 的时候会有 src 属性的
    如果你不填,默认读取的接口的 ip 地址
    fonlan
        9
    fonlan  
       2019-06-08 22:44:44 +08:00 via Android
    就是根据路由表来啊,如果只有一个默认路由那源地址就是默认路由所绑定网卡的地址
    Cyshall
        10
    Cyshall  
    OP
       2019-06-09 09:39:01 +08:00
    @fonlan 知道了,感谢回答。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3189 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:37 · PVG 22:37 · LAX 07:37 · JFK 10:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.