本篇文章共6000字+1视频,完全阅读全篇约60分钟
州弟学安全,只学有用的知识
0x01 前言
本篇问针对于计算机网络专业期末考试、计算机网络爱好者、网工小白进行共同学习复现的环境,从原始的直连环境到BGP之间的过程,然后为IP划分,最后了解一下我们常见的协议
以下思维导图为本次文章和视频的知识点,视频全长约48分钟,如认为视频较长,可根据文章进行学习复现,文章和视频内如有问题烦请指出
# 本地实验工具
Ubuntu操作系统
H3C模拟器
wireshark流量分析工具
以下为在互联网收集的网工面试题、本次实验环境下载地址
https://pan.quark.cn/s/ba75afc25d54
* 如您认为本篇文章帮到了您,麻烦一键三连支持一下
* 本篇文章仅代表个人看法,仅供参考
0x02 知识学习
视频学习(48分钟)视频中在IP划分题目中有小瑕疵,已改正
直连
在传统的网络中,我们将一台设备与另一台设备用双绞线的方式直接连接,被称为直连
想要这两台设备以人为的方式通信,他们还需要有一个地址,我们称之为IP地址
在我们进行布线做线时,一般还需要根据T568A和T568B的线序进行做线,理论上来讲,这样可以减少干扰和串扰
当多台设备需要连接时,我们也可以互相连接,但是这样成本高,排错也麻烦,所以我们此时用到了集线器,将几台设备连接聚合到一块
集线器属于老式设备,缺点明显,当多台机器发送信息时,集线器会将消息发送给所有设备,这样会造成干扰和不必要的成本,所以我们有称集线器为傻HUB,此时我们用到了交换机
设备接入到交换机有一个前提:你的设备需要有MAC地址,我会记录你的MAC地址到MAC地址表,MAC地址是唯一的,可以理解为设备的UID
此时交换机内还没有其它设备的MAC地址
当设备进行首次通信时,交换机会记录设备的MAC地址,携带这个MAC地址去访问目标地址MAC,而此时交换机也不知道对方MAC哪台设备,所以交换机会首先发给所有设备,这个叫:泛洪
在进行了首次请求之后,交换机获取到了两个设备的MAC地址记录到了MAC地址表,其它设备设备发现自己MAC地址不匹配,则进行丢包,等下次在进行请求时,交换机直接从地址表内获取到MAC地址,不再进行泛洪
IP地址的含义
MAC地址是跟随网卡出厂进行配置的,假如当我们的设备损坏,需要更换网卡,则需要重新记录MAC地址,这样效率较低,所以此时IP地址诞生了
当PC_3发送请求PC_5时,PC_3也不知道PC_5的MAC地址,只知道IP地址:相当于机房或互联网,我们只知道对方的IP
然后PC_3发送请求命令,相关数据包(自己MAC和IP地址)会发给交换机,交换机看到IP地址所对应的MAC地址为:NULL,则会发起泛洪,其它设备发现IP地址和自己对不上,则丢包,最后PC_5发现请求的是自己的地址,则将自己的MAC和IP及响应返回给交换机,交换机在此期间将PC_3和PC_5的MAC地址和IP地址对应绑定,下次二者再次请求时,则不在泛洪
此时查看交换机记录地址表,已经将所有的MAC地址对应接口进行记录
这个过程叫做:ARP,MAC地址和IP地址绑定记录的表叫做ARP表
其次还有一个基础面试题,调研过很多人,回答出来的很少,包括我自己一开始也没回答上来
问:在两台新设备上网时,为什么新设备进行ping时,第一个包总是丢包?
在学习计算机网络或计算机其它知识之前,我们需要首先了解到二进制,我们在执行程序或代码时,计算机所看到的并不是我们写的代码,而是一堆的0和1,由0和1组成的基数即为二进制
如上图所示,上面8个1在计算机表示为255,为什么呢?首先我们通常将二进制称为一二四八码,0就是0或false,1就是1或true
上方从右往左开始,1为初始值,往左依次以2倍形式相乘,直到最后为128,然后将其加一块即为255,没错有很多同学很眼熟的,子网掩码的255.255.255.0就是24个1和8个0组成
其次就是我们所用到的手机,硬盘,内存等都是以8G、16G、32G、64G、128G、256G、521G、1024G(1T)等进行表示,就是这个原理
IP分类与子网划分
IP地址由4个字节、32位组成的逻辑地址,将32位分成4组,每组8个二进制
1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | . | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | . | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | . | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
以上意为248.179.203.134
网络号与主机号/IP分类
无论是学习网络还是安全人员,有时候对网络划分特别的容易被绕,很难啃
网络号代表着主机的范围,主机号代表着某一台主机的地址,网络号范围越小,容纳主机越多
A类子网地址
A类子网地址默认子网掩码是255.0.0.0
由于是二进制计算,所以在快捷填写掩码的时候,以8进行表达
网络ID是0开头(二进制),在A类地址中127为保留地址,意为本地地址
127.0.0.1为本地回环地址
在A类地址中,第一位取值范围:1-126,其余都是0-255,所以可容纳主机数量:256x256x256-2(网络地址和广播地址)
要求开头必须是0,所以范围是1-127
B类子网地址
B类子网地址默认子网掩码是255.255.0.0
由于是二进制计算,所以在快捷填写掩码的时候,以16进行表达
网络ID是10开头(二进制)
在B类地址中169.254.0.0到169.254.255.255为保留地址在DHCP不可用是会自动分配此地址
172.16.0.0-172.31.255.255为私网地址,不会在公网中进行路由
在B类地址中,第一位取值范围:128-191,其余都是0-255,所以可容纳主机数量:256x256-2(网络地址和广播地址)
要求开头必须是10,所以范围是128-191
C类子网地址
C类子网地址默认子网掩码是255.255.255.0
由于是二进制计算,所以在快捷填写掩码的时候,以24进行表达
网络ID是110开头(二进制)
在C类地址中192.168.0.0到192.168.255.255为保留地址在私有网络中进行使用,不会在公网中进行路由
在C类地址中,第一位取值范围:192-223,其余都是0-255,所以可容纳主机数量:256-2(网络地址和广播地址)
要求开头必须是110,所以范围是192-224
D类子网地址
D类地址:以1110开头,用于多播,没有子网掩码,第一部分取值224-239,其余部分0-255
怎么求网络地址
例如,IP地址为192.168.1.10,子网掩码为255.255.255.0。
192.168.1.10的二进制形式为:11000000.10101000.00000001.00001010
255.255.255.0的二进制形式为:11111111.11111111.11111111.00000000
网络地址是通过将IP地址的二进制形式与子网掩码的二进制形式进行逻辑与(AND)运算得到的。
11000000.10101000.00000001.00001010(IP地址)
11111111.11111111.11111111.00000000(子网掩码)
11000000.10101000.00000001.00000000
逻辑与运算结果:11000000.10101000.00000001.00000000
将结果转换回十进制形式:192.168.1.0
所以,网络地址是192.168.1.0。
怎么求广播地址
广播地址是通过将网络地址的二进制形式与子网掩码的反码(即子网掩码的二进制形式中0变为1,1变为0)进行逻辑或(OR)运算得到的。
255.255.255.0
子网掩码:11111111.11111111.11111111.00000000
反转:00000000.00000000.00000000.11111111
11000000.10101000.00000001.00000000(IP地址)
00000000.00000000.00000000.11111111(子网掩码的反码)
逻辑或运算结果:11000000.10101000.00000001.11111111
将结果转换回十进制形式:192.168.1.255
所以,广播地址是192.168.1.255。
子网掩码
当全网中有多台设备时,多个大型拓扑时,我们当然也可以利用交换机进行连接,但是由于计算机泛洪的原因,可能导致网络不稳定,紊乱其次不好管理的情况,所以需要将网络进行隔离,将网络分为不同的段,交换机只用来传输不同段的消息,以此提高效率,此时我们需要用到子网掩码
子网划分题目
题目1
192.168.1.100/29=255.255.255.248求网络地址、主机范围和广播地址
求网络地址:
网络地址转二进制:11000000.10101000.00000001.01100100 子网掩码转二进制:11111111.11111111.11111111.11111000 逻辑与:11000000.10101000.00000001.01100000 二进制转十进制:192.168.1.96
求广播地址:
子网掩码转二进制:11111111.11111111.11111111.11111000 反转:00000000.00000000.00000000.00000111 IP地址转二进制:11000000.10101000.00000001.01100100 逻辑或:11000000.10101000.00000001.01100111 二进制转十进制:192.168.1.103
主机范围:192.1681.96-192.168.1.103
较为简单的方法
C类网络24位(192为C类网络),此处29相当于借了5位,32=2^5,每个子网可以容纳2^3-2=6个主机(网络地址和广播地址)
2^3(主机位)=256-248(给出的掩码)=8
8的倍数最接近于100的为96
网络地址:192.168.1.96
主机范围:192.168.1.97-192.168.1.102
广播地址:192.168.1.103
静态路由
我们学会了IP地址的划分,那么设备是怎么来识别出内网还是外网的IP呢
当将子网掩码和IP地址的二进制进行逻辑与后,计算机知道了IP的当前网段属于内网还是外网,对于外网的IP,计算机将发给外网的设备进行转发,这个设备叫做路由器
以上拓扑中,所有设备都是不同网段,理论是无法进行互通的,所以我们需要手动进行配置静态路由
[H3C]sysname R1
[R1]int g 0/1
[R1-GigabitEthernet0/1]ip add 192.168.0.124
[R1-GigabitEthernet0/1]int g 0/0
[R1-GigabitEthernet0/0]ip add 192.168.1.130
[R1-GigabitEthernet0/0]exit
[R1]ip route-static 192.168.2.024192.168.1.2
[H3C]sysname R2
[R2]int g0/1
[R2-GigabitEthernet0/1]
ip add 192.168.2.124
[R2-GigabitEthernet0/1]int g 0/0
[R2-GigabitEthernet0/0]ip add 192.168.1.230
[R2-GigabitEthernet0/0]exit
[R2]ip route-static 192.168.0.024192.168.1.1
就这样我们在两台交换机中加了各自的路由,此时我们的PC可以进行互通
如我们在自己Windows系统输入route print即可获取到自己电脑的路由表,当然这些都是自动路由
当我们网络规模很大时,由人工一个个管理路由的时候会很麻烦,这个时候OSPF技术进行自动学习和管理路由协议,当网络规模更大时,OSPF也会逐渐疲软,这个时候会使用BGP等协议
当然以上这些都是和网工息息相关,在使用者、客户视角中还是类似于傻瓜式直连这么简单,无需操心这么多
VLAN/WLAN/MAN等讲解
LAN: LAN就是局域网,如一个办公室,一个机房,使用交换机将它们连接实现互通,一般称为LAN
WLAN: 与LAN的意思差不多,但WLAN使用无线技术连接通信的局域网,可以在范围内进行连接,我们目前称为WIFI
VLAN: VLAN相较于以上不同,是使用特殊技术将不同位置的网络设备组合在一起,VLAN可以让通信更加灵活和安全,常用于网络规划和网络隔离等
VPN: 与其它网络协议不同,VPN虚拟私有网络,指的是在公有网络中连接私有网络的环境,VPN是通过加密和安全隧道的方式进行创建,用于保护用户的隐私性和安全性
举例:某医院内网环境有大量的数据,医生出差,但可能有急事需要查数据或开处方,这个时候又不能马上回去,可以使用分发的个人VPN账号进行接入内网,通过已分配给自己的权限进行工作,这样收敛了在公网的数据安全暴露面,又保护了隐私
VLAN
VLAN指的是通过特殊的技术将不同位置的机器进行划分连接,以方便通信、安全性,易于管理
实验环节
本次使用HCL模拟器进行实验,搭建VLAN环境进行通信,来理解VLAN的意义
实验拓扑如上,设环境:上述环境为某内网,都在同一个段内
要求:PC3和PC5为财务部门,PC4和PC6为运维部门机器,使用vlan进行划分,要求运维部和财务部不互通
目前未划分的情况下是互通的
首先,在第一台交换机1口和2台交换机1口创建vlan,将其划入vlan10中,并创建trunk
https://pan.quark.cn/s/ba75afc25d54
0
https://pan.quark.cn/s/ba75afc25d54
1
此时将相关端口加入到相关vlan中,并在两台交换机之间的网口中放行vlan10和vlan20
此时满足要求,PC3不通PC4,但是可以通PC5
也满足了PC4可通PC6,但不通其它的要求
TCP协议
在以往我们以IP地址和端口的形式去访问,是以UDP形式访问的,UDP形式简单粗暴,但稳定性低,比如我们现在常见的DNS协议走的就是UDP,有些同学会很懵,什么UDP协议和DNS协议
这个时候我们需要搞懂一个东西叫做OSI模型的东西,不同的协议在不同的层
我们已经知道了网络是不稳定的,发送消息的途中会有丢包的可能性,所以设置了重试机制,为了知道我们消息是否发送成功,还得要让对方发送确认消息,这样一来一回就确保了消息送达
当我们数据较大时,比如传个文件,则需要采用分包机制来提高传输率,为了不让每个包乱序,所以在每个数据包之前加了序号标签,到达时则进行按序排列,没有送达的则进行重新发送
因为TCP协议的稳定性,所以我们在进行连接和会话时,需要进行三次握手和四次挥手,其次为了防止一直重试来影响稳定和浪费资源,我们需设置超时机制,如我浏览器访问一个没有开放的端口,这时候肯定不可达,则未建立连接
在尝试几次后回显超时,这样就不会一直进行发包,我们所数值的DDOS泛洪就是这个原理,对方端口开着,攻击者发送请求,服务器收到响应,在三次握手和四次挥手中,最后的时候攻击者不在给回应,服务器会一直等待,这样会浪费资源直至宕机,所以需要设置超时机制
NAT协议
在当下我们的IPV4地址已资源匮乏,想要一机一IP是不可能实现的,所以就想到了NAT协议,比如在我们的办公或内网中,通常都是以10.x.x.x或172.16.x.x或192.168.x.x的IP,这个就是内网IP对外进行请求时,请求会交给内网网关,网关根据路由表向外进行发送请求,以达到我们使用外网IP的任一端口访问网络资源,达到多人用一个IP的目的
这里打开两个wireshark抓包,一个抓我能上网的网卡,另一个抓我VMware的NAT网卡进行实验
VMnet8网卡为NAT网卡,我们发出请求后,会自动路由可以出网的网卡,我这里可以出网的网卡为WLAN,所以另一个wireshark线程抓取WLAN网卡
我用虚拟机访问了百度,然后我们筛选一下流量
通过抓取百度的流量后,可以看到非常完整的TCP流量,首先通过DNS进行解析的域名,然后进行了TCP连接,然后我们本地的端口为37726,目标端口为443,此时本地端口是NAT网卡本机地址的端口
由于wlan网卡流量太多,简单筛选过滤一下后看到,我们的请求通过路由WLAN网卡进行了对外请求,先进行了DNS解析,然后进行访问,不同于刚才虚拟机建立的源端口,我们WLAN网卡使用的端口为36430
然后我们的请求会通过路由器,交换机,出口IP逐一进行对外访问,这期间,每个设备都会开放自己任一端口进行访问目标地址,并记录源地址和目标地址,回包的时候通过记录的地址和相应端口进行返回响应信息,这个过程使用者是无需操心的
0x03 结语
希望这篇文章在帮助我复习和总结的时候,也能帮助到你,如您是学生,希望您能考试顺利,勇攀高峰,如您是就业人员,希望您可以步步高升,每天学习一点新技术,日积月累就是大牛
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...