Linux建立虚拟ip的方法

虚拟IP详解
本文详细介绍了虚拟IP的概念,其在高可用架构中的作用,以及在Linux系统中创建虚拟IP的两种方法:别名IP和辅助IP。包括创建、删除虚拟IP的具体步骤,以及如何设置虚拟IP在系统启动时自动加载。

1、虚拟ip的介绍

 

虚拟IP地址(VIP) 是一个不与特定计算机或一个计算机中的网络接口卡(NIC)相连的IP地址。数据包被发送到这个VIP地址,但是所有的数据还是经过真实的网络接口。

上边是百度的定义。

就是一块网卡上边有两个ip,然后无论到哪个ip的流量都会经过物理网卡。

 

2、虚拟ip的作用

大部分虚拟ip基本上都用于高可用的架构上边。主机启用虚拟ip,所有访问的请求都会到主机。当主机宕机的时候,高可用软件会将主机的虚拟ip down掉,然后在备机上启用虚拟ip。这样就完成了主备切换。从而保证业务的可用性。

 

3、linux中创建虚拟ip的方法

在linux中创建虚拟ip有两种方法,分别是:别名IP和辅助IP。

(1)别名ip

别名ip是通过ifconfig命令去创建和操作的虚拟ip。

<1>创建虚拟ip

使用ifconfig命令查看

使用命令创建

ifconfig eth0:1 192.168.8.5 netmask 255.255.255.0 up

上边可以看到生成了eth0:1然后ip是192.168.8.5的虚拟网卡。

<2>删除别名ip

ifconfig eth0:1 192.168.8.5 netmask 255.255.255.0 down

很简单只要将后边的up改为down就可以了。

<3>开机生成虚拟ip

想要开机就有虚拟ip,可以在网卡的配置目录中去建立一个新的网卡的配置文件

centos和红帽都是在这个目录下/etc/sysconfig/network-scripts

cp ifcfg-eth0 ifcfg-eth0:1

然后更改其中的ip即可,重启网卡就行。

(2)辅助ip

辅助ip是由linux的ip命令去创建和操作的。

<1>创建辅助ip

ip addr add 192.168.8.5/24 dev eth0

<2>查看辅助ip

使用命令ip a就可以查看,但是不能使用ifconfig –a去查看。

<3>删除辅助ip

ip addr del 192.168.8.5/24 dev eth0

也很简单,将add改为del即可。

<4>永久生效

这种方式创建的虚拟ip,可以将生成虚拟ip的命令写到/etc/rc.local中去。

开机即可自动加载。在配置redis-sentinel的时候可能会使用到。

### 配置Linux系统中的虚拟IP地址 在Linux系统中配置虚拟IP地址的过程与配置静态IP地址类似,但需要额外创建一个虚拟网络接口。以下是具体的配置方法,基于CentOS 7 系统环境为例[^1]。 #### 1. 编辑主网络接口配置文件 首先,打开主网络接口的配置文件。通常情况下,网络接口配置文件位于 `/etc/sysconfig/network-scripts/` 目录下,文件名类似于 `ifcfg-ens33` 或 `ifcfg-eth0`。使用以下命令编辑该文件: ```bash vim /etc/sysconfig/network-scripts/ifcfg-ens33 ``` 确保主网络接口已正确配置,并启用 `ONBOOT=yes` 和 `BOOTPROTO=static`,以便为虚拟IP提供基础支持[^4]。 #### 2. 创建虚拟网络接口配置文件 虚拟IP地址通过创建虚拟网络接口实现。虚拟网络接口的命名规则通常是主接口名称后加冒号和数字(如 `ens33:0`、`ens33:1`)。创建一个新的配置文件,例如 `ifcfg-ens33:0`,并添加以下内容: ```bash DEVICE=ens33:0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.101 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4 ``` 上述配置中: - `DEVICE` 定义了虚拟接口名称。 - `IPADDR` 是虚拟IP地址。 - `NETMASK` 是子网掩码。 - `GATEWAY` 是默认网关。 - `DNS1` 和 `DNS2` 是DNS服务器地址。 注意:如果已有网关或DNS配置,请不要重复定义,以免冲突[^4]。 #### 3. 重启网络服务 保存并关闭所有配置文件后,重启网络服务以使更改生效: ```bash systemctl restart network ``` 或者使用以下命令重启特定网络接口: ```bash ifdown ens33 && ifup ens33 ``` #### 4. 验证虚拟IP地址 使用以下命令验证虚拟IP是否成功配置: ```bash ip addr show ens33 ``` 或者: ```bash ifconfig ens33:0 ``` 如果配置正确,应该能够看到新添加虚拟IP地址[^3]。 --- ### 注意事项 - 虚拟IP地址必须与主IP地址处于同一子网内,否则可能导致通信问题[^2]。 - 如果使用的是VMware虚拟机环境,建议将网络模式设置为桥接模式,以便虚拟机可以直接访问物理网络[^2]。 - 在某些情况下,可能需要手动禁用NetworkManager服务,以避免其覆盖手动配置的IP地址: ```bash systemctl stop NetworkManager systemctl disable NetworkManager ``` --- ### 示例代码 以下是一个完整的虚拟IP地址配置文件示例: ```bash # /etc/sysconfig/network-scripts/ifcfg-ens33:0 DEVICE=ens33:0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.101 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4 ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值