5-ipv6基础知识之-域名解析dns

2023-05-16

DNS域名解析过程比较简单,先看下IPV4下面的DNS,然后再看IPV6下面的DNS

1. IPv4 DNS


1.1 IPv4 DNS请求过程

在电脑上面ping www.taobao.com(如果已经访问过需要换一个网址,dns地址会被缓存,有可能不产生dns请求,直接请求ICMP包)

ping域名的过来,会先发送dns请求得到域名的IP,然后再发送ICMP包,测试数据可达性。

1.2 DNS数据包解析

  • DNS数据包封装在UDP报文中
  • 目的端口为53
  • 源IP为本地IPV4地址,目的IP为路由器192.168.18.1(自动),手动的话就是直接发送到手动设置的地址

DNS有两种报文:查询报文、回答报文,两者有着相同格式,下面就取报文中几个比较重要的字段进行说明

查询报文:

image

回答报文:
image

1.3 DNS查询报文-类型tpye字段

在发送DNS查询数据包的时候,会指定要查的类型,如IPV4地址就是A(使用ping命令),IPV6地址就是AAAA(使用ping6命令)。

类型助记符说明
1AIPv4地址
2NS名字服务器
5CNAME规范名称定义主机的正式名字的别名
6SOA开始授权标记一个区的开始
11WKS熟知服务定义主机提供的网络服务
12PTR指针把IP地址转化为域名
13HINFO主机信息给出主机使用的硬件和操作系统的表述
15MX邮件交换把邮件改变路由送到邮件服务器
28AAAAIPv6地址
252AXFR传送整个区的请求
255ANY对所有记录的请求

1.4 DNS回答报文-Answers字段

Flags中Answer RRs 为3 说明对应的Answers字段中将会出现3项解析结果.

Answers字段可以看成一个List,集合中每项为一个资源记录。

1.5 本地查看dns地址

在本地可以使用nslookup查看dns解析后的IPv4地址

linye@linye-ubuntu:~$ nslookup www.tianmm.com
Server:		127.0.0.1
Address:	127.0.0.1#53

Name:	www.tianmm.com
Address: 10.0.0.1

2. IPv6 DNS


IPv6对于DNS的支持是很简单的,只是将IPv4的域名解析和反向域名解析技术直接转换到IPv6环境中而已。

协议记录DNS映射
IPv4Awww.example.org A 206.123.31.200
IPv6AAAAwww.example.org AAAA 2001:410:1:1:250:3eff:fee4:1

例如IPv6地址为2001:410:1:1:250:3eff:fee4:1,反向查询域名为1.0.0.0.4.e.e.f.f.f.e.3.0.5.2.0.1.0.0.0.1.0.0.0.0.1.4.0.1.0.0.2.IP6.ARPA

2.1 DNS数据包解析

  • DNS数据包封装在UDP报文中
  • 目的端口为53
  • 源IP为本地IPV6地址,自动dns的话目的IP为路由器下发的dns-server(dibbler里面设置),手动的话就是直接发送到手动设置的地址如2000::ff或者2000::fe(路由器的/etc/config/network里面设置)

2.2 本地查看dns地址

在本地可以使用nslookup查看dns解析后的IPv6地址

ubuntu上

linye@linye-ubuntu:~$ nslookup 
> set type=AAAA
> gw.zihome.com
Server:		127.0.0.1
Address:	127.0.0.1#53

gw.zihome.com	has AAAA address 2001:2345::1
> www.tianmm.com
Server:		127.0.0.1
Address:	127.0.0.1#53

www.tianmm.com	has AAAA address 2001::1

openwrt上

root@zihome:/# nslookup ipw.cn
Server:    127.0.0.1
Address 1: 127.0.0.1 localhost

Name:      ipw.cn
Address 1: 240e:965:801:400::34
Address 2: 59.56.100.101
Address 3: 61.170.64.133 133.64.170.61.broad.xw.sh.dynamic.163data.com.cn
Address 4: 61.170.66.199 199.66.170.61.broad.xw.sh.dynamic.163data.com.cn

linux上ping6 ipw.cn

root@zihome:/# ping6 ipw.cn
PING ipw.cn (240e:965:801:400::37): 56 data bytes
64 bytes from 240e:965:801:400::37: seq=0 ttl=56 time=16.561 ms
64 bytes from 240e:965:801:400::37: seq=1 ttl=56 time=16.416 ms
64 bytes from 240e:965:801:400::37: seq=2 ttl=56 time=16.822 ms

traceroute6

root@zihome:/# traceroute6 ipw.cn
traceroute to ipw.cn (240e:965:801:400::34), 30 hops max, 16 byte packets
 1  240e:1f::2830 (240e:1f::2830)  2.897 ms  4.786 ms  2.736 ms
 2  240e:1f:0:716b::2 (240e:1f:0:716b::2)  1.821 ms  2.602 ms  2.616 ms
 3  240e:1f:0:18d::2 (240e:1f:0:18d::2)  4.690 ms  4.843 ms  6.123 ms
 4  240e::1:31:72:5603 (240e::1:31:72:5603)  19.270 ms  22.390 ms  20.492 ms
 5  240e:14:6820:ff05::1 (240e:14:6820:ff05::1)  18.759 ms  17.860 ms  18.411 ms
 6  240e:14:6821:ff32:: (240e:14:6821:ff32::)  20.790 ms  20.353 ms  20.450 ms
 7  240e:965:801:408::1 (240e:965:801:408::1)  19.463 ms  19.361 ms  19.043 ms
 8  2402:4e00:e090:8041::9 (2402:4e00:e090:8041::9)  18.100 ms  18.046 ms  17.358 ms
 9  240e:965:801:400::34 (240e:965:801:400::34)  18.406 ms  18.243 ms  17.378 ms

windown上ping ipw.cn -6


3. 使用地址选择的示例


主机A是一台IPv6IPv4主机,它具有多个接口,每个接口有多个地址。主机A构建并发送了一条或多条“DNS域名查询请求”消息,请求所有与域名web.example.com对应的地址记录。而主机A接收到的“DNS域名查询响应”消息中包含一个IPv4地址记录和多个IPv6地址记录。
根据DNS域名査询响应消息的内容,主机A的IPv6会执行如下操作。

1、使用源地址选择算法来判断出每个目的IPv6地址的最佳源地址
2、使用目的地址选择算法来判断出目的IPv4和IPv6地址的优先顺序。

目的地址的有序组以及它们对应的源地址会被提供给应用程序。然后,应用就会接着尝试每个目的和源地址组合,直至通信建立。

例如,主机A配置了如下地址

LAN接口:

  • 2001:db8:21a5:a4543ce:bf6:505:eae6(全局地址,非弃用状态,公有)
  • 2001:db8:21a5:a454:20da:3198:2c50:1a57(全局地址,非弃用状态,临时使用)
  • 2001:db8:21a5:a454:1d15:9c:8e4c:902b(全局地址,弃用状态,临时使用)
  • fec0:3a4f:78ea:a454:3cebf16:505:eae6(站点本地地址,非弃用状态)
  • fe80:3 cec: bfl6:505:eae6(链路本地地址,非弃用状态)
  • 157.60.17.211(公有IPv4地址[全局范围],非弃用状态

口站点内自动隧道寻址协议( ISATAP)隧道接口:

  • 2001:db8:21a5:a499:efe:157.60.17.211(全局 ISATAP地址,非弃用状态)
  • fe80:5efe:157.60.17.211(链路本地地址,非弃用状态)

对于域名web.example.com的DNS域名查询请求消息返回如下地址。

  • 207.73.11898(公有IPv4地址[全局范围])
  • 2001:db8:21a5:a4ca:2a:ffe35:2cla(全局地址)
  • 2001:db8:21a5:a499:efe:207.73.118.98( ISATAP全局地址)
  • ecO0:3a4f2a34:1a7:2a:ffe35:2ca(站点本地地址)

源地址选择算法的结果如下。

  • 对于目的地址2001:db8:21a5:a4ca:2a:ffl635:2ca,选择的源地址是2001:db8:21a5:a454ccbr6:505:eae6(全局地址,非弃用状态,公有),因为它的范围匹配,它是公有地址,并且它与目的地址匹配的前缀长度最长。
  • 对于目的地址2001:db8:21a5:a499:5efe:207.73.118.98,选择的源地址是2001:db8:21a5:a499:5efe:157.60.17.,211(全局 ISATAP地址,非弃用状态),因为它的范围匹配,而且它与目的地址匹配的前缀长度最长
  • 对于目的地址fec0:3a4f2a34:1a27:2a:f:fe35:2cla,选择的源地址是fec0:3a4f:78ea:a454:ccbr6:505:eae6(站点本地地址,非弃用状态),因为它的范围匹配,而且它与目的地址匹配的前缀长度最长

目的地址选择算法的结果是按优先级顺序排列的目的地址,如下所示

  • fec0:3a4f:2a34:1aa7:2aa:f:fe35:2cla(范围最小)。
  • 2001:db8:21a5:a4ca:2a:ffe35:2cla(本地地址优于 ISATAP地址)
  • 2001:db8:21a5:a499:5efe:207.73.118.98( ISATAP地址优于IPv4映射过来的地址)
  • 207.73.118.98。

于是,主机A尝试通过以下几组源和目的地址与web.example.com服务器建立通信。

  • 1.源地址feco3a4f:78ea:a4543cc:bf6:505:eae6,目的地址fe.3a4f:2a34:1a7:2a:ffe3acla
  • 2.源地址2001:db8:2la5:a454:3ce:bf16:505:eae6,目的地址2001:db8:21a5:a4ca:2a:ffe35
  • 3.源地址2001:db8:21a6:a499:5efe:157.60.17.211,目的地址2001:db8:21a5:a49:5efe:207.73
  • 4.源地址157.60.17.211,目的地址207.73.118.98
    选用IPv6地址而弃用IPv4地址是因为,IPv4地址(地址前缀:ff0096)默认前缀策略表的条目的优先权值较低。

4.推荐DNS服务器


  • 阿里2400:3200::1 2400:3200:baba::1
  • 百度2400:da00::6666
  • 天地互连240C::6666 240C::6644
  • 谷歌2001:4860:4860::8888 2001:4860:4860::8844

https://openwrt.org/docs/guide-user/network/ipv6/ipv6.dns

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

5-ipv6基础知识之-域名解析dns 的相关文章

  • Gitlab Pipelines一直无法通过的临时解决办法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 新Gitlab系统是自己搭建的 xff0c 为了使用pages功能 xff0c 因为少于8 8版本貌似就不能使用 xff01 下一篇我会补充 xff0c 毕竟是转发的 xf
  • Generate Parentheses

    Given n pairs of parentheses write a function to generate all combinations of well formed parentheses For example given
  • C++11新特性不完全测试

    摘要 Lambda auto 统一初始化 xff0c 智能指针 xff0c Regex Random function and bind xff0c hash map 右值引用和Move语义 并发 多线程库 发布 阅读全文 Richard
  • matlab练习程序(生成高斯图像)

    cl m 61 31 n 61 31 img 61 zeros m 43 1 n 43 1 img 61 double img pi 61 3 1415926 sigma 61 10 for i 61 m 2 m 2 for j 61 n
  • Ubuntu远程桌面xrdp方法

    xrdp方式 xff0c 该方法支持多用户登录并远程桌面 首先在Ubuntu上安装GNOME 界面 xff0c 在终端输入命令 xff1a sudo apt get install gnome panel 安装完成后注销用户 点击自己用户的
  • Linux通过ssh传输文件

    一 scp是什么 scp是secure copy的简写 xff0c scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令 用于在Linux下进行远程拷贝文件的命令 xff0c 和它类似的命令有cp xff0c 不过cp只是在本机
  • 认识CoreData-基础使用

    第一篇文章中并没有讲CoreData的具体用法 xff0c 只是对CoreData做了一个详细的介绍 xff0c 算是一个开始和总结吧 这篇文章中会主要讲CoreData的基础使用 xff0c 以及在使用中需要注意的一些细节 因为文章中会插
  • 如何在Debian Linux上安装配置ISC DHCP服务器

    动态主机控制协议 DHCP 给网络管理员提供了一种便捷的方式 xff0c 为不断变化的网络主机或是动态网络提供网络层地址 xff0c 其中最常用的 DHCP 服务工具是 ISC DHCP Server DHCP 服务的目的是给主机提供必要的
  • SQL学习笔记1

    以下内容是我在学习SQL xff08 http www w3school com cn sql index asp xff09 的时候的学习笔记 学习时使用的数据库软件是MySQL 数据库可视化工具 SQLyogEnt 如果大家有发现什么不
  • BAT-使用BAT方法结束进程(删除进程)

    64 echo off taskkill f im GAM exe taskkill f im GCL10 exe
  • 解决访问apache中文乱码的问题

    解决访问 apache 中文乱码的问题 修改 apache 的配置文件 Vi etc httpd conf httpd conf 在 AddDefaultCharset UTF 8 下面添加 AddDefaultCharset UTF 8
  • linux远程灰屏,Ubuntu 15.10安装VNC灰屏问题解决

    1 在Ubuntu上首先需要安装vnc4server apt get install vnc4server 2 第一次执行vncserver的时候需要为客户端连接设置8位的密码 3 打开服务后 xff0c 根据客户端号连接 也可以指定客户端
  • Android IOS WebRTC 音视频开发总结(十五)-- 培训课程大纲

    Android IOS WebRTC 音视频开发总结 xff08 十五 xff09 培训课程大纲 最近在给公司做内部培训 xff0c 主要是关于即时通讯和移动视频通话 xff0c 包括android与android xff0c ios与io
  • Docker 1.12 : 使用 Swarm 的新姿势

    本文首发于我的博客 原文链接 xff1a Docker 1 12 新特性 Docker1 12 版本做出了很大的改动 xff0c 特别是增加了对 swarm 的原生支持 xff0c 下面对新版的使用做一个总结 xff0c 供大家查阅 doc
  • 用CSS写一个简单的幻灯片效果页面

    这里是修真院前端小课堂 xff0c 每篇分享文从 背景介绍 知识剖析 常见问题 解决方案 编码实战 扩展思考 更多讨论 参考文献 八个方面深度解析前端知识 技能 xff0c 本篇分享的是 xff1a 用CSS写一个简单的幻灯片效果页面 1
  • Go程序Windows运行时不显示cmd窗口

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 非常简单 xff0c 编译时候加参数 go build ldflags 61 34 H windowsgui 34 转载于 https my oschina net pok
  • Python3 创建虚拟环境

    目的 使用虚拟环境是为了隔离不同项目之间的Python库 创建虚拟环境 Python3 内置了venv模块 xff0c 首先创建项目目录 xff0c 进入目录后 xff0c 执行 python3 m venv venv 激活虚拟环境 在开始
  • Ubuntu18.04LTS 文件系统简记

    Ubuntu18 04LTS 文件系统 了解Linux文件系统是熟悉掌握使用Linux系统的第一步 首先安装名为tree的工具 sudo apt install tree 运行 tree help 查看tree命令的详细用法 运行 tree
  • windows下nvm安装node之后npm命令找不到问题解决办法

    主要关键解解决办法 xff1a 61 61 61 适 用于所有东西的安装 安装有关环境配置类的软件及其他 xff0c 一般情况下切记不要安装到c盘programfiles下 xff0c 否则会出现各种问题的报错 xff01 xff01 xf
  • [问题2014S14] 复旦高等代数II(13级)每周一题(第十四教学周)

    问题2014S14 设 V 为酉空间 证明 不存在 V 上的非零线性变换 varphi 使得对 V 中任一向量 v 均有 varphi v v 61 0 注 本题是复旦高代教材 P326 习题 9 1 5 的推广

随机推荐

  • 8B10B编解码及FPGA实现

    概述 在使用ALTERA的高速串行接口时 xff0c GXB模块里硬件实现了8B10B编码 xff0c 用户只是 傻瓜 式的使用 xff0c 笔者也一直没有弄清楚 网上搜索了一些学习资料 xff0c 结合参考文献希望能够对其进行消化 另外
  • 零碎记录- spring security oauth2 资源服务器中设置放行路径

    在资源服务器配置类中重写configure方法 xff0c 添加放行信息 使用了 64 EnableResouceServer xff0c 且继承了ResourceServerConfigurerAdapter的类作为资源服务器配置信息类
  • Golang 新手可能会踩的 50 个坑

    译文 xff1a Golang 新手可能会踩的 50 个坑 原文 xff1a 50 Shades of Go Traps Gotchas and Common Mistakes 翻译已获作者授权 xff0c 转载请注明来源 不久前发现在知乎
  • 手把手教你使用TF服务将TensorFlow模型部署到生产环境 ...

    介 绍 将机器学习 xff08 ML xff09 模型应用于生产环境已成为一个火热的的话题 许多框架提供了旨在解决此问题的不同解决方案 为解决这一问题 xff0c 谷歌发布了TensorFlow xff08 TF xff09 服务 xff0
  • Centos/Linux下如何查看网关地址/Gateway地址

    Centos Linux下如何查看网关地址 Gateway地址 xff1f Linux下查看网关的命令还是很多的 xff0c 不过如果IP是DHCP获取 xff0c 那么有些命令是不适用的 xff0c 当然也有通用的查询网关命令 1 ifc
  • 教你Java生成文件时怎么设置编码格式

    OutputStreamWriter允许用户指定编码方式 xff0c 代码为 xff1a FileInputStream fis 61 new FileInputStream 34 文件路径 34 xff1b OutputStreamWri
  • One input and More output use 'tee'

    2008 05 22 In preparation for my Luma media player I wanted to create a simple audio player with visualization Based upo
  • 简单的任务调度(自整理)

    为什么80 的码农都做不了架构师 xff1f gt gt gt 任务调度 使用 Quartz 框架实现 1 8 6 的版本 开源框架 什么是任务调度 xff1a 即是某个时间点做某件时间 xff01 核心有是什么 xff1a 以时间为关注点
  • Laravel5.5集成七牛云上传、管理(删除、查询)

    一 为什么使用七牛云存储 1 使用七牛带宽和CDN xff0c 速度快 xff0c 不占用开发者服务器 2 支持图片任意格式 任意分辨率自动生成 xff0c 可以用来做图片服务器 3 小流量免费 xff1a 存储空间 10GB xff0c
  • centos为用户添加sudo功能

    su chmod a 43 w etc sudoers vim etc sudoers 找到root ALL 61 ALL ALL这行 复制出新的一行 xff0c 并且将root改为daniel xff08 当前用户名 xff09 chmo
  • Reverse Linked List

    本题是反转一个单链表 xff0c 题目提示使用迭代和递归两种方式 xff0c 属于比较基础的题目 一 迭代方式 xff1a 总体思路是从左到右遍历链表结点 xff0c 依次反转连接关系 每次处理相邻的两个结点 xff0c 从 lt None
  • angularJS1笔记-(17)-ng-bind-html指令

    angular不推荐大家在绑定数据的时候绑定html 但是如果你非要这么干也并不是不可以的 举个例子 xff1a lt DOCTYPE html gt lt html lang 61 34 en 34 gt lt head gt lt me
  • 旧电脑diy文件服务器,2021旧电脑自制NAS存储变废为宝.docx

    amp tid 61 13992 amp page 61 1 amp extra 61 pid15059 amp tid 61 13992 amp page 61 1 amp extra 61 pid15059 旧电脑自制NAS存储变废为宝
  • Druid 连接池 JDBCUtils 工具类的使用

    Druid工具介绍 它不仅仅是一个数据库连接池 xff0c 它还包含一个ProxyDriver xff0c 一系列内置的JDBC组件库 xff0c 一个SQL Parser 支持所有JDBC兼容的数据库 xff0c 包括Oracle MyS
  • matlab练习程序(简单图像融合)

    通过本篇和上一篇的结合 xff0c 应该就能做出拉普拉斯图像融合了 这里用的方法很简单 xff0c 就是用模板和两个图像相乘 xff0c 然后对处理后的两个图像再相加就可以了 拉普拉斯融合就是对金字塔的每一层图像做这样的操作 xff0c 然
  • Ext.grid.Panel表格分页

    Ext grid Panel表格分页示例 代码 xff1a cshtml 64 Layout 61 null lt DOCTYPE html gt lt html gt lt head gt lt title gt Ext grid Pan
  • Build a Multiple Choices Cascader by ant-design-vue

    Preface I need to make a cascader which can support multiple choices However I didn 39 t find any ui which supports that
  • SpringBoot使用LibreOffice转换PDF

    用LibreOffice将Office文档转换PDF 本例使用 LibreOffice 6 0 4 jodconverter 4 2 0 spring boot 1 5 9 RELEASE 在CentOS7 43 openJDK8 和 Wi
  • 史上最全面的Neo4j使用指南

    Neo4j图形数据库教程 Neo4j图形数据库教程 第一章 xff1a 介绍 Neo4j是什么Neo4j的特点Neo4j的优点 第二章 xff1a 安装 1 环境2 下载3 开启远程访问4 测试 第三章 xff1a CQL 1 CQL简介2
  • 5-ipv6基础知识之-域名解析dns

    DNS域名解析过程比较简单 xff0c 先看下IPV4下面的DNS xff0c 然后再看IPV6下面的DNS 1 IPv4 DNS 1 1 IPv4 DNS请求过程 在电脑上面ping www taobao com xff08 如果已经访问