From 3a5b2a8a63263ffd01c5559a35aaf02c8c71488a Mon Sep 17 00:00:00 2001 From: Artem Glazychev Date: Sat, 5 Jun 2021 17:57:41 +0700 Subject: [PATCH] Add wireguard example IPv6 Signed-off-by: Artem Glazychev --- examples/features/README.md | 4 + .../ipv6/Kernel2Wireguard2Kernel/README.md | 131 +++++++++++++++++ .../ipv6/Kernel2Wireguard2Memif/README.md | 133 +++++++++++++++++ .../ipv6/Memif2Wireguard2Kernel/README.md | 134 ++++++++++++++++++ .../ipv6/Memif2Wireguard2Memif/README.md | 134 ++++++++++++++++++ 5 files changed, 536 insertions(+) create mode 100644 examples/features/ipv6/Kernel2Wireguard2Kernel/README.md create mode 100644 examples/features/ipv6/Kernel2Wireguard2Memif/README.md create mode 100644 examples/features/ipv6/Memif2Wireguard2Kernel/README.md create mode 100644 examples/features/ipv6/Memif2Wireguard2Memif/README.md diff --git a/examples/features/README.md b/examples/features/README.md index ca2659595863..a481797b96f2 100644 --- a/examples/features/README.md +++ b/examples/features/README.md @@ -11,6 +11,10 @@ To run any feature example follow steps for [Basic NSM setup](../basic) - [Simple OPA example](./opa) - [Kernel2Kernel IPv6 example](./ipv6/Kernel2Kernel) - [Memif2Memif IPv6 example](./ipv6/Memif2Memif) +- [Kernel2Wireguard2Kernel IPv6 example](./ipv6/Kernel2Wireguard2Kernel) +- [Kernel2Wireguard2Memif IPv6 example](./ipv6/Kernel2Wireguard2Memif) +- [Memif2Wireguard2Kernel IPv6 example](./ipv6/Memif2Wireguard2Kernel) +- [Memif2Wireguard2Memif IPv6 example](./ipv6/Memif2Wireguard2Memif) - Heal - Refresh - Timeout diff --git a/examples/features/ipv6/Kernel2Wireguard2Kernel/README.md b/examples/features/ipv6/Kernel2Wireguard2Kernel/README.md new file mode 100644 index 000000000000..f7d8f0602015 --- /dev/null +++ b/examples/features/ipv6/Kernel2Wireguard2Kernel/README.md @@ -0,0 +1,131 @@ +# Test kernel to wireguard to kernel connection + +This example shows that NSC and NSE on the different nodes could find and work with each other using IPv6. + +NSC and NSE are using the `kernel` mechanism to connect to its local forwarder. +Forwarders are using the `wireguard` mechanism to connect with each other. + +## Run + +Create test namespace: +```bash +NAMESPACE=($(kubectl create -f ../../namespace.yaml)[0]) +NAMESPACE=${NAMESPACE:10} +``` + +Register namespace in `spire` server: +```bash +kubectl exec -n spire spire-server-0 -- \ +/opt/spire/bin/spire-server entry create \ +-spiffeID spiffe://example.org/ns/${NAMESPACE}/sa/default \ +-parentID spiffe://example.org/ns/spire/sa/spire-agent \ +-selector k8s:ns:${NAMESPACE} \ +-selector k8s:sa:default +``` + +Get nodes exclude control-plane: +```bash +NODES=($(kubectl get nodes -o go-template='{{range .items}}{{ if not .spec.taints }}{{index .metadata.labels "kubernetes.io/hostname"}} {{end}}{{end}}')) +``` + +Create customization file: +```bash +cat > kustomization.yaml < patch-nsc.yaml < patch-nse.yaml < kustomization.yaml < patch-nsc.yaml < patch-nse.yaml < kustomization.yaml < patch-nsc.yaml < patch-nse.yaml < kustomization.yaml < patch-nsc.yaml < patch-nse.yaml <