ddns
传统的域名服务是通过静态绑定域名和ip,在用户发起dns请求时向用户响应对应的ip地址(反向查询中的域名记录)来实现域名解析服务。在这个应用场景中,用户需要有固定的ip地址(专线),但实际上企业专线只有三分之一的时间(工作时间)会产生流量,其余时间基本为零,造成网络资源的极大浪费。
如果企业通过拨号接入网络或者动态接入互联网,成本会大大降低,但相应的问题是这种动态接入的ip地址往往是随机分配的(不断变化)。如果企业有一个固定域名,并且在连接企业到互联网的wan端口的ip发生变化时自动更新,那么问题就可以解决了,这就是ddns的由来。
如下图所示:我们在互联网上有一个提供动态域名解析的服务器,企业注册了两个固定域名,北京分公司(bj.branch.com)和成都分公司(光盘.branch.com)。成都分行sd-wan网关上线时,从isp处获取一个临时公共ip地址,并通过nsupdate将临时地址更新到动态域名解析服务器,使动态域名服务器拥有该分行完整的dns记录。
当北京分公司的sd-wan想与成都分公司建立vpn连接时,首先向动态域名服务器询问cd.branch.com的ip地址是什么,然后使用获得的ip地址与成都分公司建立vpn连接。
在整个过程中,我们的ddns服务器和每个分支机构的sd-wan网关都进行了修改(当地址发生变化时,它可以向支持动态更新dns记录的ddns服务器发送记录更新请求)。
在这种情况下,成都和北京分行不需要申请专线(获取固定ip地址),而是可以相互通信或提供服务(如www、mail、ftp等)。)通过使用拨号接入或公网,大大节省了企业的网络费用。
在linux服务器主机10.10.11.250上设置ddns服务器
1.安装域名系统服务器
yum安装绑定-y
2.为ddns创建一个密钥,并获得ddns的密钥字符串
域名系统安全扩展(dnssec)的dns安全扩展是由ietf提供的一系列dns安全认证机制(参考rfc2535)。dnssec是一个安全机制,旨在解决域名欺骗和缓存污染。dnssec将数字签名信息添加到域名系统消息的数据中。客户端收到响应消息后,通过检查签名信息来判断响应数据的权威性和真实性以及数据源的可靠性和完整性,从而防止针对dns的相关攻击。
在liunx下使用以下命令生成两个密钥(公钥和私钥)
dnssec-keygen -a hmac-md5 -b 128 -n用户测试
其中hmac-md5为加密算法,128为密钥位数(与所选加密算法相关,hmac-md5为1-512位),user为密钥所有者类型(host为与主机相关的密钥,user为与用户相关的密钥,zone区域相关的密钥)
当命令执行时,ktestmesg。将打印157 46499,其中157是算法标识,46499是密钥标识
执行会持续一段时间。执行完成后,将在目录中生成两个文件(私钥和公钥)
ls -l | grep 46499
-rw - 1根根50 feb 14 00:07 ktestmesg。157 46499.key
-rw - 1根根165 feb 14 00:07 ktestmesg。157 46499.private
猫。/ktestmesg。157 46499.key
testmesg。in key 0 3 157 cbgzw 9 miba cibwnw du6g==
3.配置域名系统服务器以允许更新记录
将生成的公钥中的密钥放入命名的. conf文件中
选项{
… .
key testmesg {
算法hmac-md5;
secret " cbgzw 9 miba cibwnw du6g==";
};
….
在需要更新记录的区域配置加密字符串
区域“test.com”in {
…
允许-更新{
key testmesg
};
完成后,重新启动域名服务
4.当客户端需要动态更新主机ip时,或者当dhcp服务器分配地址时,更新主机ip。
vim /etc/dhcp/dhcpd.conf
更新式过渡;
key testmesg {
算法hmac-md5;
secret " cbgzw 9 miba cibwnw du6g==";
}
test.com区{
ginx " key testmesg
小学10 . 10 . 11 . 250;
}
完成后重新启动dhcp服务