SENSE/Multus L2 Path Provisioning
Follow these steps to provision an L2 path using SENSE and Multus.
Step 1: Verify SENSE Path
Ensure that a plumbed SENSE path exists between the source and destination (e.g., two NRP nodes or an NRP node and FABRIC Facility Port). Contact Nautilus Support on Matrix if necessary.
Step 2: Configure the Node
On the relevant node, execute the following commands, replacing placeholders with actual values:
# Add a MACVLAN interfacesudo ip link add link <interface> name <macvlan> type macvlan mode bridge
# Assign an IPv6 addresssudo ip -6 addr add <ipv6-address>/<prefix-length> dev <macvlan>
# Set the interface upsudo ip link set up <macvlan>
Step 3: Create a Multus NetworkAttachmentDefinition
Define a Multus NetworkAttachmentDefinition
using the MACVLAN interface. Save the following YAML as network.yaml
:
apiVersion: "k8s.cni.cncf.io/v1"kind: NetworkAttachmentDefinitionmetadata: name: macvlan-network namespace: <namespace>spec: config: '{ "cniVersion": "0.3.1", "type": "macvlan", "master": "<interface>", "mode": "bridge", "ipam": { "type": "static", "addresses": [ { "address": "<ipv6-address>/<prefix-length>", "gateway": "<gateway-ip>" } ] } }'
Apply it:
kubectl apply -f network.yaml
Step 4: Create a Pod
Deploy a pod using the network. Save the following YAML as pod.yaml
:
apiVersion: v1kind: Podmetadata: name: macvlan-pod namespace: <namespace> annotations: k8s.v1.cni.cncf.io/networks: macvlan-networkspec: containers: - name: test-container image: alpine command: ["sh", "-c", "sleep 3600"] resources: limits: memory: "256Mi" cpu: "500m" requests: memory: "128Mi" cpu: "250m"
Apply it:
kubectl apply -f pod.yaml
Step 5: Verify Connectivity
- Exec into the pod:
kubectl exec -it macvlan-pod -n <namespace> -- sh
- Test connectivity using
ping6
or other tools.