我可以在 Linux 中创建三个“veth”接口来构建虚拟局域网吗?

我可以在 Linux 中创建三个“veth”接口来构建虚拟局域网吗?

在Linux中iproute2,我知道如何创建两个veth(虚拟以太网)NIC 并将它们分成两个网络命名空间,然后我得到了两个虚拟 NIC 并且虚拟“电缆”将它们连接起来。

现在我想进一步构建一个局域网,它应该有三个网卡,每个网卡都有一个IP地址并形成一个网段。

我可以使用veth(或任何有意义的方法)来实现这一点吗?

答案1

veth总是成对出现。

如果您想构建具有两个以上虚拟 NIC 的网络段,则需要将veth其与桥接相结合。

假设我们有三个网络命名空间,我们将它们称为“红色”、“绿色”和“蓝色”,我们想在它们之间建立一个网络段。我们需要(使用的名称是任意的)。

  • 选择其中一个网络命名空间来承载桥接,我们选择绿色。
  • 创建两veth对,veth0/veth1veth2/ veth3
  • veths 放入网络命名空间,veth0->“red” veth1->“green” veth2->“green” veth3 ->“blue”。
  • br0搭建“绿色”桥梁veth1,共建“一带一路” veth2
  • veth0分别在“红色”、br0“绿色”和veth2“蓝色”中分配 IP 地址/掩码。

答案2

是的,您可以通过这种方式创建任意复杂的 LAN。我经常使用一些脚本来执行此操作(在每个网络命名空间中启动一个或两个 xterm 会有所帮助)。请注意,您需要在每个网络命名空间中设置路由。

还有十几个应用程序以这种方式模拟 LAN,并为您提供 GUI 来创建和管理它们。

编辑

这里是一个包含十几个应用程序的列表;通过谷歌搜索可能会找到更多。

相关内容