1 Here a sample of command with pvesh to manage the sdn.
4 #create a vlan transportzone
5 pvesh create /cluster/sdn/zones/ --zone vlanzone --type vlan --bridge vmbr0
8 #create a layer2 vxlan unicast transportzone
9 pvesh create /cluster/sdn/zones/ --zone vxlanunicastzone --type vxlan --peers 192.168.0.1,192.168.0.2,192.168.0.3
12 pvesh create /cluster/sdn/controllers/ --controller frrrouter1 --type evpn --peers 192.168.0.1,192.168.0.2,192.168.0.3 --asn 1234 --gateway-nodes pxnode1,pxnode2 --gateway-external-peers 192.168.0.253,192.168.0.254
14 #create a layer2 vxlan bgpevpn transportzone
15 pvesh create /cluster/sdn/zones/ --zone layer2evpnzone --type evpn --controller frrrouter1
17 #create a layer3 routable vxlan bgpevpn transportzone
18 pvesh create /cluster/sdn/zones/ --zone layer3evpnzone --type evpn --controller frrrouter1 --vrf-vxlan 4000
21 #create a vnet in the transportzone
22 pvesh create /cluster/sdn/vnets/ --vnet vnet10 --type vnet --zone vlanzone --tag 10
24 #create a vnet in the transportzone with ip for evpn routing
25 pvesh create /cluster/sdn/vnets/ --vnet vnet11 --type vnet --zone layer3evpnzone --tag 11 --ipv4 10.0.0.1/24 --mac c8:1f:66:f8:62:8d
26 pvesh create /cluster/sdn/vnets/ --vnet vnet12 --type vnet --zone layer3evpnzone --tag 12 --ipv4 10.0.1.1/24 --mac c8:1f:66:f8:62:8e
29 #apply changes from /etc/pve/sdn.cfg.new to /etc/pve/sdn.cfg
30 pvesh set /cluster/sdn
33 #generate local /etc/network/interfaces.d/sdn and reload (need to be called on each node)
34 pvesh set /nodes/<node>/network
37 display transporzone status on all cluster nodes
38 #pvesh get /cluster/resources
39 ┌────────────────────────────────────┬─────────┬───────┬───────────┬─────────┬───────┬────────┬─────────────┬────────────┬────────────┬───────────────┬──────┬───────────┬──────────────┬────────────────┐
40 │ id │ type │ cpu │ disk │ hastate │ level │ maxcpu │ maxdisk │ maxmem │ mem │ node │ pool │ status │ storage │ uptime │
41 │ sdn/node1/transportzone10 │ sdn │ │ │ │ │ │ │ │ │ kvmformation1 │ │ error │ │ │
42 ├────────────────────────────────────┼─────────┼───────┼───────────┼─────────┼───────┼────────┼─────────────┼────────────┼────────────┼───────────────┼──────┼───────────┼──────────────┼────────────────┤
43 │ sdn/node1/zone1 │ sdn │ │ │ │ │ │ │ │ │ node1 │ │ available │ │ │
44 ├────────────────────────────────────┼─────────┼───────┼───────────┼─────────┼───────┼────────┼─────────────┼────────────┼────────────┼───────────────┼──────┼───────────┼──────────────┼────────────────┤
45 │ sdn/node1/zone4 │ sdn │ │ │ │ │ │ │ │ │ node1 │ │ available │ │ │
46 ├────────────────────────────────────┼─────────┼───────┼───────────┼─────────┼───────┼────────┼─────────────┼────────────┼────────────┼───────────────┼──────┼───────────┼──────────────┼────────────────┤
51 #list all transport zones of a node
53 pvesh get /nodes/<node>/sdn/zones/
54 ┌─────────────────┬───────────┐
56 ├─────────────────┼───────────┤
57 │ transportzone10 │ error │
58 ├─────────────────┼───────────┤
60 ├─────────────────┼───────────┤
62 └─────────────────┴───────────┘
65 #list all vnet status from a node transportzone
67 pveset get /nodes/<node>/sdn/zones/<transportzone>/content