计算机网络----网络层
《网络层概述》
来看一群网络,如果只是网络独立各自通信,那么只要实现物理层和数据链路层即可
(一朵云中的多个节点通过交换机实现通信)
如果想要实现这群网络之间的通信,则是网络层干的事情了
(各个云之间通过路由器实现通信)
《网络层需要解决的问题》
1. 网络层提供两种服务:
虚电路服务
数据报服务
2.寻址问题
IPV4 / IPV6
3.路由选择问题
1.通过人工得到
2.通过路由器中的转发表
转发表通过按照选定的路由选择协议,通过许多次相互交互路由信息而产生
《IPV4》
《概述》
需要注意的是:
IPv4是给每一个接口分配的标识符
表示:
《分类编址的IPv4地址》
我们将IP地址分成5类:
A,B,C,D,E 类
每一类中都将IP分为 网络号 + 主机号
网络号用于标志主机(或路由器)所连接到的网络
网络号在整个互联网范围内是唯一的
根据这个想一下A类地址最大网络数量是多少?
2^7
因为前面的0已经占用了一个网络号的1位,还有7位
又因为网络号应该唯一,所以为2^7
网络号全为0:表示“本网络”
A网络比较特殊:
其 即127是不能指派的,作为环路测试使用
但是其他的,如:
B类是可以用的
同理C类等
当问到A类地址能够指派的最大网络数量是多少?
2^7-2
需要注意的是这个是在A类中特殊的,其余类中网络号不可能全为0或1
主机号用于标志主机(或路由器)
主机号在连接的网络中是唯一的
主机号全为0:表示该IP地址是“本主机”所连接到的单个网络地址
主机号全为1:表示该网络上的所有主机
即其是个广播地址,是用的话会将消息发给该网络下的全部主机
上面两个也不能指派
我们用IP地址的前几位来区分是第几类
如A类前面是:0
B:10
C:110
...
《注意!考试结论》
一般考试会这样问:
所以我们需要记住一下结论:
即地址第一个十进数:
A:1~127
B:128~191
C:192~223
即 A:前1个十进数为网络号
B:前2个
C:前3个
同时还有注意:
如果问我们该如何给这个网络分配IP
首先要看一下有多少个网络
将路由器也当做计算机
共有3个网络
再通过网络中的接口个数来判断需要分配第几类网络
黄色的网络中有65534个主机同时还连了一个路由器,共65535个接口
由于B类只能分配65534个接口,所以要分配其A类
蓝色同理
红色的网络共有2个接口
所以最好记录一下如下表:
《划分子网的IPv4》
《为何需要划分子网?》
首先以前按照分类中网络号位数固定,不灵活,
可能导致使用B类少了一点,但是使用A类又太多了
造成浪费的情况
如:
当某个公司申请了B类IP地址
后这个公司他扩容了:
按照不划分子网的情况下,还有为子网2与子网3申请新的IP
但是子网1申请的B类IP还有好多没用呢!
这个时候就要划分子网
《原理》
所以在这里我们可以知道子网掩码的作用了
其是指出借用了主机号的哪几位进行划分子网
(通过划分子网的IPv4地址 & 子网掩码)
同时子网掩码还有个是否重要的作用是:
判断两个网络地址是否是在相同的网络下,如果网络号相同说明是在相同网络下
需要注意的是:
借主机号的位数当做划分子网时,一般都是 主机号的高位开始
这里我们知道其只借了一位
于是我们可以使用新的网络号来更加细分主机号,使得IP更加充分利用
将原来只要一个的网络,变成了两个子网
更复杂的情况,但是解法同上
我们知道这里是借了两位进行划分子网
注意上面的细节:
注意这下主机号中被借走的一位也不算主机号了,我们仍要遵守
主机号全为0是本地网络
主机号全为1是广播
所以可以分配的地址并不包括子网的主机号全为0或1 的网络地址
《默认子网掩码》
《变长掩码》
其有多种创建方式,如平衡树的创建或01二叉树的创建方式
需要注意的是在变长掩码中的子网掩码的计算还是有多少个网络号就有多少个1
然后后面默认补0,然后计算
《互联网的路由选择协议》
《实验》
《定长掩码》
好博客<-----
如图要求,我们首先要作的事情就是:想一下如何分配子网,应该说子网掩码是咋样的?
我们已经知道了给出的网络地址块为:202.101.1.0
总共有3个子网,这三个子网中需要分配的最大ip数为60
首先向主机号借的子网号位数设为x
2^x>=3
即x>=2
其次每一个子网能够分配的ip数>=60
2^5<60<2^6
所以我们可以子网号要2位,主机号为6位
所以子网掩码为:255.255.255.192 ( 11111111.11111111.11111111.11000000)
于是,各子网可以分配的ip地址如下:
子网1: 00 000001 ~ 00 111110 (1~62)
子网2: 01 000001 ~ 01 111110 (65 ~ 126)
子网3: 10 000001 ~ 10 111110 (129 ~ 190 )
《网关是什么?》
具体配置:
如图 PC0与PC2在不同网络中,所以想要这两个主机进行通信,我们需要设置主机上的默认网关
这里我们就简单地设置为路由器接到对应网络上的接口,具体来说是:
这样当PC0发信息给PC2时,PC0就发给自己的网关,在路由器上
我们的路由器交给PC2的网关,也在路由器上,然后就传到了PC2的网络中
《NAT 和 DHCP 和 静态路由配置实验》
如图:
《实现DHCP》
我们要求在网3中
DHCP服务器为PC2与PC3提供服务
首先我们要到DHCP中设置地址池
如果我们想要为不是与DHCP服务器同一个网络的主机服务,那么我们要在路由的CLI中加一条指令
加上 ip helper-address DHCP地址
然后在DHCP中加上为PC2设置的地址池:
这里的Default Gateway好像写上200.1.3.1也行
《实现内网和NAT》
这里的SOHO路由就是NAT路由器
我们首先需要设置NAT路由器在外网的ip和在内网的ip
首先需要注意的是Internet是配置SOHO路由自己在外网上设置
LAN是SOHO路由直接在内网中的设置
然后设置将内网ip转化为外网ip的映射池
然后这个SOHO 路由也有DHCP的功能,可以为内网中的主机进行动态分配ip
同时如果内网中有提供服务的服务器,要到如下中进行设置,
因为内网中分配的外网ip是不固定的
所以外网主机想要使用内网的服务,那么一般是访问SOHO 路由的外网ip
如这里的DNS 服务器,如果有主机想要访问www.in.com,那么先访问SOHO 路由的ip
当请求到了SOHO 路由,那么其会根据我们的设置来访问对应的内网中的服务器
在这里需要注意的是:
我们设置的这个IP是
需要与我们提供相应服务的服务器是对应的
《静态路由设置》
如这里我们想要PC2与PC1进行相互通信,我们我们必须设置一下路由表,从而达到目的
在设置之前我们要来了解一下IP层转发分组的过程(即如何通过路由表到达我们的目的地址)
具体书P144
以PC2到PC1为例:
1、首先在转接器中 将要发送的分组的目的地址 与 本网络的子网掩码按位进行AND运算
得到运算结果 如果等于 本网络的前缀 那么表明目的主机就在本网络中
直接通过转接器转发
这个过程不需要用到路由表
2、发现不是本网络的主机,则将分组给路由
路由通过路由表查找目的地址的网络号与路由表中记录的哪个匹配
从而得到下一跳(这个跳 是某路由的确定的接口ip)
注意转发表的前面是网络号,我们是通过匹配网络来达到筛选的目的
如这里:
当我们从router0网络中的主机访问router1网络中的主机
需要设置Network:200.1.2.0
Mask:255.255.255.0
Next Hop: 1.2.2.2
如此设置表明当要访问 200.1.2.0下的网络时,需要到1.2.2.2的路由接口去
这个实验与理论不同的地方是:
一般直接转发的也要写上路由表,如:
但是实验这里不要写,只要写上间接转发的就行
这是设置好后的router0的路由表 可以看到其中我们没配置的直接转发的路由表直接自己好了
《动态路由设置》
到路由中CLI输入version 2
点开RIP
然后点开这个路由的路由表
对着上面的一个一个输入就行了,不过需要注意的是:
RIP协议由于是通过各个相邻的路由器交互路由表信息从而构建各个路由上的完整的路由表信息
即一开始各个路由表上只知道自己的接口上能到达的网络
即我们上面输入时只要输入
如这种能够直接送达的网络
还需要注意的是,如果在网络中一个路由器没有使用RIP协议自然我们的路由器就不能
得知没有使用RIP协议的路由器下的网络,
这个时候我们要对每一个使用RIP的路由器设置
关于没有用RIP协议的路由器下网络的静态路由
下面综合测试会体现这点
<综合实验配置RIP>
好博客<-----
首先我们来看看VLSM是什么以及划分方法:
VLSM(Variable Length Subnet Mask 可变长子网掩码),就是我们通过画树的过程
将通过改变掩码长度实现在网络中对ip数量的教精准分配
CIDR(Classless Inter.Domain Routing 无类别域间路由),其是不再将ip地址按照类来划分了
其是一种编码方式
可以说像VLSM和路由聚合技术都是基于 CIDR 的进一步节约ip的实现
注意这几个条件:
主机数够用
从小到大
即分配出去的网络最好与需求相接近,ip在满足条件的情况下要尽量小
我们在来理解一下实验中的广域网是什么:
实验中如图有6个网络,红色框中题目说是广域网,绿色框中是路由下的局域网
各个局域网是在路由器的
如图这个接口下的
如果是想要形成广域网
在 路由器上我们需要将这个硬件拖入到插槽上,如何路由器会有:
像这样的接口
然后我们要设置DCE的频率:
首先我们需要知道在路由器上哪个接口是DCE:
具体来说我们要在路由器中的CLI中输入enable进入特权模式
然后再输入
主要serial后面这个接口会变的,是要查看的serial接口
我们来回顾一下DNS(这可能是体现对DNS完全理解的实验了)
我们来好好理解一下4的要求:
配置服务器的DHCP服务,DNS服务和WEB服务,
要求服务器的DHCP范围为除路由器和服务器本身外的所有可分配的本网络地址,
Server0的DNS域名是www.ibm.com对应本服务器地址,
配置com的域名服务器ns.com(Server2),
WEB服务显示Welcome to IBM!
解释:
这个是说明Server0的域名是www.ibm.com,同时其是WEB服务器
同时其是个DNS服务器
我们要在Server0的DNS服务中设置
设置了NS,那么伴随着也要设置A
我们让com的域名到ns.com服务器中去找,当然要告知ns.com的ip
Server1的DNS域名是www.163.com对应本服务器地址,
配置com的域名服务器ns.com(Server2),
WEB服务显示Welcome to 163!
解释:
Serve1同Serve0是一样的
Server2的DNS域名是ns.com,
配置ibm.com的域名服务器ns.ibm.com(Server0)和163的域名服务器ns.163.com(Server1)
解释:
这个告诉我们Server2是个DNS服务器
其让含有ibm.com的域名到ns.ibm.com服务器去找
让含有163.com的域名到ns.163.com服务器去找
即我们要在ns.com的DNS服务中设置:
注意这里ns.ibm.com指明了是Server0 即说明Server0有两个域名
一个是上面服务于WEB的www.ibm.com
一个是这个服务于DNS的ns.ibm.com
Server1同理
还需要注意的是:
找ibm.com到Server0,ibm.com这个已经是二级域名了
再到Server0我们应该要能够找到xxx.ibm.com的具体ip了
所以还要到Server1下设置:
Server1同理
我们再来看看上面提及到的使用RIP和没使用RIP的路由一起使用是如何设置的
R1和R2使用RIP,但是R0和R3使用静态路由
而且特别说明:
这里默认路由(也叫静态缺省路由)是
不管分组的最终目的网络在哪里,都由指定的路由器R来处理
这个在路由表中是:
0.0.0.0/0
即目的网络是0.0.0.0
默认网关是0.0.0.0
下一跳是这个路由的相邻路由,即下一跳
如:
然后我们知道,由于使用RIP协议的R1与R2是不能与没使用
RIP协议的R0与R3进行交换的
所以我们必须在R1和R2中进行静态路由设置,确保
R1和R2能够知道来自R0与R3的网络应该往哪里跳
变式:
R1,R2,R3都是使用静态路由:
我们设置R1中的静态路由中设置多少个路由项?
三个,如上图红框中所示
一般经常会漏掉R2与R3之间的子网
这个也是网络,所以要加上去
来看看配置DHCP的注意点
那我们就将Server0还要设置DHCP服务
需要注意的是:
红框这里一般是默认为0,一定要将其设置为合理的数字
《一些命令的设置》
步骤为:
enable
configure terminal
router rip
version 2
no auto-summary
《IPV6》
《改进的首部》
IPV6大大减少了首部字段的功能和大小,将以前复杂的功能放到有效载荷的扩展首部部分
目的为减少网络中路由器的工作量,交给两端的主机去完成
《地址表示形式的变化》
需要注意的是IPV6总共有128位,而IPV4才32位
IPV6在每个:都有16位,以16进制的形式表示
IPV4在每个.都有8位,以10进制的形式表示
《地址类型》
《过渡策略》
书P155十分详细
《IP组播》
《IGMP协议与组播路由选择协议》
IGMP协议的作用主要是管理连接在本地局域网上的各个主机是否加入或退出了某个组播组
注意:
IGMP不知道IP组播组包含的成员数,以及其分布在的网络
而组播路由选择协议的作用主要是
在网络中,将在同一个组播组中的各个主机看成节点,
然后将节点相连,形成一颗树
在这个树上,我们可以知道当某一个源主机发送组播时,可以通过哪些路径到达在这个组播组的主机
《路由配置与路由协议》
《静态路由配置》
首先来看个网络图:
在此网络图中,R1与R2通过直接连接的网络知道了直连类型的路由表信息
即为了到达目的网络,下一跳不是ip地址,而就是本路由下的某个接口
通过人工设置,将R1中记录上:
为了到达目的网络192.168.2.0/24 那么下一跳要到ip地址为10.0.0.2中去
《默认路由》
在路由表中,对于具有相同下一跳的不同目的网络的路由条目
我们可以用一条默认路由条目来替代
其实如果我们有很多目的网络都要通过相同的下一跳
如果我们每条目的网络都配置,那么使得路由表十分大
不如使用一条默认路由:子网掩码 0.0.0.0
CIDR:0.0.0.0/0
使得当路由表中没有明确的目的网络时,就通过默认路由走下一跳
《特定主机路由》
即在路由表中写上具体的ip地址,不是只有网络地址
一般用于调试等特殊用途
在路由表中我们使用的是最长前缀匹配原则,即匹配最长网络地址相同的前缀
《路由选择协议概述》
《RIP Routing information protocol 路由信息协议》
可以进行等价负载均衡即:
遇到多条路都可以走时,将要发送的信息均分发送至各个路上
而不是就选择一条路
所以下面我们在通过RIP协议更新路由表时,如果遇到距离相同的路时
是添加,而不是替换
《更新路由条目规则》
如上图:是C路由给D路由发送路由表信息
C路由表下一跳全部为?意为D路由不需要关心C到达目的网络下一跳是什么
因为C的路由表发送给D后,D即对C的路由表进行改造
下一跳全部改为C(即发送路由表信息的一方)
并将源距离+1
然后对照着自身的路由表进行路由表更新
注意:
当源路由表与新路由表有相同的 目的网络和下一跳
则不管距离是否增大了,必须更新,因为这是最新消息
当出现新的目的网络则添加
当出现目的网络相同,距离相同,不同下一跳,则要添加
强调!强调!
书上不是这么写的!
书上写OSPF有负载均衡,但是RIP只会找出某个网络的一条路径
同时如果在目的网络相同,距离相同,下一跳不同,那么并不会改变
《RIP的缺陷----坏消息传的慢》
N1网络与R1的链接故障,当R1发现时:
将到N1距离改为16
但是R2先把自己的路由表给了R1,这导致R1中的路由表关于<N1,16,直接>
这条路由条目听信谣言,变成了<N1,3,R2> (表示目的网络为N1,距离为3,下一跳为R2)
(即是通过相同网络,不同下一跳,更短的距离的原因更新的)
然后R1发送路由信息给R2,R2中关于N1的路由条目为<N1,4,R1>
然后循环上述操作,知道各自到N1的距离为16才发现不可达
《OSPF Open shortest path first 开放最短路径优先》
建立邻居表
链路状态通告 LSA
这里的洪泛法是指:
当路由器发送LSU时,是通过往所以接口发送出去
其他路由器接受到后,原封不动地将LSU从自己所有接口发送出去(除了接受到LSU的接口)
即目的就是为了让全部路由器接受到LSU
链路状态数据库
OSPF 的五种分组类型
《OSPF的基本工作过程》
需要注意的是:
问候分组,数据库描述分组,链路状态请求分组,链路状态确认分组
不是洪泛出去的,只要链路状态更新分组是
其更新原理还是通过各个相邻路由器之间的交换信息
然后知晓缺少的链路状态,最终通过洪泛方式使得全部路由器的链路状态信息相同
利用Dijkstra算法求出各个路由器的最短路
给谁发:
本自治系统重所有路由器发送信息
发送什么:
本路由器相邻的所有路由器的链路状态
什么时候发:
当链路状态发生变化或每隔一段时间
《改进----洪泛的缺陷》
每一个区域都设置一个32位的标号,可以用点分十进制表示
《RIP 和 OSPF的区别》
《BGP 边界网关协议》
所以BGP的目的不是找到一条最佳的路由路径
而是找到一条合适的路由路径
《基本工作原理》
《练习》
这个问题涉及到公网ip地址和私网ip地址的问题:
私有IP地址是指在内部网络中使用的、无法通过 Internet 访问的 IP 地址,
通常由网络设备(如路由器)通过网络地址转换(NAT)方式动态分配。私有IP地址范围如下:
- 类 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
这些地址不是保留地址或特殊用途地址,而是独立被专门规定作为私有网络内部地址的。
在公网上,这些地址无法直接访问,而只能通过 NAT 设备进行转换后才能与公网通信。
解:
前面的16位都相同,我们从后面的8位看,分别为:
00100000
00000000
01000000
01100000
可以看到只有前面1位是相同的,我们再结合前面相同的16位
所以全部相同的位为220.175.0xxxx...xxxx,将x全部用0代替
所以这个聚合的网络为220.175.0.0
注意这个路由表是咋写的
同时注意m4这个接口是咋写的
其实默认路由应该写成0.0.0.0
其默认网关应该写成0.0.0.0