当通过veth pair在两个不同的网络名称空间中遍历两个进程时,以太网数据包是否保留在linux内核中?

当通过veth pair在两个不同的网络名称空间中遍历两个进程时,以太网数据包是否保留在linux内核中?,linux,networking,linux-kernel,virtualization,iptables,Linux,Networking,Linux Kernel,Virtualization,Iptables,我面临以下情况。我们有两个网络名称空间:ns1和ns2。它们通过veth对连接。ns1持有ovs,ns2持有iptables规则。数据包从ovs端口1流向ns2,经过iptable检查,然后返回ns1。数据包在内核中,处理速度很快 随着iptables规则越来越大,我认为我们应该将ns2作为另一个操作系统进程进行分离。主要原因是在机器上使用多个磁芯。通过veth对连接持有ovs的ns1和持有iptables规则的ns2。如果这样做,数据包仍然保留在内核中?而且没有像穿越进程边界、内核/用户空间边

我面临以下情况。我们有两个网络名称空间:ns1和ns2。它们通过veth对连接。ns1持有ovs,ns2持有iptables规则。数据包从ovs端口1流向ns2,经过iptable检查,然后返回ns1。数据包在内核中,处理速度很快

随着iptables规则越来越大,我认为我们应该将ns2作为另一个操作系统进程进行分离。主要原因是在机器上使用多个磁芯。通过veth对连接持有ovs的ns1和持有iptables规则的ns2。如果这样做,数据包仍然保留在内核中?而且没有像穿越进程边界、内核/用户空间边界、相同数据包的多个副本这样的性能损失

我搜索了一下。内核空间像用户空间一样使用虚拟内存。似乎内核空间的某些区域由多个操作系统进程共享,并由物理RAM备份。这就是为什么linux虚拟网络速度很快。虽然名称空间是通过veth对连接的,但不涉及硬件中断。我不确定当数据包通过veth对时是否涉及软件中断。无论什么情况,只要相同的数据包保留在多个操作系统进程共享的内核空间中,性能都应该是好的。在多核的情况下,将iptables名称空间分离到不同的进程将有所帮助

这种理解正确吗