Centos 7 单网卡绑定IP段方法

  • 技术文档
  • 2021.12.22
  • 浏览:1094

Centos 7 单网卡绑定IP段方法

在 CentOS / Redhat 7.x 上启用 IP 地址有几种不同的方法。在本指南中,我们将为您提供配置少量额外 IP 地址、整个 CIDR 网络前缀(块/范围)以及删除它们的方法的说明和示例。

确定网络设备的名称
在配置或删除任何其他 IP 地址之前,我们将确定主要网络接口的设备名称,可以通过在终端中运行以下命令来发现。

[root@localhost ]# ip link | awk 'NR%2==1' | awk '{print $2,$8,$9}' | tr -d ':'

输出应类似于以下内容

lo state UNKNOWN
enp3s0 state UP
enp4s0 state DOWN

上例中的第一个设备名为 lo,表示它是您的返回接口。在本例中,输出的第二行通常是您的主要网络接口。它的状态目前是唯一的 UP(活动/在线)状态,因此我们可以假设这是配置为另一个 DOWN(断开连接/不活动)的正确接口。应该为 UP 配置另一个接口(例如 enp4s0),然后您需要决定配置额外 IP 空间的接口。

查找网络配置文件
使用 ip link 之前命令的输出,我们现在可以在我们的目录中找到适当的网络配置文件 network-scripts。接口配置文件以 ifcfg-interface 的设备名称开头。因此,让我们看看当前在我们界面上配置的所有 enp3s0 的外观(将其替换为您的界面名称)

[root@localhost ]# cat /etc/sysconfig/network-scripts/ifcfg-enp3s0

您的输出应类似于以下内容

TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=enp3s0
UUID=a007fd6d-4cc5-45b6-9a38-991a8e820eaf
DEVICE=enp3s0
ONBOOT=yes
IPADDR=10.0.0.2
PREFIX=29
GATEWAY=10.0.0.1
DNS1=8.8.8.8
DNS2=8.8.4.4
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

在上例中,当前配置的唯一 IP 地址为 10.0.0.2。它是 /29 前缀 (PREFIX=29) 的一部分,也可以为 IP 10.0.0.3、10.0.0.4、10.0.0.5 和 10.0.0.6 配置。

如果您打算在网络接口上配置多个 IP 地址,您可能需要使用范围文件来执行此操作。范围文件允许您配置整个 CIDR 网络前缀(/29、/24 等),因此您不必单独配置每个 IP 地址。如果您只需要启用少量 IP 地址,请继续到范围文件部分或跳到手动添加 IP 地址部分。

范围文件
首先,我们更新我们的主要网络接口的配置文件(用您的接口名称替换它)

[root@localhost ]# vi /etc/sysconfig/network-scripts/ifcfg-enp3s0

现在,将以下文本附加到文件末尾并保存:

NM_CONTROLLED=no
ARPCHECK=no

为了启用范围文件,Redhat/CentOS 7.x 需要此配置更改。它只是允许我们通过使接口不再受网络管理器系统的控制来利用范围文件。进行上述更改并保存文件后,我们可以继续创建我们的范围文件。

[root@localhost ]# vi /etc/sysconfig/network-scripts/ifcfg-enp3s0-range

将以下文本行添加到新配置文件 (ifcfg-enp3s0-range)。用您自己独特的网络配置(IP、前缀等)替换每个参数的设置。
IPADDR_START=192.168.1.2 - 范围内的第一个可用 IP 地址。
IPADDR_END=192.168.1.254 - 范围内最后一个可用的 IP 地址。
PREFIX=24 - IP 块/范围的 CIDR 前缀。(请参阅下面的 CIDR 前缀表以确定您的 IP 范围的正确前缀编号。)
CLONENUM_START=0 - 接口别名起始编号,通过为接口创建别名(例如 enp3s0:0、enp3s0:1 等),它会自动为绑定到接口的每个附加 IP 地址添加一个 IP 地址。如果您有多个范围文件,则需要确保将此编号设置为下一个可用编号(例如,如果您已按此处所述配置了 / 24)。

它应该类似于以下范围界定文档:

IPADDR_START=192.168.1.2
IPADDR_END=192.168.1.254
PREFIX=24
CLONENUM_START=0
/ 32	192.168.1.90/32		1
/ 31	192.168.1.90/31		2
/ 30	192.168.1.92/30		4
/ 29	192.168.1.200/29	8
/ 28	192.168.1.16/28		16
/ 27	192.168.1.64/27		32
/ 26	192.168.1.192/26	64
/ 25	192.168.1.128/25	128
/ 24	192.168.1.0/24		256

在上面的示例范围文件中,我们配置了 /24 前缀,其中第一个 IP 地址(192.168.1.0)是网络地址,第二个是网关地址(192.168.1.1),最后一个 IP 地址是广播地址(192.168.1.255)。这三个 IP 地址是“不可用”的,因为它们需要以这种方式进行配置,其余 IP 地址才能正常工作。或者,如果您需要使用不同的默认值,您可以配置不同的网关。在这种情况下,您也可以简单地将 GATEWAY=YOURGATEWAYADDRESS 附加到文件中。可以通过运行以下命令来确定当前的默认网关地址。

[root@localhost ~]# ip route | grep default
default via 192.168.1.1 dev enp3s0

我们仔细检查我们输入的信息是否正确,并且我们的范围文件中没有错误。这很重要,因为下一步可能会导致您的服务器无法访问。确认所有内容的顺序后,重新启动 Web 服务以使更改生效。

[root@localhost ]# systemctl restart network

删除 IP 地址
现在我们知道如何添加额外的 IP 地址,让我们快速了解如何删除它们。要删除单个 IP 地址,您可以发出以下命令

[root@localhost ]# ip addr del [ipaddress] dev [network_device_name]

##例如:ip addr del 192.168.1.72/32 dev enp3s0

如果要删除整个范围,可以使用以下命令刷新 IP

[root@localhost ]# ip -s a f to [CIDRPrefix]

##例如:ip -s a f to 192.168.1.0/24