双网卡机器配置说明

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了双网卡机器配置说明相关的知识,希望对你有一定的参考价值。

在杭州机房里有一部分机器拥有双网卡,双IP,这种机器的网络需要特殊配置。

 

例如:客服工作台有一台机器有两块网卡,分别是 公网ip 223.5.20.36(eth0) 和 内网ip 192.168.220.41(eth1)。

需要注意的是,这台机器的网关是 192.168.0.1。这会导致一个问题,当一个外部请求访问它的公网地址 223.5.20.36 时,响应数据包会从内部网络接口 eth1 出去。请求端接受到的包的源 ip 就不再是 223.5.20.36 了,这种情况响应包通常会被直接丢弃,导致通信失败。

 

解决这个问题有两种方法:

1. 简单直接的方式:把网关设置为公网ip的网关, 如 223.5.20.1。   

2. 但假如处于某些原因,不想更改网关。还有一种比较麻烦一些的方式:iptables的CONNMARK模块 + 策略路由。具体实现如下:

 

a.首先是给 所有 从公网接口eth0进来的包都打上一个标记(fwmark)。

iptables -A INPUT -i eth0 -d 223.5.20.36 -j CONNMARK --set-mark 1

注:实际上只需要对一次连接的第一个包打标记就行,即下面这样也行:

iptables -A INPUT -i eth0 -d 223.5.20.36 -m state --state NEW -j CONNMARK --set-mark 1

 

b.当响应数据包返回时,利用connmark的连接追踪功能给响应包也打上相同的标记。

iptables -t mangle -A OUTPUT -j CONNMARK --restore-mark

注:必需在 mangle 表执行 connmark 标记恢复。因为在mangle表之后会进行一次 reroute check 重新路由,这使得下一步得以发生。

 

c.配置策略路由,让打了标记(fwmark 1)的包全部走 eth0 接口。

echo 200 public >> /etc/iproute2/rt_tables

ip rule add table public

ip route add table public default via 223.5.20.1 dev eth0

 


以上是关于双网卡机器配置说明的主要内容,如果未能解决你的问题,请参考以下文章

双网卡绑定操作步骤说明

Fiddler在双网卡的机器上如何配置

windows 双网卡 内外网上网配置说明

Linux系统双网卡绑定配置教程

linux 服务器两台跨网段机器,做单网卡双ip之后,用nginx做代理实现互访

绑定双网卡实现网卡负载均衡