![配置具有多个链路和多个虚拟机的复杂虚拟网络的最佳实践](https://linux22.com/image/764668/%E9%85%8D%E7%BD%AE%E5%85%B7%E6%9C%89%E5%A4%9A%E4%B8%AA%E9%93%BE%E8%B7%AF%E5%92%8C%E5%A4%9A%E4%B8%AA%E8%99%9A%E6%8B%9F%E6%9C%BA%E7%9A%84%E5%A4%8D%E6%9D%82%E8%99%9A%E6%8B%9F%E7%BD%91%E7%BB%9C%E7%9A%84%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.png)
我有一个有点复杂的虚拟网络设置,其中包含多个虚拟机及其之间的链接。ip
设置它大概需要 40 个命令,这些命令(如果我没有看错文档的话)需要翻译成多个文件中的适当接口定义以及文件.netdev
中的其他详细信息。/etc/netplan/
虽然可以通过这种方式来完成,但最终(在我看来)会比对所有内容使用一个脚本文件清晰得多。
最佳做法是什么?我想采用标准设置方法,但我还想将所有相关的(虚拟)网络配置集中在一个地方。
根据评论进行编辑,我在下面给出了一个具体的例子:
ip link add veth_host_1 type veth peer name veth_host_2_b1
ip link add veth_host_2 type veth peer name veth_host_1_b1
...
ip link add veth_host_x type veth peer name veth_host_x_b2
ip link add veth_host_y type veth peer name veth_host_y_b2
...
#(several more like the above)
# Some direct links like this too:
ip link add veth_host_1_lnk1 type veth peer name veth_host_x_lnk1
# And the bridges
ip link add br_1 type bridge
ip link add br_2 type bridge
# Add the interfaces to the bridges
ip link set veth_host_1_b master br_1
ip link set veth_host_2_b master br_1
...
ip link set veth_host_x_b master br_2
ip link set veth_host_y_b master br_2
...
# Bring up the bridges
ip link set br_1 up
ip link set br_2 up
...
# The setup the interfaces
ip link set veth_host_1 address aa:bb:cc:dd:ee:f1 up
ip link set veth_host_2 address aa:bb:cc:dd:ee:f2 up
...
# (and so on for each interface)