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
>>
>>
>