Hi Conrad,
We will see. What is your gitlab (
Hi Daniel,
I spent some time trying to create a similar patch for the refactored
geoip module, but it would become very awkward, obsoleting the reason
why I implemented it in there in the first place. Would you accept a
patch adding a new module as well?
Thanks a lot,
Conrad
On 2/19/19 2:29 PM, Daniel Salzman wrote:
> Hi Conrad,
>
> First, please wait until we finish some optimizations in the module (in the order of
weeks) :-)
> Then our Gitlab is the best place for further collaboration. Just your account has to
be authorized.
>
> Daniel
>
> On 2/19/19 2:02 PM, Conrad Hoffmann wrote:
>> Hi Daniel,
>>
>> thanks for the support. I am happy to try to create a real patch,
>> including documentation and stuff. What would be the procedure for this?
>> Stick to this mailing list? Or would your Gitlab instance be the place
>> to handle such things?
>>
>> Thanks a lot,
>> Conrad
>>
>> On 2/19/19 11:03 AM, Daniel Salzman wrote:
>>> Hi Conrad,
>>>
>>> Thanks for the patch :-) If such a feature is useful for someone, we could
extend
>>> the geoip module. I think it would be better than creating another module
with
>>> similar functionality.
>>>
>>> Best,
>>> Daniel
>>>
>>> On 2/18/19 6:18 PM, Conrad Hoffmann wrote:
>>>> Hi there!
>>>>
>>>> At work, we make use something often referred to as "weighted
records",
>>>> a feature offered by many managed DNS vendors. We use it to implement
>>>> e.g. a canary environment, where we test changes on a small portion of
>>>> production traffic.
>>>>
>>>> I played around with knot-dns for a bit (quite impressed), and figured
>>>> it might be nice to implement such a feature for it. Turns out, the code
>>>> is so amazing that if you abuse the infrastructure of the geoip module,
>>>> it only takes an hour (very impressed).
>>>>
>>>> If you are interested in trying it, read on further below, but just to
>>>> state my intention: I was wondering if such a feature would be of
>>>> interest at all?
>>>>
>>>> I realize the geoip module may not be the appropriate for such an
>>>> implementation, consider this merely a demo of sorts.
>>>>
>>>> So here goes nothing:
>>>>
>>>> 1. apply attached patch
>>>> 2. config file snippet:
>>>>
>>>> mod-geoip:
>>>> - id: test
>>>> config-file: /etc/knot/test.conf
>>>> ttl: 600
>>>> mode: weighted
>>>>
>>>> zone:
>>>> - domain:
example.com.
>>>> file: "/var/lib/knot/example.com.zone"
>>>> module: mod-geoip/test
>>>>
>>>> 3. /etc/knot/test.conf:
>>>>
>>>>
lb.example.com:
>>>> - weight: 10
>>>> CNAME:
www1.example.com.
>>>> - weight: 5
>>>> CNAME:
www2.example.com.
>>>>
>>>> Results in this:
>>>>
>>>> conrad@deltree ~/hack/knot-dns $ for i in $(seq 1 100); do dig
>>>> @192.168.1.242 A
lb.example.com +short; done | sort | uniq -c
>>>> 68
www1.example.com.
>>>> 32
www2.example.com.
>>>> conrad@deltree ~/hack/knot-dns $ for i in $(seq 1 100); do dig
>>>> @192.168.1.242 A
lb.example.com +short; done | sort | uniq -c
>>>> 72
www1.example.com.
>>>> 28
www2.example.com.
>>>> conrad@deltree ~/hack/knot-dns $ for i in $(seq 1 100); do dig
>>>> @192.168.1.242 A
lb.example.com +short; done | sort | uniq -c
>>>> 66
www1.example.com.
>>>> 34
www2.example.com.
>>>>
>>>>
>>>> You get the idea. Anyways, any thoughts and feedback would be greatly
>>>> appreciated.
>>>>
>>>> Thanks a lot,
>>>> Conrad
>>>>
>>>>
>>>
>