ell*_*iel 4 linux networking nic linux-kernel
我有一个双端口以太网 NIC,假设我已连接了 2 个环路端口,并将以下 IP 分配给 2 个以太网接口:
我想通过物理网络将流量从一个端口发送到另一个端口,例如192.168.3.1
从ping 192.168.2.1
。但是,Linux 内核中的 TCP/IP 堆栈会识别这两个地址是本地地址,并将流量发送到环回适配器,因此流量永远不会到达物理网络。
我最接近的解决方案是 Anastasov 的send-to-self patch,不幸的是,该补丁自内核 3.6 以来已停止使用,因此它不适用于我的 Ubuntu 13.10(内核 3.11)。我尝试寻找重写 3.11 的补丁,但我似乎无法在 Ubuntu 发行版中找到这些补丁:
有没有办法让“发送给自己”补丁发挥作用,或者有其他选择吗?
您可以使用网络命名空间来实现此目的。
正如ip-netns
的联机帮助页所说:
A network namespace is logically another copy of the network stack,
with its own routes, firewall rules, and network devices.
Run Code Online (Sandbox Code Playgroud)
以下只是该答案的副本:
创建一个网络命名空间并将接口之一移入其中:
ip netns add test
ip link set eth1 netns test
Run Code Online (Sandbox Code Playgroud)
在新的命名空间中启动 shell:
ip netns exec test bash
Run Code Online (Sandbox Code Playgroud)
然后继续操作,就好像您有两台机器一样。完成后退出 shell 并删除命名空间:
ip netns del test
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2135 次 |
最近记录: |