DDNS技术总结

一、DDNS简介

1. 1.全称

Dynamic Domain Name Server,动态域名服务

1.2 作用

将动态变化的ip和固定的域名进行绑定,即使ip发生变化,通过域名依然能够访问到对应设备。

二、DDNS原理

DDNS组网环境如下,采用Client-server的模式(图片来源于百度网络,侵删)。

2.1 DDNS客户端

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

2.2 DDNS服务器

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

2.3 报文交互方式

DDNS客户端向 DDNS服务器发送TCP连接请求,如果连接建立成功,则向DDNS服务器发送 DDNS更新请求,并统计发送 DDNS 更新请求报文的次数;

DDNS服务器收到DDNS 客户端发送过来的DDNS更新请求后,通知DNS服务器进行域名更新,并且向 DDNS客户端发送应答报文。

2.4 更新和获取绑定信息

路由器的DDNS服务依靠脚本dynamic_dns_updater.sh定期更新上报ip绑定信息。

主要分为下面三步:

1.获取ip地址: get_local_ip LOCAL_IP

2.判断ip是否发生了变化: [ "$LOCAL_IP" != "$REGISTERED_IP" ]

2.更新ip地址: send_update "$LOCAL_IP"

3.sleep等待: sleep $CHECK_SECONDS &

三、 API接口分析

原生openwrt中

在原生openwrt上,所有服务提供商的对应DDNS服务API保存在/usr/share/ddns/default中,用户自定义配置的存放在/usr/share/ddns/custom文件夹下。

具体内容如下:

花生壳的oray.com.json

参数解释:

[USERNAME]:服务提供商注册的用户名

[PASSWORD] :服务提供商注册的密码

[DOMAIN]:需要要更新的域名

[IP]:要更新的域名对应的新ip地址

在配置完并启动DDns服务后,路由器通过dynamic_dns_updater.sh提供的守护进程,动态更新和获取域名的绑定信息(ip),具体实现逻辑见源码。

:THE END

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值