Comments (6)
Followup, not sure if this is true of all BSDs, but I'm told that OpenBSD intentionally doesn't support dual-stack sockets. So the fix here is to listen on two sockets, one of which is bound to IPv4, and the other to IPv6.
This is tedious but not technically difficult to do. The bigger question is how to handle it in the config. We may need to support multiple listen addresses, or else figure out that the undefined address is used (and then listen on all addresses in such cases). If we allow for multiple addresses, then we need to handle the case where someone configures multiple addresses of the same type, which quickly becomes complicated. Perhaps, in the short term, we should only use a listen port (and then listen on all addresses on both IPv4 and IPv6), until the multiple address question is answered.
from yggdrasil-go.
It sounds like another alternative is to do nothing, and continue to only listen on all IPv6 addresses on OpenBSD. OpenBSD users who need to listen on IPv4 could set up a 4-to-6 relay, or something like that.
from yggdrasil-go.
If we do nothing then the user can fix this with relayd using something like this, as trn mentioned in the Matrix channel:
relay 6-to-4 {
forward to 127.0.0.1 port 999
listen on fd00::1 port 999
}
This isn't ideal but it does mean we aren't adding more platform-specific behaviour than is required. It'd be worth seeing if this is also true on FreeBSD and NetBSD.
from yggdrasil-go.
Some quick research:
- FreeBSD 11
netstat -an
showstcp46
/udp46
. Accepts connections on both::1
and127.0.0.1
. - NetBSD 7.1.1
netstat -an
showstcp6
/udp6
. Accepts connections on both::1
and127.0.0.1
. - OpenBSD 6.2
netstat -an
showstcp6
/udp6
. Accepts connections on::1
but not127.0.0.1
.
Seems that this issue is specific to OpenBSD.
from yggdrasil-go.
I guess it should be enough for now to provide a workaround in the OpenBSD documentation.
from yggdrasil-go.
#57 covers this well enough for now, I guess.
from yggdrasil-go.
Related Issues (20)
- Feature request: socks+tls HOT 2
- GoLang 1.21 build error HOT 2
- 0.5.1 inconclusive error reporting during TUN device setup HOT 4
- admin unix-socket binds correctly only to a specific path HOT 2
- Error empty when connecting to old node HOT 1
- Silent crashes in Windows service mode
- panic: this should never happen HOT 4
- Panic when MulticastInterfaces/Regex has errors.
- Query all peers on the network HOT 2
- Yggdrasil on OpenWrt HOT 8
- use fake dns and long domain name to replace ipv6 for collision immune HOT 19
- syslog size for public peer HOT 9
- bloom filter crash in ironwood causes yggdrasil to panic (was "panic: this should never happen") HOT 7
- Unix socket peerings break `yggdrasilctl getpeers` HOT 2
- lack of result checking for hex.DecodeString in many places.
- Panic if the key length in debug_ requests exceeds the maximum.
- Yggdrasil sites are not opening. OpenWrt HOT 4
- Allow a configurable maximum backoff
- panic: this should never happen HOT 2
- Performance decrease in 0.5+ HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yggdrasil-go.