我希望在托管 Web 服务(Web 服务器、API、gitlab...)的双网络 RHEL8 企业计算机上设置配置。该机器有两个网络接口:eno1 用于本地网络,eno2 用于公司网络。目标是能够在两个网络上提供 WEB 服务。 WEB 服务还必须能够在 WEB 上发出请求,而且还必须能够向本地或公司网络上的其他服务器发出请求。
接下来是一个简化的网络图,其中当前服务器是“Web 服务器”:
网页界面配置:
# eno1 interface
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
NAME=eno1
UUID=40eefeb5-cf77-4332-9b13-5efff8ca1191
DEVICE=eno1
ONBOOT=yes
IPADDR=192.168.0.4
NETMASK=255.255.255.0
PREFIX=24
GATEWAY=192.168.0.254
IPV4_ROUTE_METRIC=100
# eno2 interface
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
NAME=eno2
UUID=b0ba0e02-f62a-48bb-95b3-e4411316d102
DEVICE=eno2
ONBOOT=yes
IPV4_ROUTE_METRIC=100
路由表已自动生成(ip Route):
default via 172.26.254.254 dev eno2 proto dhcp src 172.26.0.1 metric 100
default via 192.168.0.254 dev eno1 proto static metric 100
172.26.0.0/16 dev eno2 proto kernel scope link src 172.26.0.1 metric 100
192.168.0.0/24 dev eno1 proto kernel scope link src 192.168.0.4 metric 100
在详细说明预期行为和实际行为之前,最后一件事是本地网络上的 VLAN 间路由已实现。它考虑了 WEB 服务所需的所有端口上的双向通信,也考虑了在此情况下使用的计算机之间的 ICMP 协议。
会发生什么 :
这是 NetworkManager 启动时所需的行为:
- 可从 VLAN 1 中的所有服务器(例如服务器 B)访问 Web 服务
- 可从所有 VLAN 2 服务器(例如服务器 A)访问 Web 服务
- 可以从服务器 D 或公司网络中的任何其他服务器访问 Web 服务。
- 网络服务器能够访问网络
- Web服务器能够请求Gitlab服务器和LDAP服务器
根据最后启动的接口,我有两种不同的行为。
如果最后启动的接口是 eno1 (本地网络接口):
- 可从 VLAN 1 中的所有服务器访问 Web 服务
- 网页服务不是可从所有 VLAN 2 服务器访问
- 可以从服务器 D 或公司网络中的任何其他服务器访问 Web 服务。
- 网络服务器不是能够访问网络
- 网络服务器不是能够请求Gitlab服务器和LDAP服务器
如果最后启动的接口是eno2(公司网络接口):
- 网页服务不是可从 VLAN 1 中的所有服务器访问
- 可从所有 VLAN 2 服务器访问 Web 服务
- 可以从服务器 D 或公司网络中的任何其他服务器访问 Web 服务。
- 网络服务器能够访问网络
- Web服务器能够请求Gitlab服务器和LDAP服务器
我的测试:
我已经尝试将eno1的子网掩码更改为192.168.0.0/22,同时保留网关并更改以下路由
192.168.0.0/24 dev eno1 proto kernel scope link src 192.168.0.4 metric 100
经过
192.168.0.0/22 dev eno1 proto kernel scope link src 192.168.0.4 metric 100
但问题仍然在这里。
另外,我尝试使用接口指标,删除 192.168.0.0/24 默认网关,尝试使用自定义路由指令在网络脚本文件夹中添加规则和路由文件,但没有任何结论。
先感谢您 !
答案1
我认为你让它变得比需要的更复杂。
我要做的是添加 1 个默认路由并将其路由到互联网/上游路由器。不需要另一个默认路由。
为 VLAN2 中的设备添加额外路由
ip add route -n net 192.168.2.0/24 via 192.168.2.254 dev eno1
这是假设您的北侧交换机可以路由 VLAN,实际上取决于交换机及其配置。
北边的交换机或服务器需要知道如何到达 192.168.0.0/24 网络,但我认为它已经知道了。
我认为没有更多的事情了。
如果切换到 VLAN2 出现问题,您可以将另一个 IP 添加到服务器的北侧,并让服务器使用 VLAN2 标记其数据包并允许其进入该网络。