ROS高性能nat实践实例

这个部分是 RouterOS 对大流量 nat 网关的实践做介绍, RouterOS v6 配合 Intel 至强处理器搭建了一个 nat网关设备, 单台处理超过 1.5G 的网络流量,前期采用 18 条多线路接入,每条 100M, PCC 负载均衡,两个千兆以太网卡连接华为 5700 交换机, 这个实践配置供大家参考:
系统配置:
CPU: Intel Xen 5606 × 2 (未打开超线程,一共使用 8 核)+ Intel 芯片组(别人的主机,主板只知道是 ASUS,型号没有记)
内存: DDR3 ECC 内存 2G ×2 (双通道需要配置 2 根 2G 内存,当然 RouterOS 只能识别 2G)
硬盘: 1G Flash
网卡: Intel 82580 4 口网卡,每个网口中断 8
RouterOS v6.6, 功能包:仅安装 system、 ppp 和 advanced-tools

使用中,手动调整了 IRQ,指定网卡每个终端负载到相应的 CPU:

该配置主要用于跑 nat,其配置均省略,但出现过配置 simple queue 做整体流控后自动重启现象,后取消流控配置后,运行均无出现死机情况,这点估计是 RouterOS 在 Queue 还存在 bug。 共计 18 条,总 nat 处理流量达到 1.6G 左右,下面是两张网卡的流量截图:

CPU 负载情况:

CPU 保持在 70%以内,运行无异常, session 数大约 24k 左右 。 个人更多希望是能多跑点会话,这样知道RouterOS v6 版本的 nat 会话性能如何, 但有人说如果上行流量上去了, CPU 会比较高,但我更关心的是会话数,因为衡量 nat 转发性能会话数很非常重要的。 经过进一步测试,这套系统在 22 条 100M 线路 PCC 负载均衡后,流量只能达到 1.7G,且 CPU 在 83%左右,无法跑到 2 条千兆链路的 95% 。但如果拆分为 2 台服务器,每台 11 条 100M 线路做 PCC,链路使用率不仅能到 95%,且 CPU 都维持在 30%以内, 2 台 CPU 加起来不到 60%,远低于一台的 83%,因此 PCC 规则增加对系统负载也成倍增长,同时 nat 对 RouterOS。

该平台已经稳定运行了 225 天:

在此案例中网卡的中断数量对 CPU 均衡起到较大作用,所以在针对大流量的网络处理上,配合多 CPU 必须选择中断数高的网卡, 以上内容供大家参考 !