Comments (7)
I had a look into the code as I was interested in checking for support of the SRV-RR.
SRV-RRs might give some advantages:
- you can define priorities --> e.g. 10 hosts with equal prio to shuffle around
- you can define weighting inside a priority --> not sure if this can be useful
- each referenced host can define it's own port --> flexible configuration than having to use the same port on all brokers in the RoundRobin-list
I think the SRV-RR lookup should be supplied with a separate parameter which can not be combined with "-b".
from tunneldigger.
What you're suggesting is to read all entries in a RRset and then add every one of the items to the list of broker candidates, right?
Because that would be something different than Round Robin DNS, which the tunneldigger client already does.
from tunneldigger.
Yes, exactly.
from tunneldigger.
Okay, looking at it, I think it can be done.
I found a corner case that would need to be checked:
Currently, there is a defined maximum of 10 brokers that the client will handle.
Given a situation in which a round-robin DNS query yields more than 10 brokers. What should the defined behaviour be?
Also we'd need to think about the case where more than one DNS name was given as a parameter and the collective number of responses is > 10. Do we just choose the first 10 or do we balance between the given DNS responses?
from tunneldigger.
It also depends on what type of broker selection is being used. I use 'usage' based.
With 'usage' and 'random' , I think it would make more sense to balance between the given dns entries.
But if the 'first' broker selection is used, then definitely go through all the dns entries of the first hostname before the others.
The limit of 10 brokers is a separate issue. In my personal situation it does not have an impact. But maybe it would be nice to allow setting MAX_BROKERS at compile time.
from tunneldigger.
The wikipedia link for "SRV record" is https://en.wikipedia.org/wiki/SRV_record
from tunneldigger.
I have recently modified the Freifunk tunneldigger init and hotplug scripts to be able to use SRV records. The changes can be seen here freifunk-berlin/falter-packages@29943b0
Instead of having tunneldigger itself get an SRV record, the init and horplug scripts get the SRV record and add them each as single "-b" options.
from tunneldigger.
Related Issues (20)
- [Docs] max_tunnels HOT 3
- Failed to send() control packet HOT 5
- High CPU load due to a single misbehaving client HOT 2
- Change rate limiting to be per-UUID HOT 1
- No releases since 2017? HOT 3
- The client can get stuck in a high-frequency retry loop despite working brokers HOT 10
- TC/Traffic Control: Error: Invalid handle. HOT 1
- Review CI Tooling HOT 19
- Newer Kernels log error "recv short packet" for every broker packet HOT 7
- How does tunneldigger work compared to l2tp? HOT 5
- TC/Traffic Control does not always work HOT 1
- Proposal: Broker usage check on reconnect
- tunneldigger-broker: connection fails with `Error: Invalid handle.` HOT 3
- Silence `tc` output when `ignore_fails` is true
- teardown script crashes tunneldigger-broker HOT 5
- broker throwing OSError on creation of timers HOT 1
- Frequent reconnection of clients HOT 70
- setup.py is deprecated HOT 4
- Broker: Wait for interface to have an IP before listening HOT 2
- Update CI to ubuntu-22.04
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 tunneldigger.