VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1621|回复: 1

在 CentOS 7 上绑定附加 IP 有几种方法,本文将一一进行解释。

[复制链接]

1

主题

1

帖子

116.00

积分

注册会员

Rank: 2

积分
116.00
发表于 2021-11-9 14:42:33 | 显示全部楼层 |阅读模式
本帖最后由 cfrs 于 2021-11-9 14:46 编辑

确定网卡名称
在正式开始配置附加IP的绑定之前,我们需要先确定网卡的名称,可以通过以下命令来输出:

ip link | awk 'NR%2==1' | awk '{print $2,$8,$9}' | tr -d ':'
输出的内容应该类似于以下结果:

lo state UNKNOWN
enp3s0 state UP
enp4s0 state DOWN
第一个设备 lo 代表了loopback,第二个设备通常就是你的网卡设备,可以看到它目前的状态是 UP(即正常在线)。在上述的例子中,我们看到了 enp4s0,它是另外一张网卡但状态是 DOWN(离线),因此 enp3s0 是我们需要绑定IP的网卡。 如果你的情况是:两张网卡都是UP状态,你需要先做一个判断,选出你倾向于绑定IP上去的网卡。

定位配置文件
在上一步的一个命令中,我们使用 ip link 输出了网卡名称,现在我们可以定位它的配置文件位置(通常都在 /etc/sysconfig/network-scripts/目录中),配置文件通常都以 ifcfg-设备名称 的命名格式存在,譬如:

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,它存在于一个 CIDR /29 的IP段中,这意味着10.0.0.3, 10.0.0.4, 10.0.0.5, 以及 10.0.0.6 也应该处于可用状态(如果你是从IDC处购得服务器,那么先确认服务商是分配给你了一个CIDR /29的IP段)。

绑定IP地址
如果你要添加绑定的IP数量较少,可以手动进行绑定。编辑网卡配置文件:

vi /etc/sysconfig/network-scripts/ifcfg-enp3s0
因为你的网卡本身已经绑定了一个IP:IPADDR=10.0.0.2 你可以用以下方式添加这个 CIDR 段内的其他 IP:

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
如果你只是想临时绑定某个或某几个IP,可以使用命令行添加的方式,这种方式会在服务器重启后失效:

ip addr add IP或IP段 dev 网卡名 label 设备名:别名
比如:

ip addr add 192.168.1.44/32 dev enp3s0 label enp3s0:0
如果要移除绑定,则可以使用:

ip addr del IP地址 dev 设备名
例如:

ip addr del 192.168.1.72/32 dev enp3s0
绑定IP段(此方法已过时)
首先我们需要对网卡配置文件做一个小小的调整:

vi /etc/sysconfig/network-scripts/ifcfg-enp3s0
如果该文件中没有 NM_CONTROLLED=NO 这一行,则将这一行加到文件的最底部,在CentOS 7中添加IP段绑定这是不可缺少的一步,接着我们创建IP段对应的配置文件:

vi /etc/sysconfig/network-scripts/ifcfg-enp3s0-range
对于IP段的数量,系统并没有限制,如果你有多个IP段希望配置,则可以使用 ifcfg-enp3s0-range0, ifcfg-enp3s0-range1 这样的命名方式。 添加以下内容到文件中:

IPADDR_START=192.168.1.2 #起始IP
IPADDR_END=192.168.1.254 #结束IP
PREFIX=24 #CIDR IP段标识
CLONENUM_START=0 #别名起始号
如果你添加的IP段和你当前网卡绑定的IP不在一个段内,且不共用一个网关(Gateway),那么你还需要向文件中添加:

GATEWAY=网关地址
一切就绪之后,重启服务器网络:

systemctl restart network
Update: 更新方法
在 CentOS 7 中我们有了更好的绑定方式,绑定的速度更快,也不会出现重启网络超时的现象。

### 查看网卡名
ip addr

### 添加绑定
for I in $(seq 0 255); do nmcli con mod enp4s0f0 +ipv4.addresses 192.168.0.${I}; done;

### 激活网卡
nmcli con up enp4s0f0
其中,0 和 255 分别为 IP 段的起始与结束IP,enp4s0f0 为服务器的网卡名称。

如果在添加的过程中有错误,可以将加号 + 改为减号 - 来撤销之前的绑定。

回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2022-1-8 21:17:06 | 显示全部楼层
get it
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表