在Proxmox VE上运行OpenWrt/LEDE虚拟机——5.PVE的网络设置(3)CLI配置网络

PVE的网络设置(2)部分已经讨论了WebUI方式配置PVE的网络系统。本文讨论CLI方式配置PVE的网络系统。与WebUI方式相比,CLI方式直接编辑配置文件,可以设置更多的参数,如bridge的stp和fd等参数,能更加灵活地配置网络,当然这通常也需要一定的Linux使用基础。

CLI方式配置PVE网络系统仅需直接编辑配置文件——“/etc/network/interfaces”,完成后执行命令“/etc/init.d/networking restart”重启服务即可生效。下面以一个示例来进行说明该配置文件的各项内容的含义。其中,每行行首的数字是行号。

  1 # network interface settings; autogenerated
 2 # Please do NOT modify this file directly, unless you know what
 3 # you're doing.
 4 #
 5 # If you want to manage part of the network configuration manually,
 6 # please utilize the 'source' or 'source-directory' directives to do
 7 # so.
 8 # PVE will preserve these directives, but will NOT its network
 9 # configuration from sourced files, so do not attempt to move any of
 10 # the PVE managed interfaces into external files!
 11 
 12 auto lo
 13 iface lo inet loopback
 14 
 15 auto enp2s0
 16 iface enp2s0 inet manual
 17 #NIC2
 18 
 19 auto enp1s0
 20 iface enp1s0 inet manual
 21 #NIC1
 22 
 23 auto enp4s0
 24 iface enp4s0 inet manual
 25 #NIC3
 26 
 27 auto vmbr0
 28 iface vmbr0 inet static
 29 address 192.168.0.254
 30 netmask 255.255.255.0
 31 gateway 192.168.0.1
 32 bridge_ports enp2s0 enp4s0
 33 bridge_stp off
 34 bridge_fd 0
 35 #LAN
 36 
 37 iface wlp3s0 inet manual
 38 
 39 auto vmbr1
 40 iface vmbr1 inet manual
 41 bridge_ports enp1s0
 42 bridge_stp off
 43 bridge_fd 0
 44 #WAN
 45 
 46 auto vmbr2
 47 iface vmbr2 inet manual
 48 bridge_ports none
 49 bridge_stp off
 50 bridge_fd 0
 51 #DMZ
 52

前10行均以“#”开头,为注释部分,说明了要慎重使用对此种方式配置PVE网络。所以在编辑前最好做个完整的备份。

第12~13行定义lo接口。anto表示自动启动,lo是looplback(换回)的简写,它是TCP/IP协议虚拟的接口;这里通常不需要再进行改动。

第15~17行、第19~21行、第23~25行定义网络接口。此处仅以第15~17行为例说明如下:

  • auto enp1s0:

auto表示自动启动;enp1s0为网络接口名称。

其中,en是ethernet的简写,表示以太网设备;p1指pcibus 1,表示PCI总线1;s0指slot 0,表示插槽位1;这些组合在一起来表示该理网卡对应的物理位置。定义该物理网卡自动启动。

  • iface enp1s0 inet manual:

iface是interface的简写,表示网络接口;enp1s为接口名称;inet是internet的简写,是指internet protocol address,表示IP地址;manual表示手动方式;这些组合在一起表示该网络接口使用手动指定IP地址。然而该接口在这里并未指定IP地址,因为它在后面的定义中被绑定到了网桥接口来使用。

  • #NIC1

“#”表示备注,其后紧跟备注内容;NIC1为备注的内容,此处备注该网络接口为NIC1,即物理网卡1。

第27~35行、第39~44行、第46~51行定义网桥接口。此处以第27~35行为例说明如下:

  • auto vmbr0

auto表示自动启动;vmbr0为第一个(默认创建)Linux网桥接口名称。

其中,vm是Virtual Machine的缩写,表示虚拟机;br是bridge的简写,表示网桥;0则是起始编号;这些组合在一起作为虚拟机网桥接口名称——vmbr0。

  • iface vmbr0 inet static

前面的几部分与第16行的表示方式一样;static表示使用静态方式;这些组合在一起表示该网桥接口使用静态的IP地址,后面有详细的IP设置。

  • address  192.168.0.254

address表示IP地址,其值为192.168.0.254

  • netmask 255.255.255.0

netmask表示子网掩码,其值为255.255.255.0

  • gateway 192.168.0.1

gateway表示网关,其值为192.168.0.1,这是后面将要创建的OW/LEDE虚拟机的LAN接口IP地址。

  • bridge_ports enp2s0 enp4s0

bridge_port表示桥接端口,设置该网桥连接到名称为enp2s0和enp4s0的物理网卡上,将它们桥接在一起变成了多端口网桥,从而实现交换机的功能。

  • bridge_stp off

bridge_stp表示网桥的STP,STP——Spanning Tree Protocol,即生成树协议,它是基于OSI网络模型第二层——数据链路层的通信协议,用作确保一个无环路的局域网环境。基本功能是防止桥接环路及由其产生的广播风暴。STP还允许在网络设计启用备份链路,以便在主链路发生故障时切换到备用链路来提供容错;off表示关闭。它们组合在一起表示该网桥关闭STP。对于简单的网络结构,很容易保证连接不出现环路,这时不需要启用STP以提升效率并降低开销。

  • bridge_fd 0

bridge_fd中的fd是forwarding delay的缩写,意思是转发延迟,表示网桥在进入转发状态前在侦听和学习状态上花费的时间,Linux网桥有禁止、侦听、学习、转发和阻塞五种状态,通常需经过侦听和学习才能获得端口与MAC地址的对应关系并以此来转发数据帧,对于结构简单且不启用STP的网络,通常默认为0以提高效率。

  • #LAN

备注为LAN,表示此接口所属的网络为LAN,以清晰地与WAN区分。

发表评论