云计算学习之DNS-TCP协议、基础阶段总结一、基础阶段总结二 ...

打印 上一主题 下一主题

主题 545|帖子 545|积分 1635

一.DNS-TCP协议

1.1 3台路由器静态路由设置


### 3. 网络层次结构
***1. 网络拓扑\***
```
网络层次结构
       核心层:主要部署路由器装备,用于连接外网线路,还要具备冗余能力
       汇聚层:主要部署三层交换装备,用于相应安全访问控制 进行链路汇聚
       接入层:主要部署二层交换装备,用于终端装备接入
       
一层交换机:只支持物理层协议。
二层交换机:支持物理层和数据链路层协议。
三层交换机:支持物理层,数据链路层及网络层协议。
```
 
1.2动态路由设置


根本网络层次划分标准表示图
***2. 网络类型\***
```
   局域网:本地私有的一个网络范围。规模较大的局域网,也会称为园区网。
   教室 家庭  公司内 校园
   公网: 全球任意一个可以上网的地方都可以直接访问到
   
   城域网:网络的覆盖面积到达了一个城市,就可以称为城域网。
   
   广域网:覆盖面积 到达了天下或全球,就称为广域网,全球最大的广域网就是Internet互联网。
```
***3. 网络层次模型(OSI7层模型)\***
```
    OSI是Open System Interconnection的缩写,意为开放式系统互联。国际标准化组织(ISO)订定了OSI模型,该模型定义了不同计算机互联的标准,是计划和描述计算机网络通讯的根本框架。OSI模型把网络通讯的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
1.3OSI七层模型

模型结构表示图
***4. OSI七层模型详解\***
**应用层** 
面试题说一下七层模型都有哪七层?
![image-20210817160301909](新建文本文档.assets/image-20210817160301909.png)
```
主要就是提供应用步伐可以接入网络接口,并根据步伐的不同对应不同的接口协议。
```
**表示层**
![image-20210817160315608](新建文本文档.assets/image-20210817160315608.png)
**会话层**
![image-20210817160328747](新建文本文档.assets/image-20210817160328747.png)
**传输层**
![image-20210817160338799](新建文本文档.assets/image-20210817160338799.png)
```
负责网络中端到端的连接(TCP、UDP)。
```
**网络层**
![image-20210817160349954](新建文本文档.assets/image-20210817160349954.png)
```
网络层的主要作用就是路由和寻址,主要接触到的是IP协议,即IP所在。 
```
**数据链路层**
![image-20210817160415249](新建文本文档.assets/image-20210817160415249.png)
**物理层**
![image-20210817160440042](新建文本文档.assets/image-20210817160440042.png)
```
Layer1物理层:物理层标准规定了信号、连接器和电缆要求、接口类型、线缆类型、装备(集线器hub)。
单工: (广播电台)通讯时间。只有一方作为发送方,另一方作为接受方
半双工:(对讲机) 通讯的某一时间,只有一方作为发送方,另一方作为接受方,通讯时间发生转变,发送方可以变为吸收方,吸收方可以变为发送方
               
全双工:(电话)    同一时间,两边皆可以是发送方,又可以是吸收方
```
### 4. 数据包封装与解封装
***封装\***
```
封装过程:由上至下进行封装
        应用层、表示层、会话层  PDU 数据
        传输层:分段 TCP协议
        网络层:打包 TCP协议+IP所在
        数据链路层:成帧  TCP协议+IP所在+MAC所在 
        物理层:位      数据成为比特
            
```
![image-20210817160502667](新建文本文档.assets/image-20210817160502667.png)
***解封装\***
```
拆包过程:由下至上进行拆包
        物理层:位  比特
        数据链路层:查看MAC所在
        网络层:查看IP所在
        传输层:查看TCP协议
        前三层:数据内容
不知名端口:1024以上的端口称为不知名端口
cat /proc/sys/net/ipv4/ip_local_port_range
 


1.4DNS解析流程

![image-20210817160515381](新建文本文档.assets/image-20210817160515381.png)
### 5. TCP/IP模型(4层模型)
***1. OSI7层模型与TCP/IP模型(DOD)对应关系\***
![image-20210817160534394](新建文本文档.assets/image-20210817160534394.png)
***2. TCP/IP协议簇相关协议汇总\***
![image-20210817160545871](新建文本文档.assets/image-20210817160545871.png)
***3. 应用层协议先容\***
```
面试题: 面试官问 ssh默认端口 http默认端口?
FTP         21          明文协议,文件传输协议,基于TCP
TFTP        69          简朴文件传输协议,基于UDP
SSH         22          安全外壳协议,远程连接,加密
Telnet      23          明文协议,远程连接     # 连接路由器交换机常用
SNMP        161/162     简朴网络管理协议,基于UDP
SMTP        25          简朴邮件传输协议,基于TCP
HTTP        80          超文本传输协议
HTTPS       443         超文本传输安全协议
DHCP        67/68/546   动态主机设置协议,C(67),S(68),546(V6)
```
**DHCP原理图**
<img src="新建文本文档.assets/image-20210817161652276.png" alt="image-20210817161652276" style="zoom:50%;" />
![image-20210817161312702](新建文本文档.assets/image-20210817161312702.png)
​                                                                        家用路由器DHCP设置
```
DNS称为域名系统,在网站运行中起到了至关紧张的作用,主要作用是负责把网站域名解析为对应的IP所在。
一样平常域名提供商,提供的dns服务器,都是走udp53端口的。
```
**DNS解析过程**
***域名是什么 ?\***
```
举个例子,https://www.baidu.com,这个其实并不是域名,其中https是指协议,去掉https后,www.baidu.com.(注意末了面有一个点号)才是真正的域名。
每个域名的末了面都有一个点号 "." 表示根域名,为了方便在实际使用的时间被省略了。
根域名的下一级就是顶级域名了,.com 也就是顶级域名,常见的顶级域名后缀有.com、.cn、.net、.org 等,这些都是固定的,用户不能自己修改,只能选择。
顶级域名的下一级又是权威域名,如baidu.com中的.baidu,这个权威域名就是我们自己可注册的域名。
www.baidu.com www.weibo.com www.linuxnc.com
顶级域名下就是主机名了,www是指主机名,这个是我们可以自己定义的,通常在http服务器如nginx中可以修改。
http https 协议
.com .cn .org .net. ...  顶级域名
baidu sina weibo linuxnc 权威域名
www.baidu.com --->显示百度的主页
news.baidu.com--->显示的百度的消息页面
www.baidu.com的www  news.baidu.com 的news 表示主机名 表示不同的业务 不同的页面
.com.
.cn.
.org.
.是根域名
1.5三次握手流程



***6. TCP三次握手\***
**TCP三次握手过程如下图所示:**
![image-20210817163003831](新建文本文档.assets/image-20210817163003831.png)
```
服务端:
CLOSED--->启动服务LISTEN监听
客户端:
CLOSED--->发送第一个哀求后 SYN_SENT
服务端:
LISTEN--->第一次相应客户端后 SYN_RCVD 同步已发送状态
客户端:
SYN_SENT-->发送第三次数据包后 ESTABLISHED建立连接状态
服务端:
SYN_RCVD-->收到客户端第三次数据后ESTABLISHED 建立连接

TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在两边之间建立一条连接。
刚开始, 客户端和服务器都处于CLOSED状态. 
此时, 客户端向服务器自动发出连接哀求, 服务器被动接受连接哀求.
1. TCP服务器历程先创建传输控制块TCB, 时间准备接受客户端历程的连接哀求, 此时服务器就进入了LISTEN(监听)状态. 
2. TCP客户端历程也是先创建传输控制块TCB, 然后向服务器发出连接哀求报文,此时报文首部中的同步标记位SYN=1, 同时选择一个初始序列号seq = x, 此时TCP客户端历程进入了SYN-SENT(同步已发送状态)状态。TCP规定, SYN报文段(SYN=1的报文段)不能携带数据,但必要斲丧掉一个序号。 
3. TCP服务器收到哀求报文后, 如果同意连接, 则发出确认报文。确认报文中的ACK=1, SYN=1, 确认序号是x + 1, 同时也要为自己初始化一个序列号seq = y, 此时TCP服务器历程进入了SYN-RCVD(同步收到)状态。这个报文也不能携带数据, 但是同样要斲丧一个序号。 
4. TCP客户端历程收到确认后还要向服务器给出确认。确认报文的ACK=1,确认序号是y + 1,自己的序列号是x + 1. 
5. 此时TCP连接建立,客户端进入ESTABLISHED(已建立连接)状态。当服务器收到客户端简直认后也进入ESTABLISHED状态,此后两边就可以开始通讯了。
举个栗子:
TCP三次握手好比在一个夜高风黑的夜晚,你一个人在小区里散步,不远处看见小区里的一位漂亮妹子劈面而来,但是由于路灯有点暗等缘故起因不能100%确认,所以要通过招手的方式来确定对方是否认识自己。
你首先向妹子招手(syn),妹子看到你向自己招手后,向你点了颔首挤出了一个微笑(ack)。同时妹子也向你招了招手(syn),你看到妹子向自己招手后知道对方是在寻求自己简直认,于是也点了颔首挤出了微笑(ack)。
于是两人加快步伐,走到了一起。
我们来回顾一下,这个过程中统共有四个动作,
你招手
妹子颔首微笑
妹子招手
你颔首微笑
其中妹子一连进行了两个动作,先是颔首微笑(回复对方),然后再次招手(寻求确认),实际上我们可以将这两个动作合成一个动作,招手的同时颔首和微笑(syn+ack)。于是这四个动作就简化成了三个动作。
你招手
妹子颔首微笑并招手
你颔首微笑
这就是三次握手的本质,中间的一次动作是两个动作的合并。通过这个案例,不知你对TCP三次握手,有没有进一步的理解。

A向B 发送SYN哀求建立连接,发送第一个数据包seq=x来表示
B向A 回复 ACK=1包收到了,SYN=1我也想和你建立连接,发送给你第一个数据包seq=y来表示,确认下次你应该给我发送第二个数据包 Ack=x+1
A向B 回复 ACK=1包收到了,给你发送第二个数据包seq=x+1,你下次应该给我第二个数据包 Ack=y+1
三次握手成功建立

1.子龙哀求和仓姐姐搞对象SYN=1,并且给仓姐姐送了第一个礼物seq=x
2.仓姐姐回复子龙,信息收到了ACK=1,我也想和你搞对象SYN=1,并且给你送了第一个礼物seq=y,告诉你下次应该给我送第二个礼物了 Ack=x+1
3.子龙确认收到信息ACK=1,并且给苍姐姐送了第二个礼物seq=x+1,告诉苍姐姐下次应该给我第二个礼物了Ack=y+1
4.子龙和仓姐姐建立连接 快乐在一起。
上午重点:
1.动态路由
2.OSI七层模型
3.DNS解析流程
4.TCP三次握手
周末: 手动起来。练习题 笔试题,记忆。
```
![image-20241127115816332](%E7%BD%91%E7%BB%9C2.assets/image-20241127115816332.png)
**为什么要三次握手**
```
为了防止已失效的连接哀求报文段忽然又传送到了服务端,因而产生错误。
举个栗子:
    “已失效的连接哀求报文段”的产生在这样一种情况下:客户端发出的第一个连接哀求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接开释以后的某个时间才到达服务端。原来这是一个早已失效的报文段。但服务端收到此失效的连接哀求报文段后,就误以为是客户端再次发出的一个新的连接哀求。于是就向客户端发出确认报文段,同意建立连接。假设不采用“三次握手”,那么只要服务端发出确认,新的连接就建立了。由于现在客户端并没有发出建立连接的哀求,因此不会答理服务端简直认,也不会向服务端发送数据。但服务端却以为新的运输连接已经建立,并一直等待客户端发来数据。这样,服务端的许多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。比方刚才那种情况,客户端不会向服务端简直认发出确认。服务端由于收不到确认,就知道客户端并没有要求建立连接。”
    
这就很明白了,防止了服务器端的一直等待而浪费资源。
```***7
1.6三次握手记忆方式

. TCP四次挥手\***
```
数据传输完毕后,两边都可以开释连接. 
此时客户端和服务器都是处于ESTABLISHED状态,然后客户端自动断开连接,服务器被动断开连接.
1. 客户端历程发出连接开释报文,并且停止发送数据。 
开释数据报文首部,FIN=1,其序列号为seq = u(即是前面已经传送过来的数据的末了一个字节的序号加1),此时客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要斲丧一个序号。 
2. 服务器收到连接开释报文,发出确认报文,ACK=1,确认序号为 u + 1,并且带上自己的序列号seq = v,此时服务端就进入了CLOSE-WAIT(关闭等待)状态。 
TCP服务器关照高层的应用历程,客户端向服务器哀求了断开连接,这时间处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要连续一段时间,也就是整个CLOSE-WAIT状态连续的时间。 
3. 客户端收到服务器简直认哀求后,此时客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接开释报文(在这之前还必要接受服务器发送的最终数据) 
4. 服务器将末了的数据发送完毕后,就向客户端发送连接开释报文,FIN=1,确认序号为v + 1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq = w,此时服务器就进入了LAST-ACK(末了确认)状态,等待客户端简直认。
 
5. 客户端收到服务器的连接开释报文后,必须发出确认,ACK=1,确认序号为w + 1,而自己的序列号是u + 1,此时客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有开释,必须经过2∗MSL(最长报文段寿命)的时间后,当客户端打消相应的TCB后,才进入CLOSED状态。 
6. 服务器只要收到了客户端发出简直认,立即进入CLOSED状态。同样,打消TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。
小知识点:在网络传输层,tcp模块中有一个tcb(传输控制模块,transmitcontrolblock),它用于记录tcp协议运行过程中的变量。对于有多个连接的tcp,每个连接都有一个tcb。tcb结构的定义包括这个连接使用的源端口、目的端口、目的ip、序号、应答序号、对方窗口巨细、己方窗口巨细、tcp状态、top输入/输出队列、应用层输出队列、tcp的重传有关变量。A向B发送 FIN断开哀求
B向A发送 ACK确认收到你的断开哀求
B向A发送 FIN断开哀求
A向B发送 ACK确认
1.7四次挥手

四次挥手
1.子龙向仓姐姐 我要和你分手 FIN
2.仓姐姐确认收到信息 ACK
3.仓姐姐回复子龙 我要和你分手 FIN
4.子龙向苍姐姐回复 好的 ACK分吧
1.8.11种状态集端口

**TCP11种状态集表示寄义**
```
客户端发送FIN给服务端-->ESTABLISHED-->FIN_WAIT1第一次等待
服务端收到回复ACK: ESTABLISHED--->CLOSED_WAIT关闭等待
收到后客户端:FIN_WAIT1-->FIN_WAIT2第二次等待
服务端继续回复客户端FIN: CLISED_WAIT--->LAST_ACK
客户端回复确认ACK:FIN_WAIT2-->TIME_WAIT时间等待-->CLOSED状态
末了服务端收到确认ACK: LAST_ACK---> CLOSED

各个状态的意义如下: 
CLOSED:初始状态,表示TCP连接是“关闭着的”或“未打开的”。  
LISTEN :表示服务器端的某个SOCKET处于监听状态,可以接受客户端的连接。 
SYN_RCVD :表示服务器吸收到了来自客户端哀求连接的SYN报文。在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂,根本上用netstat很丢脸到这种状态,除非故意写一个监测步伐,将三次TCP握手过程中末了一个ACK报文不予发送。当TCP连接处于此状态时,再收到客户端的ACK报文,它就会进入到ESTABLISHED状态。 
SYN_SENT :这个状态与SYN_RCVD状态相呼应,当客户端SOCKET实行connect()进行连接时,它首先发送SYN报文,然后随即进入到SYN_SENT状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT状态表示客户端已发送SYN报文。
ESTABLISHED :表示TCP连接已经成功建立。 
FIN_WAIT_1 :这个状态得好好表明一下,其实FIN_WAIT_1和FIN_WAIT_2两种状态的真正寄义都是表示等待对方的FIN报文。而这两种状态的区别是:FIN_WAIT_1状态实际上是当SOCKET在ESTABLISHED状态时,它想自动关闭连接,向对方发送了FIN报文,此时该SOCKET进入到FIN_WAIT_1状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2状态。当然在实际的正常情况下,无论对方处于任何种情况下,都应该马上回应ACK报文,所以FIN_WAIT_1状态一样平常是比力难见到的,而FIN_WAIT_2状态有时仍可以用netstat看到。
FIN_WAIT_2 :上面已经表明白这种状态的由来,实际上FIN_WAIT_2状态下的SOCKET表示半连接,即有一方调用close()自动要求关闭连接。注意:FIN_WAIT_2是没有超时的(不像TIME_WAIT状态),这种状态下如果对方不关闭(不共同完成4次挥手过程),那这个FIN_WAIT_2状态将一直保持到系统重启,越来越多的FIN_WAIT_2状态会导致内核崩溃。
TIME_WAIT :表示收到了对方的FIN报文,并发送出了ACK报文。TIME_WAIT状态下的TCP连接会等待2*MSL(Max Segment Lifetime,最大分段生存期,指一个TCP报文在Internet上的最长生存时间。每个具体的TCP协议实现都必须选择一个确定的MSL值,RFC 1122建议是2分钟,但BSD传统实现采用了30秒,Linux可以cat /proc/sys/net/ipv4/tcp_fin_timeout看到本机的这个值),然后即可回到CLOSED可用状态了。如果FIN_WAIT_1状态下,收到了对方同时带FIN标记和ACK标记的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。(这种情况应该就是四次挥手酿成三次挥手的那种情况)
CLOSING :这种状态在实际情况中应该很少见,属于一种比力罕见的破例状态。正常情况下,当一方发送FIN报文后,按理来说是应该先收到(或同时收到)对方的ACK报文,再收到对方的FIN报文。但是CLOSING状态表示一方发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文。什么情况下会出现此种情况呢?那就是当两边几乎在同时close()一个SOCKET的话,就出现了两边同时发送FIN报文的情况,这是就会出现CLOSING状态,表示两边都正在关闭SOCKET连接。
CLOSE_WAIT :表示正在等待关闭。怎么理解呢?当对方close()一个SOCKET后发送FIN报文给自己,你的系统毫无疑问地将会回应一个ACK报文给对方,此时TCP连接则进入到CLOSE_WAIT状态。接下来呢,你必要查抄自己是否还有数据要发送给对方,如果没有的话,那你也就可以close()这个SOCKET并发送FIN报文给对方,即关闭自己到对方这个方向的连接。有数据的话则看步伐的计谋,继续发送或丢弃。简朴地说,当你处于CLOSE_WAIT状态下,必要完成的事情是等待你去关闭连接。
LAST_ACK :当被动关闭的一方在发送FIN报文后,等待对方的ACK报文的时间,就处于LAST_ACK状态。当收到对方的ACK报文后,也就可以进入到CLOSED可用状态了。
1.9.360查看网络连接信息

***9. 因特网层协议先容\***
```
ICMP     Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息固然并不传输用户数据,但是对于用户数据的传递起偏紧张的作用。
RARP    反向所在转换协议
ARP        所在解析协议,是根据IP所在获取物理所在的一个TCP/IP协议。作用:有效的避免广播风暴的产生
        动态ARP:自动完善ARP表信息,会定时更新ARP条目,自动更新ARP表时会斲丧服务器性能,实用于主机更换频繁网络。
        静态ARP:手工设置ARP表信息,不会实时更新ARP条目,节省服务器性能,实用于主机更换不频繁网络。
```
***10. 网络接入层先容\***
```
Ethernet    以太网(Ethernet)是一种计算机局域网技术。
FastEth        快速以太网(Fast Ethernet)是一类新型的局域网,其名称中的“快速”是指数据速率可以到达100Mbps,是标准以太网的数据速率的十倍。
Token Ring    令牌环网(Token Ring)是一种LAN协议,其中全部的工作站都连接到一个环上,每个工作站只能同直接相邻的工作站传输数据。
FDDI        光纤分布式数据接口,在光缆网络上发送数字和音频信号的一组协议。
```
### 6. IP所在
***1. IP所在根本概念\*    **
```
    IP所在(Internet Protocol Address)是指互联网协议所在,又译为网际协议所在。
    
    IP所在在网络层将不同的物理网络所在同一到了全球唯一的IP所在上(屏蔽物理网络差异),是唯一标识互联网上计算机的逻辑所在(相当于手机号码,可以通过唯一的手机号码找到手机),所以IP所在也被称为互联网所在(可见其紧张性)。
```
***2. IP所在格式\***
```
    我们目前常用的IPv4中规定,IP所在长度为32位二进制,在表示时,一样平常将32位所在拆分为4个8位二进制,再转为4个十进制数表示,每个数字之间用点隔开,如127.0.0.1(localhost),这种描述方式被称为“点-数表示法” 点分十进制。
    
11111111 11111111 11111111 11111111
  255.255.255.255
  
0   0    0    0   0    0   0    1   二进制
                                1   十进制
0   0    0    0   0    0   1    0                                   
                                  2   十进制
0   0    0    0   0    0   1    1  
                                3   十进制
1     1   1    1     1     1    1    1
128     64     32      16     8       4    2     1 
1 0 0 0 0 0 0 0 ==== 十进制 128
0 1 0 0 0 0 0 0 ==== 十进制 64
全为1为 255 ==  8个1  
子网掩码: 255.255.255.0
11111111 11111111 11111111 00000000 /24
二进制转换十进制:  每位为1的相加
1    0   0    1     1     0    1    0
128  0   0    16    8     0    2    0
128+16+8+2=154
1    0   0   1     0    1    0    0
128+16+4=148
十进制转二进制: 对每位为1的相减 做减法运算
172 十进制 转换成二进制
172-128=44
44-32=12
12-8=4
4-4=0
1 0  1  0 1  1 0 0

    
IP所在层次:分为网络号和主机号两个层次。网络号表示主机所属网络,主机号表示主机本身。网络号与主机号的位数与IP所在分类有关。
```
![image-20210817163349416](新建文本文档.assets/image-20210817163349416.png)
​                                                                        IP所在十进制与二进制对应关系
​       ![image-20210817163558516](新建文本文档.assets/image-20210817163558516.png)
![image-20210817163639163](新建文本文档.assets/image-20210817163639163.png)
***3. IP所在分配\***
```
IP所在分配的根本原则是:要为同一网络(子网、网段)内不同主机分配相同的网络号,不同的主机号。
```
***4. IP所在类型\***
```
#公有所在
    公有所在(Public address)由Inter NIC(Internet Network Information Center因特网信息中心)负责。这些IP所在分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问因特网。全球唯一,不能出现重复.
#私有所在
    私有所在(Private address)属于非注册所在,专门为组织机构内部使用。缓解了所在枯竭 是可以重复使用的(不同局域网内)
1.10IP所在分类

#以下列出留用的内部私有所在
    A类 10.0.0.0--10.255.255.255
        10.0.0.1-10.0.0.254
        10.0.1.1=10.0.1.254
        10.0.2.1=10.0.2.254
        10.1.0.1=10.1.0.1=10.1.0.254
    
    
    B类 172.16.0.0--172.31.255.255
       172.16.0.1-172.16.0.254
       172.16.1.1-172.16.1.254
       11111111=255
    C类 192.168.0.0--192.168.255.255
        192.168.0.1-192.168.0.254
        192.168.1.1-192.168.1.254
        192.168.2.1-192.168.2.254
必要实现设置私网所在的服务器可以访问外网(互联网)???
NAT --- 网络所在转换技术(化装),将私网所在转换为公网所在
```
***5. IP所在常见分类\***
```
#A类IP所在 
    一个A类IP所在是指, 在IP所在的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。如果用二进制表示IP所在的话,A类IP所在就由1字节的网络所在和3字节主机所在组成,网络所在的最高位必须是“0”。A类IP所在中网络的标识长度为8位,主机标识的长度为24位,A类网络所在数量较少,有126个网络,每个网络可以容纳主机数达1600多万台。
    
A类IP所在 所在范围1.0.0.1到127.255.255.254 (二进制表示为:00000001 00000000 00000000 00000001 - 01111111 11111111 11111111 11111110)。末了一个是广播所在。
A类IP所在的子网掩码为255.0.0.0,每个网络支持的最大主机数为256的3次方-2=16777212台。
#B类IP所在 
    一个B类IP所在是指,在IP所在的四段号码中,前两段号码为网络号码。如果用二进制表示IP所在的话,B类IP所在就由2字节的网络所在和2字节主机所在组成,网络所在的最高位必须是“10”。B类IP所在中网络的标识长度为16位,主机标识的长度为16位,B类网络所在实用于中等规模的网络,有16384个网络,每个网络所能容纳的计算机数为6万多台。
    
B类IP所在所在范围128.0.0.1-191.255.255.254 (二进制表示为:10000000 00000000 00000000 00000001----10111111 11111111 11111111 11111110)。 末了一个是广播所在。
B类IP所在的子网掩码为255.255.0.0,每个网络支持的最大主机数为256的2次方-2=65534台。
#C类IP所在 
    一个C类IP所在是指,在IP所在的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。如果用二进制表示IP所在的话,C类IP所在就由3字节的网络所在和1字节主机所在组成,网络所在的最高位必须是“110”。C类IP所在中网络的标识长度为24位,主机标识的长度为8位,C类网络所在数量较多,有209万余个网络。实用于小规模的局域网络,每个网络最多只能包含254台计算机。
C类IP所在范围192.0.0.1-223.255.255.254 (二进制表示为: 11000000 00000000 00000000 00000001 - 11011111 11111111 11111111 11111110)。
C类IP所在的子网掩码为255.255.255.0,每个网络支持的最大主机数为256-2=254台
#D类所在用于多点广播(Multicast)。 
    D类IP所在在历史上被叫做多播所在(multicast address),即组播所在。在以太网中,多播所在命名了一组应该在这个网络中应用吸收到一个分组的站点。多播所在的最高位必须是“1110”,范围从224.0.0.0到239.255.255.255。
#E类IP所在 
以“llll0”开始,为将来使用保留。
二.基础阶段总结一

2.1子网分类

**为什么要子网划分**

```
一个大的所在范围区域,你不进行划分的时间,会造成所在浪费
一个大的所在范围区域,可能会产生大量广播风暴,影响主机性能
一个大的所在访问区域,可能会造成网关路由器负载过高

将一个大的网段切割成一个一个小的局域网段,就称为子网划分

一个网段中可以有多少个所在=2的n次方-2 n表示的就是这个网段中有多少个主机位
    -2 表示网络所在不能用  表示广播所在不能用
    一个局域网中的所在在使用时要预留一个作为网关所在

重点掌握:
动态路由RIP协议 3台路由器
OSI七层模型  应用层 表示层 会话层 传输层 网络层 数据链路层 物理层
DNS解析流程
TCP三次握手  
为什么要三次握手
TCP四次挥手
HTTP哀求相应
```

![image-20210817163953073](新建文本文档.assets/image-20210817163953073.png)

网络位向右移动,占用主机位,即向主机位借位,生成新的网络位

其中/16就表示了子网掩码所指定的网络位个数,A类一样平常是/8 B类一样平常是/16 C类/24

![image-20210817164124813](新建文本文档.assets/image-20210817164124813.png)



![image-20210817164340756](新建文本文档.assets/image-20210817164340756.png)



![image-20210817164409648](新建文本文档.assets/image-20210817164409648.png)

```bash
运营商或者领导给我们一个IP所在加子网掩码我们必须要知道可设置的IP所在范围
116.63.0.10/29 网关: 116.63.0.9
https://www.36130.com/subnetmask/
网关: 116.63.0.9
```

![image-20240729113832400](%E7%BD%91%E7%BB%9C2.assets/image-20240729113832400.png)




 
2.2网络相关命令一

### 8. 网关

```
网关(Gateway)又称网间连接器,就是一个网络连接到另一个网络的“关口”。

    网关实质上是一个网络通向其他网络的IP所在。比如有网络A和网络B,网络A的IP所在范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP所在范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通讯的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通讯,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机(如附图所示)。网络B向网络A转发数据包的过程。

  所以说,只有设置好网关的IP所在,TCP/IP协议才气实现不同网络之间的相互通讯。那么这个IP所在是哪台机器的IP所在呢?网关的IP所在是具有路由功能的装备的IP所在,具有路由功能的装备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。
  
  
运维在企业中:
领导下发一组IP所在给到我们,由我们设置到不同的服务器上
116.63.0.10/29

打开网站计算获得子网IP
http://www.md5.cn/tools/subnetmask/


ip add    linux
ifconfig  linux
ping      linux windows
nslookup  linux
tracert -d www.baidu.com windows

[root@oldboy:~]# traceroute -n  www.baidu.com

[root@oldboy ~]# route -n   # 查看网关
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.2        0.0.0.0         UG    0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0

给网卡设置多个IP所在: 临时重启失效  笔记
[root@oldboy ~]# ip add add 10.0.0.201/24 dev eth0
删除临时IP:
[root@oldboy ~]# ip address del 10.0.0.201/24 dev eth0

临时删除网关:
[root@oldboy ~]# ip route del 0/0 via 10.0.0.2
设置临时的网关:
[root@oldboy ~]# ip route add 0/0 via 10.0.0.2

#直接设置一条默认的网关
[root@oldboy ~]$route add default gw 10.0.0.2

删除默认的网关:
[root@oldboy ~]$route del default gw 10.0.0.2
2.3网络相关命令二

***2. 网卡设置文件详解\***

```
#动态ip
[root@qls ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="fb32c09d-5a9f-40b9-852b-0f44ff2202ed"
DEVICE="eth0"
ONBOOT="yes"

#静态ip
[root@qls ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"                
BOOTPROTO="static"             
NAME="eth0"                    
DEVICE="eth0"                  
ONBOOT="yes"                   
IPADDR="10.0.0.88"            
NETMASK="255.255.255.0"        
GATEWAY="10.0.0.254"        
DNS1="223.5.5.5"            
DNS2="223.6.6.6"            


#详解:

TYPE=Ethernet        #网卡类型,一样平常是Ethernet,还有其他的如bond,bridge

BOOTPROTO=dhcp        #获取IP所在的方式,启动的协议,获取设置的方式。
                        dhcp表示动态获取
                        static或none表示静态手工设置,若想使用本地设置好的IP则应该设置成这个
                        
DEFROUTE=yes        #是否设置默认路由,若为yes则可以在该文件通过PREFIX这个参数来设置子网掩码        

PEERDNS=yes            #yes表示由DHCP来获取DNS, no表示/etc/resolv.conf来控制,默以为yes。
                        yes:如果DNS设置,修改/etc/resolv.conf中的DNS
                        no:不修改/etc/resolv.conf中的DNS
                
NAME=eth0            #这个参数对应的值是网卡名,是给用户看的

UUID=...            #通用唯一识别码,若vmware克隆的假造机无法启动网卡可以去除此项

DEVICE=eth0            #系统逻辑装备名

ONBOOT=yes            #开机启动时是否激活网卡装备,centos7装完网卡后默认设置成no

HWADDR=...            #以太网硬件所在,mac所在)。若是vmware克隆的假造机无法启动网卡,也要改这个。

NM_CONTROLLED=yes    #是否通过NetworkManager管理网卡装备

IPADDR=...            #设置网卡对应的IP所在,网络服务启动,网卡激活后会自动将该所在设置到网卡上
                    前提(BOOTPROTO=static)而不是dhcp
                    
PREFIX=24            #子网掩码长度,不要这么写PREFIX=255.255.255.0

NETMASK=255.255.255.0    #生产情况中一样平常用这种方式指定子网掩码

GATEWAY=10.0.0.254    #该网卡设置的IP对应的网关(默认路由)
                    若主机是多网卡装备,该参数只能在一个网卡设置文件内里出现,一台主机只有一个默认路由
                    
DNS1=...            #主DNS,若这里设置了值,则会优先于/etc/resolv.conf中设置的DNS服务器的所在
                    必要和“PEERDNS=no”共同使用
                    
DNS2=...            #次dns
2.4网络相关命令三

### 9. 抓包方式
***抓包方式:wireshark抓包软件在Windows中使用\***
***Linux抓包命令tcpdump是一个抓包工具,用于抓取互联网上传输的数据包\***
```
    tcpdump是一个用于截取网络分组,并输出分组内容的工具。凭借强大的功能和机动的截取计谋,使其成为类UNIX系统下用于网络分析和问题排查的首选工具
    tcpdump 支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息
    
#常用选项
[root@oldboyedu ~]#yum -y install tcpdump
-i       #监听哪一个网卡 
-n       #不把ip解析成主机名
-nn      #不把端口解析成应用层协议
-c       #指定抓包的数量
-S       #不把随机序列和确认序列解析成绝对值
-w       #将流量生存到文件中,文件中的信息是无法直接查看的
-r       #读取文件中的内容
-v          #输出一个轻微具体的信息,比方在ip包中可以包括ttl和服务类型的信息。 
-vv      #输出具体的报文信息。
-nnvvi ens33
#实例 上家工作碰到过什么故障。
企业中碰到无法远程连接拍错流程: IDC机房服务器 云服务器
1.ping通
2.通过页面或者机房插显示器连接服务器抓包
tcpdump -nni eth0 port 12345
3.在公司windows电脑使用telnet连接测试
cmd窗口-->telnet 服务器IP所在  12345
结果: 
1.如果服务端可以看到来源公网IP所在 说明服务端做的限定
2.如果服务端来源IP所在不是公司公网IP所在 则必要放行抓取到的公网(打电话解决)
3.如果服务端收不到任何信息,说明是公司网络问题
生存到文件中
[root@oldboy:~]# tcpdump -w 1.txt -nnvvi ens33 dst www.baidu.com
查看文件中的内容
[root@oldboy:~]# tcpdump -r 1.txt

1、默认启动
tcpdump -vv        #平凡情况下,直接启动tcpdump将监督第一个网络接口上全部流过的数据包。
2、过滤主机
tcpdump -i eth1 host 192.168.1.1        #抓取全部经过eth1,目的或源所在是192.168.1.1的网络数据
tcpdump -i eth1 src host 192.168.1.1    #指定源所在,192.168.1.1
tcpdump -i eth1 dst host 192.168.1.1    #指定目的所在,192.168.1.1
3、过滤端口
tcpdump -i eth1 port 80            #抓取全部经过eth1,目的或源端口是80的网络数据
tcpdump -i eth1 src port 80        #指定源端口
tcpdump -i eth1 dst port 80        #指定目的端口
4、协议过滤
tcpdump -i eth1 arp
tcpdump -i eth1 ip
tcpdump -i eth1 tcp
tcpdump -i eth1 udp
tcpdump -i eth1 icmp
#抓tcp某端口的数据包
tcpdump -i eth0 tcp port 21 -nn
5、常用表达式
非 : ! or "not" (去掉双引号) 
且 : && or "and" 
或 : || or "or"
#抓取全部经过eth1,目的所在是192.168.1.254或192.168.1.200端口是80的TCP数
tcpdump -i eth1 '((tcp) and (port 80) and ((dst host 192.168.1.254) or (dst host 192.168.1.200)))'
#抓取全部经过eth1,目的MAC所在是00:01:02:03:04:05的ICMP数据
tcpdump -i eth1 '((icmp) and ((ether dst host 00:01:02:03:04:05)))'
#抓取全部经过eth1,目的网络是192.168,但目的主机不是192.168.1.200的TCP数据
tcpdump -i eth1 '((tcp) and ((dst net 192.168) and (not dst host 192.168.1.200)))'
```
### 10. Linux常用网络命令
2.5网络相关命令四

***1. 网卡命令规则\***
```
CentOS-6之前基于传统的命名方式如:eth1,eth0....
Centos-7提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名是全自动的、可预知的,缺点是比eth0、wlan0更难读。比如enp5s0
kylin系统 ens33
ubuntu系统 ens33
biosdevname和net.ifnames两种命名规范
#net.ifnames的命名规范为:   
    装备类型+装备位置+数字
#装备类型:
    en 表示Ethernet
    wl 表示WLAN
    ww 表示无线广域网WWAN
#实际的例子:
    eno1     #板载网卡
    enp0s2  #pci网卡
    ens33   #pci网卡
    wlp3s0  #PCI无线网卡
    wwp0s29f7u2i2   #4G modem
    wlp0s2f1u4u1   #连接在USB Hub上的无线网卡
#biosdevname的命名规范为:
    根据系统BIOS提供的信息对网络接口进行重命名。
    
    em[1-N] #表示主板(嵌入式)NIC (对应机箱标签)
    
    pci        #表示PCI插槽中的卡,端口1至N
    
实际的例子:
    em1     #板载网卡
    p3p4     #pci网卡
    p3p4_1     #假造网卡
    
CentOS-7
默认内核参数(biosdevname=0(dell服务器默认是1),net.ifnames=1):  网卡名 "enp5s2"
biosdevname=1,net.ifnames=0:网卡名 "em1"
biosdevname=0,net.ifnames=0:网卡名 "eth0" (最传统的方式,eth0 eth1)
#定义网卡命令规则
在安装系统时,选择安装选项,按tab键,在跳出的一行内容背面添加net.ifnames=0 biosdevname=0
#命令行设置网卡名称规则
[root@qls ~]# cd /etc/sysconfig/network-scripts/  #修改网卡设置文件
[root@qls network-scripts]# mv ifcfg-ens33 ifcfg-eth0
[root@qls network-scripts]# sed -i "s#ens33#eth0#g" ifcfg-eth0
[root@qls ~]# vim /etc/sysconfig/grub  #GRUB添加kernel参数
GRUB_CMDLINE_LINUX="...net.ifnames=0 biosdevname=0 quiet"
[root@qls ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
[root@qls ~]# reboot   #重启系统生效
```
2.6网络相关命令五

***3. 网络管理命令\***
**ping**
```
ping命令主要的功能是用来检测网络的连通情况和分析网络速度。
#常用选项
    -t        #连续ping,不中断。不加该选项只ping4个包。
    -n        #ping的包数,默认是4个。 windows
    -c      #ping包的个数,默认连续ping,linux
    -W        #多长时间ping一次。linux 延时1s
    -f        #极速ping。
windows: ping不通不能表示服务器不能访问 可能服务器禁止了ICMP协议(禁ping)
C:\Users\oldboy-lidao996>ping -n 2 www.baidu.com
正在 Ping www.a.shifen.com [110.242.68.3] 具有 32 字节的数据:
来自 110.242.68.3 的回复: 字节=32 时间=11ms TTL=52
来自 110.242.68.3 的回复: 字节=32 时间=12ms TTL=52
110.242.68.3 的 Ping 统计信息:
    数据包: 已发送 = 2,已吸收 = 2,丢失 = 0 (0% 丢失),
来回行程的估计时间(以毫秒为单位):
    最短 = 11ms,最长 = 12ms,平均 = 11ms
    
centos:
[root@oldboyedu ~]#ping -c2 -W1 www.baidu.com
PING www.a.shifen.com (110.242.68.4) 56(84) bytes of data.
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=128 time=16.3 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=2 ttl=128 time=11.1 ms
-c   ping的个数
-W1 延时1秒返回哀求
```
**nc**
```
nc是netcat的简写,有着网络界的瑞士军刀美誉。由于它短小精悍、功能实用,被计划为一个简朴、可靠的网络工具
#常用选项
     -l        #用于指定nc将处于侦听模式。
     -u        #指定nc使用UDP协议,默以为TCP
     -v        #输出交互或出错信息,新手调试时尤为有用
     -w        #超时秒数,背面跟数字 
     -z        #表示zero,表示扫描时不发送任何数据     
```
**nmap**
```
Nmap即网络映射器对Linux系统/网络管理员来说是一个开源且非常通用的工具。Nmap用于在远程机器上探测网络,实行安全扫描,网络审计和搜寻开放端口。
#常用选项
    -p            #指定端口号
       -p22           #单个端口
       -p22,80       #多个端口
       -p1-1000       #1到1000之间的端口
       
       
企业案例:
写一个脚本 探测自己全部的服务器上开放的服务以及端口 并且计算一些每个服务占用全部服务的百分比
```
**telnet**
```
一种远程登录的工具。同样可以查抄某个主机是否开启某个端口
默认端口23
#用法 主要功能链接路由器、交换机 telnet 192.168.13.1
    
[C:\~]$ telnet 10.0.0.99 22   

Connecting to 10.0.0.99:22...
Connection established.       # 连接成功 说明22端口开启
To escape to local shell, press 'Ctrl+Alt+]'.
SSH-2.0-OpenSSH_7.4
```
**netstat**
```
打印网络连接、路由表、tcp11种状态。
查看当前系统中运行了哪些服务端口
#常用选项
    -l        #只显示监听套接字。
    -n        #不做名字解析
    -t        #显示tcp端口
    -u        #显示udp端口
    -p        #显示pid和步伐名字
    -r        #显示路由表
    -a        #显示全部的套接字
netstat -tnulp
```
**ss**
```
跟netstat命令差不多。
2.7Linux命令总结


2.8Linux命令总结二



2.9系统紧张设置文件

**tracert**
```
(windows) 路由跟踪(查抄你与目的之间每个路口是否流通)
#常用选项
    -d   #禁止把IP解析为对应的域名(主机名)
C:\Users\oldboy-lidao996>tracert -d www.baidu.com
通过最多 30 个跃点跟踪
到 www.a.shifen.com [110.242.68.3] 的路由:
  1     1 ms     1 ms     2 ms  192.168.11.1
  2     2 ms    <1 毫秒    5 ms  192.168.1.1
  3     4 ms     3 ms     3 ms  221.218.208.1
  4     2 ms     8 ms     6 ms  61.148.162.57
  5     3 ms     7 ms     4 ms  202.106.34.1
  6     4 ms     3 ms     3 ms  202.96.12.1
 
 DNS流程:
 欣赏器缓存-->HOSTS-->windows缓存-->LDNS-->根
 
 查看windows缓存:
 ipconfig/displaydns
C:\Users\oldboy-lidao996>ipconfig/flushdns
Windows IP 设置
已成功刷新 DNS 解析缓存。

cmd---->mstsc 调出远程桌面
```
**traceroute**
```
路由跟踪(查抄你与目的之间每个路口是否流通)
#常用选项
      -n   禁止把IP解析为对应的域名(主机名)
在Linux系统中使用:
[root@oldboyedu ~]#traceroute -n -I www.baidu.com
traceroute to www.baidu.com (110.242.68.4), 30 hops max, 60 byte packets
 1  10.0.0.2  0.216 ms  0.176 ms  0.100 ms
 2  192.168.11.1  25.034 ms  24.795 ms  24.615 ms
 3  192.168.1.1  22.107 ms  21.941 ms  21.748 ms
```
**iftop**
```
iftop界面说明:
界面上面显示的是雷同刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
中间的<= =>这两个左右箭头,表示的是流量的方向。
TX:发送流量
RX:吸收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量
#常用选项
-i        #设定监测的网卡
-B         #以bytes为单位显示流量(默认是bits)
-n        #使host信息默认直接都显示IP
-P        #使host信息及端口信息默认就都显示
-m        #设置界面最上边的刻度的最大值,刻度分五个大段显示
按q退出监控。
yum -y install dstat

2.10三剑客命令

总结基础命令
紧张系统目次系统文件
文件属性
文件类型
inode号 block
find
awk
sed
grep
软件安装
用户管理
权限管理
定时使命
磁盘管理
历程管理
网络重点:
1.网络常用命令
ping
ip add 
route -n
ifconfig
nslookup
tcpdump
iotop
netstat -tnulp
telnet
ss -an|grep tcp
tracert
iftop
nmap
windows
ping
nslookup 
mstsc
cmd
ipconfig/all
ipconfig/flushdns
ipconfig/displaydns
2.OSI七层模型
3.TCP三次握手
4.TCP四次挥手
5.DNS解析流程
6.子网掩码决定IP可用数量
7.静态路由动态路由理解
三.基础阶段总结二(未完)

3.1用户权限管理总结


3.2阶段总结



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

李优秀

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表