首先,使用多IP与多网卡可以实现流量隔离、管理网与对外服务分离、不同业务走不同出口、提高可用性与带宽聚合等需求。在台湾的云主机环境中,常见场景包括:对外服务(Web/游戏)走公网IP,管理运维走内网或专线,或多个运营商互备。通过路由策略(policy-based routing)可以根据源IP、目的IP或mark决定流量出口,从而避免单一默认路由造成流量错走或返回路径不对称。
常见风险包括反向路径过滤(rp_filter)、云厂商的反向流量限制、以及公网IP与私网IP的路由冲突。因此部署前需和台湾云服务商确认二层拓扑、网段路由和安全组策略。
请关注:多网卡、路由策略、源地址路由、云提供商Safety(反向过滤)。
建议先在测试实例上验证配置,再推广到生产。
常用做法有两种:一是物理/虚拟网卡(eth0、eth1)分别绑定不同子网;二是在同一网卡上绑定多个次要IP(alias 或 ip addr add)。优先推荐使用iproute2命令进行即时配置,并将配置写入系统的网络配置文件以便重启后生效。
ip addr add 203.0.113.10/24 dev eth0
ip addr add 203.0.113.11/24 dev eth0
启用次网卡:ip link set eth1 up,配置网关则在下一步路由策略中处理。
Ubuntu(netplan):在 /etc/netplan/*.yaml 中添加addresses;CentOS(ifcfg):编辑 /etc/sysconfig/network-scripts/ifcfg-eth0:0 或直接在主配置内添加IPADDRn。现代系统也可用 systemd-networkd 或 NetworkManager。
如果云平台在控制面板分配“辅助IP”或“弹性IP”,优先使用控制面板指引完成绑定,避免与云平台的SDN策略冲突。
关键在于使用多个路由表并结合 ip rule 来实现“源地址路由”。步骤:1)在 /etc/iproute2/rt_tables 中添加自定义表;2)为每个表添加对应的默认路由;3)用 ip rule 基于源IP绑定到对应表;4)测试并调整 rp_filter。
echo "100 isp1" >> /etc/iproute2/rt_tables
echo "200 isp2" >> /etc/iproute2/rt_tables
ip route add 203.0.113.0/24 dev eth0 src 203.0.113.10 table isp1
ip route add default via 203.0.113.1 table isp1
ip route add 198.51.100.0/24 dev eth1 src 198.51.100.10 table isp2
ip route add default via 198.51.100.1 table isp2
ip rule add from 203.0.113.10/32 table isp1
ip rule add from 198.51.100.10/32 table isp2
若遇到返回路径被丢弃,禁用或放宽 rp_filter:sysctl -w net.ipv4.conf.all.rp_filter=0,并写入 /etc/sysctl.conf 持久化。
使用 ip rule show、ip route show table isp1、并从对应源IP发起 traceroute 或 curl --interface 来验证出口是否正确。
多网卡情形下,NAT 和防火墙应明确指定接口与表以避免流量走错。推荐使用 nftables 或 iptables,规则中加上 -o/ -i 指定输出/输入接口或匹配源/目的IP。
对通过 eth0 出口的私网流量进行伪装:
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/24 -j MASQUERADE
如果需要固定源IP:
iptables -t nat -A POSTROUTING -o eth1 -s 10.0.1.0/24 -j SNAT --to-source 198.51.100.10
将公网端口映射到内网主机:iptables -t nat -A PREROUTING -p tcp -d 203.0.113.10 --dport 80 -j DNAT --to-destination 10.0.0.5:80,同时在 FORWARD 链允许转发。
建议按 zone(管理/服务/监控)分离规则,记录日志并设置连接追踪(conntrack)阈值,避免在高并发下出现短时丢包。
排查步骤遵循“从链路到路由到防火墙再到应用”的顺序:确认接口状态、IP与子网、路由表与规则、内核 rp_filter、以及防火墙规则。常用工具:ip addr、ip route、ip rule、ss/tcpdump、traceroute/ping。
1)流量出不去或回不来:检查 ip rule 与 routing table、默认路由是否冲突;2)反向路径被丢弃:设置 net.ipv4.conf.*.rp_filter=0;3)NAT 映射失效:确认 POSTROUTING/PREROUTING 规则中接口与地址无误;4)云平台限制:联系台湾提供商确认是否启用防欺骗或需要在控制台激活辅助IP。
启用 GRO/TSO/分片优化,监控 RTT 与丢包,必要时调整 MTU;对关键服务做多出口健康检测并使用 keepalived + VRRP 或 BGP(若云厂商支持)实现高可用与流量切换。
将所有命令与配置写入版本控制,使用脚本/Ansible 自动化部署,并配置监控告警(link status、路由变化、conntrack 使用率)以便快速响应。