浮动 IP
> 文档中心 > 文档中心 > INFINI Gateway > 功能手册 > 功能组件 > 浮动 IP

浮动 IP #

极限网关内置浮动 IP 功能,可以实现双机热备、故障转移的能力,极限网关天然提供四层网络流量的高可用,无需再额外考虑增加额外的软件和设备来保障因为停机、网络故障等造成的代理服务中断。

注意:

  • 该特性目前仅支持 Mac OS、Linux 操作系统。且需要网关以 root 身份运行。
  • 此特性依赖目标系统的 pingifconfig 命令,请确保相关包默认已安装。
  • 一组启用浮动 IP 的网关所在网卡地址应该在一个子网,且内网广播互通(网关实际 IP 和浮动 IP 要求只最后一位地址不一样,如:192.168.3.x)。

功能演示 #

什么是浮动 IP #

极限网关基于浮动 IP 来实现高可用,浮动 IP 也叫虚拟 IP 或者动态 IP,我们知道每台服务器之间都必须要有 IP 才能进行通信,一台服务器的 IP 一般是固定的并且一般要提前分配好, 如果这台服务器因为故障挂了的话,这个 IP 以及上面部署的业务也就不能访问了。 而一个浮动 IP 通常是一个公开的、可以路由到的 IP 地址,并且不会自动分配给实体设备。项目管理者临时分配这个动态 IP 到一个或者多个实体设备。 这个实体设备有自动分配的静态 IP 用于内部网间设备的通讯。这个内部网使用私有地址,这些私有地址不能被路由到。通过浮动 IP 内网实体的服务才能被外网识别和访问。

为什么需要浮动 IP #

在一个配置好浮动 IP 的典型切换场景是,当出现当前绑定浮动 IP 的机器出现故障的时候,浮动 IP 地址会飘到网络中的另一台设备。新设备无延迟的接替当掉的设备,并对外提供服务。 从而实现网络服务的高可用,对应业务的消费方来说,只需要指定浮动 IP 就可以了。 浮动 IP 非常有用,在某些特定的场景,比如客户端或者 SDK 只允许配置一个服务 IP 地址,所以这个 IP 一定要是高可用的,而极限网关正好解决了这个问题。 使用两个独立的极限网关服务器,最好部署在独立的物理服务器上,两台极限网关构成一组双机热备的状态,任意网关出现故障都能保障前端业务的正常访问。

如何开启浮动 IP #

极限网关开启浮动 IP 的操作非常简单,通过修改配置文件 gateway.yml,增加如下配置:

floating_ip:
  enabled: true

极限网关能够自动检测网络网卡设备信息,自动绑定虚拟 IP 到内网通信的端口,非常智能,对于使用起来非常简单,默认监听的 IP 为当前机器所在网段的 *.*.*.234。 假设你当前机器所在的物理 IP 是 192.168.3.35,那么默认的浮动 IP 是 192.168.3.234,这个默认处理只是为了方便配置和快速启动,如果你需要使用自定义的浮动 IP 的话,也可以通过补充完整的参数来设置。

相关参数设置 #

有关浮动 IP 更多完整的配置参数样例如下:

floating_ip:
  enabled: true
  ip: 192.168.3.234
  netmask: 255.255.255.0
  interface: en1

各参数说明如下:

名称类型说明
enabledbool是否开启浮动 IP,默认是 false
interfacestring网卡设备名称,如果不指定,会选择第一个监听非本机地址的设备名称,如果服务器有多张网卡,建议手动设置
ipstring监听的浮动 IP 地址,默认是当前物理网卡所在网段的 *.*.*.234地址,建议手动设置浮动 IP 地址,浮动 IP 地址不能和已有 IP 冲突
netmaskstring浮动 IP 的子网掩码,默认是网卡所在子网掩码,或者 255.255.255.0
echo.portint网关节点之间用于心跳检测的端口,请确定双向端口放行,默认 61111
echo.dial_timeout_in_msint网关节点之间心跳检测的拨号超时时间,默认 10000
echo.timeout_in_msint网关节点之间心跳检测的超时时间,默认 10000