在Linux中iproute2
,我知道如何创建两个veth
(虚拟以太网)NIC 并将它们分成两个网络命名空间,然后我得到了两个虚拟 NIC 并且虚拟“电缆”将它们连接起来。
现在我想进一步构建一个局域网,它应该有三个网卡,每个网卡都有一个IP地址并形成一个网段。
我可以使用veth
(或任何有意义的方法)来实现这一点吗?
答案1
veth
总是成对出现。
如果您想构建具有两个以上虚拟 NIC 的网络段,则需要将veth
其与桥接相结合。
假设我们有三个网络命名空间,我们将它们称为“红色”、“绿色”和“蓝色”,我们想在它们之间建立一个网络段。我们需要(使用的名称是任意的)。
- 选择其中一个网络命名空间来承载桥接,我们选择绿色。
- 创建两
veth
对,veth0
/veth1
和veth2
/veth3
。 - 将
veth
s 放入网络命名空间,veth0
->“red”veth1
->“green”veth2
->“green” veth3 ->“blue”。 br0
搭建“绿色”桥梁veth1
,共建“一带一路”veth2
。veth0
分别在“红色”、br0
“绿色”和veth2
“蓝色”中分配 IP 地址/掩码。
答案2
是的,您可以通过这种方式创建任意复杂的 LAN。我经常使用一些脚本来执行此操作(在每个网络命名空间中启动一个或两个 xterm 会有所帮助)。请注意,您需要在每个网络命名空间中设置路由。
还有十几个应用程序以这种方式模拟 LAN,并为您提供 GUI 来创建和管理它们。
编辑
这里是一个包含十几个应用程序的列表;通过谷歌搜索可能会找到更多。