projectcalico / projectcalico/vpp-dataplane
How to configure internet access if VPP uses non-default interface?
Open
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 172
- Forks
- 47
- Avg merge
- 4d 23h
- Merged PRs (30d)
- 3
Description
Environment
- Calico/VPP version: v0.17.0-calicov3.20.2.
- Kubernetes version: 1.21.1 .
- Deployment type: bare-metal on
equinix.metal, host nodes OS isUbuntu 20.04 LTS. - Network configuration:
- master node:
- default interface + ip -
bond0+139.178.65.125. - VPP interface + ip -
eno2+10.0.0.1/30.
- default interface + ip -
- worker node:
- default interface + ip -
bond0+139.178.65.127. - VPP interface + ip -
eno2+10.0.0.2/30.
- default interface + ip -
- master node:
Issue description
Pods are unable to ping internet when VPP uses non-default interface.
To Reproduce
Steps to reproduce the behavior:
- Start 2 bare-metal nodes with the following interfaces configured:
bond0- bond interface, has access to the internet.eno2- simple interface, has access to theeno2on the other node.
- Setup additional IP addresses:
- master node -
10.0.0.1/30 dev eno2. - worker node -
10.0.0.2/30 dev eno2.
- master node -
- Create kubernetes cluster.
- Edit Calico
calico-vpp-nohuge.yamldeployment:
vpp_dataplane_interface: eno2
- Start Calico with the modified deployment.
- Run
kubectl apply -f https://k8s.io/examples/admin/dns/dnsutils.yaml. - Run
kubectl exec dnsutils -- ping -c 4 8.8.8.8. pingfails.
Expected behavior
dnsutils pod should be able to access internet.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Calico VPP deployment configuration in calico-vpp-nohuge.yaml and reproduce the failure using the documented bond0/eno2 setup. Check the networking path used when vpp_dataplane_interface is eno2, then verify completion by running kubectl exec dnsutils -- ping -c 4 8.8.8.8 successfully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kubernetes, ubuntu
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100