文章目录

  • DNS中继服务器的基本功能
  • 层次化的域名空间
    • zone与domain(区与机构域)
  • DNS中继服务器的运行过程
    • 试验调试信息1级(-d)运行情况
    • 试验调试信息2级(-dd)运行情况

声明:本博文用到的所有图片均来源于博主学校,仅供学习使用

DNS中继服务器的基本功能

首先明确中继器的概念,想象一下赚差价的中间商,DNS客户端明明可以直接访问DNS本地服务器得到自己想知道的域名的IP地址,为了让我们明确DNS的整个运作流程,于是课程设计让我们做出一个中间商——DNS中继服务器。倒卖一样的IP地址,只是中继服务器的货源没有本地服务器充足。
下图说明了三者的概念。

下图展现了当DNS中继服务器中IP地址充足(IP地址能直接在DNS中继服务器找到)时的操作

下图展现了DNS中继服务器IP地址不充足(在DNS中继服务器中找到不到对应的IP地址)时,DNS中继服务器会向厂家,也就是DNS本地服务器请求补货(补充未搜索到的IP地址进文件,下次再搜索相同域名就有对应的IP地址卖)

层次化的域名空间

zone与domain(区与机构域)

:一个独立的域名管理模块,通常在一个数据库中
机构域:域名树中在同一个节点下的所有节点处于该节点命名的机构域中
关系:区不一定等于机构域

DNS中继服务器的运行过程

1.打开命令行,输入ipconfig/all查询本机DNS服务器地址

找到当前处于连接状态的媒体的DNS服务器地址,记下

找到更改网络适配器选项

双击当前处于连接状态的图标,我是WLAN,双击后界面如下

选择属性,找到并点击IPv4

点击属性,按下图设置

试验调试信息1级(-d)运行情况

使用命令行窗口运行程序,先试验调式信息级别为1级,-d后接之前用ipconfig/all查询的本机原来的DNS服务器地址,不设置配置文件,使用默认配置文件,如下图:

因为没有清除之前的DNS缓存,可以使用ipconfig/displaydns命令查看当前dns cache的内容,可以看到在运行的样例程序的配置文件里没有的网址。

现在抓到的包和在wireshark里面的一样

现在刷新一下dns cache的内容

再查看dns cache内容,发现只有2条记录,这说明样例程序的中继功能做的没问题,在dns cache刷新后重新访问,在短时间内会重新从本地DNS服务器那里补IP地址。

检验一下样例程序的拦截功能,选择配置文件dnsrelay.txt中的一个ip地址设置为0.0.0.0的域名

打开另一个命令行端口,使用nslookup命令查询ip地址

对应的正在运行的样例程序端口出现如下信息:

虽然不知道加*号是什么意思
用wireshark看了一下182那行信息的包,没有answer,应该是个查询包

184那行是响应包,同样没有answer,但flag里显示no such name

目前不太清楚10.21.134.21是谁的地址,我猜测应该是DNS中继服务器的地址,它向本机DNS服务器10.3.9.45发送查询报,本机DNS向它回了一个响应报,说没有这个地址。这个地址一看就是生造的,自然是没有的,这说明本机DNS服务器返回信息没有问题。问题在于,样例测试程序收到在配置表里IP地址为0.0.0.0的包也会往外发。

现在试一个一看就知道是生造的IP地址的网址

下图是两个端口在输入nslookup test1命令后的结果,可以看出样例程序的DNS服务功能没问题,成功查到了设置在配置表里的IP地址。

就是会出现超时的情况

不好意思,刚才发现是因为我之前让中继器停下来看信息的时候,忘记让中继器程序运行,所以它现在输出一大堆错误。。。看样子停不下来了
重启程序,再次试验。这次成功找到test1的查询报和响应报

可以看到本地DNS服务器在flag里还是说没有test1这个域名,但是中继器返回了在配置表里的IP地址

虽然不明白样例程序在自己的配置表里都找到了域名为啥还是会向本地DNS服务器查询。

试验调试信息2级(-dd)运行情况


从输出的信息我们可以看出调试信息二级输出的信息比1级具体。
首先,先输出配置文件里的域名与IP地址

能看到有明显的收发包提示,有包的发送、接收方向和具体大小,还有16进制的包的全部内容的展现。还输出了报文每个字段的大小。感觉和wireshark功能差不多。debug的时候正好可以调用wireshark和-dd输出的信息比较。

小提示:这样运行完程序后,电脑重启的时候记得重新把本地的DNS服务器地址让它自动配置,不然连不上网。下次再运行的时候重复查找本地DNS服务器的地址,重新运行样例程序。

DNS中继服务器研究相关推荐

  1. dns服务器易语言,易语言dns中继服务器源码

    易语言dns中继服务器源码系统结构:读取中转数据,取端口,数据包处理,处理请求,查询数据接收,生成dns数据,分析域名,分析ip,分析数据包头,调转字节序_短整,分析数据包,取NAME,调转字节序_整 ...

  2. 在RHEL5下构建DHCP及DHCP中继服务器

    实验环境: 公司的内部网络划分为三个物理网段,并通过一台Linux网关服务器相互连接.为了提供集中化的地址分配管理,现需要构建一台DHCP服务器,在不增加硬件投资的情况下,为处于不同网段的客户机动态配 ...

  3. 构建DHCP及中继服务器

    案例需求 --公司的内部网络划分为3个物理网段,并通过一台Linux网关服务器相互连接.为了提供集中化的地址分配管理,现需要构建一台DHCP服务器,在不增加硬件投资的情况下,为处于不同网段的客户机动态 ...

  4. linux 小白启航之路-搭建linuxDHCP中继服务器

    废话不多说开始操作吧 首先要给服务器的网卡绑定一个ip 网卡配置文件放在 /etc/sysconfig/network-scripts/ifcfg-eth0 我们用vi编辑器进行修改 vi /etc/ ...

  5. 8.8.8.8,Google推出免费DNS解析服务器

    8.8.8.8,Google推出免费DNS解析服务器 Google今天又给了我们一个惊喜,并沉重的打击了OpenDNS:他们刚刚宣布向所有的互联网用户提供一组快速,安全并且完全免费的DNS解析服务器, ...

  6. 自建服务器同步软件,自建Syncthing中继服务器(私密传输或造福大众)

    一.介绍 我之前介绍了Syncthing,作为一款开源的文件同步程序,它的功能还是非常强大的,我也很高兴能看到它被越来越多的人知道和使用,前几天有位朋友留言说让我介绍下Syncthing的中继服务器的 ...

  7. 全球13台 DNS 根服务器,居然没有一台属于中国!

    域名系统是最重要的互联网服务之一,没有它,我们将无法访问在线内容,甚至无法发送电子邮件.每当我们尝试连接到其他网站或在线服务时,根 DNS 服务器都会帮助我们的计算机找到并到达我们想要的地址. DNS ...

  8. centos6.5环境DNS-本地DNS主从服务器bind的搭建

    centos6.5环境DNS-本地DNS主从服务器bind的搭建 在上一篇博客中我已经搭建好了一个本地DNS服务器,能够实现正向反向解析,那么我们只需要加入一台从DNS服务器即可完成,我们来开始配置主 ...

  9. CentOS7.4下建立DNS主从服务器(二)

    (一)DNS主从同步的原理: 1.master DNS服务器每次修改完成并重启服务后,将传送notify给所有的slave DNS服务器: 2.slave DNS服务器将查询master服务器的SOA ...

最新文章

  1. 【设计模式】命令模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )
  2. hdu 4350 2012 多校 - 6
  3. mysql 代替and_MYSQL OR与AND同时出现的用法
  4. 2021 ccpc 哈尔滨 G. Damaged Bicycle 状压 + 期望dp
  5. c++面向对象高级编程 学习四 静态、类模板、函数模板
  6. python基本语句
  7. 华为仿苹果字体_华为mate40系列再次霸榜DXO,网友:无敌是多么寂寞
  8. 程序员职场须知:公司如何衡量程序员的价值?别以为是经常加班!
  9. 【转载】12项职场缺陷行为你有吗?
  10. linux7.0安装过程详解,图解红旗Linux7.0安装过程.doc
  11. 树莓派安装系统并设置中文界面
  12. 中文文本校对源码java_文字校对应该怎么校对?
  13. java cxf调用webservice_Java调用WebService方法总结(7)--CXF调用WebService
  14. MUI框架学习——了解MUI
  15. 近红外光谱分析的原理、技术及其分析方法
  16. 【计算几何】求三角形外接圆的周长、面积公式
  17. 宝洁通过新的创意合作伙伴关系重新想象创意并重塑广告
  18. 高级珠宝Cartier
  19. “互联网+可视农业”模式有哪些?
  20. 明朝首辅/太师,辅佐明朝四代国之重臣杨士奇后世传人在松滋

热门文章

  1. 做SEO优化第十一步:如何设置外部链接优化
  2. 安装windows与Ubuntu双系统,并使用GRUB启动引导器
  3. 第十四届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组
  4. 使用Java打印字母菱形
  5. 【机器学习】关联规则挖掘算法 + 三大案例实战 + Apriori算法 + Python代码实现
  6. JavaEE项目实战_流程审批之二
  7. 目标检测——day66 Scaled-YOLOv4: Scaling Cross Stage Partial Network
  8. Flink(五):watermark简介
  9. 根据二叉树的先序遍历和中序遍历建立二叉树
  10. 基于STM32F429的语音识别交互系统