Routed Overlay Network#
In this exercise we configure a routed overlay network using EVPN. The same principle apply here. The default network config is used to simplify the configuration for the end user as much as possible.
Routed Network
apiVersion: network.app.kuid.dev/v1alpha1
kind: Network
metadata:
name: topo3nodesrl.vpc2
spec:
topology: topo3nodesrl
routingTables:
- name: rt20
networkID: 20
interfaces:
- endpoint: e1-1
node: edge01
region: region1
site: site1
addresses:
- address: 10.1.1.1/24
- endpoint: e1-1
node: edge02
region: region1
site: site1
addresses:
- address: 10.2.2.1/24
Execute the following command to instantiate the routed network
Configue a routed overlay EVPN network
======================================
# apply the default network config [1/1]:
> kubectl apply -f https://raw.githubusercontent.com/kubenet-dev/kubenet/v0.0.1/network/vpc2-routed-network.yaml
network.network.app.kuid.dev/topo3nodesrl.vpc2 created
An abstract data model is derived per device for this confiuration, which is translated to the specific implementation of srlinux and finally transacted to the device. Important to note that only edge01 and edge02 has a configuration, since these devices are only used for this specific configuration. The topology information is used to determine this.
The abstracted device models per device can be viewed with this command
NAME READY PROVIDER
topo3nodesrl.default.core01 True srlinux.nokia.com
topo3nodesrl.default.edge01 True srlinux.nokia.com
topo3nodesrl.default.edge02 True srlinux.nokia.com
topo3nodesrl.vpc1.edge01 True srlinux.nokia.com
topo3nodesrl.vpc1.edge02 True srlinux.nokia.com
topo3nodesrl.vpc2.edge01 True srlinux.nokia.com
topo3nodesrl.vpc2.edge02 True srlinux.nokia.com
through the -o yaml option in kubectl
you get the detailed view of the config in yaml format; -o json provide the json based output
example command for the abstracted config of the edge01 device
The final device specific srlinux configuration send to the device can be seen through this command.
NAME READY REASON TARGET SCHEMA
topo3nodesrl.default.core01 True ready default/core01 srl.nokia.sdcio.dev/24.3.2
topo3nodesrl.default.edge01 True ready default/edge01 srl.nokia.sdcio.dev/24.3.2
topo3nodesrl.default.edge02 True ready default/edge02 srl.nokia.sdcio.dev/24.3.2
topo3nodesrl.vpc1.edge01 True ready default/edge01 srl.nokia.sdcio.dev/24.3.2
topo3nodesrl.vpc1.edge02 True ready default/edge02 srl.nokia.sdcio.dev/24.3.2
topo3nodesrl.vpc2.edge01 True ready default/edge01 srl.nokia.sdcio.dev/24.3.2
topo3nodesrl.vpc2.edge02 True ready default/edge02 srl.nokia.sdcio.dev/24.3.2
through the -o yaml option in kubectl
you get the detailed view of the config in yaml format; -o json provide the json based output
example command for the detailed srlinux config of the edge01 device
Let's check if this final ended up on the devices
Expected output
+------------------------------+----------------+----------------+----------------+------------------------------+--------------------------------------+
| Name | Type | Admin state | Oper state | Router id | Description |
+==============================+================+================+================+==============================+======================================+
| default | default | enable | up | | k8s-default |
| mgmt | ip-vrf | enable | up | | Management network instance |
| vpc1.br10 | mac-vrf | enable | up | N/A | k8s-vpc1.br10 |
| vpc2.rt20 | ip-vrf | enable | up | | k8s-vpc2.rt20 |
+------------------------------+----------------+----------------+----------------+------------------------------+--------------------------------------+
Expected output
+------------------------------+----------------+----------------+----------------+------------------------------+--------------------------------------+
| Name | Type | Admin state | Oper state | Router id | Description |
+==============================+================+================+================+==============================+======================================+
| default | default | enable | up | | k8s-default |
| mgmt | ip-vrf | enable | up | | Management network instance |
| vpc1.br10 | mac-vrf | enable | up | N/A | k8s-vpc1.br10 |
| vpc2.rt20 | ip-vrf | enable | up | | k8s-vpc2.rt20 |
+------------------------------+----------------+----------------+----------------+------------------------------+--------------------------------------+
--{ + running }--[ ]--
You can also see the resulting configuration using kubectl using the following command.
kubectl get runningconfigs.config.sdcio.dev edge01 -o yaml
kubectl get runningconfigs.config.sdcio.dev edge02 -o yaml
Nice, a single API for either routed or bridged, can we combine routed and bridged in the same network ? Yes we can see next exercise