DNS BIND之nsupdate介绍和使用 DNS BIND之nsupdate介绍和使用

这篇具有很好参考价值的文章主要介绍了DNS BIND之nsupdate介绍和使用 DNS BIND之nsupdate介绍和使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

DNS BIND之nsupdate介绍和使用

nsupdate是一个动态DNS更新工具,可以向DNS服务器提交更新记录的请求,它可以从区文件中添加或删除资源记录,而不需要手动进行编辑区文件。
1.使用方法
nsupdate [ -d ] [ [ -y keyname:secret ] [ -k keyfile ] ] [ -v ] [ filename ]
1)参数说明:
-d 调试模式。
-k 从keyfile文件中读取密钥信息。
-y keyname是密钥的名称,secret是以base64编码的密钥。
-v 使用TCP协议进行nsupdate.默认是使用UDP协议。
2)输入格式:
nsupdate可以从终端或文件中读取命令.每个命令一行.一个空行或一个”send”命令,则会将先前输入的命令发送到DNS服务器上.
3)命令格式:
server servername [ port ]
发送请求到servername服务器的port端口.如果不指定servername,nsupdate将把请求发送给当前去的主DNS服务器.
如:
> server 192.168.36.54 53
local address [ port ]
发送nsupdate请求时,使用的本地地址和端口.
zone zonename
指定需要更新的区名.
class classname
指定默认类别.默认的类别是IN.
key name secret
指定所有更新使用的密钥.
prereq nxdomain domain-name
要求domain-name中不存在任何资源记录.
prereq yxdomain domain-name
要求domain-name存在,并且至少包含有一条记录.
prereq nxrrset domain-name [ class ] type
要求domain-name中没有指定类别的资源记录.
prereq yxrrset domain-name [ class ] type
要求存在一条指定的资源记录.类别和domain-name必须存在.
update delete domain-name [ ttl ] [ class ] [ type [ data... ] ]
删除domain-name的资源记录.如果指定了type和data,仅删除匹配的记录.
update add domain-name ttl [ class ] type data…
添加一条资源记录.
show
显示自send命令后,所有的要求信息和更新请求.
send

将要求信息和更新请求发送到DNS服务器.等同于输入一个空行.

2.使用实例
修改named.conf中test.com zone添加
allow-update { any; };

添加记录

./bind/bin/nsupdate
> server 192.168.36.54
> update add nsupdate.test.com 6000 IN A 192.168.0.2
> send
> quit

测试

dig @192.168.36.54 nsupdate.test.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> @192.168.36.54 nsupdate.test.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39140
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;nsupdate.test.com.             IN      A

;; ANSWER SECTION:
nsupdate.test.com.      6000    IN      A       192.168.0.2

;; AUTHORITY SECTION:
test.com.               86400   IN      NS      dns.test.com.

;; ADDITIONAL SECTION:
dns.test.com.           86400   IN      A       192.168.36.189

;; Query time: 1 msec
;; SERVER: 192.168.36.54#53(192.168.36.54)
;; WHEN: Sat Apr 18 22:21:43 2015
;; MSG SIZE  rcvd: 85

添加成功。

3.通过TSIG key实现nsupdate功能
1、使用dnssec-keygen -a HMAC-MD5 -b 128 -n USER testkey命令来生成密钥。
  dnssec-keygen:用来生成更新密钥。
    -a HMAC-MD5:采用HMAC-MD5加密算法。
    -b 128:生成的密钥长度为128位。
    -n USER testkey:密钥的用户名为testkey。
2、密钥生成后,会在当前目录下自动生成两个密钥文件***.+157+xxx.key和***.+157+xxx.private。
3、查看两个密钥文件的内容:
  cat ***.+157+xxx.key
  cat ***.+157+xxx.private
4、通过同样的方法生成test2key。
5、添加密钥信息到DNS主配置文件中 
6、将test.com区域中的allow-update { none; }中的“none”改成“key testkey”;
  将“none”改成“key testkey”的意思是指明采用“key testkey”作为密钥的用户可以动态更新“test.com”区域。

view"view-test"in{
	match-clients{keytestkey;acl1;};//keytestkey;以及acl1;zone"test.com"{
	type master;
	file "test.zone";
	allow-update{
			keytestkey;
		};
	};
};

实现通过正确的key和acl对两个view进行nsupdate。但bind的acl匹配原则是:"由上而下,匹配即退出",并且match-clients{}中的参数是"or"的关系。当执行nsupdate命令时,执行端(一般都是主dns或管理机)所用的ip地址不应该包含在acl1或者acl2中(最后一个view的match-clients{aclx}可包含也可不包含),否则按照以上原则,执行端主机只能访问包含其ip的view了,其它view的访问都将被拒绝。
按照以上配置运行bind,在bind主机上执行nsupdate,
命令是:nsupdate -y test2key:epYaIl5VMJGRSG4WMeFW5g== (或 -k /etc/test_key)
>zone test.com
>update add abc.test.com 86400 A 192.168.99.100
>send
返回错误结果:update failed: REFUSED
错误分析:执行nsupdate的主机地址包含在acl1中, 进入了view "view-test"执行更新,显然key不匹配,被拒绝。
解决办法:在view "view-test"的match-clients{}中将执行nsupdate主机的地址(bind主机地址)排除掉,
命令:match-clients{ key testkey; !127.0.0.1; !x.x.x.x; acl1;} //x.x.x.x填写bind主机真实ip地址文章来源地址https://www.toymoban.com/news/detail-478961.html

到了这里,关于DNS BIND之nsupdate介绍和使用 DNS BIND之nsupdate介绍和使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux:DNS服务(bind)

    目录  环境 主服务器和从服务器的配置环境 主服务器          从服务器  主DNS配置文件 dns从服务器配置 如果你只需要主dns服务器那么你只需要挑着主dns服务器配置看即可 我这里使用了4台虚拟机,你也可以不使用这么多根据你的电脑性能去调整 他们必须要在同一个网

    2024年02月10日
    浏览(35)
  • Centos-Linux配置dns(bind,named)

    DNS服务的安装包是bind软件的安装(配置好软件仓库的前提下): 它的服务名为named,设置DNS服务开机时启动: 关闭SELinux的强制模式与防火墙: 1. 主配置文件/etc/named.conf 2. 区域配置文件: /etc/named.rfc1912.zones 正向解析区域: 反向解析区域: 常见区域类型: hint 根区域 master 主区域 (主服务

    2024年02月03日
    浏览(34)
  • Centos7搭建DNS(bind)服务器,配置域名泛解析记录

    前言就是没钱买域名,学习成本较大 (穷批哭死) ,再加上windows个人版的上的hosts文件不支持域名泛解析和多租户的域名解析,windows server环境又需要秘钥提供不支持长期学习,所以出一篇文章记录一下。 客户机:windows个人环境即可 服务器:两台nginx服务器(centos7)、一台

    2024年02月04日
    浏览(50)
  • 一个基于.NET7的开源DNS服务 DnsServer 的部署使用经验分享

    接上篇 docker-bind 的使用搭建了一个 dns 服务,本篇将介绍另外一款 DnsServer 的部署和使用,更专注,更轻量。 基于 .NET 7 实现 ,支持 Windows、Linux、macOS 和 Raspberry Pi 开箱即用,使用简单,高性能 提供 Web 控制台,可视化管理,查看使用情况 提供了对网络的额外控制,允许阻止

    2024年02月05日
    浏览(31)
  • (十六)call、apply、bind介绍、区别和实现

    函数中的this指向是在函数被调用的时候确定的,也就是执行上下文被创建时确定的。在一个执行上下文中,this由 调用者 提供,由 调用函数 的方式来决定。 arguments只在函数(除了箭头函数)中存在的类数组参数对象,储存了我们传入的所有参数。 call(this, 参1, 参2, ...) ,第

    2024年04月23日
    浏览(33)
  • Could not create server TCP listening socket *:6379: bind: 在一个非套接字上尝试了一个操作 。

    Could not create server TCP listening socket *:6379: bind: 在一个非套接字上尝试了一个操作 。 原因: 启动时需要指定配置文件 Could not create server TCP listening socket 127.0.0.1:6379: bind: 操作成功完成。 网上的: redis-cli.exe , shutdown , exit 根本不好使。 网上的:redis根目录新建 Logs 也不好使。

    2024年02月12日
    浏览(30)
  • 动态dns是什么意思?

    动态DNS简称DDNS,是指把域名与变动的IP地址对应起来的系统。通常情况下,一个域名对应着一个固定的IP地址,但在某些时候,服务器的IP地址可能是随时变动的,例如使用ADSL拨号上网的方式,获取到的IP地址每一次都不一样。常规的DNS解析就无法满足使用需求,而动态DNS系统

    2024年02月08日
    浏览(85)
  • C++ 使用动态内存创建一个类

    使用动态内存的一个常见原因是允许多个对象共享相同的状态。 例如,假定我们希望定义一个名为 Blob 的类,保存一组元素。与容器不同,我们希望 Blob 对象的不同拷贝之间 共享相同的元素 。即,当我们拷贝一个 Blob 时,原 Blob 对象及其拷贝应该 引用 相同的底层元素。现

    2024年02月01日
    浏览(30)
  • 路由器动态dns怎么设置?

    大家所知道拨号上网都是动态获限的一个IPV4的公网地址,然后才能浏览网页,沟通世界;之所以动态分配拨号上网的地址,一个重要原因是IPV4有限;如果到以后发展到IPV6,那么可以不必这样动态IP分配了;那么路由器动态dns怎么设置?下面小编就为大家详细介绍一下,一起来

    2024年02月07日
    浏览(32)
  • 什么是DNS?DNS基础知识介绍

    DNS是Domain Name System的简写,即域名系统,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。 上面的解释很多普通的用户可能无法理解,这里我们来简单的分析一下,让大家知道DNS是用来干什

    2024年02月08日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包