本文发布于Cylon的收藏册,转载请著名原文链接~


OSI Model

OSI 七层网络模型如下(由下到上):

  • 应用层 Application layer :直接接触用户数据的层。软件应用程序依靠应用层发起通信。这里的应用值得是协议而不是客户端软件;应用层协议包括 HTTP, SMTP, FTP, DNS,Telnet, etc..
  • 表示层 Presentation layer:表示层充当角色为网络数据转换器,负责完成数据转换,加密和压缩
  • 会话层 Session layer:负责建立、管理和终止两个设备之间的通信
  • 传输层 Transport layer:负责两个设备间的端到端通信。包括从会话层提取数据,将数据分解为多个区块(称为数据段);传输层协议包括,TCP, UDP
  • 网络层 Network layer:负责管理网络地址,定位设备,决定路由,通俗来讲是负责*“不同”*网络之间的传输,也就是路由功能;网络层协议包括 IP,ARP,ICMP;代表设备 3 layer swtich, router, firewall。相应就代表对应网络协议也是三层的,如RIP, OSPF, BGP
  • 数据链路层 Data link layer:数据链路层负责*“同一”*网络上设备之间的数据传输;该层协议包括 Ethernet, PPP(Point-to-Point Protocol);代表设备 Switch,Bridges,同样的MAC地址也是该层的
  • 物理层 Physical layer:该层表示参与数据传输的物理设备,如网线,同时还负责将数据转换为位流,也就是由 1 和 0 构成的字符串。

image-20220811233536367

图:OSI七层模型
Source:https://www.cloudflare.com/zh-cn/learning/ddos/glossary/open-systems-interconnection-model-osi/

MAC

MAC地址介绍

MAC (Media Access Control) 地址用来定义网络设备的位置,由48比特长,12位的16进制组成,其中从左到右,0-23bit为厂商想IETF等机构申请用来标识厂商的代码OUI Organizationally-Unique Identifier,24-47bit由厂商自行分配,是厂商制造所有网卡的唯一编号。如00-50-56-C0-00-08

MAC地址类型

MAC地址分为三种类型:

  • 物理MAC地址:Mac地址唯一的标识了以太网的一个终端,该地址为全球唯一的硬件地址。
  • 广播(broadcast) MAC地址:每个比特都是 1 的 MAC 地址。广播 MAC 地址是组播 MAC 地址的一个特例。11111111-11111111-11111111-11111111-11111111-11111111 16进制表示为 FF-FF-FF-FF-FF-FF
  • 组播(multicast) MAC地址:第一个字节的最低位是 1 的 MAC 地址。二进制表示为 xxxxxxx1-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx ;16进制表示为01-00-00-00-00-00。如 a5-a9-a6-aa-5a-a6 这个mac地址的第一个字节的最低位 16进制a5 转换为二进制为10100101 最后一位为1就是组播MAC地址。
  • 单播 (unicast) MAC 地址:第一个字节的最低位是 0 的 MAC 地址 xxxxxxx0-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx

静态MAC地址

由用户通过命令配置的静态转发的MAC地址,静态MAC地址和动态MAC地址的功能不同,静态地址一旦被加入,该地址在删除之前将一直有效,不受最大老化时间的限制

动态MAC地址

由交换机从接受到报文自动学习到的MAC地址,当端口收到一个报文时,会查找报文的源MAC地址是否存在于MAC地址表中,如果不存在则会将相应的端口、VLAN和源MAC地址关联起来,并保存到MAC地址表中,动态MAC地址在达到一定老化时间后,会被老化删除,但如果该地址在老化时间内被正确使用过,则会重新激活地址的老化时间。

过滤MAC地址、黑洞MAC地址

有用户通过命令配置的静态过滤MAC,当网关接收到的报文中,源或目的MAC地址为过滤MAC地址,则直接丢弃该报文。

IP地址

IP地址是在计算机网络中用来标识一个设备的一组数字,IPv4是由32位二进制数值组成,单为了便于用户识别记忆,采用了点分十进制表示法,这种表示法的IPv4地址有4个点分十进制证书来标识,每个十进制证书对应一个字节。

IPV4

IPv4地址有如下两个部分组成:

  • 网络段 Net-id:用来标识一个网络。

  • 主机段 Host-id:用来区分一个网络内的不同主机,对于网络号相同的设备,无论实际所处的物理位置如何,他们都处在同一个网络中。

IP地址的分类

分类网络 classful addressing,描述互联网网络的一个术语,将IPv4的IP地址分为5类,每个类别地址都由他们前三位标识,定义了网络的大小或者类型。

类型 前缀位 网络地址位数 剩余的位数 网络数 每个网络的主机数
A类地址 0 8 24 128 16,777,214
B类地址 10 16 16 16,384 65,534
C类地址 110 24 8 2,097,152 254
D类地址(群播) 1110 未定义 未定义 未定义 未定义
E类地址(保留) 1111 未定义 未定义 未定义 未定义

可用的主机地址总是 $2^n - 2$( n 是所用的位数,减2是因为第一个和最后一个地址都是无效的)。因此,对于用8位来表示主机地址的C类地址来说,主机数就是254。

分类 前缀码 开始地址 结束地址 对应CIDR修饰 默认子网掩码
A类地址 0 0.0.0.0 127.255.255.255 /8 255.0.0.0
B类地址 10 128.0.0.0 191.255.255.255 /16 255.255.0.0
C类地址 110 192.0.0.0 223.255.255.255 /24 255.255.255.0
D类地址 (群播) 1110 224.0.0.0 239.255.255.255 /4 未定义
E类地址 (保留) 1111 240.0.0.0 255.255.255.255 /4 未定义
A类地址
  0.  0.  0.  0 = 00000000.00000000.00000000.00000000
127.255.255.255 = 01111111.11111111.11111111.11111111
                  0nnnnnnn.HHHHHHHH.HHHHHHHH.HHHHHHHH
B类地址
128.  0.  0.  0 = 10000000.00000000.00000000.00000000
191.255.255.255 = 10111111.11111111.11111111.11111111
                  10nnnnnn.nnnnnnnn.HHHHHHHH.HHHHHHHH

C类地址
192.  0.  0.  0 = 11000000.00000000.00000000.00000000
223.255.255.255 = 11011111.11111111.11111111.11111111
                  110nnnnn.nnnnnnnn.nnnnnnnn.HHHHHHHH

D类地址
224.  0.  0.  0 = 11100000.00000000.00000000.00000000
239.255.255.255 = 11101111.11111111.11111111.11111111
                  1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX

E类地址
240.  0.  0.  0 = 11110000.00000000.00000000.00000000
255.255.255.255 = 11111111.11111111.11111111.11111111
                  1111XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX

专用 IP 地址

专用 IP 地址是内部地址,不能通过互联网路由,例如 RFC 1918 地址。所有专用 IP 地址都是内部 IP 地址;但是,并非所有内部 IP 地址都是专用 IP 地址。

因特网域名分配组织IANA组织(Internet Assigned Numbers Authority)保留了以下三个IP地址块用于私有网络。

  • 10.0.0.0 - 10.255.255.255 (10/8比特前缀)

  • 172.16.0.0 - 172.31.255.255 (172.16/12比特前缀)

  • 192.168.0.0 - 192.168.255.255 (192.168/16比特前缀)

VLSM

可变长子网掩码 VLSM ,是为了有效使用无类别域间路由(CIDR)和路由汇聚(route summary)来控制路由表的大小,它是网络管理员常用的IP寻址技术,VLSM就是其中的常用方式,可以对子网进行层次化编址,以便最有效的利用现有的地址空间。

VLSM的优点

  • IP地址的使用更加有效
  • 应用路由汇总时,有更好的性能
  • 与其他路由器的拓扑变化隔离

192.168.1.0/24 其二进制地址为

11000000.10101000.00000001.00000000

⑴ 确定子网掩码的长度为24;

⑵ 确定子网下的主机可用地址范围 $2^n - 2$ 即为 192.168.1.1 ~ 192.168.1.254 (第一个可用IP和最后一个可用IP);

⑶ 确定网络地址(主机位全为0 192.168.0.0)和广播地址(主机位全为1 192.168.0.255)不能分配计算机主机。

VLSM允许把子网继续划分为更小的网络

子网掩码 子网数 主机数 IP数
/25
255.255.255.1| 0000000
255.255.255.128
2
192.168.0.0 ~ 192.168.0.127
192.168.0.128 ~ 192.168.0.254
$2^n - 2=128-2=126$ 128
/26
255.255.255.11 | 000000
255.255.255.192
4
192.168.0.0 ~ 192.168.0.63
192.168.0.64 ~ 192.168.0.127
192.168.0.128 ~ 192.168.0.191
192.168.0.192 ~ 192.168.0.255
$2^n - 2=64-2=62$ 64
/27
255.255.255.111 | 00000
255.255.255.224
8
192.168.0.0 ~ 192.168.0.31
192.168.0.32 ~ 192.168.0.63
192.168.0.64 ~ 192.168.0.95
192.168.0.96 ~ 192.168.0.127
192.168.0.128 ~ 192.168.0.159
192.168.0.160 ~ 192.168.0.191
192.168.0.192 ~ 192.168.0.223
192.168.0.224 ~ 192.168.0.255
$2^n - 2=32-2=30$ 32
/28
255.255.255.1111 | 0000
255.255.255.240
16
192.168.0.0 ~ 192.168.0.15
192.168.0.16 ~ 192.168.0.31

192.168.0.224 ~ 192.168.0.239
192.168.0.240 ~ 192.168.0.255
$2^n - 2=16-2=14$ 16
/29
255.255.255.11111 | 000
255.255.255.248
32
192.168.0.0 ~ 192.168.0.7
192.168.0.8 ~ 192.168.0.15

192.168.0.232 ~ 192.168.0.247
192.168.0.248 ~ 192.168.0.255
$2^n - 2=8-2=6$ 8
/30
255.255.255.111111 | 00
255.255.255.252
64
192.168.0.0 ~ 192.168.0.3
192.168.0.4 ~ 192.168.0.7

192.168.0.248 ~ 192.168.0.251
192.168.0.252 ~ 192.168.0.255
$2^n - 2=4-2=2$ 4
/31
255.255.255.1111111 | 0
255.255.255.254
作为网段是无效的,一个网络地址和一个广播地址,剩余可用IP数量为0,但是作为IP段这个段有两个IP地址,一般指当前位数与后一位的IP如:
192.168.0.1/31 即代表
192.168.0.1
192.168.0.2
$2^n - 2=2-2=0$ 2
/32
255.255.255.11111111
255.255.255.255
作为网段是无效的,网络地址和广播地址都不够分配,但是作为IP段这个段有两个IP地址,一般指当前IP本身,如:
192.168.0.1/32 即代表
192.168.0.1
1

CIDR [1]

无类别域间路由 Classless Inter-Domain Routing,是一个按位的、基于前缀的,用于解释IP地址的标准。通俗来讲是通过把多个地址块组合到一个路由表表项而使得路由更加方便。

例如,指定一个CIDR块为10.10.1.32/27,则根据CIDR比特位比较,10.10.1.44是属于该块,但10.10.1.90则不是,如下图所示:

img

图:CIDR块
Source:https://zh.wikipedia.org/zh-cn/%E6%97%A0%E7%B1%BB%E5%88%AB%E5%9F%9F%E9%97%B4%E8%B7%AF%E7%94%B1

那么这个IP地址表计算方式为:$2^n-2 = 32-2=30$,10.10.1.33 ~ 10.10.1.62 其中网络地址(主机位全为0 10.10.1.32, 10.10.1.111| 00000 )和广播地址(主机位全为1 10.10.1.6310.10.1.111| 10000 )不能分配计算机主机。

CIDR与VLSM的区别

  • CIDR 是把几个标准网络合成一个大的网络

  • VLSM 是把一个标准网络分成几个小型网络(子网)

  • CIDR 是子网掩码往左边移了,VLSM 是子网掩码往右边移了

Reference

[1] CIDR

本文发布于Cylon的收藏册,转载请著名原文链接~

链接:https://www.oomkill.com/2022/06/osi-network-basics/

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」 许可协议进行许可。