ICT战队-第5次笔记


ICT战队-第5次笔记

[toc]

路由协议

实验一:静态路由

  • STEP1:网络拓扑
  • STEP2.1:路由器配置IP

说明:AR几就配置X.X.X.几/24的地址,例:AR2:12.1.5.2/24。

# AR1
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip add 192.168.1.1 24
[AR1-GigabitEthernet0/0/0]int g0/0/1
[AR1-GigabitEthernet0/0/1]ip add 12.1.1.1 24

# AR2
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ip add 12.1.1.2 24
[AR2-GigabitEthernet0/0/0]int g0/0/1
[AR2-GigabitEthernet0/0/1]ip add 23.1.1.2 24

# AR3
[AR3]int g0/0/0
[AR3-GigabitEthernet0/0/0]ip add 23.1.1.3 24
[AR3-GigabitEthernet0/0/0]int g0/0/1
[AR3-GigabitEthernet0/0/1]ip add 192.168.2.3 24
  • STEP2.2:主机配置IP
主机 IP地址 掩码 网关
PC1 192.168.1.250 255.255.255.0 192.168.1.1
PC2 192.168.2.250 255.255.255.0 192.168.2.3
  • STEP2.3:测试网络连通性(略)

用PC1 ping PC2,ping不通。

  • STEP2.4:查看路由表
[AR2]dis ip rou
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 10       Routes : 10       

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

       12.1.1.0/24  Direct  0    0           D   12.1.1.2        GigabitEthernet0/0/0
       12.1.1.2/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/0
     12.1.1.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/0
       23.1.1.0/24  Direct  0    0           D   23.1.1.2        GigabitEthernet0/0/1
       23.1.1.2/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/1
     23.1.1.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/1
      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

[AR2]
  • STEP2.5:DEBUG

在理想环境下,抓包容易,但是在真实生产环境中,抓包很难实现。因此,一般使用DEBUG写日志。

让客户主动找你,别主动去找客户。

# todo 显示日志
<AR2>terminal monitor  # 在终端显示日志
Info: Current terminal monitor is on.
<AR2>terminal debugging  # 显示日志等级
Info: Current terminal debugging is on.
# <AR2>terminal all  # 永远不要使用该命令
# todo 显示相应日志
<AR2>debugging ip icmp

然后,使用AR1 ping AR2,可以在AR2终端看到(ping通了):

# todo AR2终端信息
<AR2>
Oct 12 2021 17:46:11.832.2-08:00 AR2 IP/7/debug_icmp:
ICMP Send: echo-reply(Type=0, Code=0), Src = 2.1.1.12, Dst = 1.1.1.12, ICMP Id = 0xabcd, ICMP Seq = 256

<AR2>
Oct 12 2021 17:46:12.272.1-08:00 AR2 IP/7/debug_icmp:
ICMP Receive: echo(Type=2048, Code=0), Src = 1.1.1.12, Dst = 2.1.1.12, ICMP Id = 0xabcd, ICMP Seq = 512

<AR2>
Oct 12 2021 17:46:12.272.2-08:00 AR2 IP/7/debug_icmp:
ICMP Send: echo-reply(Type=0, Code=0), Src = 2.1.1.12, Dst = 1.1.1.12, ICMP Id = 0xabcd, ICMP Seq = 512

<AR2>
Oct 12 2021 17:46:12.772.1-08:00 AR2 IP/7/debug_icmp:
ICMP Receive: echo(Type=2048, Code=0), Src = 1.1.1.12, Dst = 2.1.1.12, ICMP Id = 0xabcd, ICMP Seq = 768

<AR2>
Oct 12 2021 17:46:12.772.2-08:00 AR2 IP/7/debug_icmp:
ICMP Send: echo-reply(Type=0, Code=0), Src = 2.1.1.12, Dst = 1.1.1.12, ICMP Id = 0xabcd, ICMP Seq = 768

<AR2>
Oct 12 2021 17:46:13.272.1-08:00 AR2 IP/7/debug_icmp:
ICMP Receive: echo(Type=2048, Code=0), Src = 1.1.1.12, Dst = 2.1.1.12, ICMP Id = 0xabcd, ICMP Seq = 1024

<AR2>
Oct 12 2021 17:46:13.272.2-08:00 AR2 IP/7/debug_icmp:
ICMP Send: echo-reply(Type=0, Code=0), Src = 2.1.1.12, Dst = 1.1.1.12, ICMP Id = 0xabcd, ICMP Seq = 1024

<AR2>
Oct 12 2021 17:46:13.762.1-08:00 AR2 IP/7/debug_icmp:
ICMP Receive: echo(Type=2048, Code=0), Src = 1.1.1.12, Dst = 2.1.1.12, ICMP Id = 0xabcd, ICMP Seq = 1280

<AR2>
Oct 12 2021 17:46:13.762.2-08:00 AR2 IP/7/debug_icmp:
ICMP Send: echo-reply(Type=0, Code=0), Src = 2.1.1.12, Dst = 1.1.1.12, ICMP Id = 0xabcd, ICMP Seq = 1280

<AR2>

ICMP类型字段(Type)以及代码字段(Code)含义汇总

  • STEP3.1:配置静态路由

静态路由配置语法:[AR]ip route-static <目标网段> <子网掩码> <下跳地址>

# todo AR1配置静态路由
[AR1]ip route-static 192.168.2.0 255.255.255.0 12.1.1.2

# todo AR2配置静态路由
[AR2]ip route-static 192.168.2.0 255.255.255.0 23.1.1.3
[AR2]ip route-static 192.168.1.0 255.255.255.0 12.1.1.1

# todo AR3配置静态路由
[AR3]ip route-static 192.168.1.0 255.255.255.0 23.1.1.2
  • STEP3.2:测试网络连通性

主机之间可以ping通,其通信过程为:

路由器基于路由表进行转发

小实验$_1$

两个路由器地址不在同一网段能否通信。

  • STEP1:网络拓扑
  • STEP2:路由器配置IP(略)
  • STEP3:测试连通性(略:路由器互相ping不通)
  • STEP4:添加静态路由
# todo AR1
[AR1]ip route-static 192.168.1.1 255.255.255.0 g0/0/0
Info: The destination address and mask of the configured static route mismatched
, and the static route 192.168.1.0/24 was generated.

# todo AR2
[AR2]ip route-static 12.1.1.1 255.255.255.0 g0/0/0
Info: The destination address and mask of the configured static route mismatched
, and the static route 12.1.1.0/24 was generated.
  • STEP5:测试连通性

此时,按理来说,应该能ping通了。
但是,涉及到ARP轮询技术(?),没有ping通。

注;如果路由器没有基于路由表进行转发,一般就是路由器出BUG了。

原理:路由协议

查询AS:CIDR Report

算法 协议
距离矢量路由选择协议 RIP、BGP
链路状态路由选择协议 OSPF、ISIS

距离矢量:实时根据方向的距离转发数据
链路状态:已经计算好转发数据的最短路径

路由度量:

等价路由:ECMP

例:等价路由

路由表最长匹配原则

VRP缺省路由优先级:

路由协议 优先级
DIRECT 0
OSPF 10
IS-IS 15
STATIC 60
RIP 100
OSPF ASE 150

小实验$_2$

  • STEP1:网络拓扑
  • STEP2.1:路由器配置环回口地址

路由器的环回口可以自己指定,配置任意IP地址。

# todo AR1:配置环回口
[AR1]int LoopBack 0
[AR1-LoopBack0]ip add 1.1.1.1 32

# todo 查看环回地址
[AR1]dis ip rou
[AR1]dis ip int bri
  • STEP2.2:配置IP地址
# todo AR1:配置IP
[AR1int g0/0/0
[AR1-GigabitEthernet0/0/0]ip add 12.1.1.1 24
# todo AR2:配置IP
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ip add 12.1.1.2 24
[AR2-GigabitEthernet0/0/0]int g0/0/1
[AR2-GigabitEthernet0/0/1]ip add 192.168.1.2 24
主机 IP地址 子网掩码 网关
PC1 192.168.1.250 255.255.255.0 192.168.1.2
  • STEP2.3:配置默认路由

末梢网络一般添加默认路由

# todo AR1:配置默认路由
[AR1]ip route-static 192.168.1.0 255.255.255.0 12.1.1.2
# todo AR2:配置默认路由
[AR2]ip route-static 0.0.0.0 0.0.0.0 12.1.1.1
  • STEP0:测试连通
# tood AR1:
[AR1]ping -a 1.1.1.1 192.168.1.250  
  PING 192.168.1.250: 56  data bytes, press CTRL_C to break
    Request time out
    Reply from 192.168.1.250: bytes=56 Sequence=2 ttl=127 time=40 ms
    Reply from 192.168.1.250: bytes=56 Sequence=3 ttl=127 time=30 ms
    Reply from 192.168.1.250: bytes=56 Sequence=4 ttl=127 time=30 ms
    Reply from 192.168.1.250: bytes=56 Sequence=5 ttl=127 time=20 ms

  --- 192.168.1.250 ping statistics ---
    5 packet(s) transmitted
    4 packet(s) received
    20.00% packet loss
    round-trip min/avg/max = 20/30/40 ms

[AR1]
  • STEP3:删除主机连线,路由器之间成环

此时测试连通性:

[AR1]tracert -a 1.1.1.1 192.168.1.250
 traceroute to  192.168.1.250(192.168.1.250), max hops: 30 ,packet length: 40,press CTRL_C to break 
 1 12.1.1.2 50 ms  20 ms  20 ms 
 2 12.1.1.1 10 ms  20 ms  10 ms 
 3 12.1.1.2 20 ms  10 ms  30 ms 
 4 12.1.1.1 20 ms  20 ms  20 ms 
······
27 12.1.1.2 80 ms  60 ms  100 ms 
28 12.1.1.1 70 ms  80 ms  80 ms 
29 12.1.1.2 70 ms  100 ms  80 ms 
30 12.1.1.1 80 ms  90 ms  80 ms 
[AR1]

环路原因:路由器端口down了后,其路由表中的对应的路由条目会被删除,此时路由器就会根据默认路由进行转发,这两台路由器都根据默认路由进行转发就形成了环路。

  • STEP4:配置防环的丢弃路由

丢弃路由:匹配到指定的地址都丢弃掉

# todo AR2:配置丢弃路由
[AR2]ip route-static 192.168.1.0 255.255.255.0 NULL 0
  • STEP0:分别连接/断开连线测试连通性
# todo AR2:线路连接时的路由表
[AR2]dis ip rou
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 11       Routes : 11       

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        0.0.0.0/0   Static  60   0          RD   12.1.1.1        GigabitEthernet0/0/0
       12.1.1.0/24  Direct  0    0           D   12.1.1.2        GigabitEthernet0/0/0
       12.1.1.2/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/0
    ······
    192.168.1.0/24  Direct  0    0           D   192.168.1.2     GigabitEthernet0/0/1
    192.168.1.2/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/1
  192.168.1.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/1
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

# todo AR2:线路断开时的路由表
[AR2]dis ip rou
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 9        Routes : 9        

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        0.0.0.0/0   Static  60   0          RD   12.1.1.1        GigabitEthernet0/0/0
       12.1.1.0/24  Direct  0    0           D   12.1.1.2        GigabitEthernet0/0/0
       12.1.1.2/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/0
    ······
    192.168.1.0/24  Static  60   0           D   0.0.0.0         NULL0
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

注意到:
连接:192.168.1.0/24 Direct 0 0 D 192.168.1.2 GigabitEthernet0/0/1
断开:192.168.1.0/24 Static 60 0 D 0.0.0.0 NULL0

  • 总结
    • 路由:RIP、OSPG、BGP
    • 动态协议:距离矢量、链路状态
    • 路由表:目的地址、协议、优先级、度量、下一跳、下一跳端口
    • 等价路由:同一协议,到同一目的有多个相同度量

路由

静态路由

略:上面已经做过

# todo 命令:配置到达某个网段的静态路由
[AR]ip route-static <目标网段> <子网掩码> <出口地址>
[AR]ip route-static <目标网段> <子网掩码位数> <下一跳地址>
[AR]ip route-static <目标网段> <子网掩码位数> <下一跳端口>

负载分担

# todo 命令:配置等价路由实现负载分担
[AR]ip route-static <目标网段> <子网掩码> <出口地址1>
[AR]ip route-static <目标网段> <子网掩码> <出口地址2>
[AR]ip route-static <目标网段> <子网掩码> <出口地址3>

路由备份

# todo 命令:静态路由的路由备份
[AR]ip route-static <目标网段> <子网掩码> <出口地址1>
[AR]ip route-static <目标网段> <子网掩码> <出口地址2> preference 100

缺省路由

# todo 命令:配置缺省路由
[AR]ip route-static 0.0.0.0 0.0.0.0 <下一跳地址>

OSPF路由协议

原理:OSPF路由协议

  • ①开方式最短路径优先协议OSPF

协议号:IP协议(Protocol)字段释义

有些特定防火墙过滤某一协议得写协议号。

  • ②OSPF基本特点

无类:不关心IP地址的类别
区域划分:骨干、非骨干区域(非骨干必须和骨干直连)
无路由自环:迪杰斯特拉
收敛快:毫秒级别
组播:代替广播,使用224.0.0.5和224.0.0.6
等值路由:负载均衡
认证:支持认证

  • ③OSPF报文

OSPF的3张表:邻居表、链路状态数据库、路由表

OSPF五种报文:OSPF报文类型及格式总结
LSA( Link-State Advertisement )链路状态通告

  1. Hello报文:用来发现并维持邻居
  2. DD报文(Database Description):用来描述本地LSDB信息(和邻居是否互通),只携带LSA的Header
  3. LSR报文(Link State Request,链路状态请求):用于请求邻居的LSA
  4. LSU报文():发送LSA具体信息,或者用于泛洪LSA,或者用于隐式回应LSU报文
  5. LSAck报文():用于回应LSU报文
  • ④OSPF状态过程

Init:已经把Hello报文发出去,但是暂没收到回应,默认10s发一次,如果收到回复,则进入 2-way 状态
2-way:选举DR和BDR,2-way这个状态最长持续40s。
ExStart
Exchange
Loading
Full

  • ⑤DR和BDR

避免一个更新被重复传递多次,减少路由更新消耗的资源。

DRother只能和DR、BDR建立邻接关系,DRother只能建立 2-way 状态

选DR和BDR:比较RouterID(RID)大小(越大越优)

RID来源
1.管理员手动设置
2.活动的环回口最大IP
3.活动的物理接口最大IP

在Wireshark中,OSPF数据帧的Source OSPF Router就是RID

OSPF先选举BDR:比大小,谁大谁先成为BDR,如果没有DR,BDR就变成DR,然后再选举BDR。

显示确认:使用专有的报文进行确认
隐式确认:(基于序列号的确认机制)收到一份报文,然后向发送者回复一份序列号相同的报文。仅有OSPF支持这种确认机制。

实验二:使用debug观察邻接关系形成过程

  • STEP1:网络拓扑
  • STEP2:查看OSPF表

首先打开抓包

然后清空邻居关系

<R1>reset ospf process 
Warning: The OSPF process will be reset. Continue? [Y/N]:y

查看抓到的数据包/查询路由表State:

# todo 查看OSPF邻居表
[R1]dis ospf peer

         OSPF Process 1 with Router ID 12.1.1.1
                 Neighbors 

 Area 0.0.0.0 interface 12.1.1.1(GigabitEthernet0/0/0)'s neighbors
 Router ID: 12.1.1.2         Address: 12.1.1.2        
   State: Full  Mode:Nbr is  Master  Priority: 1
   DR: 12.1.1.2  BDR: 12.1.1.1  MTU: 0    
   Dead timer due in 31  sec 
   Retrans timer interval: 5 
   Neighbor is up for 00:03:03     
   Authentication Sequence: [ 0 ] 

[R1]

实验三:DR和BDR

  • STEP1:网络拓扑
  • STEP2:配置IP地址(略)

除了网络拓扑中的端口IP地址,还有:

路由器 环回地址
AR1 10.0.1.1
AR2 10.0.2.2
AR3 10.0.3.3
  • STEP3:配置OSPF

OSPF宣告网段:network <目标网段> <反掩码>

# todo AR3:配置OSPF
[R3]ospf  # OSPF进程ID
[R3-ospf-1]a 0  # 进入区域
[R3-ospf-1-area-0.0.0.0]network 10.0.123.0 0.0.0.255  # 宣告直连网段
[R3-ospf-1-area-0.0.0.0]network 10.0.3.0 0.0.0.255  # 宣告换回网段
# [R3-ospf-1]silent-interface LoopBack 0  # 如果需要,启用抑制端口
# todo AR1:配置OSPF
[R1]ospf
[R1-ospf-1]a 0
[R1-ospf-1-area-0.0.0.0]network 10.0.123.0 0.0.0.255
······(可以看到:Down->Init->2Way->ExStart->Exchange->Loading)
[R1-ospf-1-area-0.0.0.0]network 10.0.1.0 0.0.0.255
# todo AR2:配置OSPF
[R2]ospf
[R2-ospf-1]a 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 10.0.123.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 10.0.2.0 0.0.0.255

问:直连路由还有必要宣告吗?
答:如果不宣告,那么该接口无法收发OSPF报文。

network功能:1.宣告网段,2.接口收发OSPF报文

如果路由器端口连接了终端PC,建议配置好network后,再把接口功能过滤掉,即抑制端口silent-interface:只宣告网段,但不能收发OSPF报文。(没必要和PC收发OSPF报文)

  • STEP4:查看DR和BDR
[AR]dis ospf peer  # 查看OSPF邻居关系

在这里,因为我们路由器配置顺序为:AR3->AR1->AR2
因为没开启抢占特性,所以AR3为DR,AR1为BDR,AR2为DROther

每隔10s发送一个Hello报文,40s收不到Hello,断开邻居关系(死亡间隔40s)

实验四:OSPF认证

  • STEP1:网络拓扑(略:同上)
  • STEP2:配置认证
# todo AR1、AR2、AR3均配置认证
[R1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher huawei
# md5方式加密,Ket id为1,Key id保持一致!

hmac-md5:HMAC-MD5 签名算法
simple:防君子不妨小人,认证之后正常收发OSPF包,但是抓包能直接看到密码

修改**卡信息:网络验证:只能改服务器数据;本地验证:想咋改咋改(不会…)

技巧:每个文件都会有一个自己的指纹信息,生成一个32位/64位的哈希值,且该值唯一,扫描文件的MD5值,只要发现有与违法视频/文件MD5值匹配的,就认为扫描的文件违法。所以,如果想在百度网盘上传一个不健康的小视频/软件,那么可以把一个非空的.txt文件和想要上传的文件一起压缩,再上传即可。

饱汉不知饿汉饥😏

实验五:多区域OSPF

  • STEP1:网络拓扑
  • STEP2:配置多区域OSPF
# todo AR3:配置多区域OSPF
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 10.0.34.3 24  # 接口添加IP地址

[R3]ospf 1
[R3-ospf-1]a 1  # 进入区域1
[R3-ospf-1-area-0.0.0.1]network 10.0.34.0 0.0.0.255  # 宣告区域
路由器 IP地址 环回地址
AR4 10.0.34.4 10.0.4.4
# todo AR4:配置多区域OSPF
[AR4]int g0/0/0
[AR4-GigabitEthernet0/0/0]ip add 10.0.34.4 24  # 接口配置地址
[AR4-GigabitEthernet0/0/0]int loo 0
[AR4-LoopBack0]ip add 10.0.4.4 24  # 环回口网络类型:点到点,掩码按32宣告

[R4]ospf 1
[R4-ospf-1]a 1  # 进入区域1
[R4-ospf-1-area-0.0.0.1]network 10.0.34.0 0.0.0.255  # 宣告网段

[R4-ospf-1-area-0.0.0.1]int loo 0
[AR4-LoopBack0]ospf enable 1 a 1
# 宣告环回口网段的一种方式,和在OSPF area里面用network效果一样
[AR4-ospf-1-area-0.0.0.1]network 10.0.34.4 0.0.0.0
# 宣告端口,虽然反掩码是32,但是还是按端口反掩码进行正常宣告

(理论上不允许!)物理上非骨干区域连接非骨干区域,可以想办法把两个区域变成一个区域:Virtual Link。

  • 练习题:OSPF故障排查

文章作者: hhhhmdzz
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hhhhmdzz !
评论
  目录