Featured image of post BUAA CN Week8 期末模拟

BUAA CN Week8 期末模拟

复习指南

配置设置

开局先连接好PC串口,连接各设备并执行重启操作。

reset saved-con Y

reboot N Y

趁这个等待时间进行组网和PC配置。

QUESTION:

S1 S2 R1 R2 R3 R4六台设备却对应四台电脑

重启进程可以后台并行吗?

ANSWER:

机房的蓝色电源按钮在关闭时都会清空配置的

一般不用特意清空

可以ctrl + G简单确认一下

正确组网

对于套件二的同学,相较以往还需要多用到R3、R4两台设备,因此四台电脑的分工需要自己考虑好。

一般主控1-2台电脑(PCB\PCC)。一定要注意留一台干净电脑用来上传配置。

一定要注意用能卡紧的线,出现问题第一步一定是检查线路是否接触不良。

考前的所有线缆都更新了,非常好用!

对于非PC端报文的捕获,可能需要用到集线器,借助无条件转发给其他PC实现中间报文的截获。

PC IP配置

首先禁用PC本地连接外的其他虚拟网卡。

然后迅速完成IP地址、掩码、网关的配置。

基本操作

重启后必做

在重启S后立刻执行

interface Ten 1/0/25

shutdown

interface Ten 1/0/26

shutdown

interface Ten 1/0/27

shutdown

interface Ten 1/0/28

shutdown


在重启R后立刻执行

undo interface vlan 1


首先sys 然后sysname

名字在单电脑控制多设备的时候十分关键。

交换机基操

vlan x

int vlan x

ip addr

int GE1/0/1

port access vlan x

还有一种写法:

vlan x

port GE1/0/1 [to GE 1/0/2]

int vlan x

ip addr

路由器基操

注意R3 R4虽然上面贴着E 但实际上还是G

int G0/1

ip addr

int Serial0/0

ip addr

int Loopback1

ip addr

OSPF

配置

ospf

area 0

network + 该设备的引入OSPF的ip addr + 掩码反码

题目往往会限制OSPF的范围,注意到底是哪些端口

要观察到OSPF的状态一般应该变为FULL


重启

用户态下 reset ospf process Y


调试指令

display ospf lsdb

display ospf peer

BGP

基本配置

bgp xxx

peer + 邻居 ip addr + as-number + yyy

注意OSPF可以主动hello建立peer关系,无需手动

address-family ipv4 unicast

peer + peer过的邻居的ip + enable

peer + IBGP邻居的ip + next-hop-local

这一句是额外的句子,不能用来替代peer XXXX enable

network + 要传给对方AS的路由 + mask(不是反码)

network可以细粒度调控

一般考试只有PC和loopback需要被network

重启

用户态 reset bgp all Y

路由聚合

bgp、address-family后

aggregate 聚合IP 聚合mask [detail-suppressed]

detail-suppressed保证BGP只传递聚合路由

ping 通全网

其实也就是同步问题,关键在于纯IGP路由器。

为其配好其他AS的静态路由:

ip route-static + 目标IP + mask + 下一跳IP

路由过滤

基于ACL

配置ACL路由策略,阻止5.0.0.0/8网段的路由传递给AS200

acl basic 2000

rule 0 deny source 5.0.0.0 0.255.255.255

rule 1 permit source 0.0.0.0 255.255.255.255


进入bgp视图,address-family ipv4 unicast之后:

peer AS200的邻居IP filter-policy 2000 export //配置基于ACL的路由过滤

这一句是额外的句子,不能用来替代peer XXXX enable

若题目变为阻止5.0.0.0/8网段的路由传递,则需要对所有peer都进行这个命令。

基于AS-PATH

不通告来自AS200的路由,而只通告自己所在AS内部产生的路由。

ip as-path-acl 1 deny _200$

ip as-path-acl 1 permit ^$

_是AS号码之间的分割符。 ^$匹配本地路由

进入bgp视图,address-family ipv4 unicast:

所有peer进行

peer xxx as-path-acl 1 export

基于 route policy

配置路由策略,使S1不向外通告6.0.0.0/8的路由信息,并且向外通告的路由信息的cost都为888。

关于路由本身的筛选直接用ACL:

acl basic 2001

rule 1 deny source 6.0.0.0 0.255.255.255

rule 2 permit source any

再配route-policy:

结构如下:

route-policy <名称> {permit|deny} node <节点号>

if-match <条件> # 条件判断:如果路由符合这个条件…

apply <动作> # …就执行这个动作…

route-policy xxx permit node 10

只有所有 if-match 均为 permit,该route-policy才返回permit

if-match acl 2001 # 这里利用ACL作为条件,得到deny/permit

apply cost 888 # 满足条件的 med 设置为 888, 这里的cost是bgp cost

依旧bgp,address-family,

peer 所有peer route-policy xxx export

调试指令

display bgp peer ipv4 unicast

display current-configuration configuration bgp

display bgp routing-table ipv4 unicast

NAT

四部分操作。

定义 ACL

ACL是啥? Access Control List, 说白了就只是个规则的集合。

acl basic 2000

rule permit source + 内网ip + 内网mask反码

rule deny source any # 拒绝其他

定义 NAT 地址池

nat address-group 1

address 外网ip1 外网ip2 # 地址池范围,NAT会在这里面选

启用 NAT并绑定 ACL 和地址池

interface GE xx # interface要转变为外网IP的接口

nat outbound 2000 address-group 1 # 绑定 ACL 和 group

配置缺省静态路由

ip route-static 0.0.0.0 0.0.0.0 外网网关

这一步很关键。你是学不到外网的任何东西的。

TCP

TCP实验需要在vmware的linux虚拟机内完成实验。

基本流程

一定需要记得禁用虚拟网卡。

首先是右上方的网络配置,断开当前网络,并选择对应的sender/receiver

虚拟机上已有的三个网络均配置完毕,可直接使用

然后启动wireshark,选择Eth0,筛选tcp

  1. 发送端双击桌面init.sh

  2. 接收方双击桌面TCPTest.sh并开启监听

  3. 发送方双击桌面TCPTest.sh并完成数据配置,发送文件

TCPTest配置

端口转发速率控制

直接interface 接口

qos lr outbound cir xxx (单位为Kbps)

接收端配置

休眠时间与计数器阈值一般配置为0。

如需对零窗口通告进行分析,可配置:

休眠时间 = 5000, 计数器阈值 = 10。

每收到 计数器阈值 次数据,触发长达 休眠时间 毫秒的休眠。

文件上传

/root/TCPLog目录下有tcpsndwnddata.txt与tcprtodata.txt,分别给出窗口大小和RTO数据,可帮助TCP流程分析。

wireshark报文也可及时截断并保存。

上述文件均可拖出虚拟机到桌面,并在windows系统上根据考试需要完成上传。

高级配置

备选路由与优选路由

ospf

直接interface 接口

为接口设置:

ospf cost xxx

高优先级cost小,备选路由cost高即可

同一条链路两端点的cost可不同,表达不同方向

bgp

可以通过route policy细调

但这里也只讲直接配置的:

bgp、address-family后

default local-preference xxx

lp越大越优先选择

bgp、address-family后

default med xxx

med越小越优先选择

需要注意lp作用于IBGP,MED作用于EBGP

其实严格意义不是这样,但是便于理解就这样说了

优先级是lp>as-path>med

但是在某些场景下会赋相同的默认值从而使其无效


用例在bgp设计实验3

R1-S1-S2-R2-R1这样的一张网

R1在单独的AS

需要S2-R2-R1且R1-S1-S2

针对S2-R2-R1

R2和S1属于IBGP竞争,调节lp

针对R1-S1-S2

S1和R2属于EBGP竞争,调节med

验证方法

在所有机器上开启:

ip unr en

ip ttl en

然后tracert证明优选,断开优选证明备选。

路由引入

一般常见的是对ospf的其中一员配置静态路由,

然后进入他的ospf,

import-route static

就可以把这个静态路由借助OSPF传递。

例如:

example

本题便可以给R1配置到达192.168.5.0网段的静态路由,并引入OSPF,

就可以让S1,R2直接学到192.168.5.0网段,无需专门配置静态路由。

如果题干明确说了使用静态路由实现全网互通,就必须每个都专门配,不能利用路由引入。

此外BGP也可以import-route,慎用,还是一点点network比较安全。

状态转移图

建议将指令和转移图全部会背。

LCP协商过程

initial———LCP Open Event——–starting

starting——–LCP Lower Up Event———reqsent

reqsent———LCP RCR+ Event———acksent (RCR+: Receive Config Good Request)

acksent———LCP RCA——— opened (RCA: Receive Config Ack Event)


作用于两个Router之间。

为两台设备相连的Serial口配置:link-protocol ppp 并刷新配置:shutdown后undo shutdown

进入R1用户态:

debugging ppp all

terminal debugging

shutdown R2的无关Serial口

重启R2的相关Serial口:shutdown后undo shutdown

IPCP协商过程

和LCP基本一致

initial———-IPCP Open Event———starting

starting———IPCP Lower Up Event——–reqsent

reqsent——–IPCP RCR+ Event——–acksent (RCR+: Receive Config Good Request)

acksent——–IPCP RCA———- opened (RCA: Receive Config Ack Event)


操作也和LCP一样,或者说debugging ppp all的时候,

LCP协商过程完成后,若有验证过程则需经过PAP/CHAP的验证过程,之后便进入IPCP的协商过程。

PAP验证过程

initial——–PAP Server Lower Up Event——–ServerListen

ServerListen——–PAP Receive Request Event——–WaitAAA

WaitAAA——–PAP AAA Result Event——–ServerSuccess


R1配置:

local-user RTB class network

service-type ppp

password simple aaa

interface 对应串口

ppp authentication-mode pap

R2配置:

interface 对应串口

ppp pap local-user RTB password simple aaa

进入R1用户态:

debugging ppp pap all

terminal debugging

重启R1的相关Serial口:shutdown后undo shutdown

CHAP验证过程

initial——–CHAP Server Lower Up Event———-SendChallenge

SendChallenge——–CHAP Receive Response Event———WaitingAAA

WaitingAAA———CHAP AAA Result Event———Server Success


R1配置:

local-user RTB class network

service-type ppp

password simple aaa

interface 对应串口

下面两句和PAP不同

ppp authentication-mode chap

ppp chap user RTA

R2配置:

local-user RTA class network

service-type ppp

password simple aaa

interface 对应串口

ppp chap user RTB

ppp chap password simple aaa

重启R1的相关Serial口:shutdown后undo shutdown

进入R1用户态:

debugging ppp chap all

terminal debugging

重启R1的相关Serial口:shutdown后undo shutdown

OSPF邻居状态

DOWN->INIT->2-WAY->EXSTART->EXCHANGE->LOADING->FULL


进入R1用户态:

debugging ospf event

terminal debugging

断开连线再连接即可观察到。

前面的实验由于是serial之间,无法拔线,所以只能shutdown了

BGP协议状态

IDLE——–ConnectRetry_Timer_Expires event、Manual start event——–CONNECT

CONNECT———TCP_CR_Acked event———OPENSENT

OPENSENT———ReceiveOpenMessage Event———OPENCONFIRM

OPENCONFIRM———ReceiveKeepAliveMsg event———-ESTABLISHED

我当时实验没有观察到ACTIVE,完整图表见下图。

完整状态图


进入R1用户态:

debugging bgp event

terminal debugging

reset bgp all 即可观察到。

协议分析

理论相关知识在博客中或理论课已有讲述,在此仅做回顾。

ARP

目的是根据下一跳的IP地址找到其MAC地址。

有ARP Cache。

ARP Request是广播,对方匹配后单播Reply回来。

ICMP

主要是ping和tracert(windows)。

ICMP报文种类有很多。

tracert(windows)的工作机理是发ttl逐步递增的ping。

使用的是 Echo Request(类型8)Echo Reply(类型0)

OSPF

五类报文。Hello,DD,LSR,LSU,LSAck。

DD主从关系协商过程的意义。

详见: Week3-OSPF.

LSU里的LSA有五种。

详见: Week3-OSPF.

注意五类LSA的范围。

BGP

network注入的意义(把本地路由表中已经存在的某条路由注入到 BGP 表中,并对外发布)。

ping -a的意义(可检测 Loopback 能不能连通对侧 Loopback)。

Notification与Update报文。

黑洞问题。(路由聚合)

ORIGIN属性。

ORIGIN 表示这条 BGP 路由最早是怎么进入 BGP 的。

i IGP

e EGP

? incomplete

用 network 命令注入通常是 i

import-route XXX 注入通常是 ?

PATH属性。

PATH 记录了经过的AS号, 越靠前越近。

有两个重要作用:防环、选路。

防环规则:如果一台 BGP 路由器收到的路由里,AS_PATH 包含自己的 AS 号,就丢弃。

选路规则:AS_PATH越短越好。(当然选路还收到lp,med影响)

next-hop属性。

next-hop 表示:去往某个 BGP 路由时,下一跳应该交给谁。

这是 BGP 里非常容易出问题的属性。

eBGP 和 iBGP 行为不一样:

  • eBGP 传路由时,默认会把 next-hop 改成自己

  • iBGP 传路由时,默认不改 next-hop,还用接收来的原路由的next-hop。

所以我们往往对ibgp手动配next-hop-local,把下一跳改成自己。

TCP

相较于UDP的优缺点(实时性与正确性的考量)。

三次握手与四次挥手(SYN,FIN)。

确认号。

TCP、UDP、IP头部长度。(20B、8B、20B,结合以太网MTU=1500)

零窗口探测报文的意义与时间规律(翻倍)。

SRTT的计算(学习率)。

RTO的变化规律(翻倍)。

慢启动(一个RTT翻倍)、拥塞避免(一个RTT加1)、快恢复快重传(收到三个重复ACK,ssthresh减半)。

tcpsndwnddata的cwnd窗口是以segment为单位,应当乘上1460才是字节单位。

注意tcpsndwnddata里是以报文数为记录单位而不是时间,应当分析出来慢启动时的指数倍增。

即:每收到一个ACK报文,snd_cwnd加一。看似线性。

但当前处于慢启动状态,一个RTT时间内收到的ACK呈指数增长,

一个RTT时间内cwnd也是如此呈指数增长。

配置上传

留一台干净的电脑,比如PCD。

将其IP地址设置为自动获取。

打开PCD的PuTTY,依次将PCD串口与S1,S2,R1,R2,R3,R4的CONSOLE口相连。

每次连接后,ctrl+G或者dis cu,然后按空格进行快速加载,加载完毕后秒切下一台。

全部加载完毕后,直接点击左上角菜单项的copy all to clipboard,

在桌面新建“组号座位号-学号姓名.txt”文本文件,粘贴内容。

为PCD连接校园网,上传至FTP。

结语

祝顺利。

comments powered by Disqus
Easy Life and Easy Learning
使用 Hugo 构建
主题 StackJimmy 设计