复习:
网络模型
OSI MODULE 7层
TCP/IP STACK 4层 (习惯性的按照5层去理解和分析问题)
封装:从发送端的高层到低层,逐层加装头部的一个行为
解封装:从接收端的低层到高层,逐层剥离头部的一个行为
PDU:
APP:data
TRAN:segment
NET:packet
D-L:frame
PHY:bit-flow
二层头部:Ethernet-II
| D-MAC | S-MAC | type
三层头部:IPv4
version、header length、tos、totally length、ID、flags、fragmentation offset、ttl、protocl、checksum、source-ip、destination-ip
四层头部:
TCP:
source-port、destination-port、sequence-NO.、acknowledge-NO.、header-length、flags、window、checksum、pointer
UDP:
source-port、destination-port、length、checksum
ARP:地址解析协议:
动态:使用ARP-request和ARP-reply报文来动态解析对方接口的MAC地址。
ARP-request(broadcast)
ARP-reply(unicast)
sender-mac:
sender-ip:
target-mac:
target-ip:
标准ARP:sender-ip和target-ip是不一样的(用来解析对方接口的MAC地址)
免费ARP:sender-ip和target-ip是一样的(用来进行重复IP地址探测)
数据帧的跨跳转发封装和解封装的流程:
数据帧在跨越路由器转发时,默认情况下,三层地址不发生变化,二层地址会逐链路(每跨越一台路由器)发生变化!
数据帧没跨越一台路由器,必然会经历一次二层解封装和二层重新封装的过程。
IPv4地址:
总长度:32bit
表达:点分十进制。每个IP有三个点,四个段。因此每个段长度为1Byte。
192.168.1.1 IP
255.255.255.0 MASK
mask是用来表达ip的网络位长度的!
总长度=网络位长度+主机位长度
网络位长度:NET-length
主机位长度:HOST-length
MASK中有多少个1,那么其对应的IP网络位长度就是多少!
192.168.1.1
255.255.255.0
192.168.1.1/24
NET-length=24
HOST-length=8
网络位的意义:指定一个地方的名字
主机位的意义:代表网络位指定的这个地方里面有多少个变化可能性
8个bit,有多少种变化可能性?2^8=256
192.168.1.0 光明小区
2^8个住户
192.168.1.1只是192.168.1.0/24里面的一个地址而已。
192.168.1.0/24
192.168.1.1
192.168.1.2
192.168.1.100
。。。。
192.168.1.0/24 192.168.1.0 /24 2^(32-24) 最小
172.16.0.0/16 172.16.0.0 /16 2^(32-16) 居中
10.0.0.0/8 10.0.0.0 /8 2^(32-8) 最大
网络位越长,主机位越短,网络规模越小
网络位越短,主机位越长,网络规模越大
=时间分割线穿越回过去=============
在过去,没有mask这一项。
在过去,有土办法。土办法就是给IPv4地址分类:
A /8 0开头的
B /16 10开头的
C /24 110开头的
D
E
300个人
网络划分:(大网络划分成多个小网络)
如果有了MASK之后,网络位长度是不是就可以弹性变化了?
- 50
- 60
- 59
- 62
如果将一个C类平均分成4个网络是否可以够用啊?答案:可以
如何将一个C类平均分成4个网络呢?
192.168.1.0/24
从右向左(优先关注主机位)
HOST-length=32-24=8
2^8=256 主机地址个数 block地址块
因为要平均分成4个小网络,那么每个小网络的block应该是多少?
256/4=64
2^H=block H代表主机位长度,block代表地址块大小
2^H=64 => H=6 这个6代表什么含义呢?这个6代表的是每个小网络的主机位长度
那么每个小网络的网络位长度=32-6=26
NET-length(小)=26
HOST-length(小)=6
block(小)=64 | 网络名及网络范围 | 网络地址范围 | 网络可用地址范围 | | —- | —- | —- | | 192.168.1.0/26 | 192.168.1.0~63 | 192.168.1.1~62 | | 192.168.1.64/26 | 192.168.1.64~127 | 192.168.1.65~126 | | 192.168.1.128/26 | 192.168.1.128~191 | 192.168.1.129~190 | | 192.168.1.192/26 | 192.168.1.192~255 | 192.168.1.193~254 |注:可用地址范围是地址范围减去2。因为要把主机位全0和主机位全1减掉。
主机位全0代表这个网络的名字,因此不能分配给主机使用。
主机位全1代表这个网络的广播地址,因此不能分配给主机使用。
192.168.1.00|000000 192.168.1.00|111111
192.168.1.01|000000 192.168.1.01|111111
192.168.1.10|000000 192.168.1.10|111111
192.168.1.11|000000 192.168.1.11|111111- 从左向右(优先关注网络位)
将一个大网络划成多个小网络,网络位是变长还是变短?答案:变长
那么至于要变长多少位,取决于要划分成多少个小网络?
192.168.1.00|000000/24
到底借几位呢?B代表借的位数
2^B=小网络的个数
因为要平均分成4个小网络,因此,上式可表达为:
2^B=4 => B=2,因此得出结果是要借2位
因为原来的掩码长度是24,因此新的小网络的掩码长度是24+2=26(小网络的网络位长度)
那么新的小网络的主机位长度就是32-26=6
NET-length(小)=26
HOST-length(小)=6
block(小)=64 | 网络名及网络范围 | 网络地址范围 | 网络可用地址范围 | | —- | —- | —- | | 192.168.1.0/26 | 192.168.1.0~63 | 192.168.1.1~62 | | 192.168.1.64/26 | 192.168.1.64~127 | 192.168.1.65~126 | | 192.168.1.128/26 | 192.168.1.128~191 | 192.168.1.129~190 | | 192.168.1.192/26 | 192.168.1.192~255 | 192.168.1.193~254 |
与主类长度之间的偏移位数 | ||||||||
---|---|---|---|---|---|---|---|---|
正偏移 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
掩码 | 0 | 128 | 192 | 224 | 240 | 248 | 252 | 254 |
/30
NET-length=30
HOST-length=2
block=2^2=4
4-2=2
课堂练习:
- 将192.168.1.0/24平均分成8个小网络的结果是什么?
- 将192.168.1.0/24分成4个网络。这四个网络中的主机数分别如下:
a. 100
b. 60
c. 20
d. 10
总体要求:尽最大努力不造成地址浪费!
192.168.1.0/24是一个C类网络,因此其block=256
把这个C类网络分成多个小网络(不管是否平均分),每个小网络的block肯定都会比这个C类的block要小。
把一个C类网络分成多个小网络,其地址块大小有几种可能性啊?
128 100
64 60
32 20
16 10
8
4
幂
128:
192.168.1.0/25 192.168.1.0~127 192.168.1.1~126 ======> 100
192.168.1.128/25
64:
192.168.1.128/26 192.168.1.128~191 192.168.1.129~190 =======> 60
192.168.1.192/26
32:
192.168.1.192/27 192.168.1.192~223 192.168.1.193~222 =========> 20
192.168.1.224/27
16:
192.168.1.224/28 192.168.1.224~239 192.168.1.225~238 ==========> 10
192.168.1.240/28 192.168.1.240~255 192.168.1.241~254 ==========> 剩余
网络汇总:(小网络合并成大网络)
192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
192.168.000000|00.0/24
192.168.000000|01.0/24
192.168.000000|10.0/24
192.168.000000|11.0/24
192.168.0.0/22
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
192.168.4.0/24
192.168.00000|001.0/24
192.168.00000|010.0/24
192.168.00000|011.0/24
192.168.00000|100.0/24
192.168.0.0/21 (不严谨的汇总)
总结:
网络汇总,需要严谨汇总,不应该将其他网络也汇总进来。
若想实现严谨汇总,必须二进制“连续”(该“连续”的理解应该是二进制的不同位,长度相同)。
汇总之后的大网络,包括所有已经罗列出来的明细网络,则可以称为“精确汇总”。
如果汇总之后的大网络不仅包括了罗列出来的明细网络,还包括了其他没有罗列出来的明细网络,那么就不能称为“精确汇总”。
子网和超网:
无论是子网还是超网,都是相对于主类网络来说的。
192.168.0.0/25是192.168.0.0/24的子网。
192.168.0.0/23是192.168.0.0/24的超网。
提问:
10.0.0.0/16是10.0.0.0/8的子网
10.0.0.0/7是谁的超网?10.0.0.0/8
私有地址范围:
A: 10.0.0.0~10.255.255.255
B: 172.16.0.0~172.31.255.255
C: 192.168.0.0~192.168.255.255
特殊地址:
loopback地址(环回地址):用来测试本地TCP/IP协议栈安装是否正常!
127.0.0.0~127.255.255.255. 127.0.0.1~127.255.255.254
未指定地址:
0.0.0.0
在做DHCP地址申请时,报文的source-ip会是0.0.0.0
全网广播:
255.255.255.255
DNS Domain Name System
在DNS Server上记录的是域名和Ip地址之间的对应关系!
182.61.200.7<======>www.baidu.com
系统本地都会存在host文件
host文件中的记录要优先于DNS查询。
www.baidu.com
DNS劫持 x.x.x.x shadow website
物流中转站点的决定?
上海中转站点能到如下很多地方:
深圳
广州
西安
宁夏
郑州
由于这个包裹是从浙江义乌去往北京中关村,所以上海中转站点的决定是将该包裹送往郑州。
提问:
- 上海中转站是否知道北京在哪?是否知道经过哪里可以到北京最优?(什么是可达性信息?)
结果是:必须知道!!! - 上海中转站点是怎么知道的?(可达性信息如何获得?)
方法一:其他站点告诉上海中转站的。例如:郑州告诉上海说:我是郑州,我能到北京
方法二:公司直接发来可达性文件。 - 每个中转站点,是不是都得知道其他所有站点的可达性信息?(可达性信息是否需要保存)
答案是:必须的
综上:每个中转站点就相当于网络中的路由器,那么每个路由器也得知道这个网络中都有哪些可达的地方!并且需要把这些地方的可达性信息罗列成表,作为转发数据包的依据,存放在本地。
那么这个表,也就是这个转发依据被称为“路由表”!
R1:
协议 协议类别 Prefix/mask [AD/metric] next-hop time outgoing-interface
O OIA 10.1.1.0/24 [110/2] via 23,1,1,3 00:00:00 fastethernet0/0
O OIA 20.1.1.0/24 [110/2] via 33,1,1,3 00:00:00 fastethernet0/1
source-ip:3.3.3.3
destination-ip:30.1.1.100
这里涉及一个关于路由匹配的问题:什么叫做匹配上了?
就是一个IP数据包的destination-ip隶属于了某一个路由条目的网络范围,就被成为匹配成功!
路由器会收到很多网络可达性信息,那么路由器如何决策哪些是比较优的路由条目呢?
路由决策:
- AD Administration Distance 管理距离 其含义就是“可信度”。数值越小越优。
- metric 开销 其含义就是“成本”。数值越小越优。
注意:AD和metric之间,AD优先于metric。而且,如果通过AD可以确定优劣,那么metric将被直接忽略!
路由决策原则:(选路原则)
总前提:只有当本地去往同一个目的地,存在多个可达性信息时,才会激发路由决策!
- AD,数值越小越优
- metric,数值越小越优
- 协议类型,OIA>OE1>OE2
- load-balance
路由决策练习:
协议 协议类别 Prefix/mask [AD/metric] next-hop time outgoing-interface
O OIA 20.1.1.0/24 [110/3] via 23,1,1,3 00:00:00 fastethernet0/0
O OIA 20.1.1.0/24 [110/2] via 33,1,1,3 00:00:00 fastethernet0/1(优)
决策中更优的那个条目会被放入路由表中成为转发依据。此动作被称为“加表”。
决策中暂时不优的那个条目会被放入本协议的数据库中,以待下次决策。
综上:路由决策过程发生在路由器的控制平面(control plane)
那么路由器的数据平面(data plane)有没有什么原则呢?
- 最长匹配
10.1.1.0/24 F0/0
10.0.0.0/8 F0/1
Destination-ip: 10.1.1.100
最长匹配指的是,当一个Ip包的destination-ip同时匹配到了路由表中的多个条目时,则基于掩码长度更长的那一条执行转发。因为当两个条目存在交叠时,掩码长度更长,则代表越精确。 - 递归查找
问:卫生间在哪里?
答:卫生间在鱼缸的旁边!
问:鱼缸在哪里?
若想到达卫生间,那么必须得先到达鱼缸。
实验命令:
查看路由表:show ip route
路由类型:
- 直连路由 connected
路由器互联接口之间可以相互ping通,就是基于直连路由的。
路由器上的接口,正确配置Ip地址之后,当接口up了,那么路由器就会自动生成与该ip地址关联的直连路由。 - 静态路由 static
标准静态路由:
ip route [prefix mask] [next-hop]
ip route 192.168.22.0 255.255.255.0 12.1.1.2
缺省静态路由:
ip route 0.0.0.0 0.0.0.0 12.1.1.2
0.0.0.0/0 网络位长度为0,代表网络规模最大,因此其代表整个网络。
浮动静态路由:
ip route 0.0.0.0 0.0.0.0 12.1.1.2 10
ip route 0.0.0.0 0.0.0.0 14.1.1.4 20
homework:
Lab01:
标准静态路由实现PC1和PC2互通
Lab02:
浮动静态路由,实现双出口路由的主备浮动!