Skip to content

Conversation

@sknat
Copy link
Collaborator

@sknat sknat commented Dec 5, 2025

This patch removes the nodeIP from the tap0 interface in VPP.
With this patch, for each uplink interface eth0 with IP 192.168.0.1/24
we create a corresponding tap0 set up the following way:

  • In VRF:0
    • we create the af_packet interface with IP 192.168.0.1/24
    • we receive 192.168.0.1/32 locally, traffic to 192.168.0.1 without listeners
      will end up in punt
  • In the punt table
    • we route 192.168.0.1/24 via tap0 192.168.0.1
  • In linux
    • tap0 has the 192.168.0.1/24 address
    • tap0 will respond to ARPs as VPP has arp proxy enabled
  • In a host-tap-eth0-v4 VRF
    • we place the tap0 interface
    • we give it the 169.254.0.1/32 address, overridable with CALICOVPP_TAP0_ADDR
    • we enable IP6 without setting an address
    • we add a static neighbor for 192.168.0.1 to the MAC of the linux side of the tap
  • If we specify a rule in redirectToHostRules (e.g. for DNS in kind)
    • we will have the classifier entry redirect to tap0 192.168.0.1

Signed-off-by: Nathan Skrzypczak [email protected]

@sknat sknat requested a review from aritrbas December 5, 2025 18:01
@sknat sknat self-assigned this Dec 8, 2025
This patch removes the nodeIP from the tap0 interface in VPP.
With this patch, for each uplink interface eth0 with IP 192.168.0.1/24
we create a corresponding tap0 set up the following way:

* In VRF:0
  * we create the af_packet interface with IP 192.168.0.1/24
  * we receive 192.168.0.1/32 locally, traffic to 192.168.0.1 without listeners
    will end up in punt
* In the punt table
  * we route 192.168.0.1/24 via tap0 192.168.0.1
* In linux
  * tap0 has the 192.168.0.1/24 address
  * tap0 will respond to ARPs as VPP has arp proxy enabled
* In a host-tap-eth0-v4 VRF
  * we place the tap0 interface
  * we give it the 169.254.0.1/32 address, overridable with CALICOVPP_TAP0_ADDR
  * we enable IP6 without setting an address
  * we add a static neighbor for 192.168.0.1 to the MAC of the linux side of the tap
* If we specify a rule in redirectToHostRules (e.g. for DNS in kind)
  * we will have the classifier entry redirect to tap0 192.168.0.1

Signed-off-by: Nathan Skrzypczak <[email protected]>
@sknat sknat force-pushed the nsk-tap0-networking-fix branch from a3057c7 to 04af345 Compare December 9, 2025 17:24
@sknat sknat changed the title No nodeIP on VPP tap0 Remove node address from VPP tap0 Dec 9, 2025
@sknat sknat marked this pull request as ready for review December 9, 2025 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants