OpenWrt之ddns

深碍√TFBOYSˉ_ 2022-12-22 11:14 749阅读 0赞

OpenWrt之ddns

DDNS原理

利用DNS可以将域名解析为IP地址,从而实现使用域名访问网络中的主机。但是DNS仅仅提供了域名和IP地址之间的静态对应关系,当主机的IP地址发生变化时,DNS服务器没有动态地更新域名和IP地址的对应关系,此时如果仍然使用域名访问该主机,则通过域名解析得到的IP地址是错误的,从而导致访问失败。

动态域名系统(Dynamic Domain Name System, DDNS)用来动态更新DNS服务器上域名和IP地址之间的对应关系,从而保证通过域名解析到正确的主机IP地址。

DDNS采用客户端/服务器模型,由两部分组成,分别为DDNS客户端和DDNS服务器。

DDNS客户端:需要动态更新域名和IP地址对应关系的设备软件。因特网用户通常通过域名访问提供应用层服务的服务器,如 HTTP、 FTP 服务器。为了保证 IP 地址变化时,仍然可以通过域名访问这些服务器,当服务器的 IP 地址发生变化时,它们将作为 DDNS 客户端,向 DDNS 服务器发送更新域名和 IP 地址对应关系的 DDNS 更新请求 。

DDNS 服务器:负责通知 DNS 服务器动态更新域名和 IP 地址之间的对应关系。接收
到 DDNS 客户端的更新请求后, DDNS 服务器通知 DNS 服务器重新建立域名和 IP 地址之
间的对应关系。从而保证即使 DDNS 客户端的 IP 地址改变,网络用户仍然可以通过同样
的域名访问 DDNS 客户端主机提供的网络服务。

DDNS 配置

OpenWrt 通过 Ez-Ipupdate 软件来支持 DDNS,常用的 DDNS 配置在下表中做了详细
说明。 通过以下命令来安装 DDNS 客户端: opkg install ez-ipupdate









































名 称 类 型 含 义
enabled 布尔值 是否启动 DDNS 客户端
interface 接口名称 设置该 DDNS 所绑定的接口, DDNS 更新的域名所对应的 IP 地址 为该接口的主 IP 地址
service 字符串 服务类型,支持很多种 DDNS 更新协议,我们使用 gnudip
username 字符串 设置 DDNS 服务器的认证用户名
password 字符串 设置 DDNS 服务器的认证密码
hostname 字符串 绑定的域名后缀,一般为服务提供商域名

DNS 更新协议及算法

我们采用 Ez-Ipupdate 客户端和 GnuDIP 服务器来讲述 DDNS 更新认证算法。 GnuDIP
实际上有两个更新协议,原始更新协议采用客户端到服务器的直接 TCP 连接;另外一种则
适配原始协议到 HTTP 协议。 HTTP 协议对于一些动态 DNS 更新客户端实现起来更方便。
这两个协议均不能通过嗅探抓包软件找出明文密码,也不能使用捕获的报文来重放欺
骗更新服务器,即可以防止重放攻击。 Ez-Ipupdate 向 GnuDIP 更新的流程如图 11-8 所示。
( 1)客户端首先向服务器发起 TCP 连接请求,端口默认为 3495, GnuDIP 服务器可以
修改为其他端口。
( 2)一旦 TCP 连接建立,服务器将首先发送一个随机产生的 10 字符长度的字符串,
我们称之为 sessionKey。
( 3)客户端收到并读取服务器的认证字符串。然后使用下列算法来对密码和 nonce 进
行哈希。

  1. hashed_password=F(password, sessionKey)
  2. F(password, sessionKey)=MD5(MD5(password)+"."+sessionKey)

MD5 函数使用 MD5 算法对密码计算摘要值,然后将摘要值(二进制)转换为十六进
制(使用字符 0~ 9 和小写字母 a~ f)的字符串,字符串长度从 16 字节变为 32 字节。
● 首先计算出密码摘要值,并转换为十六进制数字。
● auth 拼接一个点“.”再拼接一个认证字符串 sessionKey(这个是服务器传输过来
的值)。
● 然后对整个拼接的字符串计算 MD5 摘要值,并转换为十六进制数字,我们称之为
认证字符串“hashed_password”。
● 将用户名、认证字符串、域名及地址组成认证信息向动态域名更新服务器 GnuDIP
发起请求,消息组成格式如下:
user_name:hashed_password:domain:0:address
( 4) GnuDIP 服务器收到请求后采用同样的算法计算认证字符串,并将计算结果和请

求的认证字符串进行比较,如果相同,则认证通过,更新域名和 IP 地址的对应关系,并
向客户端发送更新成功消息;如果不相同,则认证失败,发送更新失败消息。
在这里插入图片描述

注册消息的响应有以下两种情况。
● 1:表示登录出现错误,通常是密码错误。
● 0:更新成功。
IP 地址将注册为子域名 user_name.domain。假设服务器域名为 bjbook.net,那注册的
子域名将是 user_name.bjbook.net。 除了注册消息之外, DDNS 客户端和服务器之间还有两
种消息,分别为下线消息和查询消息。下线消息格式为:
user_name:hashed_password:domain:1
当前注册到 user_name.domain 的 IP 地址将被删除,这是下线请求,正式域名 user_
name.domain 将不再关联任何 IP 地址。 这条消息的响应有以下两种情况。
● 1:表示登录出现错误,通常是密码不正确导致。
● 2:成功下线。
查询消息格式为:
user_name:hashed_password:domain:2

客户端请求服务器确定客户端正在使用的 IP 地址,并注册到正式域名 user_name.
domain 上。这时 IP 地址将返回到客户端。这条消息的响应有以下/两种情况。
● 返回“1”, 表示登录出现错误,通常是密码不正确导致。
● 返回“0:address”表示成功地更新到提供的 IP 地址上。

发表评论

表情:
评论列表 (有 0 条评论,749人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ddn专线(ddn专线接入)

    DDN专线VoIP的优点有哪些? 1.节省长途电话费用 如从北京到纽约的长途电话费用是 18 元/分钟 的长话费用(传统通讯方式),那么 如果您的企业中有一条北京到纽

    相关 ddn(ddnnpap)

    DDN有什么解决方案? 在客户租用DDN网时,华环公司建议采用H6DVM型语音数据多功能复用器。该设备采用先进的语音压缩技术和时隙动态分配技术,在保证语音质量的前提下,提

    相关 OpenWrtddns

    OpenWrt之ddns DDNS原理 利用DNS可以将域名解析为IP地址,从而实现使用域名访问网络中的主机。但是DNS仅仅提供了域名和IP地址之间的静态对应关系,

    相关 OpenWRTprocd服务

    简介 Openwrt 支持模块化编程,增加新功能非常简单。但是一些基础模块必须包含, 它们是OpenWrt核心。如:实用基础库libubox、系统总线ubus、网络接口管