配置设置
开局先连接好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
-
发送端双击桌面init.sh
-
接收方双击桌面TCPTest.sh并开启监听
-
发送方双击桌面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传递。
例如:

本题便可以给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。
结语
祝顺利。