IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 【网络】数据链路层、交换机、IP协议、路由配置、路由命令、路由优先级、路由环路 -> 正文阅读

[网络协议]【网络】数据链路层、交换机、IP协议、路由配置、路由命令、路由优先级、路由环路

数据链路层

  1. 数据链路层概述

    - 数据链路层是在二层
    - 数据链路成的传输单元:帧
    - 以太网Ethernet == 局域网LAN === 内网
    
  2. 帧结构

    在这里插入图片描述

    数据链路层协议:MAC子层协议
    
    MAC子层协议:为上层数据封装帧头和帧尾
    
    帧的构成:MAC子层+上三层数据+FCS
    - MAC子层头部包含:目标MAC地址(6字节)、源MAC地址(6字节)、类型(2字节)
    因为传输数据时,是要通过目标MAC地址,判断我们的数据应该走向哪里,所以目标的MAC地址写在前面。
      * 帧格式:802.3、802.11
        如果是有线网卡封装后的数据,则使用的是802.3的帧头帧尾封装的;如果是无线网卡封装的,则使用802.11格式的帧头帧尾封装。如果是由802.3封装的帧(帧头帧尾被称为火车头火车尾),需要传输到一个连接无线的笔记本上,则交换机会将802.3格式的帧头帧尾拆掉,使用802.11格式的帧头帧尾(也叫飞机头飞机尾)封装,然后传输到路由器,路由器通过空气将数据传输到笔记本的无线网卡的天线中。如果是无线网卡的数据,需要传输到插网线的电脑上,则是交换机将802.11格式的帧头帧尾拆掉换位802.3格式的。
      * 类型:用于区分上层协议。0800代表上层——>IP协议、0806代表上层是——>ARP协议
          如果上层的数据是来自于IP协议,则是:0x0800(16进制的0800)
          如果上层的数据是来自于ARP协议,则是:0x0806(16禁止的0806)
          封装时,使用的ip协议,则解封装时,数据也流向ip协议使用ip协议解封装,如使用ARP协议,也同理。
          0800与0806,四位16进制,也就是16位二进制,2个字节。
          
      * MAC地址:也称为物理地址,是一台PC的身份,被固化到网卡上的一种全球唯一标识。
          MAC地址 = 厂家标识 + 内部编号 。其中前6位十六进制是向国际上申请的,是厂家编号;后六位是该厂家生产的网卡的编号,当该编号用完之后,会继续向国际上申请新的厂家编号。
          例如:00—06—1b—e3—93—63 、 00-0d-28-be-b6-42
          其中00-06-1b表示该网卡制造厂家为IBM,00-0d-28表示网卡厂家为CISCO(思科)。MAC地址是16进制的,每一位16进制对应4位二进制数,所以MAC地址的长度:48位二进制数,或者说是6个字节。
          
      * 帧尾:FCS(Frame Checksum Sequence) = 帧校验序列,长度为四个字节
        FCS的作用:对整个帧进行序列校验,查错恢复。可以检测帧在传输过程中是否发送错误。
      * 一个帧是有最大承载能力限制的,一个帧的最大承受能力叫MTU值,在我国MTU值=1500
        MTU是帧的最大传输单元,也就是说一个帧中,最多可以传输1500个字节。
      
    - 接收到数据的网卡,先看目标mac地址是不是自己,如果是自己再看是谁发送过来的,即看源MAC地址,然后再看类型里的值,看应该传输到上层的ip协议还是传输到上层的ARP协议
    
    - 工作在数据链路层的设备是:交换机/网桥
    
    - 总结:描述一下帧结构
      帧是由帧头+上三层数据+帧尾构成的,帧头包含目标MAC地址、源MAC地址、类型,帧尾是:FCS。MTU值:1500
    
  3. 交换机的工作原理

    交换机——用于组建一个局域网
    交换机的工作原理,交换机如何工作?从接收到一个帧到将该帧转发出去的过程。
    
    交换机工作原理:
    - 当交换机收到一个帧,首先记录帧中的源MAC地址来形成自己的MAC地址表
      * 只会记录源MAC地址
    - 然后检查帧中的目标MAC地址,并匹配MAC地址表中是否有该目标MAC
      如果匹配到该目标MAC,则单播转发;如果没有匹配到,则广播转发。
      * 这里如果是通过广播转发找到,也不会记录目标MAC地址,只有当MAC地址发送信心出来的时候,才会记录他的MAC与交换机端口的对应信息。
    - MAC地址表的生存/老化时间是:300秒。
      如果连接的交换机是企业级交换机,则可以根据需要修改这个老化时间
      每一条MAC地址与端口的对应信息在形成的那一刻,交换机都会对它计时,如果300秒之内没有收到来自该mac地址对应电脑发送的任何信息,这条对应信息就会消失;如果在计时过程中时,收到了来自该电脑发送的信息,则会重新计时。
    * 在某台交换机中,MAC地址为AA的电脑对应交换机F0/1端口、MAC地址为BB的电脑对应F0/2端口
      如果BB电脑拔了网线走了,AA电脑也拔了网线但是插到了BB原来的位置,也就是交换机的F0/2端口。此时AA电脑会向DHCP发送广播包,交换机收到后,在MAC地址中形成对应关系时,发现AA对应的F0/1这条对应信息还在生效,也就是说还没超过300秒,不应该消失,这时因为收到了AA来自F0/2端口传来的信息,则会认为AA换了位置,不用再等待AA与F0/1对应信息的老化,会直接让他消失,并马上更新AA对应的交换机端口为F0/2。而之前的BB对应的F0/2,因为离开时间未超过300秒,所以还会一直存在直到过了300秒才会消失;而如果此时有人给BB发送信息,也就是发送到了F0/2端口,但是因为现在F0/2是AA,所以AA收到后,解析时发现目标MAC地址并不是自己,会丢弃发送来的数据。
    * 只有一种情况,交换机的MAC地址表才会立即更新(同一个MAC地址,不同端口):就是某电脑原来是在交换机a端口,在300秒之内连接到了交换机b端口,才会立即更新匹配端口未交换机b端口,因为交换机会认为它换了位置,原来的对应信息没必要保存了会让它消失。
    
      实际上,我们的电脑连接到交换机之后,在我们开机时,会向DHCP服务器发送DHCP Discovery广播包,这时交换机看到就会记录其中的源MAC地址。交换机的MAC地址表是自动形成的。在实际接网线的过程中,一般是找工程队,让他们去连接网线与交换机,并且在每个人的工位上,贴一个标签,上面写着这个工位上的电脑连接到是哪个机房的哪台交换机的哪个端口,并形成一张表。
      如果交换机的MAC地址表中,某个端口号与很多MAC地址都对应,则这个端口连接的是一台交换机。
    

    在这里插入图片描述

  4. 配置交换机

    第一次配置网络设备,需要使用console线,在PC使用“超级终端”、“CISCO packettracert6.2/GNS”或其他软件配置。
    - 傻瓜式交换机不支持配置,只有企业级交换机才支持高级功能及高级配置,价格要比较高,一般称为“企业级交换机”
      交换机品牌:思科、juniper、华为、锐捷、启明、天融信、360
      
    - 购买一台CISCO思科交换机,一般会自带一根console线。一端连接到交换机,一端连接到我们的电脑上,然后使用软件进行配置,如果我们电脑上没有这个插口,则购买转接头即可。
    

    在这里插入图片描述

  5. 交换机的端口

    E —— 10Mb
    F —— 100Mb
    G —— 1000Mb
    Te —— TenG表示10个G,也就是10个1000M,就是10000M,简写Te
    
    F0/1、G0/1、Te0/1
    0:模块号
    1:接口号
    
    接口速率自适应:1000M/100M/10M自适应,速率工作模式可以为10、100、1000任何一种状态,不管线的两端是电脑还是交换机或是路由器,如果速率无法自适应,就是匹配失败,则无法传输数据,即为down状态。
    
    端口的两种状态:
    up:匹配成功,可以传输数据
    down:匹配失败,无法传输数据。端口down掉的三种情况
    - 人工down掉的这个端口
    - 速率不匹配
    - 双工模式不匹配
      网卡、路由器端口以及交换机端口,他们的双工模式都有三种:单工、半双工、全双工
      * 单工:只能一方向另一方发送数据,如:广播
      * 半双工:虽然可以双方通信,但不能同时传输数据。我发的时候你收,我收的时候你听。
      * 全双工:双方通信,可以同时发同时收。
    

交换机的基本命令(路由器也适用)

设备的5个基本工作模式

  1. 用户模式:权限非常低,可以查看交换机的基本配置以及一些简单信息,并且不能做任何配置

    进入交换机的命令,即进入了用户模式
    switch>
    
  2. 特权模式:可以查看所有配置,但不能修改配置。可以做重大操作,如:保存所有配置、重启设备、恢复出厂设置等。

    用户模式下,输入enable,回车即可进入特权模式
    switch>enable
    switch#
    
    简写:
    - en
    
  3. 全局配置模式:默认不能查看配置!可以修改配置,且全局生效,即对整个交换机生效

    特权模式下输入 configure terminal 进入全局配置模式
    switch# configure terminal
    switch(config)#
    
    简写:
    - conf t
    
  4. 接口配置模式:默认不能查看配置,但可以修改配置,只对该端口生效

    全局配置模式下,输入interface fastEthernet 0/1进入接口配置模式
    switch(config)# interface fastEthernet 0/1
    switch(config-if)# 
    
    简写:
    - int f0/1
    
  5. console口/线/控制台模式

    全局配置模式中,输入line console 0进入控制台模式,0就表示进入第一个console口,但是因为每台交换机只有一个console口,所以这个就是固定写法。
    switch(config)# line console 0
    switch(config-line)
    
    简写:
    - line con 0
    - li co 0
    
    
    

命令行功能及快捷键

- ?用法
  如使用enable进入特权模式时忘记了这个字母如何使用,可以使用e?命令查看。
- 命令可以使用tab键补全,如en按tab键补全enable
- 可以使用上下方向键,调用历史命令
- exit 返回上一级
- end 直接退回到特权模式,注意:该命令不能在用户模式下使用,因为是退回,而特权模式是在用户模式下进入的。

快捷键:
- CTRL + U —— 删除光标前所有字符
- CTRL + A —— 定位光标到行首
- CTEL + E —— 定位光标到行尾
- CTRL + SHIFT + 6  —— 停止交换机广播解析命令,不了解的命令就直接说不理解。
  因为交换机会自动学习命令,如果它不懂的命令,会广播寻找。

常用基本命令

  1. 设置设备名/主机名

    - hostname 主机名     可以简写为:ho
      
    switch(config)# hostname bj-sw-01-01
    bj-sw-01-01(config)# 
    
    bj-sw-01-01表示公司名-交换机-01楼-01机房
    
  2. 设置用户密码

    switch(config) # line co 0
    switch(config-line)# password 123.com 		——建议密码至少六位
    switch(config-line)# login					——login使密码生效,即开启身份验证。
    switch(config-line)# exit		
    
  3. 设置特权密码:需要在全局配置模式下设置,对整个交换机生效。

    switch(config)# enable password 456.com		——明文的特权密码
    switch(config)# enable secret 456.com		——密文的特权密码,与明文同时配置时,明文密码失效。需输入密文的特权密码才能进入
      配置后的密码:enable secret 5 $1$mERr$PExuJ1YdKUUsMVqPbLebz. 撞库都很难被破解
    
    设置了特权密码后,进入特权模式时,需要输入密码才能进入。
    注意:特权密码与用户密码要分开,不然第一条密码被破解后,第二个密码也被破解了。
    
  4. 加密running-config文件种所有的密码

    conf t 进入到全局配置模式种
    输入命令:service password-encryption ,回车执行
    
    注意:该命令是加密running-config文件种的所有密码,即加密show run后我们看到的这个文件种的所有的密码
    
  5. 保存对设备的配置

    Router# copy running-config startup-config  复制内存中的running-config文件,到硬盘中的startup-config,即我们配置后都是暂时保存到内存中的,只有写入到硬盘中,重启后我们的配置也不会丢失。
    或
    Router# write   简写:wr
    
    修改完设置之后必须保存
    
  6. do的用法

    特权模式的命令,在全局或接口模式下如需要强行使用,则需要在命令前加上do和空格即可
    思科官方解释:加上do为强制执行
    如:需要在console控制台下看所有配置
    switch(config-line)#do sh run
    如:在全局配置模式下,保存
    switch(config)#do write
    
  7. 重启设备

    - reload  输入该命令就可以重启设备
    
    Router# reload  这个是在路由器中
    switch# reload  
    Proceed with reload? [confirm] 回车即继续,如果想要终止则按任意键或CTRL+C键。
    
  8. 查看所有配置:进入后可以检查我们是否配置正确

    Router# show running-config
    
    注意:需要在特权模式下配置
    简写
    - show run
    - sh run
    
    Building configuration...   正在创建配置文件
    
    Current configuration : 1065 bytes		这个配置文件大小是:1065个字节
    !   每类配置之间用!分隔开,以下四行是交换机出厂时配置的
    version 12.2
    no service timestamps log datetime msec
    no service timestamps debug datetime msec
    no service password-encryption
    !	这个是我们配置的主机名
    hostname sw1
    !
    !
    !
    !
    !   出厂配置
    spanning-tree mode pvst
    !
    interface FastEthernet0/1    0/1端口,以下到!前是空的,表示我们没有没有对该端口做配置
    !
    interface FastEthernet0/2
    !
    interface FastEthernet0/3
    ...More     按回车键一行一行往下翻,按空格键一页一页往下翻
    interface FastEthernet0/23
    !
    interface FastEthernet0/24
    !
    interface GigabitEthernet0/1
    !
    interface GigabitEthernet0/2
    !
    interface Vlan1
     no ip address
     shutdown
    !
    !
    !
    !
    line con 0		我们为console 0口配置的密码
     password 123.com
     login
    !
    line vty 0 4
     login
    line vty 5 15
     login
    !
    !
    end		表示该配置文件显示完了
    
    
  9. 如何删除一条配置 ,以及如何恢复出厂设置

    - 在什么模式下配置的,就在什么模式下删除
      在原命令前no空格即可。注意:原命令种如有自定义参数,一般删除时不需要加参数,如:主机名或用户模式的密码,设置第二个参数时会将之前的那个参数直接覆盖,像这种的我们直接no空格+命令即可,不需要带参数,带了参数会报错
      例如:
      Switch(config)#enable secret 111.com
      Switch(config)#no enable secret 111.com
      % Invalid input detected at '^' marker. 错误,因为带了密码,删除一条配置时不需要加参数
      Switch(config)#no enable secret
      
      Switch(config-line)#password 123.com
      Switch(config-line)#login
      Switch(config-line)#no login 或Switch(config-line)#no password 都可以
      
      Switch(config)#hostname 123
      123(config)#hostname dfsdf
      dfsdf(config)#no ho   不用带参数,因为第一次设置的被覆盖掉了,直接就可以删除
      Switch(config)#
      
      - 但如果是那种,同一个命令,设置第二次参数的时候,第一个参数不会被覆盖。然后在配置表中,该命令后跟着两个参数,则删除时需要no空格+命令+要删除的参数。如果不加参数,反而会报错
     
      
    - 删除所有配置,在特权模式下输入命令:erase startup-config,然后重启设备。即恢复出厂设置
      switch#erase startup-config
      Erasing the nvram filesystem will remove all configuration files! Continue? [confirm]  执行到这里,回车即可。如果要停止该操作,则按其他任意键或CTRL+C终止删除操作。
      [OK]
      Erase of nvram: complete
      %SYS-7-NV_BLOCK_INIT: Initialized the geometry of nvram
      所有的我们的配置,都是立即生效的,都是在running-config这个文件中,这个文件存储在内存中,表示立即运行,如果这时重启,则我们的配置都会丢失,所以如果想要配置在重启后生效,则需要使用write这个命令,即写入到startup-config这个文件中,这个文件存储在硬盘中,写入后即使重启了,我们的配置也都还在。而我们删除所有配置的这个命令,是:erase startup-config  ,erase表示擦除,即清楚startup-config中我们的配置。而清除后,发现没有立即生效,是因为清楚的是硬盘中的文件,此时运行的这个文件是内存中的running-config文件,所以需要重启之后才能生效(恢复出厂设置)
    
  10. 查看MAC地址表

    show mac-address-table
    
  11. 购买模块

    - 先关机,再购买模块,再开机。
    - NM-2FE2W,2FE表示该模块有两个百兆端口
    
  12. 网线的使用

    同种设备之间使用交叉线;异种设备之间使用直通线。

    注意:路由器与PC视为同种设备!或者说3层及以上设备都是同种设备

    pc - sw :直通线
    pc - pc :交叉线
    pc - R  :交叉线
    sw - R  :直通线
     R - R  :交叉线
    sw - sw :交叉线
    
  13. 手动开启端口——no shutdown

    Router(config)# interface fastEthernet 0/1
    Router(config)# no shutdown
    
  14. 手工关闭端口——shutdown

    Router(config)# interface fastEthernet 0/1
    Router(config)# shutdown
    
  15. 为路由器的端口配置IP地址(为连接了交换机的那个路由器端口配置ip)

    2层(数据链路层)的交换机端口不能配置IP,三层(网络层)设备才可以配置IP地址。初次进入路由器命令行时,有1个询问,我们输入no,表示进入高级配置模式

    Router(config)#interface fastEthernet 0/0			   进入到0模块0端口
    Router(config-if)#ip add 192.168.1.254 255.255.255.0   配置ip
    Router(config-if)# no shutdown						   打开端口
    Router(config-if)#exit								   返回上一级
    Router(config)# interface fastEthernet 0/1		       进入到0模块1端口
    Router(config-if)#ip add 192.168.2.254 255.255.255.0   配置ip
    Router(config-if)# no shutdown					       打开端口
    
  16. 为路由器开启telnet服务

      进入全局配置模式中:
      Router(config)# line vty 0 4 	   进入对vty的配置
      vty表示虚拟端口,也就是23端口。4也可以改为1或3等等,代表同时远程连接的数量。0 4表示0、1、2、3、4,即最多可以有5个pc同时控制路由器。如果是需要10个人,就是:0 9。
      * 如果只写一个0:line vty 0,则表示只有一个人可以控制
      Router(config-line)# password 123.com  这个密码是远程访问路由器telnet时需要输入的密码
      Router(config-line)# login             使密码生效
      Router(config-line)# exit
      配置了路由器密码之后,在局域网中的终端的命令行中输入以上密码就可以进入路由器配置模式了,但是只是最普通的用户模式,不可以进入特权模式。必须配置特权密码之后(明文和密文都可以),才可以进入特权模式。
      Router(config)# enable password 789.com  配置特权密码
    
    - 这样,在通过终端远程telnet路由时,输入123.com进入用户模式后,使用enable命令进入特权模式,再输入特权密码789.com,就可以远程控制管理路由器了。
      远程控制路由器——在PC的命令行中输入: telnet 192.168.1.154  即所在局域网的网关(路由器配置了ip的那个端口IP),回车,输入配置的密码即可进入路由器命令行界面。
    
  17. 使用不同用户对路由器进行telnet连接

    以上因为是同时配置,所以在中途肯定是有冲突的,但如果配置错了,因为使用的同一账户,所以日志上也无法确认是谁使用的命令。

    如果是配置了以上密码,则需要先删除掉以上配置
    Router(config-line)# no password
    Router(config-line)# no login
    
    - 重新配置
    Router(config)# line vty 0 2
    Router(config-line)# login local   	 如果有人想要远程登录虚拟终端控制路由器,也可以,但是需要身份验证,local表示使用本地数据库进行身份验证。
    Router(config-line)# exit
    Router(config)# username hehe password 123.com  创立本地用户——username 用户名 password 密码
    Router(config)# enable password 789.com
    
    这样,PC就可以远程telnet路由,先输入用户名hehe,再输入密码123.com进入用户模式后,输入enable命令表示要进入特权模式,再输入特权密码789.com,就可以远程控制管理路由器了。此时,在路由器日志上的记录就会连带用户名一起记录,表明是哪个用户进行的操作。
    
  18. 为交换机配置虚拟接口IP

    因为交换机是数据链路层设备,不能配置IP,所以在远程访问时,因为没有IP,进无法进入。

    我们在网络模型模拟软件中进行MAC地址查看时,发现交换机中的MAC地址表中有一条是交换机的mac地址与端口的对应信息,是因为交换机中有一个虚拟电脑,而这个虚拟电脑的作用就是为了给交换机配置IP,这个IP我们称为“管理IP”,是为了管理这台交换机的。而且并没有违背网络模型原理,数据链路层的设备交换机不能配IP,这里的这个IP只是其内置的虚拟电脑的IP
    switch(config)# int vlan 1   进入虚拟端口1
    switch(config-if)# ip add 192.168.1.253 255.255.255.0  网关是254,员工是1,所以这里配个253
    switch(config-if)# no shut 
    

    为交换机也配置远程连接

    switch(config)# line vty 0 2
    switch(config-line)# login local   	 
    switch(config-line)# exit
    switch(config)# username hehe password 123.com 
    switch(config)# enable password 789.com
    
    * 局域网终端中远程telnet交换机: 
      在pc的命令行中输入:telnet 192.168.1.253  ,输入用户名输入密码,输入enable表示要进入特权模式,然后输入特权密码即可进入。
    

    跨网段telnet交换机。

    交换机想要被跨网段管理,必须配置网关,我们的这个交换机连接的路由器的那个端口的IP就是网关。因为被访问时,我们也需要将数据通过路由器传送到对方那里,没有网关只能访问内网。

    跨网段访问时,该网段与pc所在网段必须连接同一个路由器。PC配置了网关,数据可以通过网管出去,到达另一个网段的交换机,但是因为我们并没有为这个交换机配置网关,所以无法向路由器发送数据,导致我们telnet失败。
    
    - 在全局配置模式中为交换机配置网关
    switch(config)# ip default-gateway 192.168.2.254
    
    此时再跨网段telnet,就可以控制了。
    
  19. 给交换机配置网关,实现跨网段被管理

    switch(config)# ip default-geteway 192.168.2.254
    
  20. 基线核查

    基线核查——按照基线文档,对客户的设备进行安全检查
    安全加固——按照基线文档,对客户的设备进行安全配置
    
  21. 关闭控制台超时

    line co 0
        no exec-timeout
        
    重新开启超时自我保护
    line co 0
        exec-timeout 分 秒    例如:exec-timeout 5 30
    
  22. 关闭DNS域名自动解析

    防止输入错误的命令时,自动广播解析,占用时间

    conf t
        no ip domain-lookup
    
  23. 查看接口列表

    特权模式下,输入show ip int brief查看所有接口简要信息。
    

实验:实现不同的网段之间的pc相互访问

按照以下拓扑图配置IP并实现通信,然后观察MAC地址表,要求sw1和sw2的MAC地址表查看时是完整的。
  网段:192.168.1.1/24       每个交换机下连接有两台终端,1、2连接到交换机1,3、4连接到交换机2
  购买交换机以及终端,然后配置ip地址。理论上交换机只会记录源MAC地址,但如果是ping的话,对方会回包,所以我们只需要用1ping2,3ping4,两台交换机的MAC地址就完整了。但是每台交换机都多了一条匹配信息,这条信息是交换机本身的MAC地址与端口的对应信息,每台交换机都内置了一台虚拟终端。

- 显示端口号
  点击思科网络模拟器软件的菜单栏的“Options”——>首选项——>界面——>勾选“Always Show Port Labels”,这样交换机连接了终端之后,就会一直显示端口号了。

- 购买2811路由器
  在一个局域网中,所有连接到交换机上的设备,必须在同一网段才能互相访问,即使该交换机连接到了不同网段的交换机上,因为网段不同,也不能互相访问。
  那不同的网段之间应该如何通信?此时就需要到了路由器,有了路由器之后,不同网段之间的电脑就可以互相通信了。如公司很大,不同部门之间使用的网段不同,此时如果这些部门之间需要通信,也就是不同网段之间的局域网需要通信,则需要将他们的交换机连接到同一台路由器中。
* 路由器有4个端口:其中一个是Auxiliary端口,但很久之前已经被淘汰;还有一个是Console端口,但这个是控制台接口;只有剩下的两个百兆端口可以使用,用于连接交换机。
  连接了路由器之后,当需要访问不同网段的局域网时,即我们访问时,我们自己会先判断,目标ip跟本身是不是在同一个网段中,如果不在同一个网段,则需要找到我们这个局域网中的总出口,连接了交换机的路由器的那个端口,就叫做网关。也就是说,访问外网的时候才需要用到网关,访问外网才会用到路由器。
  
  局域网1
    网段:192.168.1.0/24  其中连接有两台终端,IP:1、2
  局域网2
    网段:192.168.2.0/24	其中连接有两台终端,IP:1、2
  局域网1与局域网2的交换机连接在同一台路由器上。
  
  交换机工作在2层“数据链路层”,其端口号就叫做2层端口。而路由器工作在3层“网络层”,其端口号叫做三层端口。所有的厂家的三层设备买回来,它的端口都是默认关闭的,需要手动打开。先配置ip再打开端口也可以
  在打开路由器端口之后,需要为路由器的那个端口配置ip,因为路由器是网络层设备,所以可以配置IP。而这个ip,就叫做网关。一般网关的ip的最后一个数,不是配置为1就是254,建议配置为254。
- 打开路由器端口:点击路由器,进入命令行界面——>第一次进入,输入no,表示不进入傻瓜式配置,而是进入高级配置模式
  Router>enable											进入特权模式
  Router#conf t											进入全局配置模式
  Router(config)#int f0/0								进入到该端口
  Router(config-if)#ip add 192.168.1.254 255.255.255.0  配置ip
  Router(config-if)#no shutdown							打开端口
  Router(config-if)#exit								返回上一级
  Router(config)# int f0/1								进入到另一个端口
  Router(config-if)#ip add 192.168.2.254 255.255.255.0   配置ip
  Router(config-if)#no shutdown							打开端口
  
  * no shutdown就是打开端口、shutdown是关闭端口
  
- 在PC中配置网关:每一台PC的网关都需要指向我们配置的那个网关。
  如果想要ping另一个网段中的ip,则ping 的双方所连接的交换机都需要连接到路由器中,并且ping的双方的网关都已经配置上。此时,再ping,就成功了。如果嫌要为每一个电脑配置网关麻烦,则可以搭建一个DHCP服务器,自动提供IP的同时,会将网关配置上。
  
- 路由器扩展端口
  在命令行中保存了配置之后,在“物理的”界面关闭路由器,选择左侧的“NM-2FE2W”,拖到右侧的黑色面包上,就表示为路由器又拓展了两个百兆端口,然后开启路由器。其中2FE就表示两个百兆端口
  开启路由器之后,又出现了两个端口:f1/0、f1/1,其中/前面的1就表示模块号。

- 新建一个局域网192.168.3.0/24,并连接路由器的f1/0端口,然后配置网关
    Router(config)#int f1/0			进入到该端口
    Router(config-if)#ip add 192.168.3.254 255.255.255.0  配置ip
    Router(config-if)#no shutdown							打开端口
  路由器端口配置了IP之后,需要为终端配置网关,并ping其他的局域网终端,如通过,则配置成功。
  
注意:在ping的过程中,可能会出现丢包的情况。

实验二:配置设备Telnet(实现所有交换机及路由器都可以被PC1远程telnet管理)

实验基础:在以上实验的基础上,即整个网段可以互通,终端可以ping网关。并且是所有局域网都是连接在同一台路由器上的。
因我们不会时刻呆在路由器边上,所以在需要的时候,在终端使用telnet进入路由器的命令行就可以很方便的进行操作了。而路由器端需要开启telnet服务
telnet定位路由器的时候,是通过网关。路由器telnet开启后,每个网段的终端要想控制路由器,本网段必须连接到该路由器中,telnet 网关,去控制路由器。

- 开启设备的telnet服务
  进入全局配置模式中:
  Router(config)# line vty 0 4 	   进入对vty的配置
  vty表示虚拟端口,也就是23端口。4也可以改为1或3等等,代表同时远程连接的数量。0 4表示0、1、2、3、4,即最多可以有5个pc同时控制路由器。如果是需要10个人,就是:0 9。
  * 如果只写一个0:line vty 0,则表示只有一个人可以控制
  Router(config-line)# password 123.com  这个密码是远程访问路由器telnet时需要输入的密码
  Router(config-line)# login             使密码生效
  Router(config-line)# exit
  配置了路由器密码之后,在局域网中的终端的命令行中输入以上密码就可以进入路由器配置模式了,但是只是最普通的用户模式,不可以进入特权模式。必须配置特权密码之后(明文和密文都可以),才可以进入特权模式。
  Router(config)# enable password 789.com  配置特权密码

- 这样,在通过终端远程telnet路由时,输入123.com进入用户模式后,使用enable命令进入特权模式,再输入特权密码789.com,就可以远程控制管理路由器了。
  远程控制路由器——在PC的命令行中输入: telnet 192.168.1.254  即所在局域网的网关(路由器配置了ip的那个端口IP),回车,输入配置的密码即可进入路由器命令行界面。telnet 路由器端口ip,即可访问。
  
  
  
- 为交换机配置虚拟接口IP
  因为交换机是数据链路层设备,不能配置IP,所以在远程访问时,因为没有IP,所以无法进入。
  而我们在网络模型模拟软件中进行MAC地址查看时,发现交换机中的MAC地址表中有一条是交换机的mac地址与端口的对应信息,是因为交换机中内置了一个虚拟电脑,而这个虚拟电脑的作用就是为了给交换机配置IP,这个IP我们称为“管理IP”,是为了管理这台交换机的。而且并没有违背网络模型原理,数据链路层的设备交换机不能配IP,这里的这个IP只是其内置的虚拟电脑的IP
  switch(config)# int vlan 1   进入虚拟端口1
  switch(config-if)# ip add 192.168.1.253 255.255.255.0  网关是254,员工是1,所以这里配个253
  switch(config-if)# no shut 

- 为交换机开启telnet
  switch(config)# line vty 0 2
  switch(config-line)# login local   	 
  switch(config-line)# exit
  switch(config)# username hehe password 123.com 
  switch(config)# enable password 789.com

  * 局域网终端中远程telnet交换机: 
    在pc的命令行中输入:telnet 192.168.1.253  ,输入用户名输入密码,输入enable表示要进入特权模式,然后输入特权密码即可进入。
    
    
- 跨网段telnet交换机——先为交换机配置虚拟接口IP,再为交换机开启telnet,再配置网关
  交换机想要被跨网段管理,必须配置网关,我们的这个交换机连接的路由器的那个端口的IP就是网关。因为被访问时,我们也需要将数据通过路由器传送到对方那里,没有网关只能访问内网。
  跨网段访问时,该网段与pc所在网段必须连接同一个路由器。PC配置了网关,数据可以通过网管出去,到达另一个网段的交换机,但是因为我们并没有为这个交换机配置网关,所以无法向路由器发送数据,导致我们telnet失败。

- 在全局配置模式中为交换机配置网关
switch(config)# ip default-gateway 192.168.2.254

此时再跨网段telnet,就可以控制了。

IP协议与路由

网络层协议:IP协议、ICMP协议、ARP协议

一、IP协议分析

在这里插入图片描述

字段分析

版本:表示这个ip包的地址是ipv4版本或是ipv6版本,一般都是ipv4。

首部长度:来标识IP包头的长度,20-60字节。
- 除了可选项之外的每一行,总共都是32位,也就是4个字节。前五行一共是20个字节
- 可选项一般都是0个字节,有特殊情况才会使用。可选项最大占40个字节。
- 是用来让接收方看的,标识这个IP包有无可选项。如果无可选项,则ip包头是20个字节;如果有,则大于20。
  接收方收到的是一堆二进制,他不知道从哪里开始是哪个数据,所以需要提前规定好标准,然后根据标准解析数据。有了这个字节数,对方就知道从哪里开始分割数据了。像这种可变的就需要标注,不可变的如:帧头帧尾长度就没有标准,因为双方都知道他们占多少个字节。

总长度:上三层的总长度/IP包的总长度(ip包头、tcp/udp包头、应用层数据)
- 如应用层数据是4000个字节,加上两个包头(IP包头与tcp包头结构差不多,假设他们都没有可选项,占用20个字节),就是4040个字节。然后到达网卡封装帧头帧尾,因为每个帧的最大负载能力都是1500,所以需要拆分开来。
- 这里的总长度就是上三层的总长度。

因为数据是被切为帧传输的,而接收方收到之后就需要组装。因为数据传输时要知道对方的ip地址,所以上三层数据实际上就是IP包头20+4和5层数据4020个字节。而如果一个要传递的数据超过了1500个字节,则需要切片,而切片后的每个帧都要附有ip包头,这样接收方收到之后看到目标IP是自己才会接收,否则就会丢弃。而因为每个帧都加上了一个ip包头占用20个字节,所以实际上每个帧能存储的数据就成了1480个字节,4020需要拆分为三段,分别占:1480、1480、1060个字节。
接收方收到数据之后,需要组装。而他只知道数据是发送给自己的就接收了。所以就引入了“段偏移量”用户区分IP切片顺序。如以上的三个分段,第一个切片的段偏移量就是0,表示没有偏移,即在这个切片之前没有别的数据了,所以这肯定是第一个切片;因为上一个切片存储的数据是1480个字节,所以第二个切片的段偏移量就是1480,表示从1480开始就要接上这个切片的数据;因为上一个切片存储的数据是1480个字节,所以第三个切片的段偏移量就是2960,表示从2960开始就要接上这个切片的数据。此时接收方就可以按照段偏移量组装数据了。
如果此时有另外一个数据同时传递,与上一个数据的大小一样,传向同一个ip。则此时,怎么保证接受方组装的数据是同一个数据呢?此时引入了“标识符”,这个标识符一般是随机生成的,然后放在ip包中,比如第一个数据的标识符是11,第二个数据的标识符是22。接收方收到之后,根据其标识符先分类,然后再根据段偏移量组装数据,此时即使大小一样,ip包头一样,数据在组装时也不会发生错乱。
标志是用来做什么呢?其中有三位二进制数。
* 第一位是保留位。
* 第二位是区分其是否分片,如果是1,则表示数据没有超过1500个字节,没有分片;如果是0,则表示数据大于1500字节,进行了IP分片。这个值为0,IP包头中的标识符与段偏移量才有意义,因为这两个都是作用于分片的。
* 第三位判断是否还有后续数据,即是否是最后一个分片。如果为0表示没有后续数据,如果是1则表示有后续数据。在分片的基础上,如果不是最后一个分片,则标志为:001;如果是最后一个分片,则标志为:000。

**标识符、标志、段偏移量这个三个数据都是在总长度大于1500,即这个数据进行了分片的时候才有意义

标识符:区分不同的IP分片数据流

标志:xxx共3位
- 第一个x,国际组织没有启用该功能,是保留位。
- 第二个x,为0表示进行了IP分片,为1表示没有分片
- 第三个x,为1表示还有后续数据,0代表没有后续数据

段偏移量:决定了IP分片的先后顺序

TTL(Time To Live):生存时间,单位为个数(路由器个数),每经过一个路由器TTL就-1,直到TTL为0就会丢弃,就算是没有到达目的地也会被丢弃。
- 作用:防止数据包在网络中永久的循环。
- 范围:1-255
  一般20跳左右,我们的数据肯定能够到达目的。但这个值一般都远远大于实际数
- Windows系统的TTL一般为128
  Linux系统一般为1-128之间,如56、64
  网关的:如果返回地址是255/254,TTL为255/254,说明这个地址既不是windows系统也不是Linux系统,而是在企业级的路由器上,也就是网关。
  
协议号
- 作用:区分上层协议
  我们的数据到达接收方,并重组完成后,要发送给上层,或者是送到同层的ICMP中。在封装数据时,使用的什么协议,就封装在这里,然后解封装时通过这里的协议号区分应该将数据传输到哪里。
- 1代表同层的ICMP协议、6代表TCP协议、17代表UDP协议

首部校验和
- 对整个IP包头进行校验恢复。FCS是对帧进行校验的。因为IP包头中的值比较重要,所以这里再次进行校验恢复。


源地址
目标地址

可选项:可选项一般都是0个字节,有特殊情况才会使用。可选项最大占40个字节。

IP分片攻击,也叫Tear Drop泪滴攻击,属于DDOS攻击的一种——通过篡改“段偏移量”值,导致重组失败,重组失败后会一直重组,但因为段偏移量有问题所以会一直失败,CPU使用率干到100。xp后的系统修复了该漏洞,重组失败就会丢弃。但也会占用20%左右的CPU使用率,如果多人同时发送篡改了“段偏移量”的数据包到同一人电脑,则也会将CPU干到100。

二、路由

  1. 什么是路由?

    路由:选路的过程。路由器的作用就是路由,路由器为数据包选择最佳路径的过程。
    
    - 路由器工作在网络层,属于三层设备。
      路由器接收到一个IP数据包,会根据包中的目标IP地址,来选择数据包传输的路径并转发。
    
  2. 路由原理

    - 路由器是根据路由表来转发数据的
    - 如果成功匹配到路由表,则根据其匹配信息中的下一跳地址转发数据
      如果没有匹配路由表,则丢弃数据!并返回ICMP回馈信息
    - 匹配路由表时,优先匹配直连条目C,然后是S,最后才是S*
    
  3. 路由表类型及配置路由

    如果把路由器当作十字路口,路由表就相当于路标。

    - 直连路由条目  C  ——  当路由器的接口IP配置完成,并打开了该端口,会自动形成直连路由条目
    - 非直连条目  ——  需要工程师手动静态或动态为路由器进行配置
      静态配置条目 S
      默认路由条目  S*
    
  4. 路由条目的优先级

      优先级是 C > S > S*
    - 路由条目的优先级与条目的管理距离值成反比
    - 路由类型			管理距离值			
        C				  0			直连没有距离
        S				  1			
        S*				无穷大		  管理距离无穷大,优先级无穷小,所以最后没有办法才会走默认路由
    

三、路由命令

  1. 静态路由

    全局配置模式下,使用指令 —— ip route 目标网段 子网掩码 下一跳IP地址。
    如 ip route 192.168.3.0 255.255.255.0 192.168.2.2
    
  2. 默认路由

    全局配置模式下,使用指令 —— ip route 0.0.0.0 0.0.0.0 下一跳IP地址。
    如 ip route 0.0.0.0 0.0.0.0 192.168.2.2
    
    0.0.0.0表示所有网段
    
  3. 查看路由表

    show ip route
    
  4. 查看接口基本信息

    show ip int biref
    
  5. 网线的使用

    - 直通线 —— 用于异种设备之间
    - 交叉线 —— 用于同种设备之间(上三成设备被视为同种设备,即:路由器 与PC为同种设备)
    
  6. 路由环路

    两个直连的路由器,互指了默认路由就可能会发生路由环路
    
  7. 浮动路由

    借助路由优先级与管理距离值,实现路由的备份。如果其中一条路由失效,则另一条路由会立即生效
    
    ip route 192.168.4.0 255.255.255.0 192.168.2.1 
    ip route 192.168.4.0 255.255.255.0 192.168.3.1 11
    

局域网互联

静态路由

在这里插入图片描述

搭建如图网络结构,实现全网互通

- 路由器是由于连接不同网段的,而一个路由器与一个路由器相连,其中间也是一个网段。这个就是世界上最小的网段,只由两个ip构成,往往是左边的端口IP设置为1,右边的IP设置为2。
  为所有的终端配置IP,也为路由器的端口配置IP,并打开路由器的端口。
- 此时我们使用1.1的终端去ping 5.1的终端,因为是向另一个局域网中的终端发送数据,所以数据会先到达网关,也就是到达路由器1。
  路由器1的两个端口ip分别是1.254与2.1,路由器可以通过这个判断自己直接连接了1.0与2.0这个网段,会通过这个形成自己的路由表。这个表是我们在为路由器的端口配置IP的时候自动形成的,直连则用C表示。只有直连路由器的,才会在路由表中自动形成匹配信息,除此之外的都需要手动配置,配置时不是配置单个IP,而是这个网段,因为每个IP都配出来就太多了,我们配置了网段之后,向具体IP传输数据就交给该网段的交换机即可。路由器1的路由表:
  C 192.168.1.0/24 F0/0
  C 192.168.2.0/24 F0/1
  在路由器的命令行中,进入特权模式,通过show ip route 可以查看路由器的路由表。
  路由器1收到1.0网段终端传来的数据之后,只会查看目标IP,发现目标IP是5.1,然后会根据路由表中的匹配信息去看应该将数据传输到哪里,但是没有找到5.0网段的匹配信息,因为5.0这个网段并不是路由器1直连的,而我们也没有手动配置,所以路由器1不认识这个网段。交换机找不到匹配信息时会广播,而路由器找不到匹配信息会直接丢弃请求数据,并且以网关的名义向“源端”,也就是请求端发送一个信息表示目标主机不可达。如这里路由器1发现路由表中没有5.0网段的匹配信息,则1.1终端会收到信息——Reply from 192.168.1.254:Destination host unreachable,翻译为:来自192.168.1.254:目标主机不可达。
  
- 静态路由——手动配置路由表匹配信息
  路由器不会自动生成非直连网段的匹配信息,需要向5.0网段发送数据,就只能我们自己手动去配置路由表,我们手动配置的的网段匹配信息,前面会有一个S(表示Static静态的)。而我们为路由器配置网段匹配信息时,不是使用端口去表达方向,因为路由器只认识自己的端口。所以我们配置时,需要使用一个IP去表达方向(这个IP叫做“下一跳IP”,我们只为它提供目标网段的下一步,因为目标网段不直接与路由器相连,所以无法直接指向目标IP,只能告诉它下一步传输到哪里,剩下的路由下一个路由器继续指。所有的路由器都只会指自己认识的路),而这个IP,一定是与该路由器相连的另一端的ip,只能指向直接相连的路由器的端口IP,不能跳过相连的指向间接相连的路由器,因为所有的路由器都只认识与自己直接相连的网段。
  为路由器1指定5.0网段的下一跳匹配信息——进入路由器1的命令行,进入全局配置模式,输入命令:
  (ip route 网段 子网掩码 下一跳IP) ip route 192.168.5.0 255.255.255.0 192.168.2.2 回车即可。再次输入show ip route 就可以看到5.0地址的匹配信息,表示如果有数据需要发送到5.0网段,则传输到192.168.2.2。
  此时数据会走到路由器2,路由器2也是一样,只认识自己直连的,所以需要在路由器2中配置5.0网段的匹配信息—— 进入路由器2的全局配置模式,输入命令ip route 192.168.5.0 255.255.255.0 192.168.4.2 回车即可。再次输入show ip route 就可以看到5.0地址的匹配信息,表示如果有数据需要发送到5.0网段,则传输到192.168.4.2。
  此时数据会走到路由器3,路由器3直连了5.0网段,此时5.0网段5.1收到了1.1终端传来的数据,需要返回数据包给1.1,但是数据到达路由器3时,路由器不知道1.0网段该往哪里走,所以要在路由器3中配置1.0网段的匹配信息——进入全局配置模式,输入命令:ip route 192.168.1.0 255.255.255.0 192.168.4.1 回车即可。再次输入show ip route 就可以看到1.0地址的匹配信息,表示如果有数据需要发送到1.0网段,则传输到192.168.4.1。
  此时数据走到路由器2,路由器不知道1.0网段该往哪里走,所以要在路由器2中配置1.0网段的匹配信息——进入全局配置模式,输入命令:ip route 192.168.1.0 255.255.255.0 192.168.2.1 回车即可。再次输入show ip route 就可以看到1.0地址的匹配信息,表示如果有数据需要发送到1.0网段,则传输到192.168.2.1。
  这时,1.0网段终端就可以收到5.0网段放回的数据包了。
  
实现全网互通,则需要继续在路由器中继续配置除了自己直连的网段之外的所有网段的匹配信息。而在我们的这个网中,如果需要互通,则需要继续配置:
- 因为路由器1直连1.0、2.0网段,如需发送数据到其他网段,则都是发送到2.2这个IP,剩下的路由路由器2去指。
  路由器1总共需要配置:
    ip route 192.168.3.0 255.255.255.0 192.168.2.2
    ip route 192.168.3.0 255.255.255.0 192.168.2.2
    ip route 192.168.5.0 255.255.255.0 192.168.2.2
    
- 因为路由器2直连2.0、3.0、4.0网段,如需发送数据到1.0网段,则送到2.1;如需发送到5.0,则送到4.2
  路由器2总共需要配置:
    ip route 192.168.1.0 255.255.255.0 192.168.2.1
    ip route 192.168.5.0 255.255.255.0 192.168.4.2
    
- 因为路由器3直连4.0、5.0网段,如需发送数据到其他网段,则都是发送到4.2这个IP,剩下的路由路由器2去指。
    ip route 192.168.1.0 255.255.255.0 192.168.4.1
    ip route 192.168.2.0 255.255.255.0 192.168.4.1
    ip route 192.168.3.0 255.255.255.0 192.168.4.1

默认路由

在这里插入图片描述

在以上全网的基础上,增加6.0网段连接到交换机2,增加7.0网段连接到交换机3

- 路由器1的路由表总共需要配置:
    ip route 192.168.3.0 255.255.255.0 192.168.2.2
    ip route 192.168.3.0 255.255.255.0 192.168.2.2
    ip route 192.168.5.0 255.255.255.0 192.168.2.2
    ip route 192.168.6.0 255.255.255.0 192.168.2.2
    ip route 192.168.7.0 255.255.255.0 192.168.2.2
    
- 路由器2的路由表总共需要配置:
  ip route 192.168.1.0 255.255.255.0 192.168.2.1
  ip route 192.168.5.0 255.255.255.0 192.168.4.2
  ip route 192.168.7.0 255.255.255.0 192.168.4.2

- 路由器3的路由表总共需要配置
    ip route 192.168.1.0 255.255.255.0 192.168.4.1
    ip route 192.168.2.0 255.255.255.0 192.168.4.1
    ip route 192.168.3.0 255.255.255.0 192.168.4.1
    ip route 192.168.6.0 255.255.255.0 192.168.4.1
    
- 此时我们发现路由器1与路由器3上我们配置的网段,他们的下一跳IP都指向同一个,也就是实际上这两台路由器上连接的路由器都只有一台,像这种只连接一台路由器的路由器叫做“边缘路由器”,边缘路由器的特点是:除了访问自己直连的网段,访问其他网段时都是往一个方向走,也就是“下一跳IP”都是同一个。
  而伴随着网络的慢慢壮大,将有更多的网段连接到路由器中,此时就需要优化对路由表的配置。
  - 删除我们之前对路由器的配置(在哪里配的就在哪里删),进入路由器的特权模式
    我们配置匹配信息的时候,都是使用ip route这个指令,一般删除时不需要添加参数,但我们还说过如果使用指令添加的是一堆不会覆盖的数据,则需要加上参数。
    路由器1中删除:
      no ip route 192.168.3.0 255.255.255.0 192.168.2.2
      no ip route 192.168.3.0 255.255.255.0 192.168.2.2
      no ip route 192.168.5.0 255.255.255.0 192.168.2.2
      no ip route 192.168.6.0 255.255.255.0 192.168.2.2
      no ip route 192.168.7.0 255.255.255.0 192.168.2.2
  - 边缘路由器中,由于下一跳地址是固定的,所以我们表示网段时可以写:0.0.0.0 0.0.0.0 ,这个就表示所有网段。像这种配置方式,我们叫做默认路由。
    路由器1中的全局配置模式中使用命令—— ip route 0.0.0.0 0.0.0.0 192.168.2.2,回车,然后使用 do show ip route查看路由表配置,发现刚刚配置的这个匹配信息,最前面有一个S* ,S就表示我们手动配置的,*表示是默认路由。这条配置信息表示去往所有网段,都向192.168.2.2走
    路由器1接收到数据时,看往哪个网段走,先查看是不是直连的两个网段,如果不是,则会采用默认路由中的下一跳IP,他是有个优先级的。
  - 路由器3也是边缘路由器,也可以删掉之前的配置,配置默认路由
  - 边缘路由器是相对最适合配置默认路由,像路由器2就适合配置默认路由,因为数据需要送到左边或者右边,不一定是一个方向。

默认路由发生路由环路的分析

在这里插入图片描述

- PC与路由器被视为同一种设备,或者说是三层以上的设备都被视为同一种设备,在使用网线连接的时候,需要使用交叉线。

如图(路由器与PC之间本来是要有交换机连接的,但是因为懒就省略了),四台设备之间共有三个网段,按理说,为路由器1配置3.0网段指向2.2、路由器2配置1.0网段指向2.1就可以实现互通了。
- 但这里我们为路由器1配置默认路由指向2.2,路由器2配置默认路由指向2.1。
- 虽然这两个路由器都是边缘路由器,按理论是可以配置默认路由,看实际情况:
  1)正常情况下——1.1终端向3.1终端发送请求,路由器1发现都不是自己直连,所以走默认路由指向2.2,到达路由器2,3.0网段是路由器2直连的,所以数据成功到达,然后3.1终端向1.1终端返回数据包,路由器2收到发现不是直连,走默认路由指向2.1,到达路由器1,1.0网段是路由器1直连,所以数据可以互通。
  2)非正常情况——1.1终端向4.1终端发送请求,本来这个网段中是没有4.0这个网段的,到达路由器会被直接丢弃。但是因为两个路由器都配置了默认路由,而路由器1与路由器2都没有直连4.0网段,都会走默认路由,所以就形成了:路由器1发送给路由器2,路由器2又发送给路由器1,他们不断互相发送数据包的情况,而这个数据包永远都到不了目标网段,因为根本没有这个目标网段。而且就算是有这个网段,因为这两个路由器都采用默认路由互相走。这个情况就叫做路由环路
  
- 像上面那种情况会不会发生路由环路? 
  不会,因为两个配置了路由环路的路由器中间还有一个路由器。如果其中一个路由器发送请求到一个该网络中没有的网段,如发送数据到8.1,根据默认路由走到中间的那个路由器的时候,中间的那个路由器发现路由表中没有这个网段,则会丢弃这个请求,此时环路就中断了。
- 所以路由环路发生的根本原因是:两个直接相连的路由器互指了默认路由。

- 实际情况中,如果发生路由环路,两个路由器也不会一直互相发送同一个请求。因为在路由器中有一个机制叫做TTL机制,这个机制会帮助我们结束这个循环。但是也需要两个路由器互相发送同一个请求100多次,但是如果还有下一个该类请求发送过来,两个路由器还会一直互发同一个请求100多次甚至更多(互发统一请求,这种情况叫做震荡),直到借助TTL机制丢掉这个数据包。
  虽然不会永久震荡,但在两个路由器震荡之间,会影响我们的网络的效率

路由优先级

在这里插入图片描述

当路由器接收到请求时,根据自己的路由表匹配目标网段,其路由表顺序是有一个优先级别的。
直连条目C > 静态配置条目S > 默认路由S* 

如图,其中路由器1与路由器5是最适合配默认路由的,这两个路由器都是边缘路由器
- 此时看路由器2,这个路由器不配置默认路由就很可惜。因为在配置该路由器时,只有1.0网段是需要指向左边,剩下的4、5、6、7、8网段都是指向右边

配置路由器2的时候,就可以这样配置:
- 除了直连的2.0和3.0网段,1.0网段指向2.1,剩下的所有网段都指向3.2
  C 2.0 
  C 3.0
  S 1.0 2.1
  S* 0.0 3.2
- 按道理说,我们这里是不可以配置默认路由的,那这里为什么可以这样配置呢?
  此时看路由表,就应该考虑S与S*哪个会优先生效。在数据包到达路由器之后,路由器永远是先考虑配置了具体网段的,最后实在没有办法,才会走默认路由,默认路由只是一个补充。
  配置了之后,如果有目标IP为1.1网段的数据到达路由器2,则路由器先看是不是自己直连的,不匹配才会看S ,匹配了就会发送过去;如果是有目标IP为8.1网段的数据到达路由器2,则路由器先看是不是自己直连的,不匹配再看S ,还不匹配,没有办法了则会走默认路由。
  这样就完成了配置路由表的优化,从8条变为了4条。我们只需要手动配置两条即可
  
那路由器3和4能不能配置默认路由呢?
- 路由器1的路由表:
  直连1.0、2.0——默认路由指向右边,一共三条。
- 路由器2的路由表
  直连2.0、3.0——1.0指向左边——默认路由指向右边,一共四条
  
- 路由器3的路由表
  这个路由器也可以写默认路由,除了自己直连的网段,剩下的两端的网段,我们挑一端简单的网段写,剩下的复杂的那一端我们指默认路由,如这里可以这样配置:
  直连3.0、4.0、5.0——1.0、2.0指向左边(需要配置两条)——默认路由指向右边,一共6条。
  设置了默认路由之后,如果有人访问一个该网络中没有的网段,则在路由器3和4之间可能就会出现路由环路。
  * 所以还是不建议为中间的路由器指默认路由,建议在边缘及次边缘的路由器上设置默认路由。
  
- 路由器4的路由表
  直连5.0、6.0、7.0——8.0指向右边——默认路由指向左边,一共5条
- 路由器5的路由表
  直连7.0、8.0——默认路由指向左左边,一共三条
  
为什么路由器优先级是C>S>S*呢?
- 路由条目的优先级与条目的管理距离值成反比。
- 路由类型			管理距离值			
    C				  0			直连没有距离
    S				  1			
    S*				无穷大		  管理距离无穷大,优先级无穷小,所以最后没有办法才会走默认路由

浮动路由

在这里插入图片描述

两个路由器中间有两条连接,当其中一条路断掉之后,另一条路就浮动出来以供连接。这种路由器叫做浮动路由,如果两个路由器之间的连接很重要,不能被断掉,就可以使用浮动路由。
- 配置过程中需要使用修改第二条连接的管理距离值
  ip route 目标网段 子网掩码 下一跳地址 管理距离值
  ip route 192.168.4.0 255.255.255.0 192.168.3.2 2
  * 这里的管理距离值只要比1大就可以,随便写。
  * 如果同一个网段,配置了两条匹配信息,其中“下一跳地址”与“管理距离值”均不同。则管理距离值高的那个,也就是优先级低的那个匹配信息,平常都会被隐藏掉,只有在优先级高的那个匹配信息断掉消失之后才会显示在路由器路由表中,并且一旦“优先级高的这个匹配信息”重新连接,则“优先级低的这个匹配信息”又会被隐藏。
    
搭建如图网络
- 配置路由器1,进入到全局配置模式中:
  int f0/0 ——>ip add 192.168.1.254 255.255.255.0 ——>no shutdown 打开端口
  int f0/1 ——>ip add 192.168.2.1 255.255.255.0 ——>no shutdown 打开端口
  int f1/0 ——>ip add 192.168.3.1 255.255.255.0 ——>no shutdown 打开端口
  配置路由表:ip route 192.168.4.0 255.255.255.0 192.168.2.2  
   		    ip route 192.168.4.0 255.255.255.0 192.168.3.2 11
    * * 修改了管理距离值之后的这个网段匹配信息,在路由表中不会显示出来,使用 do show ip route可以查看。只有当第一条断掉之后,这条匹配信息才会在路由表中显示出来;并且第一条重新连接之后,第二条有又会被隐藏掉。如果第一条一直不断掉,有不确定是否配置上了,可以使用do show run查看我们配置的这条信息
- 配置路由器2,进入到全局配置模式中:
  int f0/0 ——>ip add 192.168.4.254 255.255.255.0 ——>no shutdown 打开端口
  int f0/1 ——>ip add 192.168.2.2 255.255.255.0 ——>no shutdown 打开端口
  int f1/0 ——>ip add 192.168.3.2 255.255.255.0 ——>no shutdown 打开端口
  配置路由表:ip route 192.168.1.0 255.255.255.0 192.168.2.1
   	        ip route 192.168.1.0 255.255.255.0 192.168.3.1 22

- 在终端1.1上ping 终端4.1,使用命令:ping -t 192.168.4.1,表示一直ping192.168.4.1这个终端
  有数据包返回之后,在路由器1中,进入到 f0/1 端口——>shutdown 关闭该端口,可以看到一直返回数据包的窗口中,断了一下,丢掉一个包之后瞬间又有包返回。此时使用do show ip route查看路由表:
  第二条匹配信息显示:S 192.168.4.0/24 [11/0] via 192.168.3.2 其中的11就是管理距离值。而第一条匹配信息由于断掉而消失。
  * *在路由器2中使用do show ip route查看路由表:
     第二条匹配信息显示:S 192.168.1.0/24 [22/0] via 192.168.3.1 其中的11就是管理距离值。而第一条匹配信息由于断掉而消失。

- 在路由器1中,再次进入到 f0/1 端口——>no shutdown 再次打开该端口,可以看到一直返回数据包的窗口中,断了一下,丢掉一个包之后瞬间又有包返回。此时使用do show ip route查看路由表:
  第一条匹配信息显示:S 192.168.4.0/24 [1/0] via 192.168.2.2 
  * *在路由器2中使用do show ip route查看路由表:
     第二条匹配信息显示:S 192.168.1.0/24 [1/0] via 192.168.2.1 
  * *其中的[1/0]中的1就是管理距离值
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-22 20:58:43  更:2022-03-22 20:59:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:55:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码