OpenStack与OVN组网

OpenStack与OVN组网实验

OpenStack中的network是一个虚拟交换机,对应着OVN中的逻辑交换机(logical switch)

准备

  1. 创建第一个网络n1和两台实例ab,并将ab连接至n1
  2. 创建第二个网络n2和实例c,并将c连接至n2
  3. 创建路由器,并将n1n2连接至路由器
  4. ab连接至外部网络
  5. ACL访问控制通过设置安全组

操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 简化UUID显示
abbrev() { a='[0-9a-fA-F]' b=$a$a c=$b$b; sed "s/$b-$c-$c-$c-$c$c$c//g"; }

# 设置镜像ID
IMAGE_ID=$(openstack image list -f value -c ID)

# 创建keypair
openstack keypair create demo > ~/id_rsa_demo
chmod 600 ~/id_rsa_demo

for group in $(openstack security group list -f value -c ID); do \
openstack security group rule create --ingress --ethertype IPv4 --dst-port 22 --protocol tcp $group; \
openstack security group rule create --ingress --ethertype IPv4 --protocol ICMP $group; \
done
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 创建网络
openstack network create --provider-network-type geneve n1

# 创建子网
openstack subnet create --subnet-range 10.1.1.0/24 --network n1 n1subnet

# 查看网络列表
openstack network list -f yaml | abbrev

# 创建实例
openstack server create --nic net-id=n1,v4-fixed-ip=10.1.1.5 --flavor m1.nano --image $IMAGE_ID --key-name demo a
openstack server create --nic net-id=n1,v4-fixed-ip=10.1.1.6 --flavor m1.nano --image $IMAGE_ID --key-name demo b

openstack port set --name ap $(openstack port list --server a -f value -c ID)
openstack port set --name bp $(openstack port list --server b -f value -c ID)

AP_MAC=$(openstack port show -f value -c mac_address ap)
BP_MAC=$(openstack port show -f value -c mac_address bp)

ovn-nbctl show | abbrev
ovn-nbctl list logical_switch_port ap bp | abbrev

ovn-sbctl lflow-list n1 | abbrev | less -S
comments powered by Disqus