ZY目录
HCIA所有内容:
1、七层参考模型及IP讲解
2、TCP三次握手讲解
3、TCP四次挥手讲解及抓包分析
4、DHCP协议讲解及抓包分析
5、静态综合实验讲解
7、静态路由讲解
8、RIP路由信息协议讲解
9、动态路由协议讲解
10、抓包进行分析RIP以及OSPF的包
11、动态路由OSPF配置综合实验讲解
12、Vlan虚拟局域网技术讲解
13、ACL访问控制列表讲解
14、NAT技术讲解
15、网络综合实验讲解
路由器
一、路由器的工作原理:
路由器会严格根据自己的本地路由表中的路由信息进行数据包的转发。
如果路由表中由相应的记录则无条件按照路表中的记录进行转发;
如果路由表没有信息,则之间丢弃。
二、交换机MAC地址表:
首先补充下交换机MAC地址表:
MAC(Media Access Control, 介质访问控制)地址是识别LAN(局域网)节点的标识。网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。
当然这里用实操来帮助理解:
(采用的是ensp华为模拟器,以及wireshark 4.0.5抓包工具)
1、搭建拓扑,这里用最简单的拓扑实现,其他原理一样:
实验材料:一个二层交换机以及两个PC端。
实验过程:
1、给PC1以及PC2手动配置IP:
PC1: IP:192.168.1.1 子网掩码:255.255.255.0
PC2: IP:192.168.1.2 子网掩码:255.255.255.0
2、打开所有设备,对交换机旁边接口E0/0/1进行抓包,然后主机1ping主机2:
PC>ping 192.168.1.2
Ping 192.168.1.2: 32 data bytes, Press Ctrl_C to break
From 192.168.1.2: bytes=32 seq=1 ttl=128 time=47 ms
From 192.168.1.2: bytes=32 seq=2 ttl=128 time=31 ms
From 192.168.1.2: bytes=32 seq=3 ttl=128 time=32 ms
From 192.168.1.2: bytes=32 seq=4 ttl=128 time=32 ms
From 192.168.1.2: bytes=32 seq=5 ttl=128 time=47 ms
--- 192.168.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 31/37/47 ms
好的,这里显示已经ping通,那我们打开抓包软件分析其抓包过程:
下面为wireshark抓包截图:
以上包含了三种不同类型的包:
STP、ARP、ICMP
先了解下STP包:
生成树协议(英语:Spanning Tree Protocol,STP),是一种工作在OSI网络模型中的第二层(数据链路层)的通信协议,基本应用是防止交换机冗余链路产生的环路.用于确保以太网中无环路的逻辑拓扑结构.从而避免了广播风暴,大量占用交换机的资源.
ARP包:
ARP是一种将ip转化成以ip对应的网卡的物理地址的一种协议,或者说 ARP协议是一种将ip地址转化成MAC地址的一种协议。它靠维持在内存中保存的一张表来使IP得以在网络上被目标机器应答。
当一台设备知道对方的IP,不知道对方的MAC时,进行ARP。
ARP列表: IP和MAC的对应关系表。
工作原理:
1.每个主机都会在自己的ARP缓存区建立一个ARP列表,用来表示IP和MAC的对应关系,在ensp中查询ARP列表,代码为
display arp
<Huawei>display arp
IP ADDRESS MAC ADDRESS EXPIRE(M) TYPE INTERFACE VPN-INSTANCE
VLAN
------------------------------------------------------------------------------
------------------------------------------------------------------------------
Total:0 Dynamic:0 Static:0 Interface:0
此时我们可以看到以上实验的交换机的ARP列表为空。
2. 当主机1要发送数据,首先看ARP列表有没有对方的MAC以及IP;
如果有,直接发送数据;
如果没有,向本网段所有主机发送ARP请求数据包(泛洪)。
数据包内容,一下是wireshark在本实验中抓取到的数据包:
我们可以看到里面包含了:request(请求包)
Sender MAC address:源MAC地址;
Sender IP address:源IP地址;
Target MAC address:目标MAC地址;
Target IP address:目标IP地址;
此时我们看到目标的MAC地址全F,这里主机发送ARP和用路由器进行环回来代替PC端的MAC地址发送是不一样的,主机PC发为全F,而路由器为全0;
接下来为我们看rely(响应包):
此时可以看到将信息补全后发给了原主机,目标和源IP以及MAC已经调换。
3.当这个网段内的所有主机收到了这个ARP泛洪数据包;
首先检查数据包中的IP是否是自己,如果不是,则记录下对方所发的IP与MAC,然后再丢弃;
如果是,将数据包中的源IP和源MAC写入自己的ARP列表中,如果存在,则覆盖,之后将自己的MAC写入ARP响应包中,告诉原主机自己就是他要找的MAC地址。
同时,也存在着反向ARP:知道MAC,不知道IP。
这下我们接着说MAC地址表,包含了以上数据包.
进行ARP洪泛之前,此时交换机拿到ARP的请求包,是主机1发来的。
那么交换机这个时候,记录下主机1的IP以及MAC,记录在MAC地址表中。
接着,主机2收到请求包并发现是自己,然后发回一个响应包来告诉主机1自己的MAC地址。
这个数据包也是要经过交换机的,此时交换机记录下主机2的MAC地址以及IP地址。
下面我将给大家展示本实验交换机记录下的MAC地址表:
代码:<Huawei>display mac-address
结果展示:
MAC address table of slot 0:
-------------------------------------------------------------------------------
MAC Address VLAN/ PEVLAN CEVLAN Port Type LSP/LSR-ID
VSI/SI MAC-Tunnel
-------------------------------------------------------------------------------
5489-9892-4433 1 - - Eth0/0/1 dynamic 0/-
5489-981c-0793 1 - - Eth0/0/2 dynamic 0/-
-------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 2
这里我们可以看到以上包含了主机1和2的IP地址以及MAC地址。
交换机有 MAC地址表,路由器为路由表
三、路由表:
路由表(routing table)或称路由择域信息库(RIB, Routing Information Base),是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和静态路由选择。
首先,它不能像交换机那样泛洪,作用是隔离广播域。
配置直连路由实现两个网段能互相通信。
直连路由的条件:
1.接口双up
2.接口必须配置ip地址
这里采用ensp展示;
下面是这个实验我所构建的拓扑图。
1、实验材料:
三个路由器以及交换机,PC端
2、实验过程:
1、配置IP地址,PC端用手动配置:
R1配置代码:
<Huawei>sys
[Huawei]sysname r1
[r1]interface g0/0/1
[r1-GigabitEthernet0/0/1]ip address 12.1.1.1 24
[r1-GigabitEthernet0/0/1]int g0/0/0
[r1-GigabitEthernet0/0/0]ip address 192.168.1.1 24
[r1-GigabitEthernet0/0/0]quit
[r1]
PC1配置截图:
R2配置代码:
<Huawei>sys
[Huawei]sysname r2
[r2]interface g0/0/0
[r2-GigabitEthernet0/0/0]ip address 12.1.1.2 24
[r2-GigabitEthernet0/0/0]int g0/0/1
[r2-GigabitEthernet0/0/1]ip address 23.1.1.1 24
[r2-GigabitEthernet0/0/1]int g0/0/2
[r2-GigabitEthernet0/0/2]ip address 192.168.2.1 24
[r2-GigabitEthernet0/0/2]quit
[r2]
PC2配置截图:
R3配置代码:
<Huawei>sys
[Huawei]sysname r3
[r3]interface g0/0/0
[r3-GigabitEthernet0/0/0]ip address 23.1.1.2 24
[r3-GigabitEthernet0/0/0]int g0/0/1
[r3-GigabitEthernet0/0/1]ip address 192.168.3.1 24
[r3-GigabitEthernet0/0/1]quit
[r3]
PC3配置截图:
2、配置静态路由:
举例:
配置静态路由表,由于是1.0网段想访问12.1.1.0/24网段,所以配置的是AR1路由器,
ip route-static后面跟的是要访问的网段,24指的是子网掩码,192.168.1.1指的是下一跳地址
[r1]ip route-static 12.1.1.0 24 192.168.1.1
因为是双向传输的,所以需要在AR2路由器也要添加1.0网段的路由条目
[r2]ip route-static 192.168.1.0 24 12.1.1.1
R1配置静态代码:
[r1]ip route-static 192.168.2.0 24 12.1.1.2
[r1]ip route-static 23.1.1.0 24 12.1.1.2
[r1]ip route-static 192.168.3.0 24 12.1.1.2
R1路由表:
[r1]display ip routing-table
这里也可以直接过滤静态路由:
[r1]display ip routing-table protocol static
Destination/Mask Proto Pre Cost Flags NextHop Interface
[r1]display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost Flags NextHop Interface
12.1.1.0/24 Direct 0 0 D 12.1.1.1 GigabitEthernet
0/0/1
12.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/1
12.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/1
23.1.1.0/24 Static 60 0 RD 12.1.1.2 GigabitEthernet
0/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
192.168.1.0/24 Direct 0 0 D 192.168.1.1 GigabitEthernet
0/0/0
192.168.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/0
192.168.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/0
192.168.2.0/24 Static 60 0 RD 12.1.1.2 GigabitEthernet
0/0/1
192.168.3.0/24 Static 60 0 RD 12.1.1.2 GigabitEthernet
0/0/1
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
Destination/Mask: 目标网段和掩码
Proto: 协议的意思,可以表示路由条目的类型
Pre: 默认优先级(数字高的优先级小),当两条路由条目的目标网段相同时,我们仅加载优先级较高的路由条目到路由表中。优先级的取值范围 0-255,数值越大优先级越低,华为设备静态路由优先级默认60,直连路由的优先级0。
Flags: 递归查找,当你添加路由表信息是缺省了路由器的入接口,它会自动查找自己的路由表给你补上,用了递归查找就是RD,没用就是D
NextHop : 下一跳(路由器一次转发称为下一跳)数据到达目标网段下一个经过的路由器的入接口的ip地址
Interface: 流量流出的接口
R2配置静态代码:
[r2]ip route-static 192.168.1.0 24 12.1.1.1
[r2]ip route-static 192.168.3.0 24 23.1.1.2
R2路由表:
[r2]display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 15 Routes : 15
Destination/Mask Proto Pre Cost Flags NextHop Interface
12.1.1.0/24 Direct 0 0 D 12.1.1.2 GigabitEthernet
0/0/0
12.1.1.2/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/0
12.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/0
23.1.1.0/24 Direct 0 0 D 23.1.1.1 GigabitEthernet
0/0/1
23.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/1
23.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/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
192.168.1.0/24 Static 60 0 RD 12.1.1.1 GigabitEthernet
0/0/0
192.168.2.0/24 Direct 0 0 D 192.168.2.1 GigabitEthernet
0/0/2
192.168.2.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/2
192.168.2.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/2
192.168.3.0/24 Static 60 0 RD 23.1.1.2 GigabitEthernet
0/0/1
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
R3配置静态代码:
[r3]ip route-static 12.1.1.0 24 23.1.1.1
[r3]ip route-static 192.168.2.0 24 23.1.1.1
[r3]ip route-static 192.168.1.0 24 23.1.1.1
R3路由表:
[r3]display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost Flags NextHop Interface
12.1.1.0/24 Static 60 0 RD 23.1.1.1 GigabitEthernet
0/0/0
23.1.1.0/24 Direct 0 0 D 23.1.1.2 GigabitEthernet
0/0/0
23.1.1.2/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/0
23.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/0
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
192.168.1.0/24 Static 60 0 RD 23.1.1.1 GigabitEthernet
0/0/0
192.168.2.0/24 Static 60 0 RD 23.1.1.1 GigabitEthernet
0/0/0
192.168.3.0/24 Direct 0 0 D 192.168.3.1 GigabitEthernet
0/0/1
192.168.3.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/1
192.168.3.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/1
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
3、测试全网连通性:(这里我们均使用PC3进行ping)
实现的代码:
ping 192.168.1.2
ping 192.168.2.2
结果展示:
PC>ping 192.168.1.2
Ping 192.168.1.2: 32 data bytes, Press Ctrl_C to break
Request timeout!
Request timeout!
Request timeout!
From 192.168.1.2: bytes=32 seq=4 ttl=125 time=78 ms
From 192.168.1.2: bytes=32 seq=5 ttl=125 time=78 ms
--- 192.168.1.2 ping statistics ---
5 packet(s) transmitted
2 packet(s) received
60.00% packet loss
round-trip min/avg/max = 0/78/78 ms
PC>ping 192.168.2.2
Ping 192.168.2.2: 32 data bytes, Press Ctrl_C to break
Request timeout!
From 192.168.2.2: bytes=32 seq=2 ttl=126 time=94 ms
From 192.168.2.2: bytes=32 seq=3 ttl=126 time=47 ms
From 192.168.2.2: bytes=32 seq=4 ttl=126 time=94 ms
From 192.168.2.2: bytes=32 seq=5 ttl=126 time=78 ms
--- 192.168.2.2 ping statistics ---
5 packet(s) transmitted
4 packet(s) received
20.00% packet loss
round-trip min/avg/max = 0/78/94 ms
四、负载均衡
经过上面的几个试验,我们可以发现路由器有时候选择的路不止一条。
比如,我下面这两个拓扑图:
首先我们来看下第一个图,从R4到R8我们将有2条路可以走。
R4-R5-R6以及R4-R6-R7-R8
第二个图同理,R9到R14同样有两条路可以走。
R9-R10-R11-R14以及R9-R12-R13-R14
1、什么是负载均衡?
当路由器访问同一个目标,且具有条多开销相似的路径时,可以让设备将流量拆分后沿多条路径,同时传输,达到叠加带宽的效果。
2、什么是开销相同?
首先,了解开销的定义在网络中的
网络开销(Network Overhead)指的是在计算机网络中,因为通信协议、数据传输和网络拓扑结构等原因,使得通信传输所需要的额外开销,包括但不限于协议头部、错误检测和纠错、数据压缩和解压缩等等。这些额外的开销会占用网络资源,降低网络性能,增加网络延迟和带宽消耗。
五、环回接口
路由器配置的虚拟接口,一般用于虚拟实验,不受设备的限制,用来代表用户连接的接口。
使用[r1]interface LoopBack ?命令创建换回接口,?跟的是0-1023中的一个数字,所以我们最多创建1024个接口。
[r1-LoopBack0]ip address 192.168.1.1 24
创建地址
创建环回接口之后,如果直接使用ping且创建了多个回环接口,那么ping就得自己去查路由表或者通过抓包,才能看到源IP地址究竟是哪个。
因此,我们使用ping -a 指定发送数据包的源ip
ping -a 192.168.1.1 12.1.1.2
六、手工汇总
在进行配置路由表时,应进行合理的手工汇总,使得路由器上面的路由条目数量减少,提升对应路由器的传输性能,对于传输开销相同的路由地址,应进行合理的负载均衡,增加信息传输速率。
上篇静态综合实验就有充分用到,当然,我仅将路由器的环回接口进行了划分以及汇总,其链路地址同样可以进行汇总以及划分。这样可以再次优化网络,减少路由条目。
七、路由黑洞
在子网汇总时,其汇总网段可能包含网络中所实际不存在的网段,可能使流量有去无回,浪费了链路资源。合理的子网划分和汇总可以减少路由黑洞的产生。
划分网段和汇总网段不合理就会路由黑洞
比如:
汇总的192.168.1.0/24要分配4个网段,那么就得往后面借一位。
192.168.1.64/25
192.168.1.128/25
192.168.1.0/25
192.168.1.192/25
其中1.0网段和1.192网段是不存在,所以就会产生黑洞。
八、缺省路由
缺省路由(Default Route)是路由表中一种特殊的静态路由,当网络中报文的路由无法匹配到当前路由表中的路由记录时,缺省路由用来指示路由器或网络主机将该报文发往指定的位置。
缺省路由在路由表中目的地址为0.0.0.0、子网掩码为0.0.0.0,显示为Gateway of last resort is (IP Address) to network 0.0.0.0,如果数据报文的目的地址无法与路由表中的路由记录相匹配,则路由器或网络主机中将使用缺省路由转发该报文。
一条不限定目标的路由条目。
若查询本地所有路由均未匹配,则就会去找缺省路由。缺省路由在我们生活中一般都是指向运营商的。
缺省路由代码:
ip route-Static 0.0.0.0 0 12.1.1.2
也就是静态,加0.0.0.0子网掩码为0,后面加上路由器的下一跳地址。
需要注意的是:路由黑洞与缺省路由相遇,百分之百回环。
这里我们可以理解为,既然有缺省路由,那么这个路由器已经到保底的路了,规定它前往之后的IP地址,而这个IP地址又是不存在的,也就是我们所说的路由黑洞,那么就会导致直接出现回环现象,在这时我们在网络中进行ping的话是有一定几率,数据包不知道怎么走,那么就会前往缺省路由所订的IP,从而出现回环。
其实可以理解为保底路由,就是到了哪个路由器实在不知道怎么走,它的子网掩码为0嘛,子网掩码越长越优先。所以说路由表有缺省路由,而不知道下一跳怎么跳,那么就走空接口。
九、空接口路由
缺省路由和路由黑洞相遇将100回出环,为了解决回环问题所以有了空接口路由。
空接口就是NULL0口,如果NULL0口作为出接口,则将所有匹配上该路由的数据包直接丢弃
配置方法,我们可以将之理解为,到哪个所不存在的IP进行丢弃,防止出现回环。
在黑洞路由器上配置一条目标网段为汇总网段指向空接口的路由。
[r1]ip route-static 192.168.1.0 27 NULL 0
路由表的匹配原则:
最长匹配原则(掩码最长)
十、浮动静态路由
静态路由是指由用户或网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。
静态路由信息在缺省情况下是私有的,不会传递给其他的路由器。当然,网管员也可以通过对路由器进行设置使之成为共享的。静态路由一般适用于比较简单的网络环境,在这样的环境中,网络管理员易于清楚地了解网络的拓扑结构,便于设置正确的路由信息。
在一个支持DDR(Dial-on-Demand Routing)的网络中,拨号链路只在需要时才拨通,因此不能为动态路由信息表提供路由信息的变更情况。在这种情况下,网络也适合使用浮动静态路由。
原理: 通过修改默认优先级,实现静态路由备份效果
修改路由表的优先级:
[r1]ip route-static 192.168.1.0 27 23.1.1.2 preference 61
注意:优先级后面跟的数字越大,优先级越低
代码补充:
[r2]display ip routing-table protocol static
过滤静态路由
[r1-GigabitEthernet0/0/0]shutdown
关闭接口
[r1-GigabitEthernet0/0/0]undo shutdown
恢复接口