我遇到的问题是,我有一条 500 mbps 光纤线路,在进行网络地址转换 (NAT) 时,iptables 似乎是我的 Linux 工作站路由器 (~200 mbps) 的瓶颈。直接在上面进行速度测试,WAN VLAN
我就能获得完整的 500 mbps(有关配置的更多信息,请参见下文)。
工作站有一个客户 Virtualbox Linux 机器,它正在通过 NAT 连接LAN VLAN
到WAN VLAN
我的 Dell Enterprise S3048-ON 交换机。主机操作系统是 Windows 10。顺便说一句,它使用两个逻辑接口,但只使用交换机上的一个物理端口。
该工作站的规格是 16 核 1950X、128GB RAM 和英特尔 I211-AT 千兆 LAN 控制器。
此外,我不确定这是否会影响性能,但无论出于什么原因,VLAN 标签在到达 Linux VM 客户操作系统之前都会被剥离。为了使其正常工作,我必须转到 Win10 设备管理器并创建分配给的虚拟接口,WAN VLAN
然后LAN VLAN
Linux 客户 VM 将它们视为常规未标记端口和它们之间的 Linux VM NAT。
访客无法访问本机 VLAN 是否会导致性能问题?
或者我可能只需要升级到更好的 NIC?我不确定这里是否允许提供硬件建议,如果是这种情况,我应该在 NIC 中寻找什么?
我尝试寻找答案,但关于这个主题的答案很少。如果有人可以提供更多信息来帮助我解决这个问题,我将不胜感激。
答案1
这更适合评论,但我目前的声誉阻止我这样做。以下是:
NATT 是从 IP 到 IP 进行的,这意味着位于 LAN VLAN 中的某些机器的 IP 可以通过 NATT 到位于 WAN VLAN 中的 IP 来访问互联网。因此,我认为您不必太担心剥离 VLAN 标签。
NIC 可能是一个问题,但我对此表示怀疑。您有一张千兆 NIC 卡和一条 500 mbps 光纤线路(这是您可以达到的最大吞吐量),我认为您没有问题。
谈到 iptables,我同意这可能是一个问题。 https://people.netfilter.org/kadlec/nftest.pdf这里指出,用于 NAT 时,盒子的性能会减半。但是,性能是通过大量链式规则测试的。在您的例子中,您可能有一个要进行 NAT 的公共 IP。我自己遇到了 iptables 问题,但由于这是生产环境,所以我用 Cisco 的 CSR1000v(已授权)替换了它。但是,公司要付费,而 CISCO 很贵。
您可以尝试下面提到的一些加速技术,看看是否有区别。 https://wiki.archlinux.org/index.php/High_Performance_Firewall以及第 4.3 节https://people.netfilter.org/kadlec/nftest.pdf看看是否有帮助。