--- lastproofread: '2026-03-13' --- (vpp-config-interfaces-gre)= ```{include} /_include/need_improvement.txt ``` # VPP GRE Configuration VPP GRE interfaces provide Generic Routing Encapsulation tunneling with high-performance packet processing. GRE tunnels encapsulate various protocols within IP packets, enabling connectivity across Layer 3 networks while maintaining the performance benefits of VPP's optimized data plane. ## Basic Configuration ### Creating a GRE Interface ```{cfgcmd} set interfaces vpp gre \ Create a GRE interface where ```` follows the naming convention ``vppgre1``, ``vppgre2``, etc. ``` ```{cfgcmd} set interfaces vpp gre \ remote \ Set the tunnel remote endpoint address. Supports both IPv4 and IPv6 addresses. ``` ```{cfgcmd} set interfaces vpp gre \ source-address \ Set the tunnel source address. Must match an address configured on the local system. ``` **Basic Example:** ```none set interfaces vpp gre vppgre1 set interfaces vpp gre vppgre1 remote 203.0.113.2 set interfaces vpp gre vppgre1 source-address 192.168.1.1 ``` ## Interface Configuration ### Description and Administrative Control ```{cfgcmd} set interfaces vpp gre \ description \ Set a descriptive name for the GRE interface. ``` ```{cfgcmd} set interfaces vpp gre \ disable Administratively disable the GRE interface. ``` ### Tunnel Type ```{cfgcmd} set interfaces vpp gre \ tunnel-type \ Set the GRE tunnel encapsulation type: * ``l3`` - Generic Routing Encapsulation for network layer traffic (default). * ``teb`` - Transparent Ethernet Bridge for Layer 2 frame transport. * ``erspan`` - Encapsulated Remote Switched Port Analyzer for traffic mirroring. ``` ### Kernel Interface Integration LCP kernel pair interface bound to the VPP GRE interface is created automatically. This allows standard Linux networking tools and services to interact with the VPP GRE. ## IP Address Configuration ```{cfgcmd} set interfaces vpp gre \ address \ Configure IPv4 or IPv6 addresses on the kernel interface. Multiple addresses can be assigned. ``` **Examples:** ```none # IPv4 address set interfaces vpp gre vppgre0 address 192.168.1.10/24 # IPv6 address set interfaces vpp gre vppgre0 address 2001:db8::10/64 ``` ## MTU Configuration ```{cfgcmd} set interfaces vpp gre \ mtu \ Set the Maximum Transmission Unit (MTU) for the kernel interface. The MTU must be compatible with the connected VPP interface. ``` **Example:** ```none set interfaces vpp gre vppgre0 mtu 9000 ``` :::{note} The MTU size must not exceed the MTU size supported by the associated VPP interface. ::: ## Configuration Examples ### Layer 3 GRE Tunnel ```none # IPv4 GRE tunnel set interfaces vpp gre vppgre1 set interfaces vpp gre vppgre1 description "Site-to-site tunnel" set interfaces vpp gre vppgre1 remote 203.0.113.10 set interfaces vpp gre vppgre1 source-address 192.168.1.1 set interfaces vpp gre vppgre1 tunnel-type l3 ``` ### Layer 2 GRE Tunnel (TEB) ```none # Transparent Ethernet Bridge set interfaces vpp gre vppgre2 set interfaces vpp gre vppgre2 description "L2 extension tunnel" set interfaces vpp gre vppgre2 remote 203.0.113.20 set interfaces vpp gre vppgre2 source-address 192.168.1.1 set interfaces vpp gre vppgre2 tunnel-type teb ``` ### IPv6 GRE Tunnel ```none # IPv6 endpoints set interfaces vpp gre vppgre3 set interfaces vpp gre vppgre3 remote 2001:db8::2 set interfaces vpp gre vppgre3 source-address 2001:db8::1 ``` ### GRE with Kernel Interface ```none # GRE tunnel with management interface set interfaces vpp gre vppgre4 set interfaces vpp gre vppgre4 remote 203.0.113.30 set interfaces vpp gre vppgre4 source-address 192.168.1.1 set interfaces vpp gre vppgre4 address 10.0.1.1/30 ``` ## Bridge Integration GRE interfaces can be added as members to VPP bridges for Layer 2 switching. See {doc}`bridge` for detailed bridge configuration. ```none # Add TEB GRE tunnel to bridge set interfaces vpp bridge vppbr1 set interfaces vpp bridge vppbr1 member interface vppgre2 set interfaces vpp bridge vppbr1 member interface eth1 ```