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

Incorrect handling of link local addresses and IPv6 scope #3813

Open
2 of 4 tasks
wfurt opened this issue Aug 12, 2023 · 0 comments
Open
2 of 4 tasks

Incorrect handling of link local addresses and IPv6 scope #3813

wfurt opened this issue Aug 12, 2023 · 0 comments
Milestone

Comments

@wfurt
Copy link
Member

wfurt commented Aug 12, 2023

Describe the bug

I created listener to listen on LLA fe80::7260:3b3d:bd2b:c845%6 and I open connection to it from same host.
On Windows local & remote addresses are correct and have scope as expected.

Client [fe80::7260:3b3d:bd2b:c845%6]:65289 [fe80::7260:3b3d:bd2b:c845%6]:65288
Server [fe80::7260:3b3d:bd2b:c845%6]:65288 [fe80::7260:3b3d:bd2b:c845%6]:65289

Same test on Linux:

Client [fe80::9c3a:b64d:6249:1de8]:54041 [fe80::9c3a:b64d:6249:1de8%2]:48276

Client is missing scopeID.

Interestingly, in some cases scope is set for addresses other than LLA.
Connecting to ::1 on Linux and Windows

Server [::1%1]:41741 [::1]:50859
Server [::1%1]:65292 [::1]:65293

loopback address has scope set even if it should not.

In all cases so far the connection succeeded but it makes it difficult for companions and I'm. to sure (yet) about multi-machine setup where the scope is essential for selecting correct interface.

Affected OS

  • Windows
  • Linux
  • macOS
  • Other (specify below)

Additional OS information

No response

MsQuic version

main

Steps taken to reproduce bug

make simple listener and connect to it using LLA.
observe addresses on established connection on both client & server.

Expected behavior

LLA should always have scope set, global addresses should not have scope set.
Windows and Linux would have same outcome for same scenario.
Local and remote address on client and server should be exactly opposite.
But there should not be differences in scope.

Actual outcome

scope is missing in some cases on Linux. It can be incorrectly set for global addresses.

Additional details

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants