📖 计算机网络:自顶向下方法¶
DNS¶
-
层级:应用层协议
-
服务:
- 主机名(hostname)到 IP 地址转换的目录服务。
- 主机别名(host aliasing)
- 邮件服务器别名(mail server aliasing)
- 负载分配(load distribution),在冗余的服务器之间进行附在分配。一个 IP 地址集合与同一个规范主机名相联系。
- 传输层协议:UDP
- 端口:53
- 定义:RFC 1034/1035
DNS 工作机理¶
应用程序角度:
- 应用程序:调用 DNS 客户端
- DNS 客户端:向网络发送 DNS 查询报文‘
- DNS 客户端:接收 DNS 回答报文
- DNS 客户端:映射结果到应用程序
DNS 采用了分布式的设计方案:
- 分布式、层次数据库:DNS 使用大量 DNS 服务器,以层次方式组织。
- 层次结构中有三类 DNS 服务器:根 DNS 服务器、顶级域(TLD)DNS 服务器、权威 DNS 服务器
- 本地 DNS 服务器:每个 ISP 持有,DNS 请求首先发往该服务器,再转发至 DNS 层次结构
- 查询方式:从请求主机到本地 DNS 服务器的查询是递归查询(recursive query),其余是迭代查询(iterative query)
- DNS 缓存
- 在请求链中,某个 DNS 服务器能将映射缓存在本地存储器中。
- 这些缓存将在一定时间后被丢弃。
DNS 记录和报文¶
所有 DNS 服务器存储资源记录(RR),提供主机名到 IP 地址的映射。每个 DNS 回答报文包含一条或多条 RR。
- 资源记录:包含四个字段
(Name, Value, Type, TTL)
Type=A
提供主机名到 IP 地址的映射Type=NS
提供知道该域中主机 IP 地址的权威 DNS 服务器的主机名(foo.com, dns.foo.com, NS)
Type=CNAME
提供别名到规范主机名的映射Type=MX
提供简单别名到邮件服务器主机名的映射(foo.com, mail.bar.foo.com, MX)
DNS 报文格式如下
- 首部 12 字节
- 标识符:16 bit,复制到对应回答报文中,以便匹配请求和回答
- 标志位:4 bit
- 查询(0)/回答(1)
- 权威(1)
- 希望递归(1)
- 递归可用(1)
- 4 个指出首部后 4 类数据区域数量的字段
- 问题区域:正在进行的查询信息
- 名字字段:正在查询的主机名字
- 类型字段:正在查询的问题类型
- 回答区域:包含对请求的名字的 RR
- 权威区域:其他权威服务器的 RR
- 附加区域:其他有帮助的记录
使用
nslookup
可以对 DNS 服务器发送查询报文
DNS 的安全性¶
目前还没有成功妨碍 DNS 服务的攻击。
- DDoS:可以指向根服务器或顶级域名服务器。但通常被绕过,或通过缓存技术缓解。
- 中间人攻击:截获 DNS 请求,伪造回答。
- DNS 污染:向一台 DNS 服务器发送伪造的回答,诱使服务器在缓存中接收伪造的记录。
IP(Internet Protocol,网际协议)¶
- 负责:将数据包发送给最终的目标计算机
- 层次:第三层(网络层)
-
通信类型:点对点
- 想想:通信链路层的功能是什么?
-
主机、路由器、节点是什么?
数据链路¶
物理层负责物理信号和二进制的转换,数据链路层把 01 序列的集合称为“帧",传输这样的数据块。数据链路层的协议定义通过通信媒介互联的各设备之间传输的规范。
以下是几个概念:
- 段:一个被分割的网络
- 网络拓扑:网络的连接和构成形态,有总线型、环型、星型、网状型等
以下是数据链路技术:
- MAC 地址
- 识别数据链路中互连的节点
- 长 48 比特:一般用十六进制表示 ii
- 1:单播 0/多播 1
- 2:全局 0/本地 1
- 3~24:厂商识别码
- 25~48:厂商内识别码
- 共享介质型网络
- 设备之间使用同一个载波信道进行发送和接收,基本采用半双工通信,应当对介质进行访问控制。
- 争用方式(CSMA,载波监听多路访问):先到先得占用信道
- 令牌传递方式:沿着令牌环发送一种叫做“令牌”的特殊报文,只有获得令牌的站才能发送数据。
- 非共享介质网络
- 每个站直连交换机,交换机负责转发数据帧,采用全双工通信方式
- MAC 地址转发
- 以太网交换机是持有多端口的网桥。根据数据链路层每个帧目标 MAC 地址决定从哪个端口发送数据。
- 转发表(Forwarding Table):自学原理
-
存储转发:检查帧末尾的 FCS 位再转发 > 直通转发:得知目标地址后立刻转发,不需要全部接收
- 环路检测
半双工:只发送/接收(同轴电缆) 全双工:同时发送/接收数据(双绞线电缆/光纤电缆)