服务器虚拟IP设置网关时,网关地址不该按“物理”或“虚拟”二选一,而要看VIP所在子网的真实下一跳。 同子网VIP通常不单独配网关,默认网关继续指向物理三层网关;VIP落在独立VLAN、云上VPC虚拟网络或VRRP虚拟网关子网时,才填该子网的网关,VIP是附加地址,不是网关本身。
服务器虚拟IP设置网关:先判断“谁负责路由”
物理网关和虚拟网关区别不在名字,在下一跳
网关是路由器接口地址,不是VIP的属性,物理网关常见于三层交换机SVI、防火墙内网口、路由器LAN口;虚拟网关常见于云平台VPC虚拟路由器、VRRP虚拟IP、负载均衡器业务地址,业内专家指出,VIP本质是附加地址,不应改变主网卡默认路由,行业共识认为,判断网关先看VIP所在子网由谁路由,而不是看地址叫不叫“虚拟”。
三步判断VIP该填哪个网关
- 看VIP和业务网卡是否同子网。 用
ip addr确认网段,同子网时,VIP不单独配默认网关,主网卡默认网关保持物理网关。 - 看VIP是否独立VLAN或独立子网。 独立子网时,网关填该子网三层接口地址,可能是物理交换机SVI,也可能是云上虚拟路由器地址。
- 看是否需要源地址策略路由。 需要时给VIP单独路由表,不要覆盖主表默认路由。
常见场景对照表
| 场景 | 网关填什么 | 原因 | 注意 |
|---|---|---|---|
| 物理机单网卡,VIP与主机同子网 | 不单独配,主网卡填物理网关 | VIP只是附加地址 | 不要给VIP加默认路由 |
| 物理机多网卡,VIP在独立VLAN | 填该VLAN的三层网关 | 下一跳由VLAN决定 | 常为交换机SVI地址 |
| Keepalived/VRRP VIP | 不单独配,默认网关用物理网关 | VIP漂移,路由跟随主网卡 | 避免路由冲突 |
| 云服务器私网VIP | 通常跟随VPC虚拟网关 | 默认网关由虚拟网络下发 | 不要手工改DHCP网关 |
| 负载均衡VIP | 后端服务器网关指向真实下一跳 | VIP在负载均衡器上 | 服务器上通常不配该VIP |
| K8s Service ClusterIP | 不需要网关 | 由kube-proxy/CNI处理 | 不要当普通网卡地址配 |
Keepalived虚拟IP需要配置网关吗?多数情况不需要
Keepalived常用VRRP实现VIP漂移,公开标准可参考RFC 5798,VIP绑定在物理网卡上,主网卡已有默认网关,给VIP再配一个默认网关,容易出现多默认路由和回包源地址不一致。
配置中只声明VIP地址即可:
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
virtual_ipaddress {
192.0.2.100/24 dev eth0
}
}
如果业务要求VIP流量从特定出口回包,用策略路由处理:
ip rule add from 192.0.2.100/32 table 100 ip route add default via 192.0.2.1 dev eth0 table 100
这里的0.2.1是该VIP所在子网的三层网关,不是VIP自己,验证时执行ip route get 203.0.113.10 from 192.0.2.100,看回包是否走预期接口。
云服务器虚拟IP网关配置要额外收费吗?先看计费边界
云上VIP的网关通常由虚拟网络下发
云主机默认网关一般由DHCP或控制台下发给主网卡,VIP绑定弹性网卡后,路由由VPC路由表决定,多数情况下不要手工把默认网关改成某个VIP地址,云上的“虚拟网关”是VPC虚拟路由器接口,负责私网互通和出口转发,操作路径通常在控制台的VPC路由表、弹性网卡、私网IP页面,不在操作系统里硬改默认路由。
什么时候会产生额外费用
网关配置本身通常不单独收费,计费项常见于弹性公网IP带宽、负载均衡实例规格、NAT网关、跨地域对等连接流量,私网VIP和路由表配置多数云平台不单独计费,但公网出口和负载均衡能力可能按实例或流量计费,具体以云平台计费项为准,别把“虚拟网关配置”和“公网带宽”混在一起。
北京机房服务器VIP网关怎么设置?按同子网和跨子网分开
同子网VIP:默认网关保持物理网关
北京机房物理服务器上,VIP与eth0同网段时,只加地址,不加默认网关:
ip addr add 192.0.2.100/24 dev eth0 ip route
默认路由已存在时保持不动,下一跳通常是机房三层交换机的SVI地址,不要填VIP自己,也不要把VIP当成网关。
跨子网VIP:网关填VIP子网的三层网关
VIP在独立VLAN时,先确认该VLAN网关地址,再用策略路由:
ip rule add from 192.0.2.100/32 table 100 ip route add default via 192.0.2.1 dev eth0 table 100
0.2.1是该VLAN的三层网关,主表默认路由不要覆盖,否则业务网卡可能断网。
物理网关和虚拟网关怎么选
物理机房以物理三层网关为主;云上以VPC虚拟网关为主;VRRP VIP本身不是网关,判断标准只有一条:VIP所在子网的下一跳是谁。
实操:Linux与Windows下VIP网关配置和验证
Linux策略路由避免默认网关冲突
ip addr add 192.0.2.100/24 dev eth0 ip rule add from 192.0.2.100/32 table 100 ip route add default via 192.0.2.1 dev eth0 table 100 ip route get 203.0.113.10 from 192.0.2.100
最后一条命令应显示从VIP出发走eth0和指定网关,若仍走主表,检查ip rule优先级和ip route show table 100。
Windows和云主机操作路径
Windows可用:
netsh interface ipv4 add address "Ethernet" 192.0.2.100 255.255.255.0 route print
云主机优先在控制台确认VPC路由表和弹性网卡绑定关系,不要直接把/etc/netplan或/etc/sysconfig/network-scripts里的默认网关改成VIP地址,改错后通过VNC登录恢复主网卡网关。
验证命令
ip route get 目标IP from VIP:检查源地址路由。traceroute -s VIP 目标IP:观察出口路径。tcpdump -i eth0 host 目标IP:确认回包源地址。arping -I eth0 网关IP -c 3:物理机房可辅助确认二层可达。
把网关判断简化成一句话:VIP在哪个子网,就问那个子网的下一跳是谁;同子网不单独配,跨子网才配,云上跟随VPC虚拟网络,默认路由留给主网卡,特殊源地址走策略路由,VIP漂移和排障都更稳。
服务器虚拟IP设置网关Q&A
服务器虚拟IP可以单独设置默认网关吗?
技术上可以,但不建议,默认网关是全局路由,多个默认网关容易冲突,VIP需要独立出口时用策略路由,按源地址选表,填写前确认VIP子网下一跳。
云主机修改VIP网关后断网怎么办?
先看默认路由是否被覆盖,通过控制台VNC登录,执行ip route恢复主网卡网关;再检查VPC路由表、安全组和网卡绑定关系,云上默认网关通常由DHCP下发,不要手工改成VIP地址。
Keepalived虚拟IP的网关填物理网关还是虚拟网关?
VRRP VIP本身不承载默认路由,服务器默认网关仍指向物理网络的三层网关,除非VIP所在接口使用独立路由表。