【问题标题】:Multiple NIC's on apache2 web proxy serverapache2 Web 代理服务器上的多个 NIC
【发布时间】:2012-11-23 10:35:04
【问题描述】:

我有一个关于具有两个 NIC 的 Linux 机器上的流量路由的问题。其中一个 NIC 在我们的 DMZ 网络 (10.1.9.0/24) 上,另一个在我们的本地网络 (10.1.0.0./21) 上:

default via `10.1.4.1` dev eth0 
default via `10.1.9.1` dev eth1  metric 100 
`10.1.0.0/21` dev eth0  proto kernel  scope link  src `10.1.0.132` 
`10.1.9.0/24` dev eth1  proto kernel  scope link  src `10.1.9.25` 

我们使用服务器作为网络代理。 dmz 接口 (eth1) 从我们的外部 Internet 地址之一获取流量。所以在我们的主防火墙/路由器上存在一个 NAT 规则,它将请求转换为10.1.9.25。这工作正常,请求被接受并响应。 在这种情况下,连接建立在 eth1 上,响应也在 eth1 上。

问题: 当我们想从本地网络内部访问网络服务器时,防火墙会将外部 ip 转换为 DMZ ip。可以从我们的本地网络中建立到 DMZ 服务器的连接,但反之则不行。在这种情况下,连接是从本地网络实例化到 DMZ,但网络服务器没有响应。

sudo tcpdump -i eth1 port 443 and src host 10.1.1.154
10:09:35.626450 IP 10.1.1.154.48870 > 10.1.9.25.https: Flags [S], seq 2491947547, win 14600, options [mss 1460,sackOK,TS val 2066949 ecr 0,nop,wscale 4], length 0
10:09:35.825619 IP 10.1.1.154.48871 > 10.1.9.25.https: Flags [S], seq 1827990665, win 14600, options [mss 1460,sackOK,TS val 2067011 ecr 0,nop,wscale 4], length 0
10:09:36.575239 IP 10.1.1.154.48870 > 10.1.9.25.https: Flags [S], seq 2491947547, win 14600, options [mss 1460,sackOK,TS val 2067199 ecr 0,nop,wscale 4], length 0
10:09:36.823264 IP 10.1.1.154.48871 > 10.1.9.25.https: Flags [S], seq 1827990665, win 14600, options [mss 1460,sackOK,TS val 2067261 ecr 0,nop,wscale 4], length 0
10:09:38.579373 IP 10.1.1.154.48870 > 10.1.9.25.https: Flags [S], seq 2491947547, win 14600, options [mss 1460,sackOK,TS val 2067700 ecr 0,nop,wscale 4], length 0
10:09:38.827290 IP 10.1.1.154.48871 > 10.1.9.25.https: Flags [S], seq 1827990665, win 14600, options [mss 1460,sackOK,TS val 2067762 ecr 0,nop,wscale 4], length 0

SSH 也是一样,接口接收连接,但没有响应。我不确定问题出在哪里(在服务器上或防火墙/路由器设置上)。我们在 DMZ 中还有其他运行良好的服务器,这里的系统管理员说网络配置是相同的。

谁能帮我诊断一下这个问题?

【问题讨论】:

    标签: linux networking apache2 nic


    【解决方案1】:

    你的问题来了

    default via `10.1.4.1` dev eth0 
    default via `10.1.9.1` dev eth1  metric 100 
    `10.1.0.0/21` dev eth0  proto kernel  scope link  src `10.1.0.132` 
    `10.1.9.0/24` dev eth1  proto kernel  scope link  src `10.1.9.25`
    

    IP不能在同一个路由表中使用多条默认路由……想想看,如果从shell ping 4.2.2.2,应该使用哪个接口?

    Linux Advanced Routing and Traffic Control Howto 有一些技巧可用于实现多个路由表,但这通常会使事情变得比您想要维护的更复杂。

    最简单的解决方案是选择一个接口,您可以将所有内部公司网络聚合到一个超网中并为其分配一个路由......例如,该路由涵盖了所有不直接连接到 linux 的 10.x.x.x 网络机器……

    route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.1.0.132
    

    然后从eth0中删除默认值

    【讨论】:

    • 感谢您的投入,迈克,我会在这个星期一尝试,我不在服务器上,而且您知道如果您犯了错误,弄乱路由会完全剥夺对主机的访问权限:- ) 不会忘记感谢您!
    • 嗨,迈克。我尝试了您的解决方案,但似乎根本没有区别。我的新路由表:pastebin.com/raw.php?i=fxk8eGg4
    猜你喜欢
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 2023-03-13
    • 2021-09-12
    • 2017-06-13
    相关资源
    最近更新 更多