基本概念
互联网 (internet)
互联网就是各种终端通过转发设备(交换机,路由器)进行环型的连接形成一个图的结构,使之每个设备都能够互相连通,如下图:
计算机之间的连接方式
- 同台电脑直连
- 同轴电缆(Coaxial)
- 集线器(hub)
- 网桥(Bridge)
- 交换机(Swtch)
- 路由器(Router)
上面的设备都是用于连接终端设备的,发展使也是从上往下
直通线:接口两端同样的颜色会对应同一个接口位
交叉线:有些线的位置需要调整,如下图
同台电脑直连
直接使用网线将两台PC连接,需要使用 直通线
同轴电缆(Coaxial)
- 半双工通信(发送和接收不能同时进行)
- 容易冲突
- 不安全
- 中间断了,整个网络都瘫痪
集线器(hub)
用于连接多台PC终端,所有PC都需要在同一网段
- 半双工通信(发送和接收不能同时进行)
- 容易冲突
- 不安全
- 和同轴电缆一样:没有智商
网桥(Bridge)
主要用于隔绝冲突域,连接2边的集线器,能够通过自学习得到每个接口那侧的MAC地址
所以它会缓存两边的PC的MAC地址,当发起ARP(Address Resolution Protocol 地址解析协议)
的时候就不需要再去广播了,所以说它是有智商的
交换机(Switch)
- 相当于接口更多的网桥
- 全双工通信(可以同时接和收)
- 比集线器安全
- 智能
路由器(Router)
- 隔绝广播域
- 可以在不同网段之间转发数据
- 路由器两端也必须是不同网段
连接的设备必需在同一网段
连接的设备处在同一广播域(广播是针对同一网段的)
MAC地址、IP地址
MAC地址
- 每个网卡都有一个唯一6字节(48bit)的MAC地址(
Media Access Control Address
) - 全球唯一,固化在网卡的ROM中,由IEEE802标准规定
- 前3字节:OUI(Orgnaizationally Unique Identifier),组织唯一标识符,由IEEEE的注册管理机构分析给厂商
- 后3字节:网络接口标识符,由厂商自行分配
http://standards-oui.ieee.org/oui/oui.txt
MAC地址表示格式
- Windows
- 60-38-78-10-8C-34
- Linux、Android、Mac、iOS
- 60:38:78:10:8C:34
- Packet Tracer
- 6038.7810.8C34
- 当48位全为1时,代表广播地址
- FF-FF-FF-FF-FF-FF
MAC地址操作
- 查看MAC地址
- windows: ipconfig /all
- linux: ifconfig
- 修改MAC地址
- 更改适配器选项 -> 属性 -> 配置 -> 高级 -> 网络地址
- 填写时需要把减号(-)去掉
MAC地址的获取
- 当不知道对方主机的MAC地址时,可以通过发送
ARP
广播获取对方的MAC地址- 获取成功后,会缓存IP地址、MAC地址的映射信息,俗称:ARP缓存
- 通过ARP广播获取的MAC地址,属于动态(dynamic)缓存
- 存储时间比较短(默认是2分钟),过期后自动删除
- 相关命令
- arp -a [主机地址]: 查询当前设备或指定IP的ARP缓存
- arp -d [主机地址]: 删除AR缓存
- arps -s 主机地址 MAC地址: 手动增加一条ARP缓存,属于静态缓存,不同系统存储时长不同
ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击
攻击主机PC2发送ARP应答包给被攻击主机PC1和网关,分别修改它们的ARP缓存表, 将它们的ip地址所对应的MAC地址,全修改为攻击主机PC2的MAC地址,这样它们之间数据都被攻击主机PC2截获
简单描述:
我是PC2,PC1是被攻击者,我通过ARP包告诉网关我是PC1,告诉PC1我是网关,这样他们发送的数据就都会发给我,从而实现数据拦截(可以实现对目标进行限速等操作)
IP地址
IP地址(Internet Protocol Address):互联网上的每一个主机都有一个IP地址
最初是IPv4版本,32bit(4字节),2019年11月25日,全球的IP地址已经用完
后面推出了IPv6版本,128bit(16字节),目前使用的还是IPv4,特殊地方才用IP6
IP地址的组成
- IP地址由2部分组成:网络标识(网络ID)、主机标识(主机ID)
- 通过子网掩码(subnet mask)可以得到网络ID、主机ID
- 主机所在的网段:子网掩码 & IP地址
- 计算机再与其它计算机通信前,会先判断是否在同一网段
- 同一网段:不需要路由器进行转发
- 不同网段:需要路由器进行转发
上面的IP地址与子网掩码计算的网段为:192.168.1.0
只有当两个都为1的时候才为1,其它为0
IP地址的分类
A类地址:子网掩码默认是255.0.0.0
B类地址:子网掩码默认是255.255.0.0
C类地址:子网掩码默认是255.255.255.0
D类地址:以1110开头,多播地址
E类地址:以1111开头,保留为今后使用
- 只有A\B\C类地址才能分配给主机
- 主机ID为全0,表示主机所在的网段
- 主机ID为全1 ,表示主机所在的网段所有主 要(用于广播)
- 使用ping广播地址可以实现获取当前网段内的所有在线主机
A类地址
- 网络ID
- 0不能用,127作为保留网段。其中 127.0.0.1 是本地环回地址(Loopback),代表本地地址
- 1~126 为可以分配给主机用
- 主机ID
- 第2、3、4部分的取值范围:0~255
- A类网络最大能容纳主机数:256 * 256* 256 - 2 = 2的24次方 - 2 = 16777214
- 减2原因:0不能用,网段不能用
B类地址
- 网络ID
- 可分配给主机的
- 第1部分:128~191
- 第2部分:0~255
- 可分配给主机的
- 主机ID
- 第3、4部分的取值范围:0~255
- B类网络最大能容纳主机数:256 * 256 - 2 = 2的16次方 - 2 = 65534
C类地址
- 网络ID
- 可分配给主机的
- 第1部分:192~223
- 第2、3部分:0~255
- 可分配给主机的
- 主机ID
- 第4部分的取值范围:255
- B类网络最大能容纳主机数:256 - 2 = 254
D类地址
- 没有子网掩码,用于多播(组播)地址
- 第1部分取值范围:224~239
E类地址
没有子网掩码,用于多播(组播)地址
第1部分取值范围:240~255
子网掩码的CIDR表示方法
- CIDR (Classless Inter-Domain Routing):无类别域间路由
- 子网掩码的CIDR表示方法
- 192.168.1.100/24,代表子网掩码为 24个1,也就是 255.255.255.0
- 123.210.100.200/16,代表子网掩码为 16个1,也就是 255.255.0.0
- 计算工具
子网划分
为什么要进行子网划分
200台主机在同一网段,分配一个C类网段,如:192.168.1.0/24
- 共254个可用IP地址:192.168.1.1~192.168.1.254
- 多出54个空闲的IP地址,这到不算浪费
如果 500台主机在同一网段,分配一个B类网段,如:191.100.0.0/16
- 共65534个可用IP地址:191.100.0.1~191.100.255.254
- 多出65034个空闲的IP地址,这种情况属于极大的浪费资源
为了避免浪费IP地址资源,就需要进行子网划分
如何子网划分
- 借用主机位做子网位,划分出多个子网
- 2种划分方式
- 等长子网划分:将一个子网划分成多个子网,并且每个子网可用IP地址数一样
- 变长子网划分:划分成多个可用IP地址不一样的子网
- 子网在线划分器:http://www.ab126.com/web/3552.html
- 子网划分步骤:
- 确定子网的子网掩码长度
- 确定子网中第1个、最后1个主机可用IP地址
等长子网划分
等分成2个子网
A子网
- 可用IP地址:192.168.0.1 ~ 192.168.0.126 (0 和 127 不能用,0是网段,127是广播地址)
B子网
- 可用IP地址:192.168.0.129 ~ 192.168.0.254(128 和 255 不能用,128是网段,255是广播地址)
2个网段的子网掩码都是:255.255.255.128/25,每个网段可用主机数为:126
如上图,将网络位往主机部借1位时,主机部分可用的位数就只有7位,此时网络部分可分为 :
- A子网:192.168.0|0
- B子网:192.168.0|1
主机部分全0和全1是不能做为可用IP地址的,全0是网段,全1就是广播地址
- A子网的主机部分可用IP就是 0|0000001 ~ 0|1111110 (1~126)
- B子网的主机部分可用IP就是 1|0000001 ~ 1|1111110 (129~254)
- 注:虽然向主机位借位,但计算主机IP个数时还是按之前的8位来算,需要加上被借的那1位
等分成4个子网
- A子网:192.168.0.1 ~ 192.168.0.62
- B子网:192.168.0.65 ~ 192.168.0.126
- C子网:192.168.0.129 ~ 192.168.0.190
- D子网:192.168.0.193 ~ 192.168.0.254
- 4个子网的子网掩码都是:255.255.255.192/26,每个网段可用主机数:62
等分成8个子网
A子网:192.168.0.1~192.168.0.30
B子网:192.168.0.33~192.168.0.62
C子网:192.168.0.65~192.168.0.94
D子网:192.168.0.97~192.168.0.126
E子网:192.168.0.129~192.168.0.158
F子网:192.168.0.161~192.168.0.190
G子网:192.168.0.193~192.168.0.222
H子网:192.168.0.225~192.168.0.254
8个子网的子网掩码都是:255.255.255.224/27,每个网段可用主机数:30
如果一个子网是是原来网络2/1,子网掩码往后移1位就行,如果是4/1,移2位,是8/1,移3位,简单点就是 移几位就是2的几次方
1位 = 2^1 = 2
2位 = 2^2 = 4
3位 = 2^3 = 8
变长子网划分
- 等长子网划分是每个子网都使用 **相同 **的子网掩码
- 变长子网划分是每个子网都使用 **不同 **的子网掩码
对 192.168.100.0/24 网段进行变长子网划分,需要主机数分别为 A: 80,B: 50,C: 24,D: 10 不同数量的网段,如果使用等长子网划分,划分成4个网段,那样每个网段的主机数只有 62个,不满足 80 个主机的要求,此时就可以使用变长子网划分
步骤:
- 满足A:先将 192.168.100.0/24 往后移一位,划分出 192.168.100.0/25 与 192.168.100.128/25 两个网段,将 192.168.100.0/25 网段的 126 个地址分配给 A 用
- 满足B:再将剩余的 192.168.100.128/25 网段再往后移一位,划分出 192.168.100.128/26 与 192.168.100.192/26 两个网段,将 192.168.100.128/26 网段的 62个地址分配给B用
- 满足C:再将 192.168.100.192/26 再往后移一位,划分出 192.168.100.192/27 与 192.168.100.224/27 两个网段,将 192.168.100.192/27 网段的 30个地址分配给C用
- 满足D:再将 192.168.100.224/27 再往后移一位,划分出 192.168.100.224/28 与 192.168.100.240/28 两个网段,将 192.168.100.224/28 网段的 13个地址分配给D用
思考问题
思路:先将两台PC的网段算出来,看是不是同一网段
- PC1:192.168.0.0/24
- PC2:192.168.0.0/16
看上去好像两个是同一网段,实际是不能进行通信的,为什么呢?当一台设备与另一台设备进行通信之前是怎么处理的?首先它并不知道目标设备的子网掩码,只知道目标设备的IP地址,所以它要判断该设备是否和自己是同一网段,它是直接拿自己的子网掩码去和目标IP进行&运算得到网段,网段一样才会通讯,计算如下:
【PC1=>PC2】 192.168.10.10/24 = 192.168.10.0 与自己的网段 192.168.0.0 不一样,所以无法通讯
【PC2=>PC1】 192.168.0.10/16 = 192.168.0.0 与自己的网段 192.168.0.0 一样,可以通讯
注意:PC1 不能发给 PC2,但 PC2 能发给 PC1,只有两同设备都能够互相通信,才能真正通讯
超网
- 它和子网是反过来,将多个连续的网段合并成一个更大的网段
- 比如原来有200台设备使用192.168.0.0/24网段,现在想再增加 200台设备到同一网段
- 200台在 192.168.0.0/24网段,另外200台在 192.168.1.0/24网段
- 合并 192.168.0.0/24 与 192.168.1.0/24 网段为 192.168.0.0/23 网段(子网掩码往左移动1位)
合并2个子网
合并4个子网
思考:下面这2个网段向左移一位能合并吗?
答案是不可以的,为什么呢?因为如果只向左移一位的话,它们的网段还是不相同的,当然就不是同一网段了,所以至少移2位才可以
判断一个网段是子网还是超网
- 首页判断IP地址的类型,是A类、B类、C类?
- A类子网掩码是8位,就是 255.0.0.0,如果 当前IP地址是A类,再看子网掩码是往左移位还是往右移位,往左移位就是超网,往右移位就是子网
- B类是16位
- C类是24位