CentOS 7.x or Redhat 7.x如何添加额外的IP

2017-5-27 飞火科技 技术文章

介绍

CentOS/Redhat 7.x有多种不同方法允许你添加多个IP,本文将指导你添加少量额外IP,整个CIDR网络前缀(块/范围),以及移除他们的方法。

 

确定网卡(网络接口)名称

在我们设置或者移除额外的IP地址前,我们需要确定我们主要的网络接口设备的名称,我们在终端中使用一下命令:


ip link | awk 'NR%2==1' | awk '{print $2,$8,$9}' | tr -d ':'


 

结果跟以下类似:

 


lo state UNKNOWN
enp3s0 state UP
enp4s0 state DOWN
 


上例中第一个设备的名称是lo,就是说这个是你的本地环回接口(或地址)。第二行会显示出你的主网络接口,在本例中由于其他接口是DOWN(未连接/未激活),所以我们猜测enp3s0是正确的主接口。如果(eg: enp4s0)类似的接口也是UP状态,那么你需要确定哪个在哪个接口上配置额外的IP

 

定位网络配置文件

我们可以在/etc/sysconfig/network-scripts找到以ifcfg-开头加上接口名称的网络接口配置文件。. 所以让我看看enp3s0 接口的配置文件都是些啥? (如需查看您自己的网络接口配置文件内容,请替换enp3s0为你的接口名称):


 
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
 


上例中,唯一被配置的IP10.0.0,2,他是/29PREFIX=29)中的一个,IP10.0.0.3, 10.0.0.4, 10.0.0.510.0.0.6同样可以被配置。

 

如果你想添加大量的IP,那么也许你可以利用range文件去配置,range文件允许你配置整个CIDR网络前缀(/29/24等)而不需要单独配置每个IP。如果您只是需要添加少量IP,请跳过本节。

 

Range文件

首先升级我们的主网络接口文件配置(用你们的接口名称替换enp3s0):

 


vi /etc/sysconfig/network-scripts/ifcfg-enp3s0


 

在上述文件末尾添加NM_CONTROLLED=NO

这是Redhat/CentOS 7.x支持range文件所需要修改的配置,它仅仅是允许我们不在通过Network Manager system控制接口。如果你昨晚上面的修改,我们就可以继续下面的步骤来创建我们的range文件了:

 


vi /etc/sysconfig/network-scripts/ifcfg-enp3s0-range


 

注意:

 

Range文件创建是没有数量限制的,如果你要配置多范围IP,可以创建另外的range文件(像: ifcfg-enp3s0-range0, ifcfg-enp3s0-range1等)

添加下面的文本到你的配置文件(ifcfg-enp3s0-range),用你的网络信息替换每个参数(IPs, Prefix等):


IPADDR_START=192.168.1.2 – range中第一个可用IP.
 
IPADDR_END=192.168.1.254 – range中最后一个可用IP.
 
PREFIX=24 – The CIDR prefix for the block/range of IPs. (参考下面的CIDR Prefix表格确定你的PREFIX信息)


 

CLONENUM_START=0 – 接口别名开始的数字,每个额外绑定的IP会自增1来创建接口别名(像:enp3s0:0, enp3s0:1等)。如果你要创建多余一个的range文件,你需要确保这个数字设置为下一个可用的数字(如果你配置一个/24 你需要填写253.

 

range 文件格式类似如下:

 


IPADDR_START=192.168.1.2
IPADDR_END=192.168.1.254
PREFIX=24
CLONENUM_START=0


CIDR Prefix

Example

Number of IPs

/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

 

现在使用的网关地址可以通过以下的命令获取


ip route | grep default


结果类似如下:


default via 192.168.1.1 dev enp3s0


 

检查无误以后重启网络:


systemctl restart network


 

单独ping可以确定IP配置是否生效::

 


ping -c 4 192.168.1.2
ping -c 4 192.168.1.25
ping -c 4 192.168.1.254


 

可以利用fping进行批量IPping测试。

 

手动添加IP地址:

如果需要添加少量IP地址,你可以进行手动添加。你可以添加他们到主网络接口配置文件中通过使用ip 命令。


vi /etc/sysconfig/network-scripts/ifcfg-enp3s0


你可以参考如下的方式添加剩余的192.168.1.0/29 IP到你的网络配置文件中,如果你现在的IP192.168.1.2

IPADDR0=192.168.1.3
IPADDR1=192.168.1.4
IPADDR2=192.168.1.5
IPADDR3=192.168.1.6
PREFIX0=29
PREFIX1=29
PREFIX2=29
PREFIX3=29

重启网络使之生效:

systemctl restart network

最后确认他们是不是生效:

ping -c 4 192.168.1.3
ping -c 4 192.168.1.4
ping -c 4 192.168.1.5
ping -c 4 192.168.1.6

如果全部响应,恭喜你IP配置成功。

注意:

下面的方法修改IP会在系统重启后失效,如果你想永久修改IP,请使用上面介绍的方法。

替换参数使用ip命令添加IP

ip addr add [IP or IP/Prefix] dev [网络接口名称] label [网络设备]:[别名数字]

举例:


ip addr add 192.168.1.44/32 dev enp3s0 label enp3s0:0

检查是否生效:

ping -c 4 192.168.1.44


如果可以ping通,恭喜你配置成功。

 

移除IP地址:

我们已经知道如何添加IP,那让我们来看看如何移除IP

 

注意:

 

下面的命令仅能临时删除IP,如果你是通过配置文件修改的IP,请删除对应的IP配置文件。

 

ip addr del [IP地址] dev [网络设备名称]

举例:

ip addr del 192.168.1.72/32 dev enp3s0

如果你想删除整段的IP,可以使用下面的命令:


ip -s a f to [CIDRPrefix]


例子:


ip -s a f to 192.168.1.0/24



Powered by NOC.IM     13.30ms