【前言】
今天一朋友问了一个问题:vmware环境创建了虚拟机,但只有一个网卡,目前只有一个ip地址(如下图)。为了模拟安装RAC,如何在不增加网卡的前提下,新增一个IP地址。
如下图目前服务器ip为196.128.220.173,如何追加一个ip:196.128.220.177。
【解决方案】
这里先介绍下三个概念:物理网卡、子网卡、虚拟VLAN网卡。
eth0 eth0:1 eth0.1三者的关系对应于物理网卡、子网卡、虚拟VLAN网卡。
物理网卡:物理网卡这里指的是服务器上实际的网络接口设备,这里上图服务器上为单网卡,物理网卡对应网络接口为eno16777736。
子网卡:子网卡在这里并不是实际上的网络接口设备,但可作为网络接口在系统中出现,如eth0:1、eth1:2这种网络接口。它们必须要依赖于物理网卡,虽然可以与物理网卡的网络接口同时在系统中存在并使用不同的IP地址,而且也拥有自己的网络接口配置文件。当所依赖的物理网卡不启用时(Down状态),物理网卡所依附的子网卡也将不能提供网络服务。
虚拟VLAN网卡:虚拟VLAN网卡也不是实际上的网络接口设备,也可以作为网络接口在系统中出现,但是与子网卡不同的是,他们没有自己的配置文件。他们只是通过将物理网加入不同的VLAN而生成的VLAN虚拟网卡。如果将一个物理网卡通过vconfig命令添加到多个VLAN当中去的话,就会有多个VLAN虚拟网卡出现,其信息以及相关的VLAN信息都是保存在/proc/net/vlan/config这个临时文件中的,而没有独自的配置文件。它们的网络接口名是eth0.1、eth1.2这种名字。
以下介绍如何使用ifconfig命令配置子网
1. 利用网卡配置静态ip地址(eno16777736为网卡信息)
#ifconfig eno16777736 192.168.220.173 netmask 255.255.255.0 up
eno16777736 //服务器网卡信息
192.168.220.173 //设置网卡的静态ip地址
netmask 255.255.255.0 //ip地址的子网掩码
up //表示立即激活该网卡
划重点:
每个服务器网卡信息不一定是eno16777736 ,实际情况应该以ifconfig命令和ip addr命令查看的为准。
2. 动态设置网卡ip子网
#ifconfig eno16777736:0 192.168.220.177 netmask 255.255.255.0 up
#ifconfig eno16777736:0 192.168.220.178 netmask 255.255.255.0 up
......
eno16777736:X //虚拟网络接口,建立在网卡eno16777736上,取值范围0-255
192.168.220.XXX 增加ip别名,可任意设置
一个问题:
如果这个时候停电,会有什么情况?实际情况是上述使用ifconfig 设置的子网ip会丢失。
怎么办?
解决方案:编写ip别名的网卡配置文件,永久落盘保存
所有网卡的配置文件都保存在/etc/sysconfig/network-scripts目录中,一个网卡对应一个配置文件,见下图:
文件ifcfg-eno16777736为本机网卡的配置文件,我们可以通过仿照这个文件的格式来编写其子网ip别名的配置文件ifcfg-eno16777736:0。
[root@ethanyang network-scripts]# cat ifcfg-eno16777736
TYPE="Ethernet"
#BOOTPROTO="DHCP"
BOOTPROTO=none
DNS1=192.168.220.2
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="27901e50-a9da-4763-809b-cb6f7a772642"
DEVICE="eno16777736"
ONBOOT="yes"
IPADDR=192.168.220.173
PREFIX=24
GATEWAY=192.168.220.2
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
复制网卡的配置文件ifcfg-eno16777736:0,注意下文标红处修改处内容
[root@ethanyang network-scripts]# vi ifcfg-eno16777736:0
TYPE="Ethernet"
#BOOTPROTO="DHCP"
BOOTPROTO=none
DNS1=192.168.220.2
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="27901e50-a9da-4763-809b-cb6f7a772642"
DEVICE="eno16777736:0"
ONBOOT="yes"
IPADDR=192.168.220.177
PREFIX=24
GATEWAY=192.168.220.2
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
在ifcfg-eno16777736:0中修改标红部分内容后,重启网卡eno16777736
[root@ethanyang network-scripts]# service network restart
Restarting network (via systemctl): [ OK ]
使用ip addr命令查看
[root@ethanyang network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:68:5d:e8 brd ff:ff:ff:ff:ff:ff
inet 192.168.220.173/24 brd 192.168.220.255 scope global eno16777736
valid_lft forever preferred_lft forever
inet 192.168.220.177/24 brd 192.168.220.255 scope global secondary eno16777736:0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe68:5de8/64 scope link
valid_lft forever preferred_lft forever
上图标黄处看到起子网ip 192.168.220.177已经配置成功。
至此,通过/etc/sysconfig/network-scripts下的配置文件永久添加子网ip的配置就完成了。
【结语】
1. 本文讲述了物理网卡、子网卡、虚拟VLAN网卡的概念。同时,实操了如何通过网卡配置文件的形式,此方式可永久落盘子网配置,重启服务器不会丢失子网;
2. 使用场景; 可以在vmware中模拟子网,配置RAC的VIP和scan-ip;注意,本文建议在vmware中模拟子网段;实际生产如果配置RAC,不建议这么分配ip;且作者这里也不建议使用虚拟机配置RAC;
3. 也可以使用动态方式配置实现应用的最简单的高可用性,如应用集群两台,通过动态配置的VIP对外提供服务,如主应用异常,可以直接在备应用服务器启动vip,减少业务中断时间。
【参考】
https://blog.csdn.net/libaineu2004/article/details/79213824
如果大家觉得此文有帮助,欢迎关注个人微信微信;
长按识别二维码或微信搜索“一森咖记”