当前位置:首页 > 云服务器 > 正文

服务器如何配置光纤网卡ip_配置云服务器实现多网卡多IP访问

配置服务器多网卡多IP访问的核心路径非常简单:物理机配置光纤网卡IP,分成驱动识别、IP分配、路由表规划三步;云服务器则先要在控制台完成弹性网卡绑定与IP挂载,再进系统内部配置,把基础网络栈打通之后,再根据实际业务调整路由策略,就能实现多网卡多IP同时对外提供服务。

为什么要做多网卡多IP:场景比想象中更普遍

很多企业起初只用单网卡单IP,业务量一上来问题就暴露了,最典型的是同时跑Web服务、数据库备份、日志采集这类混合负载,单网卡要承担所有流量,稍有突发就把带宽打满,更麻烦的是,某些监管要求或客户合同需要在不同网段间做隔离,一个IP根本没法同时满足,OpenStack等云平台的裸金属节点还要把管理网络和业务网络分开,没有多网卡会很痛苦。

多数情况下,多网卡多IP解决的是三类问题:

  • 带宽叠加与负载均衡:两个25G网卡绑成bond,逻辑上变成一条50G通道
  • 业务隔离与安全合规:管理流量走管理网段,用户流量走业务网段,互不干扰
  • 多站点服务发布:同一台服务器绑定多个公网IP,分别对应不同域名或不同客户

先说上文归纳:不管物理机还是云服务器,配置多网卡IP最核心的是搞清楚“哪个网卡对应哪条路由”,很多人配完之后发现ping不通,八成是路由表指向错了网卡,而不是IP配错了。

物理服务器光纤网卡IP配置实操

物理服务器的光纤网卡配IP,其实和普通电口网卡没本质区别,区别在于要先把光模块和链路状态确认好,按下面的顺序操作,基本一次到位。

确认网卡被系统识别,多数服务器用的是Mellanox或Intel的光纤网卡,系统装好后先输入:

lspci | grep -i ethernet

看到类似“Ethernet controller: Mellanox Technologies MT27700”的字段就说明硬件识别了,然后查看系统里的网卡接口名:

ls /sys/class/net

常见的是eth0/eth1或者eno1/eno2,有些新系统会显示为ens1f0,查到名字后,用ethtool确认光纤链路是否正常:

ethtool eth0

出现“Link detected: yes”说明光模块和交换机之间链路没问题,如果显示no,先查光模块兼容性和光纤跳线,别急着配IP。

接下来配IP,RHEL/CentOS系用nmcli最方便:

nmcli con mod ens1f0 ipv4.addresses 192.168.10.10/24 nmcli con mod ens1f0 ipv4.gateway 192.168.10.1 nmcli con up ens1f0

Ubuntu/Debian系直接改/etc/netplan/下的yaml文件,配置addresses和routes段,这两步做完,单网卡IP就拿到了,但多网卡多IP,关键在路由表。

给每个网卡配上IP之后,别急着完事,系统默认路由只走其中一个网关,第二块网卡如果不加策略路由,流量出去还是会从第一块网卡走,这就失去了多网卡的意义,需要针对第二块网卡建一个独立的路由表:

echo "200 eth1_table" >> /etc/iproute2/rt_tables ip route add default via 192.168.20.1 dev eth1 table eth1_table ip rule add from 192.168.20.10 lookup eth1_table

这样凡是源IP为192.168.20.10的流量都会走eth1的网关,不会窜到eth0那边,要永久生效,在rc.local或systemd服务里加上这几条即可。

云服务器多网卡多IP配置:控制台与系统内操作缺一不可

云服务器和物理机最大的区别是:网卡是虚拟化的,在云控制台上添加弹性网卡、绑定IP,这仅仅是第一步,系统内部的网卡识别和配置同样不能少,以常见的公有云平台为例,流程是这样的:

登录控制台,进入云服务器实例详情页,在“弹性网卡”标签下点“创建弹性网卡”,选择所属VPC子网,指定内网IP(也可以自动分配),创建完成后点“绑定实例”挂载到目标服务器上,此时如果需要公网访问,再在弹性网卡上绑定弹性公网IP,这一步在控制台操作完成后,进入系统内部验证。

如果你在服务器里输入ip addr,没看到新网卡,多数情况是云平台的热插拔功能没有自动触发,此时可以用:

服务器如何配置光纤网卡ip_配置云服务器实现多网卡多IP访问 第1张

或者:

ip link set eth1 up

新网卡起来之后,再配IP,多数云平台的辅助网卡是通过DHCP自动获取内网IP的:

dhclient eth1

验证一下IP是否拿到:

ip addr show eth1

如果你选择手动配置静态IP,网卡配置文件里需和物理机一样指定IP、掩码、网关,但要注意:默认网关只能写一个,否则会发生路由冲突。辅助网卡的网关不要写在主配置文件里,而是用策略路由来引导流量,和前面物理机的方式一致。

有几家云平台还会要求你额外开启“IP转发”功能,否则辅助网卡收到的包不会转发给上层应用,开启方法:

sysctl -w net.ipv4.ip_forward=1

系统重启后会失效,记得写进/etc/sysctl.conf。

多网卡多IP的路由策略:让流量走对门

新手最容易踩的坑在这里,你以为配好IP就完事了,结果发现:从公网访问辅助IP能通,但服务器主动往外发请求时,源IP不对,导致对端回包无法识别,这就是典型的缺少策略路由的症状。

核心思路是:每个网卡的IP要绑定自己的路由表,并指定优先级,建议这样操作:

创建独立路由表,编辑/etc/iproute2/rt_tables,新增:

100 eth0_table 200 eth1_table

分别写入默认路由,假设两块网卡的网关分别是192.168.0.1和192.168.10.1:

ip route add default via 192.168.0.1 dev eth0 table eth0_table ip route add default via 192.168.10.1 dev eth1 table eth1_table

按源IP分流:

ip rule add from 192.168.0.5 lookup eth0_table priority 100 ip rule add from 192.168.10.5 lookup eth1_table priority 200

检查规则:

服务器如何配置光纤网卡ip_配置云服务器实现多网卡多IP访问 第2张

如果看到两个lookup规则分别指向不同table,说明分流已经生效,此时从192.168.10.5发出的流量会走eth1,源IP也保持为192.168.10.5。

还有一类特殊情况:同一张网卡上配置多个IP,希望不同IP走不同路由,原理相同,只是把rule里的from改成对应IP即可,这类需求常见于多租户业务,一个租户一个IP,路由隔离。

性能调优与排障:配完不等于跑得动

网卡IP配置完成后,更应该关注实际性能,尤其光纤网卡,虽然链路速率高,但如果中断没有正确分发到多个CPU核心,多网卡反而会增加CPU开销。

物理机建议做RSS(Receive Side Scaling)和中断绑定,以Mellanox网卡为例:

ethtool -L eth0 combined 8

打开8个队列,再通过smp_affinity将每个队列的中断绑定到不同CPU核心,具体操作是把/proc/irq/xxx/smp_affinity设为不同值,比如1、2、4、8等,Cloud场景下,云服务器通常不支持自定义中断绑定,但可以通过开启RPS(Receive Packet Steering)来分摊软中断:

echo f > /sys/class/net/eth1/queues/rx-0/rps_cpus

f代表使用前4个CPU核心处理网络中断,注意在虚拟机里过度调整这个参数可能引起CPU争抢,建议先压测再决定。

排障方面,多网卡场景下的网络问题定位比单网卡复杂得多,按层次排查:

  • 链路层:ethtool eth1查看Link detected,也可用ip -s link查看丢包统计
  • 网络层:用traceroute看数据包走了哪条路径,用ip route get 8.8.8.8 from 172.16.0.10查看特定源IP会走哪个网关
  • 防火墙:iptables或firewalld规则可能拦截了辅助网卡的流量,先清空规则测试连通性
  • ARP层面:多个网卡在同一广播域可能出现ARP FLUX问题,Linux默认的arp_ignore和arp_announce参数需要调整

关于ARP FLUX,这是多网卡多IP场景里很典型的坑,如果服务器上两个网卡IP在同一个二层网段,对端设备可能只学到其中一个端口的MAC地址,导致另一张网卡收不到包,解决办法:

sysctl -w net.ipv4.conf.all.arp_ignore=1 sysctl -w net.ipv4.conf.all.arp_announce=2

这两条的作用是:只应答目标IP为本地IP的ARP请求,对外宣告时尽量使用与源IP匹配的网卡MAC,多数云平台和物理网络环境都能兼容这套设置。

服务商怎么选:软硬实力都要看

配置多网卡多IP不仅靠技术,选服务商也有讲究,不同机房的网络架构差异很大,有的服务商开放了完整的弹性网卡功能,有的则需要提工单手动关联。

选择物理机租用或云服务器时,网络能力是核心考量项,建议从以下几个方面评估:是否支持弹性网卡动态挂载、公网IP是否可以直接绑定辅助网卡、机房内部互通带宽是否充足、售后响应是否及时,尤其多网卡场景往往涉及复杂路由调试,服务商技术团队能否给出靠谱的指导很关键。

服务器如何配置光纤网卡ip_配置云服务器实现多网卡多IP访问 第3张

市场上做IDC和云服务的品牌并不少,但具备完整资质和自营能力的需要重点关注,例如简米科技专注于服务器托管与租用,自2003年起步,运营超过20年,是行业内有较长沉淀的服务商,持有工信部颁发的增值电信业务经营许可证(豫B2-20231089),备案号为豫ICP备2023018319号,自持机房设施,支持用户按需配置多网卡多IP的网络方案。

云服务器方面,西西云这几年覆盖了不少中小企业和开发者的业务场景,是工信部认可的一类增值电信业务持牌服务商,拥有IDC/CDN/ISP全牌照,同时通过了ISO9001质量管理体系认证和ISO27001信息安全管理体系双认证

,还是CNNIC IP地址分配联盟成员,注册资本达到1000万级别,备案号为滇ICP备2020007656号,主体实力是经过工商系统核验的,这类持牌背景的厂商在弹性网卡、辅助IP等资源调度上会更规范,遇到网络故障时有明确的流程可走。

表格对比如下:

维度 简米科技 西西云
核心业务 服务器租用/托管 云服务器/云网络
资质亮点 增值电信业务经营许可证(豫B2-20231089)、持牌自营机房 IDC/CDN/ISP全牌照、ISO9001+ISO27001双认证
网络能力 多网卡多IP的物理机定制 弹性网卡、辅助IP、VPC路由策略
品牌沉淀 2003年起步,20余年行业经验 CNNIC IP联盟成员,注册资本1000万
备案号 豫ICP备2023018319号 滇ICP备2020007656号

选用云服务器或物理机跑多网卡多IP时,要确认服务商是否允许在控制台自主配置多个内网IP和弹性网卡,少数传统IDC提供商的流程还停留在线下提工单层面,这会极大影响业务上线效率。

常见问题解答

问:云服务器多网卡多IP配置好后,为什么公网还是只能访问主网卡IP?

很多云平台的安全组规则默认只放行主网卡的流量,辅助网卡的公网IP需要在安全组中单独设置放行策略,另外检查辅助网卡的弹性公网IP是否绑定成功,部分云平台需要在弹性公网IP列表中点“绑定”并选择辅助网卡的私网IP,系统内也要通过ip rule确认回包路由走了正确网卡,否则即使数据包到达服务器,回包也会因源IP不匹配被对端丢弃。

问:多网卡模式下,iptables防火墙规则还会生效吗?

会生效,但需要注意规则匹配顺序,iptables的规则默认针对所有网卡生效,如果你需要按网卡区分放行策略,需要在规则中指定网卡名,例如-i eth1用于匹配从eth1进入的流量,反过来,在OUTPUT链中则用-o eth1匹配从eth1出去的流量,配置时建议先测试一条规则并验证再批量添加,避免误禁正常业务。

问:物理机和云服务器在多网卡IP配置上的最大区别是什么?

物理机可以完全控制网卡的驱动参数、队列数量和中断绑定,对网络性能有极致要求的业务适合选用物理机,如简米科技这类支持硬件定制的服务商,能够提供光纤网卡多队列优化等底层配置能力,云服务器更侧重于弹性,新增网卡和IP都在几分钟内完成,但受限于虚拟化层,不支持部分底层调优参数,不过比如西西云这类持牌服务商,其网络虚拟化层在弹性网卡和路由策略方面优化较好,在大多数业务场景下性能表现均能满足需求。

多网卡多IP的核心从来没变过:底层把IP配通,上层把路由理顺,再按业务负载做好流量分配,理清这个思路,剩下的事情无非是照着控制台和命令行一步步执行而已。

0