去年,我设置了一台带有两个网卡的 CentOS 6 机器,每个网卡使用一个单独的网关。 NIC#1 下存在多个别名(em1、em1:0、em1:1 等),但目前 NIC#2 (em2) 下仅存在一个接口。
我需要向 NIC#2 添加别名,但不确定如何最好地继续。
以下是我目前如何获得工作配置的快速摘要:
/etc/sysconfig/网络脚本/
em1
DEVICE=em1
NAME=siteABC
IP=22.22.22.214
GATEWAY=22.22.22.2
NETMASK=255.255.255.0
GATEWAY=22.22.22.2
DNS1=1.1.1.1
DNS2=1.1.1.2
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
em1:0
DEVICE=em1:0
NAME=siteABC
IPADDR=22.22.22.215
GATEWAY=22.22.22.2
NETMASK=255.255.255.0
GATEWAY=22.22.22.2
DNS1=1.1.1.1
DNS2=1.1.1.2
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
em2
DEVICE=em2
NAME=sitetwo
HWADDR=$MACADDRESS
IPADDR=44.44.44.69
NETMASK=255.255.255.0
#GATEWAY= ### commented out per below ###
DNS1=1.1.1.1
DNS2=1.1.1.2
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
/etc/iproute2/rt_tables 已被编辑以在底部添加新行(低于 #1 inr.ruhep)。新生产线包含 200 个 MGMT。
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
200 MGMT
/etc/sysconfig/network-scripts/route-em2
是用以下内容创建的:
default table MGMT via 44.44.44.2
** Note that 44.44.44.2 is the gateway of the second NIC (the public WAN). **
/etc/sysconfig/network-scripts/rule-em2
最后,我创建了一个名为以下内容的规则文件:
from 44.44.44.69 table MGMT
继续:
默认网关配置了多个别名(em1、em1:0、em1:1 等)。第二个网关只有一个接口 (em2),但是我需要为计算机托管的另一个站点 IP 添加别名 em2:0。
我今天尝试过的
我配置了一个名为 em2:0 的别名,它镜像 em2,但 DEVICE、NAME 和 IPADDR 除外。网络重新启动没有问题,但我无法访问 em2:0 下新配置的 IPADDR。
问题
我是否只需要在文件中添加另一个条目/etc/sysconfig/network-scripts/rule-em2
(如上所示)?或者在 em2 下添加别名还有更多要做吗? 这是一个生产系统,我犹豫是否要快速更改以看看会发生什么。
答案1
是的,您似乎必须在 em2 上为新 IP 44.44.44.X 添加规则。那会是ip rule add from 44.44.44.X table MGMT
。
如果没有 MGMT 表 (200) 的规则,则选择的默认路由将为default via 22.22.22.2 dev em1
,即使对于 em2 上的此 IP 也是如此。通过此设置,来自 Internet 的客户尝试访问此新管理 IP 时,其连接将从没有通过 em2 定义的默认路由(因此没有路由)的 IP 到达 em2:默认设置中央操作系统'反向路径过滤会丢弃数据包。
同样,具有此新 IP 44.44.44.X 的传出数据包将尝试通过唯一可用的默认路由:em1 上的 22.22.22.2 发送至客户。有可能(但不是很相关,另一种方式已经不起作用)路径中的其他设备也不允许这样做(例如:如果 22.22.22.2 和 44.44.44.2 通过两个不同的互联网提供商,或者只是如果22.22.22.2 没有互联网连接)。
添加ip rule add from 44.44.44.X table MGMT
将在源 IP 为 44.44.44.X 时选择此路由表,现在default via 44.44.44.2 dev em2
从表 MGMT 中选择。来自 Internet 并通过 em2 到达 44.44.44.X 的数据包现在已通过 em2 进行路由,因此不会被 rp_filter 丢弃。来自 44.44.44.X 的传出数据包现在将正确使用 em2 通过 44.44.44.2 访问互联网。
您可以通过键入以下内容轻松查看差异:
ip route get 8.8.8.8 from 44.44.44.X
如果没有规则,您将看到路线8.8.8.8 from 44.44.44.X via 22.22.22.2 dev em1
,有了它它将切换到8.8.8.8 from 44.44.44.X via 44.44.44.2 dev em2 table 200