Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GRE L2/L3 tunneling protocol support #2163

Closed
tinoue opened this issue Jun 17, 2021 · 3 comments
Closed

GRE L2/L3 tunneling protocol support #2163

tinoue opened this issue Jun 17, 2021 · 3 comments
Labels
enhancement New feature or request L1 Very few Likelihood P3 Can't get started Priority level T0 New feature Issue type

Comments

@tinoue
Copy link

tinoue commented Jun 17, 2021

I made PR to support GRE tunneling protocol over tailscale. This supports L2/L3 tunneling over IPv4 (GRE over IPv6 is not functional because tailscale MTU is 1280 which is minimum value for IPv6).

#2162

@tinoue tinoue changed the title GRE tuneling protocol support GRE L2/L3 tuneling protocol support Jun 17, 2021
@tinoue tinoue changed the title GRE L2/L3 tuneling protocol support GRE L2/L3 tunneling protocol support Jun 17, 2021
@bradfitz
Copy link
Member

Thanks! We're about to cut a 1.10 release, so we can merge this after 1.10 is out for the 1.12 release. (But there will be unstable builds out earlier)

@bradfitz bradfitz added enhancement New feature or request and removed needs-triage labels Jun 18, 2021
@DentonGentry DentonGentry added L1 Very few Likelihood P3 Can't get started Priority level T0 New feature Issue type labels Jun 20, 2021
@DentonGentry
Copy link
Contributor

The 1.10 release branch was created yesterday, this feature can go into the tree (after PR review) for the 1.12 release.

@DentonGentry
Copy link
Contributor

Fixed in 1.20 by 69de3bf

bradfitz added a commit that referenced this issue Dec 22, 2022
01b90df added SCTP support before
(with explicit parsing for ports) and
69de3bf tried to add support for
arbitrary IP protocols (as long as the ACL permited a port of "*",
since we might not know how to find ports from an arbitrary IP
protocol, if it even has such a concept). But apparently that latter
commit wasn't tested end-to-end enough. It had a lot of tests, but the
tests made assumptions about layering that either weren't true, or
regressed since 1.20.

Updates #2162
Updates #2163

Change-Id: I9659b3ece86f4db51d644f9b34df78821758842c
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
bradfitz added a commit that referenced this issue Jan 14, 2023
01b90df added SCTP support before
(with explicit parsing for ports) and
69de3bf tried to add support for
arbitrary IP protocols (as long as the ACL permited a port of "*",
since we might not know how to find ports from an arbitrary IP
protocol, if it even has such a concept). But apparently that latter
commit wasn't tested end-to-end enough. It had a lot of tests, but the
tests made assumptions about layering that either weren't true, or
regressed since 1.20. Notably, it didn't remove the (*Filter).pre
bidirectional filter that dropped all "unknown" protocol packets both
leaving and entering, even if there were explicit protocol matches
allowing them in.

Also, don't map all unknown protocols to 0. Keep their IP protocol
number parsed so it's matchable by later layers. Only reject illegal
things.

Fixes #6423
Updates #2162
Updates #2163

Change-Id: I9659b3ece86f4db51d644f9b34df78821758842c
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
bradfitz added a commit that referenced this issue Jan 14, 2023
01b90df added SCTP support before
(with explicit parsing for ports) and
69de3bf tried to add support for
arbitrary IP protocols (as long as the ACL permited a port of "*",
since we might not know how to find ports from an arbitrary IP
protocol, if it even has such a concept). But apparently that latter
commit wasn't tested end-to-end enough. It had a lot of tests, but the
tests made assumptions about layering that either weren't true, or
regressed since 1.20. Notably, it didn't remove the (*Filter).pre
bidirectional filter that dropped all "unknown" protocol packets both
leaving and entering, even if there were explicit protocol matches
allowing them in.

Also, don't map all unknown protocols to 0. Keep their IP protocol
number parsed so it's matchable by later layers. Only reject illegal
things.

Fixes #6423
Updates #2162
Updates #2163

Change-Id: I9659b3ece86f4db51d644f9b34df78821758842c
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
bradfitz added a commit that referenced this issue Jan 14, 2023
01b90df added SCTP support before
(with explicit parsing for ports) and
69de3bf tried to add support for
arbitrary IP protocols (as long as the ACL permited a port of "*",
since we might not know how to find ports from an arbitrary IP
protocol, if it even has such a concept). But apparently that latter
commit wasn't tested end-to-end enough. It had a lot of tests, but the
tests made assumptions about layering that either weren't true, or
regressed since 1.20. Notably, it didn't remove the (*Filter).pre
bidirectional filter that dropped all "unknown" protocol packets both
leaving and entering, even if there were explicit protocol matches
allowing them in.

Also, don't map all unknown protocols to 0. Keep their IP protocol
number parsed so it's matchable by later layers. Only reject illegal
things.

Fixes #6423
Updates #2162
Updates #2163

Change-Id: I9659b3ece86f4db51d644f9b34df78821758842c
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
coadler pushed a commit to coder/tailscale that referenced this issue Feb 2, 2023
01b90df added SCTP support before
(with explicit parsing for ports) and
69de3bf tried to add support for
arbitrary IP protocols (as long as the ACL permited a port of "*",
since we might not know how to find ports from an arbitrary IP
protocol, if it even has such a concept). But apparently that latter
commit wasn't tested end-to-end enough. It had a lot of tests, but the
tests made assumptions about layering that either weren't true, or
regressed since 1.20. Notably, it didn't remove the (*Filter).pre
bidirectional filter that dropped all "unknown" protocol packets both
leaving and entering, even if there were explicit protocol matches
allowing them in.

Also, don't map all unknown protocols to 0. Keep their IP protocol
number parsed so it's matchable by later layers. Only reject illegal
things.

Fixes tailscale#6423
Updates tailscale#2162
Updates tailscale#2163

Change-Id: I9659b3ece86f4db51d644f9b34df78821758842c
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request L1 Very few Likelihood P3 Can't get started Priority level T0 New feature Issue type
Projects
No open projects
Tailscale v1.12.0
Awaiting triage
Development

No branches or pull requests

3 participants