确定网卡名称
在正式开始配置附加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 为服务器的网卡名称。
如果在添加的过程中有错误,可以将加号 + 改为减号 – 来撤销之前的绑定。
admin:系统自动奖励,+10,