带有rest api的简单dns服务器,仅用于本地主机
minidns的Python项目详细描述
Date: | 2013-09-11 |
---|---|
Author: | Doug Winter <doug.winter@isotoma.com> |
Website: | http://github.com/yaybu/minidns |
说明
支持本地开发的小型DNS服务。默认情况下,服务器侦听 在5053号港口。iptables用于将请求转发到localhost:53到localhost:5053。
dns服务提供递归查询,因此您可以继续像往常一样使用dns。
然后可以设置新的权威域和可用的记录 在当地。
例如:
$ minidns start $ host www.example.com www.example.com has address 93.184.216.119 www.example.com has IPv6 address 2606:2800:220:6d:26bf:1447:1097:aa7 $ minidns add example.com $ minidns record example.com a www 192.168.0.10 $ minidns show example.com www 192.168.0.10 $ host www.example.com www.example.com has address 192.168.0.10 $ minidns stop $ host www.example.com www.example.com has address 93.184.216.119 www.example.com has IPv6 address 2606:2800:220:6d:26bf:1447:1097:aa7
用法:
Usage: minidns [options] command daemon control commands: start start the minidns server and forward localhost:53 to it stop stop the minidns server and remove iptables rules zone commands: add name add a new local authoritative zone "name" del name delete the local authoritative zones "name" list list all authoritative zones show name list records for the zone "name" record commands: record zone a host [data] create A record record zone del host delete record e.g. record example.com a www 192.168.0.1 Options: -h, --help show this help message and exit -c CONFIG, --config=CONFIG path to configuration file -n, --no-divert Do not use iptables to divert port DNS locally
iptables
作为启动和停止的一部分(除非提供-n开关),minidns 对iptables nat配置进行一些更改。这就好像 您正在使用localhost作为您的名称服务器(这是很常见的 配置)。
iptables命令用于将localhost:53重新路由到minidns端口,因此 它可以透明地占用您的本地dns。
这个机制被选为最不具侵入性的方式,在 尤其是它不会对/etc中的文件进行任何更改。
API
minidns主要用于自动部署系统,并且 为这些系统提供一个简单的rest api。
一般来说,成功的请求应该具有以下响应代码:
- GET requests return 200 on success
- PUT requests return 201 on success
- DELETE requests return 204 on success
Web端口上的可用资源是:
根资源:/
get
返回受管区域的列表,每行一个,用n分隔。例如:
GET / 200 OK example.com foo.com
可能的状态码响应为:
- 200 Success
域资源:/域
获取
返回此域中的记录列表,每行一条,用n分隔。例如:
GET /example.com 200 OK A www 192.168.0.1
可能的状态码响应为:
- 200 Success
- 404 Domain not found. The domain has not been created as an authoritative zone in minidns.
放置
创建此域。例如:
PUT /example.com 201 Created
可能的状态码响应为:
- 201 Created (success)
- 200 Domain already exists, unchanged
删除
删除此域。例如:
DELETE /example.com 204 No Content
可能的状态码响应为:
- 204 Success
- 404 Domain not found. The domain has not been created as an authoritative zone in minidns.
记录资源:/域/主机
获取
返回记录的值。例如:
GET /example.com/www 200 OK A 192.168.0.1
可能的状态码响应为:
- 200 Success
- 404 Record not found
放置
创建记录。有效负载应该是由空格分隔的类型和数据。例如:
PUT /example.com/www A 192.168.0.1 201 Created
可能的状态码响应为:
- 201 Created (success)
- 404 Zone not found
- 400 Malformed request. The reason message will provide more details.
删除
删除记录。例如:
DELETE /example.com/www 204 No Content
可能的状态码响应为:
- 204 Success
- 404 Domain or record not found
配置文件
不需要配置文件-提供了合理的默认值。请注意,默认情况下,google的dns服务器用作转发器。
如果您愿意,可以提供以下格式的文件:
[minidns] forwarders = 8.8.8.8 8.8.4.4 udp_port = 5053 tcp_port = 5053 www_port = 5080 pidfile = minidns.pid logfile = minidns.log
许可证
2013 ISOtoma有限公司版权所有
根据apache许可证2.0版(以下简称“许可证”)授权; 除非符合许可证,否则您不能使用此文件。 您可以在
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。