要在 OpenStack 中给已有的网络添加 VLAN,需要使用以下命令:
- 创建 VLAN:
$ sudo ovs-vsctl add-br br-<VLAN_ID>
$ sudo ovs-vsctl add-port br-<VLAN_ID> <PHYSICAL_NETWORK_INTERFACE> tag=<VLAN_ID>
其中,br-<VLAN_ID>
是新创建的网桥名称,<PHYSICAL_NETWORK_INTERFACE>
是物理网卡名称,<VLAN_ID>
是所需的 VLAN ID。
- 创建子网和网络:
$ openstack subnet create --subnet-range <SUBNET_CIDR> --network <NETWORK_NAME> --gateway <GATEWAY_IP_ADDRESS> --allocation-pool start=<START_IP>,end=<END_IP> --dns-nameserver <DNS_SERVER_IP_ADDRESS> --vlan <VLAN_ID> <SUBNET_NAME>
$ openstack network create --provider-network-type vlan --provider-physical-network physnet1 --provider-segmentation-id <VLAN_ID> <NETWORK_NAME>
其中,<SUBNET_CIDR>
、<GATEWAY_IP_ADDRESS>
、<START_IP>
、<END_IP>
、<DNS_SERVER_IP_ADDRESS>
分别是子网 CIDR、网关 IP 地址、IP 地址池起始地址和结束地址以及 DNS 服务器 IP 地址。 <SUBNET_NAME>
和 <NETWORK_NAME>
分别是子网名称和网络名称。
- 将端口连接到新的 VLAN:
$ neutron port-update <PORT_ID> --binding:vif_type=ovs --binding:vnic_type=normal --binding:host_id=<HOSTNAME>
其中,<PORT_ID>
是要更新的端口 ID,<HOSTNAME>
是正在运行虚拟机的主机名称。
- 重新启动网络服务:
$ sudo service openvswitch-switch restart
$ sudo service neutron-server restart
这些命令将会在 OpenStack 中创建一个新的 VLAN,并将其连接到现有的网络中。请注意,这些命令需要以管理员身份运行。