Summary of Computer Network Experiment
计算机网络实验总结
写在前面:
- 网络实验室PC机的虚拟网卡可能会产生不良影响,建议开机后首先将所有虚拟网卡禁用。
- 网络实验室的路由器和交换机的出厂配置可能会产生不良影响,例如路由器出厂设置中默认配置了interface vlan 1(ip address 192.168.0.1 ),建议首先将这个IP地址undo,以免这个地址自动参与router id 选举,影响ospf或bgp协议的正常工作
- 多使用“?”命令获取帮助
实验一 网络实验入门
清空/重启
实验之前先清空配置,并重启路由器/交换机
1 | <H3C>reset saved-configuration #删除保存配置,选择yes |
视图
1 | #上面的代码左侧<H3C>表示这是用户视图 |
网络配置基本命令
1 | <H3C>dis cu #完整命令为display current-configuration,显示系统当前配置 |
路由器基本配置
1 | [H3C]sysname R1 #重命名为R1 |
交换机基本配置
1 | [H3C]interface ethernet 1/0/1 #进入指定以太网端口 |
基于地址转换的组网实验
Network Address Translation/NAT
,是地址转换技术,它可以将多个内部专用IP地址映射为少数几个甚至一个公网IP地址,用来减少公网IP地址的使用。
当请求报文转发到出口NAT路由器时,NAT路由器首先会查看公网地址池,然后在地址转换表中插入一条记录,分别是转换前的源地址、源端口号和转换后的源地址、源端口号。NAT路由器会按照转换后的地址和端口号重新封装报文,目的地址和端口不变。
当应答报文转发到出口NAT路由器时,同样将目的地址和端口转换成内网本地地址和端口,重新封装后转发。
注意这里0/1端口要配置ip地址。
1 | #配置外出规则(access control list, acl),编号2001 |
实验二 数据链路层实验
端口聚合
1 | [H3C]display mac-address #查看交换机的mac地址表 |
创建/删除VLAN,向VLAN中添加端口
1 | [H3C]vlan 2 #创建vlan 2,2可以替换为其他vlan id,执行后会变为[h3c-vlan2] |
指定端口类型
1 | [H3C-Ethernet 1/0/1]port link-type access #设置端口为access端口 |
根据端口对VLAN数据帧的处理方式,可以将交换机的端口分为Access、Trunk和Hybrid类(默认情况为Access类):
- Access端口一般是指那些连接不支持VLAN技术的终端设备的端口,这些端口接收到的数据帧都不包含VLAN标签,而向外发送数据帧时,必须保证数据帧中也不包含VLAN标签。一般接主机或路由器。
- Trunk端口一般是指那些连接支持VLAN技术的网络设备(如交换机)的端口,这些端口接收到的数据帧一般都包含 VLAN标签(数据帧VLAN ID和端口默认VLAN ID相同除外),而向外发送数据帧时,必须保证接收端能够区分不同VLAN的数据帧,故常常需要添加VLAN标签(数据帧VLAN ID和端口默认VLAN ID相同除外)。一般用于交换机之间的连接。
- Hybrid 端口属于 Access和Trunk的混合模式,工作在 Hybrid 模式下的端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。
Hybrid端口和Trunk端口的不同之处在于Hybrid端口允许多个VLAN的报文不带标签,而Trunk端口只允许默认VLAN的报文不带标签。
指定VLAN端口可通过的数据帧
1 | [H3C-Ethernet 1/0/1]port trunk permit vlan 2 to 3 #允许通过2和3的数据帧,ensp中将perimit换为allow-pass |
将E1/0/13端口设置为trunk,并允许vlan 2 3的数据帧通过。这样的操作使得不同交换机中相同vlan的主机可以相互联通,原因是trunk端口中非默认端口允许携带tag,并设置了E1/0/13时允许vlan2和vlan3的数据通过。
1 | [H3C-Ethernet 1/0/13]undo port link-type |
此时PCA能ping通PCC,但是PCB不能ping通PCD,原因是s1和s2中1/0/13端口均设置了vlan2为tagged,vlan3为untagged。因此来自vlan2的报文进入s2时会携带自己的vlan tag,因此能顺利转发给有相同vlan id的端口,而vlan 3则不行。
广域网数据链路层协议
配置PPP协议
1 | [R1]interface Serial 1/0 |
配置PAP
1 | #路由器[R1]的配置 |
根据调试信息画出流程图:
解释PAP:
PAP(Password AuthenticationProtocol,密码认证协议)是一种很简单的认证协议,分两步进行,验证过程从客户端发起,密码明文传输。PAP协议仅在连接建立阶段进行,在数据传输阶段不进行PAP 认证。
- A与B之间通过PPP互联,,A设置为验证方,B为被验证方,当B拨通A后,B会将用户名(一般设置为路由器的名字)与口令一起发给A
- 验证方A根据本端的用户数据库(或Radius服务器)查看是否有此用户,口令是否正确。如正确则会给对端发送ACK报文,通告对端已被允许进入下一阶段协商;否则发送NAK报文,通告对端验证失败
通常,验证失败并不会直接将链路关闭。只有当验证失败的次数达到一定值时,才会关闭链路,以防止因误传、网络干扰等造成不必要的LCP重新协商过程。
PAP的特点是在网络上以明文的方式传递用户名及口令,如在传输过程中被截获,便有可能对网络安全造成极大的威胁。因此,它适用于对网络安全要求相对较低的环境。
实验三 网络层实验
ARP分析
ARP协议,即地址解析协议,用于将IP地址解析成硬件地址。在每台使用ARP的主机中,都保留了一个专用的内存区(称为缓存),存放最近的IP地址与硬件地址的对应关系。一旦收到ARP应答,主机将获得的地址和硬件地址的对应关系存到缓存中。当发送报文时,首先去缓存中查找相应的项,如果找到相应项,便将报文直接发送出去;如果找不到,再利用ARP进行解析。ARP缓存信息在一定时间内有效,过期不更新就会被删除。
同一网段的主机进行通信时,如果ARP缓存中找不到硬件地址,则源主机直接发送ARP请求报文,目的主机对此请求做应答即可。
不同网段的主机进行通信时,源主机会将arp报文发送给它的默认网关(这也是两个组网实验得到的arp报文中target IP address的区别),默认网关再根据报文的目的IP地址进行转发。
配置VLAN的IP地址
不是给某个端口配!是给这个vlan配置ip地址!请注意区别,要使用inter vlan id
的命令
1 | [s1]vlan 2 |
ICMP分析
ICMP报文可以分为ICMP差错报文和ICMP询问报文两种。具体类型和对应的值如下表。
IP分析
VLAN间通信
好好弄清楚vlan之间怎么通信的,注意端口性质。
OSPF实验
OSPF是开放路径最短优先(open shortest path first)的缩写,核心思想是每一台路由器将其周边的链路状态(接口的直连网段,相连的路由器等信息)描述出来,发送给相邻的路由器。经过一段时间的链路状态信息交互,每台路由器都保存了一个链路状态数据库,该数据库是针对整个网络完整的链路状态描述。
OSPF协议是一种内部网关协议,其应用范围为一个自治系统内部。
OSPF基本配置
OSPF相关命令
1 | reset ospf all process(用户视图) #重新启动OSPF进程 |
配置Router ID
1 | <R1>system-view |
配置回环地址
Loopback是一种纯软件性质的虚拟接口,Loopback接口一旦被创建,将一直保持Up状态,直到被删除。
1 | [R1]interface loopback 1 |
启动OSPF
1 | [R1]ospf #启动OSPF路由进程 |
显示调试信息
1 | <R1>debugging ospf event |
引入静态路由
1 | [R1]ip route-static 4.4.4.0 255.255.255.0 192.168.1.1 |
配置cost
1 | #vlan端口: |
DR和BDR的选举过程
DR和BDR一旦选举完成,除非他们发生故障,否则不会更换,即使后来的路由器priority更高。这样可以避免DR的频繁更迭,以及由此带来的路由器之间邻接关系重新建立和链路状态信息重新同步等问题。有利于网络的稳定和减少对网络带宽的占用。
区域划分以及LSA的种类
区域内部仍然使用第一类和第二类LSA描述区域内部的网络,并仅限于内部传播。但是区域边界路由器ABR收到这些信息之后,会据此对该区域内的路由生成一种新的第三类LSA,并将其传播到相邻的区域。第三类LSA主要对区域内的路由信息进行描述,比如网段、子网掩码、度量值等。和第一类第二类相比大大减少了路由信息描述的数据量。
注意ABR要配置两个区域,其他命令无变化。
此处全网互通需要对R1和S1配置静态路由,命令在上面。
路由器的类型
第一类LSA(Router LSA)的分析
显示第一类LSA信息的命令:
1 | [R1]display ospf lsdb router |
type字段:transnet表示为广播或NBMA类型
第二类LSA(Network LSA)的分析
显示第二类LSA信息的命令:
1 | [R1]display ospf lsdb network |
第三类LSA(Summary Network LSA)的分析
显示第三类LSA信息的命令:
1 | [R1]display ospf lsdb summary |
第四类(ASBR-Summary-LSA)和第五类(AS-External-LSA)分析
显示第四类LSA信息的命令:
1 | [R1]display ospf lsdb asbr |
显示第五类LSA信息的命令:
1 | [R1]display ospf lsdb ase |
OSPF协议路由的计算过程
注意TranseNet,StubNet,P-2-P的区别
请注意下一跳的内容是具体地址,路径填写路由器号。如填表,最左侧一栏要覆盖所有路由器交换机(本机除外)以及TransNet和StubNet,写清楚具体网络地址。
用traceroute命令可以验证最短路径树。
1 | [R1]tarcert 10.1.1.2 |
设计性实验1
如何使全网互通?这里有三种方式:
将PC所在网段引入OSPF路由:
1
2
3
4
5
6[s1]ospf
[s1-ospf-1]area 1
[s1-ospf-1-area-0.0.0.1]import-route direct
[s2]ospf
[s2-ospf-1]area 2
[s2-ospf-1-area-0.0.0.2]import-route direct在ASBR所在区域的ABR上配置到ASE的静态路由并引入OSPF:
1
2
3
4
5
6[r1]ip route-static 192.168.5.0 255.255.255.2 192.168.3.2
[r1]ospf
[r1-ospf-1]import-route static
[r2]ip route-static 192.168.6.0 255.255.255.2 192.168.4.2
[r2]ospf
[r2]import-route static在每台交换机/路由器上配置到PC1/PC2的静态路由,命令类似。
设计性实验2
使全网互通的方式:
要同时提供给ospf从R1或R2到211.100.2.0网段的路由
首先将R1注入一条202.112.2.2的静态路由,并通过静态路由和直连引入ospf
1
2
3
4[R1]ip route-static 211.100.2.0 255.255.255.0 202.112.1.2
[R1]ospf
[R1-ospf-1]import-route static
[R1-ospf-1]import-route directR2也需要引入一条到211.100.2.1的静态路由:
1
2
3
4[R2]ip route-static 211.100.2.0 255.255.255.0 202.112.2.2
[R2]ospf
[R2-ospf-1]import-route static
[R2-ospf-1]import-route direct对于回环地址,设置返回地址:
1
2[S2]ip route-static 0.0.0.0 0.0.0.0 202.112.1.2 pre 50
[S2]ip route-static 0.0.0.0 0.0.0.0 202.112.2.2 pre 60将两台PC通过直连引入ospf:
1
[S1]import-route direct
ospf动态计算路由,选择cost最小的path,网络全连接时选择S1-R1-S2-loop1;R1-S1断开时,选择S1-R2-S2-loop1;R2-S2断开时,选择S1-R2-R1-S2-loop1
BGP实验
一种自治系统间的动态路由协议,它的基本功能是在 自治系统间自动交换无环路的路由信息,通过交换带有AS号序列属性的路径可达信息,来构造自治区域的拓扑图,从而消除路由环路并实施用户配置的路由策略。
BGP运行在一个特定的路由器上,系统初启时通过发送整个BGP路由表交换路由信息,之后为了更新路由表只交换更新报文(Update Message)。系统运行过程中通过接受和发送KEEP ALIVE报文来检测相互之间的连接是否正常。
通过BGP交换路由信息的两个路由器互为邻居。发送BGP报文的路由器成为BGP发言人(Speaker),与它交换路由信息的其他BGP发言人成为对等体(Peer),若干相关的对等体可以构成对等体组(Group)。
BGP的路由通告原则如下:
- 到达同一目的网络存在多条路径时,BCPSpeaker只选用最优的
- BGPSpeaker只把自己使用的路由通告给对等体
- BGPSpeaker从EBGP获得的路由会向它所有BCP对等体通告(包括EBGP和IBGP)
- BGPSpeaker从IBGP获得的路由不向它的IBGP对等体通告
- BGPSpeaker从IBGP获得的路由是否通告给它的EBCP对等体要根据IGP和BGP同步的情况来决定
- 连接一建立,BGPSpeaker将把自己所有BGP路由通告给新对等体
基本命令
1 | [R1]bgp 100 #启动BGP,自治系统号为100 |
查看信息
1 | #查看调试信息 |
路由聚合
1 | [r1]bgp 100 |
BGP的状态说明
BGP基本路由属性
BGP在向EBGP对等体通告一条路由时,要把自己的AS号加入到AS路径属性中,以记录此路由通过的AS区域信息。BGP不会接受AS路径属性中包含本AS号的路由,因为此路由已经被本自治系统处理过了,从而避免生成路由环路的可能。
引入直连路由和观察BGP路由表
1 | [S1-bgp]import-route direct |
BGP的路由策略
访问控制列表ACL
阻止AS100的5.0.0.0/8网段的路由传给AS200:
1 | [S2]acl number 2001 |
基于AS-Path的路由过滤
在S1上配置路由过滤,使得S1不通告AS200的路由,而只通告AS300内部的路由:
1 | [S1]ip as-path 1 deny \b200$ #设置拒绝来自AS200的路由 |
\b是AS号码之间的分隔符,
匹配本地路由, $匹配从AS200始发的路由
基于Route Policy的路由过滤
使S1不向外通告6.0.0.0/8的路由信息,并且向外通告的其他路由信息的cost值都为888
1 | [S1]acl number 2001 |
BGP设计性实验2
使S1不向R1通告AS300内部的路由信息:
1 | [S1]ip as-path-acl deny 1 \b300$ |
BGP设计性实验3
配置local-preference属性,实现S2到18.0.0.0/8的路由,优先选择S2->R2->R1;配置local pref,选大,默认100,出口 ;S1配10即可
1
2[S1]bgp 200
[S1-bgp]default local-preference 10配置Med属性,实现R1到19.0.0.0/8的路由选择R1->S1->S2;配置med,选小,默认0,入口;R2配10即可
1
2[R2]bgp 100
[R2-bgp]default med 10
TCP传输层实验
在Linux系统进行试验,配置没什么好说的,注重分析。使用linux虚拟机,请注意不要与主机的IP地址冲突,请禁用主机上相关的虚拟网卡。
- Title: Summary of Computer Network Experiment
- Author: Leostar
- Created at : 2024-05-16 17:54:20
- Updated at : 2024-08-01 15:23:04
- Link: https://leostarr.github.io/2024/05/16/10Summary of Computer Network Experiment/
- License: This work is licensed under CC BY-NC-SA 4.0.