Page MenuHomeVyOS Platform

Please add GRE over IPv6 Transport
Closed, ResolvedPublicFEATURE REQUEST

Description

https://tools.ietf.org/html/rfc7676 describes GRE specifications for IPv6, both as an encapsulated protocol _AND_ as a carrier protocol for encapsulated traffic (of any supported type).

As near as I can tell, VYOS currently supports IPv6 only as an encapsulated protocol and not as a carrier.

Today, that is the most common case (GRE used to connect dual-stack islands across an IPv4 backbone).

However, there are an increasing number of situations where an IPv6 backbone transport is actually more convenient than IPv4 and we will soon start seeing more situations where IPv4 islands need to be connected across an IPv6 internet. Indeed, I currently have a couple of these which are forcing me to inconveniently use other routers instead of my VyOS routers to terminate these tunnels.

This could be accomplished compatibly in configuration by either of the following alternatives:

  • Ideally simply allow parsing of an IPv4 or IPv6 address in the tunnel-source and/or tunnel-destination parameter fields. (Obviously there needs to be a consistency check to validate that they match)
  • Slightly less desirable, create an additional tunnel encapsulation (grev6 or similar name) which permits the use of IPv6 addresses for tunnel-source and tunnel-destination

Either would be acceptable and neither would break anyone's existing configuration files.

Details

Difficulty level
Unknown (require assessment)
Version
-
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Perfectly compatible

Event Timeline

Why should this task be created in vyos manager

IPv6 GRE is already supported as tunnel encapsulation ip6gre. It is the IPv6 equivalent of GRE, which allows us to encapsulate any Layer 3 protocol over IPv6.

Thanks for that. However, encapsulation ip6gre is nowhere to be found in a documentation search on readthedocs.
As to why it got tased VyOS Manager, the tag was automatically inserted when I created the issue and no alternatives were offered by the UI at my userlevel.
Apologies for my ignorance, I am relatively new to VyOS though quite experienced with IPv6 and with routing in general.
Respectfully, I suggest reopening this ticket and recategorizing it to documentation appropriately so as to get the documents brought up to speed with the implementation.

Some additional information: Here's what happens after upgrading (the version I was running predated ip6gre support, so that was my bad)...
I try to configure the tunnel interface and get the following:

[edit interfaces tunnel tun100]
owen@delong-netactuate-rtr1.delong.com# set local-ip 2607:f740:0:3f::0a36
vbash: syntax error near unexpected token `|'

  Invalid command: [-6]

  Invalid command: [--ipv6]



  Invalid command: [--both]

vbash: syntax error near unexpected token `)'
[edit interfaces tunnel tun100]

So it seems something isn't quite right. It may be my own error, but lacking documentation, I'm unsure how else I go about establishing the local iPv6 address for the tunnel.

Despite the odd error messages, I am able to commit the configuration and save it:

tunnel tun100 {
    address <prefix>.229/30
    address <prefix>:7007::1/64
    description "<destination> dual-stack GRE"
    encapsulation ip6gre
    local-ip <prefix>::0a36
    multicast disable
    remote-ip <prefix>::ca34:c8ac:c35a:5607
}

And it appears that the configuration was accepted:

owen@delong-netactuate-rtr1.delong.com:~$ show interfaces tunnel
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface        IP Address                        S/L  Description
---------        ----------                        ---  -----------
tun0             <>.193/30                 u/u  <> Household via Comcast
                 <>:7000::1/64                  
tun1             <>.197/30                 u/u  <> Household via Ridge Wireless
                 <>:7001::1/64                  
tun50            <>.229/30                 u/u  <>
tun51            <>:7007::1/64             u/u  <> IPv6
tun100           <>.229/30                 u/u  Rick Ellis dual-stack GRE
                 <>:7007::1/64

Unfortunately, I don't have the other side fully configured yet, so I don't have the ability to indicate whether it actually works or not, but I will follow up.

There’s still the issue of getting it added to the documentation.

Hi @owen, I added a small note about GRE6 some days ago on the bottom of the GRE chapter. https://docs.vyos.io/en/latest/configuration/interfaces/tunnel.html#generic-routing-encapsulation-gre

Of you got a better idea/docu I‘m happy to take any PR for the documentation.

That's fair... I'll try to have something in the next few days.

So you merged while I was working on fixing the lint. If you care, I pushed an update with the line lengths corrected. Otherwise, feel free to ignore. Your call.
Thanks for the fast response and your patience with me.

Please feel free to do so. Thank you!

owen claimed this task.

I pushed it already. If you wish to re-merge, it's there.