在使用neutron的provider网络时,使用linuxbridge做驱动,配置是这样的:
提供一个设置了IP的网络设备(不能是bridge)
当启用该网络时,linuxbridge会创建一个bridge,将配置中的IP配置到该bridge上,然后,把配置的设备插到该bridge上
其实,我不想把宿主机上唯一的网卡给neutron,于是:
- 在宿主机网卡上配置一个bridge
- 把宿主机IP配置在该bridge上
- 创建一个设备对儿
- 设备对的一端叫veth@br0,插到上面创建的bridge上
- 设备对儿的另一段叫veth@neutron,配置一个IP,把该IP和veth@neutron写到neutron的配置文件中
这样neutron只需要操作veth@neutron就行了
这样基本是可以的,唯一的问题在于veth@neutron这个名字里面的@不招待见,neutron服务会报错, 修改个名字就行了
续: veth@br0 的命名也是会遭到抵制的,在使用ip link list的时候,会出现这样一个设备:
1 2 |
veth_neutron@veth@br0 veth@br0@veth_neutron |
似乎@也是一个特殊字符,如果@出现两次,则linuxbridge代码中会出现异常,如下:
显然,这里只觉得设备名称最多有一个@
相关脚本:
1 2 3 4 5 |
ip link add veth_br0 type veth peer name veth_neutron ip link set veth_br0 up ip link set veth_neutron up brctl addif br0 veth_br0 ip addr add 10.88.10.25 dev veth_neutron |