superwujc 发表于 2014-11-07 20:31

多宿Linux主机(多网卡多网段)如何选择源IPv4地址?

一台Linux主机具有多网卡,且配置了多个网段的IPv4地址连接internat,当该主机向外网发送数据包(可以简单的分为主动发起向目标地址的连接请求,以及对目标地址连接请求的响应两种情况),进行网络层封装时,如何选择IPv4首部中的源地址字段值?

网上查询了很多文档,包括RFC,但大多数提到的都是ipv6的情况

请各位大神指点一下,或给出一些思路

非常感谢

yzrzxp 发表于 2014-11-10 10:24

superwujc 发表于 2014-11-07 20:31 static/image/common/back.gif
一台Linux主机具有多网卡,且配置了多个网段的IPv4地址连接internat,当该主机向外网发送数据包(可以简单的 ...


你是要自己写一部分代码还是配置网卡

superwujc 发表于 2014-11-10 19:56

回复 2# yzrzxp
就是想知道Linux在封装数据包时对源IP是怎样选择的

单网卡单IP的情况很简单,直接将系统配置的IPv4地址封装到IP包头的源地址字段

但如果是多网卡多IP,且每个IP地址都可以到达指定的目标地址,这时应该怎样选择源IPv4地址呢?

说简单点就是IPv4源地址的选择算法,RFC 1122中提到了一部分,但那只是规范,而不是具体的实现

其他的RFC,如3484,6724之类的,都是具体描述IPv6的


   

Trofish 发表于 2014-11-11 09:48

应该选择出栈接口的IP进行源封装。

而出栈接口的选择,又根据路由表来判断。

tangye 发表于 2014-11-12 16:39

IP地址通常是从哪块网卡出去就用哪个IP
页: [1]
查看完整版本: 多宿Linux主机(多网卡多网段)如何选择源IPv4地址?