projectcalico / projectcalico/vpp-dataplane

How to configure internet access if VPP uses non-default interface?

Open
#263 3 comments 0 reactions 0 assignees View on GitHub

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 is Ubuntu 20.04 LTS.
  • Network configuration:
    • master node:
      1. default interface + ip - bond0 + 139.178.65.125.
      2. VPP interface + ip - eno2 + 10.0.0.1/30.
    • worker node:
      1. default interface + ip - bond0 + 139.178.65.127.
      2. VPP interface + ip - eno2 + 10.0.0.2/30.

Issue description
Pods are unable to ping internet when VPP uses non-default interface.

To Reproduce
Steps to reproduce the behavior:

  1. Start 2 bare-metal nodes with the following interfaces configured:
    1. bond0 - bond interface, has access to the internet.
    2. eno2 - simple interface, has access to the eno2 on the other node.
  2. Setup additional IP addresses:
    1. master node - 10.0.0.1/30 dev eno2.
    2. worker node - 10.0.0.2/30 dev eno2.
  3. Create kubernetes cluster.
  4. Edit Calico calico-vpp-nohuge.yaml deployment:
  vpp_dataplane_interface: eno2
  1. Start Calico with the modified deployment.
  2. Run kubectl apply -f https://k8s.io/examples/admin/dns/dnsutils.yaml.
  3. Run kubectl exec dnsutils -- ping -c 4 8.8.8.8.
  4. ping fails.

Expected behavior
dnsutils pod should be able to access internet.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.