寻求一些建议,我正绞尽脑汁试图解决这个问题!运行 Redhat (CentOS) 并采用相当正常的配置,并且我暂时禁用了防火墙。
我有一个 Web 服务器,它在以下设置下运行良好:
Server IP: 10.0.0.10
Firewall/Router: 10.0.0.1
我将面向公众的 IP 地址部分 80/443(假设为 72.94.30.30)转发到 .10 内部 IP,并且运行良好。
但是我最近需要添加第二个 SSL 站点,因此我需要一个新的外部 IP,这是我从 ISP 获得的。我向系统添加了第二个 NIC,eth1,其“公共”IP 为72.94.30.31
。此外部 IP 的网关现在是72.94.30.1
,与防火墙/路由器相同。现在系统希望通过 eth1 路由所有内容,从而禁用第一个网站(和接口)。
现在我需要设置静态路由,但似乎无法让它做我想做的事情。基本上我想要:
传入流量从被防火墙/路由器72.94.30.30
转发到(已完成),返回流量将通过。10.0.0.223
10.0.0.1
eth0
来自 的传入流量将72.94.30.31
直接向上提供服务,并通过 进行72.94.30.1
路由eth1
。
关于正确设置有什么提示吗?
现在我有
cat ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.0.0.10
NETMASK=255.255.255.0
GATEWAY=10.0.0.1
cat ifroute-eth0
default 10.0.0.1 dev eth0
10.0.0.0/24 via 10.0.0.1 dev eth0
猫 ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
IPADDR=72.94.30.31
NETMASK=255.255.255.0
GATEWAY=72.94.30.1
猫路线-eth1
default 72.94.30.1 dev eth1
72.94.30.30/32 via 72.94.30.1 dev eth1
路由
72.94.30.31 via 72.94.30.1 dev eth1
72.94.30.30 via 10.0.0.1 dev eth0
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.10
72.94.30.0/24 dev eth1 proto kernel scope link src 72.94.30.31
169.254.0.0/16 dev eth1 scope link
default via 72.94.30.1 dev eth1
这会导致72.94.30.31
通信正常进行,但另一个接口将离线。
任何帮助都将不胜感激!
答案1
你为什么要让自己的生活如此困难?你不需要第二个 NIC。只需将另一个 IP 地址添加到第一个 NIC,这样它也会拾取另一个 IP 地址的流量。
然后在防火墙中使用 DNAT 对两个地址进行端口转发,并在 Web 服务器上(由于 SSL 证书)分离内部 IP 地址(它也需要在同一个以太网接口中使用两个 IP 地址),Bob 就是你的叔叔了。
如果这不清楚,让我尝试用不同的方式来解释:
Public IP
72.94.30.30 -> DNAT to 10.0.0.10 (ports 80 and 443)
72.94.30.31 -> DNAT to 10.0.0.11 (ports 80 and 443)
两个公共 IP 地址都使用防火墙/路由器上的相同物理接口,并且两个内部地址都使用 Web 服务器上的相同物理接口。
答案2
删除 eth1 网络上的默认路由,然后使用 iproute2 和防火墙标记确保通过 eth1 接口进入的流量通过同一接口发送出去。