网络结构与DNS

1987 字
10 分钟
网络结构与DNS

网络结构与DNS#

[TOC]


01.网络基础#

网络层次结构#

网络层次结构
网络层次结构

在网络的分层设计模型中:

核心层:流量高速转发,用于连接外网线路,还要具备份冗余能力

主要部署路由器设备

汇聚层:用于相应安全访问控制,进行链路和流量汇聚、链路和设备冗余

主要部署三层交换设备

接入层:提供接口,安全接入,用于终端设备

主要部署二层交换设备

  • 二层交换机:支持物理层和数据链路层协议
  • 三层交换机:支持物理层,数据链路层及网络层协议

OSI七层模型#

OSI七层模型
OSI七层模型

OSI详解
OSI详解

对于应用层,我们只需要知道对应的协议即可

表示层:数据加密,解密,数据压缩

⭐TCP与UDP#

传输层(段):实现端到端的传输,某一个进程和某一个进程的通信

  • 通过端口号来确定

TCP:提供的是面向连接的,提供的是可靠的连接

  • 会检查数据是否丢失,丢失重新发送
  • 三次握手,四次挥手
  • HTTP,FTP

UDP:提供的是面向无连接的,提供的服务是不可靠的

  • 尽力而为
  • 直播(UDP),前面的丢了就丢了,不管它了
  • DHCP协议,DNS协议

网络层(包):实现路由的转发,和网络寻址的功能

数据链路层(帧):提供相应的协议去保证数据传送的可靠性

物理层:透明的传送二进制比特流

  • 不会去理解在意这一串的二进制比特流是什么意思
  • 他只关心我怎么传送这个0,和1

通信方式

方式说明示例
单工通讯时候,只有一方作为发送方,另一方作为接受方广播电台
半双工通讯的某一时刻,只有一方作为发送方,另一方作为接受方对讲机
全双工同一时刻,双方皆可以是发送方,又可以是接收方电话

数据包封装#

数据包封装
数据包封装

协议要一致,如何去理解呢?

  • 对等协议,相同的层次上面的协议要一致,否则的话无法识别

TCP/IP四层模型#

TCP/IP四层模型
TCP/IP四层模型

网络协议及端口#

协议默认端口说明
FTP21明文协议,文件传输协议
SSH22安全外壳协议,远程连接,加密
Telnet23明文协议,远程连接
HTTP80超文本传输协议
HTTPS443超文本传输安全协议
DHCP67/68动态主机设置协议,客户端(67),服务器(68)

02.常见网络协议#

DHCP#

  • 动态IP地址分配协议
  • 基于UDP协议

DHCP流程
DHCP流程

DNS#

常用的DNS:

Terminal window
223.5.5.5 # 阿里云DNS
223.6.6.6
114.114.114.114
8.8.8.8 # 谷歌DNS

DNS域名结构
DNS域名结构

最右边是根域名 .

紧接着是顶级域名 com

然后就是我们购买的二级域名 jd

最左边是我们可以随便写,随便加的三级域名 art

📌 当我们把二级域名买过后,三级域名我们就可以随便加了

DNS层级
DNS层级

DNS解析#

dig jd.com#

主要是它

dig命令
dig命令

👍dig +trace jd.com#

跟踪解析jd.com的过程(Linux)

先从 . 根域名服务器开始:

trace步骤1
trace步骤1

trace步骤2
trace步骤2

trace步骤3
trace步骤3

trace步骤4
trace步骤4

host#

host命令
host命令

🧣nslookup#

查询域名对应的 IP 地址

nslookup
nslookup

可以指定DNS服务器进行查询

指定DNS查询
指定DNS查询

  • 这个Windows也能使用

Windows nslookup
Windows nslookup

⭐DNS解析流程#

DNS解析流程
DNS解析流程

  • 第一步中,浏览器也有DNS缓存
  • Windows本地hosts文件一般位于 C:\Windows\System32\drivers\etc
递归VS迭代#

递归VS迭代
递归VS迭代

递归查询:就是你问我,我就一定会告诉你最终的答案

  • 客户端和本地域名解析服务器(223.5.5.5)的关系是递归
  • 也就是最后DNS服务器一定会返回最后的IP地址

迭代查询:被请求方只会回应他知道的东西

每一级只返回”下一步去哪查”

  • DNS服务器问根域名服务器,它只能返回.com
  • DNS服务器又去问.com,它返回oldboy.com

📌 面试题:浏览器访问 http://www.baidu.com 的 DNS 解析完整流程(精简版)

① 先检查浏览器自身缓存中是否有 www.baidu.com 对应的 IP 地址
② 检查本地的 HOSTS 文件
③ 浏览器向配置的本地DNS服务器(LDNS)发送 DNS 查询请求
④ 查看LDNS是否有缓存
前三步称为递归查询
如果LDNS缓存中没有 www.baidu.com 的解析记录,则开始迭代查询:
⑤ 查询根域名服务器
根服务器不直接解析域名,返回 .com
⑥ 查询 .com域名服务器
.com服务器也一样,但知道 baidu.com服务器地址,将其返回给 LDNS
⑦ 查询 baidu.com 的DNS服务器
它持有百度对应的IP,并返回给LDNS
⑧ LDNS拿到后自己缓存一份,并返回给浏览器一份
⑨ 浏览器拿到 IP 后,通过 TCP 与百度服务器建立连接,开始加载网页

❗DNS故障#

DNS故障排查
DNS故障排查

  • 如果你ping域名(www.baidu.com)不通
  • 试一下DNS服务器(223.5.5.5)通不通
    • 公网IP地址通,那么就是DNS配置文件有问题!
    • 别忘记重启网络服务

ICMP#

ICMP协议
ICMP协议

  • ping命令就是使用的ICMP协议
  • ICMP消息封装在IP数据包里,不是TCP数据包里

ICMP封装
ICMP封装

协议类型#

ICMP类型
ICMP类型

类型含义
0Echo应答(reply)
3目标不可达
4TTL为0时,发出源抑制
5重定向
8Echo请求(request)
11超时

IP地址#

IP地址分类
IP地址分类

私有IP地址
私有IP地址

  • 127.0.0.1 可以代表本机IP地址
  • 169.254.0.0 ~ 169.254.255.255
    • 是开启了DHCP服务的设备但又无法获取到DHCP的会随机使用这个网段的IP

03.常见修改#

修改网卡名字#

网卡名字
网卡名字

  • 这个是Centos7的

方法01#

方法01
方法01

net.ifnames=0 biosdevname=0

方法01步骤
方法01步骤

  • 这个方法Kylin也是同样适用的

第二种方法,麒麟我试了,也从网上找方法了,最后没有改成功

也就在重装系统的时候合适修改网卡名字

方法02#

方法02步骤1
方法02步骤1

方法02步骤2
方法02步骤2

方法02步骤3
方法02步骤3

方法02步骤4
方法02步骤4

Terminal window
net.ifnames=0 biosdevname=0

方法02步骤5
方法02步骤5

方法02步骤6
方法02步骤6

  • 这次都加上了

方法02步骤7
方法02步骤7

  • 把文件名也给它改了,改为eth0

方法02步骤8
方法02步骤8

方法02步骤9
方法02步骤9

最后一步重启

重启
重启

网卡配置文件#

网卡配置文件1
网卡配置文件1

网卡配置文件2
网卡配置文件2

🎄tldr命令#

是python3,也必须加3,而不是2

tldr安装
tldr安装

我的本来就是中文所以就不用更改语言了,这样它后面显示的也就是中文了

tldr中文
tldr中文

tldr示例
tldr示例

Terminal window
yum install -y python3 python3-pip

安装python3
安装python3

我们要使用python3

使用python3
使用python3

升级 pip 到最新的版本后进行配置:

Terminal window
python3 -m pip install --upgrade pip
# -m 指定使用pip命令
# --upgrade 升级
# 我们要用python3,而不是2。你默认什么都不加是python2

升级pip
升级pip

永久性设置pip源

Terminal window
pip config set global.index-url https://pypi.python.org/simple/
pip3 install tldr

设置pip源
设置pip源

接着就是安装,也是pip3

Windows: C:\Users\%username%\.cache\tldr\pages
Linux: ~/.cache/tldr/pages
完成替换后再到命令行中运行tldr查询任意命令即可看到中文输出

因为网络一般很卡,所以先给它生成本地缓存

tldr -u#

tldr -u
tldr -u

这是顺利的情况,但是有时候它并不能成功的 -u 拉来缓存,那怎么办?

tldr下载
tldr下载

那你就访问这个网站:

Terminal window
https://tldr-pages.github.io/assets/tldr.zip

你多访问几次,就能下载它的压缩包

tldr压缩包
tldr压缩包

.zh 结尾的,它是中文的,然后把Linux中的给它替换过去

替换中文
替换中文

刚开始没有这个目录,然后你就得先 tldr ls 随便拉取一个命令,然后他就有缓存了,也就有这个文件夹了

缓存目录
缓存目录

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

网络结构与DNS
https://www.kpyun.fun/posts/basics/netops/netops03/
作者
久棹
发布于
2025-10-16
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
久棹
只要胆子大,天天寒暑假!
公告
欢迎来到久棹的技术小站!本站专注 Linux 运维学习笔记分享,如有问题欢迎交流探讨 🎉
分类
标签
站点统计
文章
98
分类
11
标签
203
总字数
244,453
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.13.5
文章许可
CC BY-NC-SA 4.0

文章目录