1 个面向公共的 NIC 和 1 个面向私有的 NIC - 不同的子网和不同的默认网关

1 个面向公共的 NIC 和 1 个面向私有的 NIC - 不同的子网和不同的默认网关

我尝试了很多方法来解决我的问题。我使用静态路由使它正常工作。但是,我想要一个 RAID 0 设置,所以我清除并安装了一个干净的最小 Centos 6.4 系统。

当前的:

  • Centos 6.4 最小安装 - 无更新,无修改
  • RAID 0
  • 2 个板载 NIC(通过 BIOS 禁用)
  • 1 个 Intel i350 双 Gbe NIC(DX79SR 上的 PCIe)

我知道硬件规格与板载 NIC 之外的硬件规格无关。

目标
使用 Apache、PHP 和 MySQL 将 Centos 6.4 安装配置为原始 Web 服务器。使用 eth0 将 Web 服务器连接到局域网,使用 eth 1 将 Web 服务器连接到广域网。所有 Web 流量(80、21、22、110、25、53 等)将使用 eth1。所有本地流量和数据库流量将使用 eth0。

ifcfg-eth0 listens and responds on ifcfg-eth0 - 10.10.10.0/24  gw 10.10.10.1
ifcfg-eth1 listens and responds on ifcfg-eth1 - 23.30.X.X/28 gw 23.30.X.X

我不需要 Apache、MySQL 或 PHP 方面的帮助。按端口路由流量不是我可以使用的解决方案。我需要帮助设置每个接口的静态路由,以便 eth0 上的任何传入流量都通过 eth0 发送,eth1 上的任何传入流量都通过 eth1 发送。我不需要桥接两者。

/etc/sysconfig/network default gateway is 10.10.10.1
/etc/resolv.conf  are 75.75.75.75, 75.75.76.76

eth0 和 eth1 在其子网中分配了静态 IP

DEVICE=eth0
TYPE=ethernet
UUID=XXXX
NM_CONTROLLED=no
ONBOOT=yes
BOOTPROTO=static
IPADDR=X.X.X.X
PREFIX=24
GATEWAY=X.X.X.X

我知道,如果没有配置,Centos 就不能有 2 个默认网关。因此,我必须使用 /etc/sysconfig/network-scripts/route-ethx(在所有默认 ethx 上)配置每个端口网关,或者我可以使用 iproute 创建路由。我选择使用 iproute。

我创建了路线表:pubnic

ip route add 23.30.XX/28 dev eth1 src 23.30.X.XXX 表 pubnic ip route add default via 23.30.X.XXX dev eth1 表 pubnic ip rule add from 23.30.X.XXX/32 表 pubnic ip rule add t0 23.30.X.XXX/32 表 pubnic

IP规则展示

from all lookup local
from all to X.X.X.XXX lookup pubnic
from my.X.X.X.XXX lookup pubnic
from all lookup main
from all lookup default

ip 路由刷新缓存

以前这种方法是有效的。我不知道为什么现在却不管用了。

答案1

我认为这是不可能的,因为据我所知,没有办法区分流量。流量将始终从默认网关流出,或者如果有多个,则从度量值最低的默认网关流出。

根据我使用 Sonicwall 的经验(但它适用于任何类型的防火墙),您可以将流量分配给目标端口或 IP 地址上的不同 WAN,例如 youtube.com 或端口 80 始终从该端口出去。

可能有一个 apache 模块可以跟踪源接口并以这种低级方式与 linux ip 路由堆栈配合使用来实现此目的,但我不是 apache 专家。也许其他人会知道?

我想找到这个问题的答案,因为我经常遇到这个问题。

相关内容