Page 1 of 1

DNS Administration

Posted: Thu Sep 21, 2017 10:43 pm
by dabgdk
When a program such as a web browser is instructed by the computer user to visit a web page, a lot happens "under the hood".

The browser (typically) provides the operating system with a name, and expects an address.

Let's say that, when this happens (dnsapi.dll in windows; query.c in reactos source code, function DnsQuery_A or DnsQuery_W), the name is checked against a "rule" file or registry setting. (My background is strong in Linux / Unix, so I'm going to explain using the 'file' method).

The structure of that file might look like this:

Code: Select all

Block *
Log Block
Allow *;

This would work the way firewall rules typically work: the code checks the current requested name against each item on the list, going down, until it finds a match, at which point it follows the directions.

A "blocked" request could be returned some sort of "permission denied" error.

Overall, the goal is to give computer administrators greater control over DNS. Would it be useful? I would appreciate such functionality on my OS.

How difficult would this be to implement? I've looked into doing this on Windows, but as Windows is closed source, getting something like this to function reliably (hooking anyone?) seems difficult.

Re: DNS Administration

Posted: Tue Sep 26, 2017 1:37 am
by dabgdk
In addition to the above, perhaps it could eventually be possible to handle name requests based on username by using multiple config files or data sources (remote database of some kind?).

Each user on the local machine could have their own "data source" or file (and each system user, too).

That's probably a long way in the future. Just implementing the first post would be a great step.

Re: DNS Administration

Posted: Tue Sep 26, 2017 9:58 am
by dizt3mp3r
Dab, ReactOS devs have enough on their plate just to implement ReactOS to server 2003 standards. Having the space and time to prioritise new functionality will only be able to occur some point after ReactOS becomes usable/stable. Such changes/improvements can be introduced at a point after that. If you introduce the code yourself and it is accepted (it must not break anything else and it needs to be agreed by the team) then it might just make the grade and be accepted into ReactOS.