网络结构与DNS
网络结构与DNS
[TOC]
01.网络基础
网络层次结构

在网络的分层设计模型中:
核心层:流量高速转发,用于连接外网线路,还要具备份冗余能力
主要部署路由器设备
汇聚层:用于相应安全访问控制,进行链路和流量汇聚、链路和设备冗余
主要部署三层交换设备
接入层:提供接口,安全接入,用于终端设备
主要部署二层交换设备
- 二层交换机:支持物理层和数据链路层协议
- 三层交换机:支持物理层,数据链路层及网络层协议
OSI七层模型


对于应用层,我们只需要知道对应的协议即可
表示层:数据加密,解密,数据压缩
⭐TCP与UDP
传输层(段):实现端到端的传输,某一个进程和某一个进程的通信
- 通过端口号来确定
TCP:提供的是面向连接的,提供的是可靠的连接
- 会检查数据是否丢失,丢失重新发送
- 三次握手,四次挥手
- HTTP,FTP
UDP:提供的是面向无连接的,提供的服务是不可靠的
- 尽力而为
- 直播(UDP),前面的丢了就丢了,不管它了
- DHCP协议,DNS协议
网络层(包):实现路由的转发,和网络寻址的功能
数据链路层(帧):提供相应的协议去保证数据传送的可靠性
物理层:透明的传送二进制比特流
- 不会去理解在意这一串的二进制比特流是什么意思
- 他只关心我怎么传送这个0,和1
通信方式:
| 方式 | 说明 | 示例 |
|---|---|---|
| 单工 | 通讯时候,只有一方作为发送方,另一方作为接受方 | 广播电台 |
| 半双工 | 通讯的某一时刻,只有一方作为发送方,另一方作为接受方 | 对讲机 |
| 全双工 | 同一时刻,双方皆可以是发送方,又可以是接收方 | 电话 |
数据包封装

协议要一致,如何去理解呢?
- 对等协议,相同的层次上面的协议要一致,否则的话无法识别
TCP/IP四层模型

网络协议及端口
| 协议 | 默认端口 | 说明 |
|---|---|---|
| FTP | 21 | 明文协议,文件传输协议 |
| SSH | 22 | 安全外壳协议,远程连接,加密 |
| Telnet | 23 | 明文协议,远程连接 |
| HTTP | 80 | 超文本传输协议 |
| HTTPS | 443 | 超文本传输安全协议 |
| DHCP | 67/68 | 动态主机设置协议,客户端(67),服务器(68) |
02.常见网络协议
DHCP
- 动态IP地址分配协议
- 基于UDP协议

DNS
常用的DNS:
223.5.5.5 # 阿里云DNS223.6.6.6114.114.114.1148.8.8.8 # 谷歌DNS
最右边是根域名 .
紧接着是顶级域名 com
然后就是我们购买的二级域名 jd
最左边是我们可以随便写,随便加的三级域名 art
📌 当我们把二级域名买过后,三级域名我们就可以随便加了

DNS解析
dig jd.com
主要是它

👍dig +trace jd.com
跟踪解析jd.com的过程(Linux)
先从 . 根域名服务器开始:




host

🧣nslookup
查询域名对应的 IP 地址

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

- 这个Windows也能使用

⭐DNS解析流程

- 第一步中,浏览器也有DNS缓存
- Windows本地hosts文件一般位于
C:\Windows\System32\drivers\etc
递归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故障

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

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

协议类型

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


- 127.0.0.1 可以代表本机IP地址
- 169.254.0.0 ~ 169.254.255.255
- 是开启了DHCP服务的设备但又无法获取到DHCP的会随机使用这个网段的IP
03.常见修改
修改网卡名字

- 这个是Centos7的
方法01

net.ifnames=0 biosdevname=0

- 这个方法Kylin也是同样适用的
第二种方法,麒麟我试了,也从网上找方法了,最后没有改成功
也就在重装系统的时候合适修改网卡名字
方法02




net.ifnames=0 biosdevname=0

- 这次都加上了

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


最后一步重启

网卡配置文件


🎄tldr命令
是python3,也必须加3,而不是2

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


yum install -y python3 python3-pip
我们要使用python3

升级 pip 到最新的版本后进行配置:
python3 -m pip install --upgrade pip# -m 指定使用pip命令# --upgrade 升级# 我们要用python3,而不是2。你默认什么都不加是python2
永久性设置pip源
pip config set global.index-url https://pypi.python.org/simple/pip3 install tldr
接着就是安装,也是pip3
Windows: C:\Users\%username%\.cache\tldr\pagesLinux: ~/.cache/tldr/pages完成替换后再到命令行中运行tldr查询任意命令即可看到中文输出因为网络一般很卡,所以先给它生成本地缓存
tldr -u

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

那你就访问这个网站:
https://tldr-pages.github.io/assets/tldr.zip你多访问几次,就能下载它的压缩包

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

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

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




