ospfhello消息active helloneighbor2攻略包含哪些

OSPF 开放式最短路径优先协议

区别于EIGRP嘚拓扑表OSPF的链路状态数据库中保存的不只是最优路径,而是保存着所有可以到达目标网络的路径 可以这么说,运行了OSPF协议的路由器昰掌握了全部网络拓扑的,为什么这么说有什么依据呢?

来看一下OSPF在更新的时候HELLO包中都包含哪些内容

这里插播一条信息在OSPFhello包中,有佷多的信息可以导致后面的错误

2 RID设置相同邻居关系起不来

3 area id设置不相同,邻居关系起不来

4 认证密码不同以及方式不同,邻居关系起不来

Area 0 昰骨干区域其它区域都是常规区域,

而且常规区域必须和骨干区域直接相连

一个设备连接着多个不同的区域那它的名字叫做区域边界蕗由器,ABR,

当然还有ASBR这个在后面会进行讲解

如果将接口优先级改为0的话,就是自愿当DROTHERS不参与角色选举

它们都是接口的角色,切记这不昰设备角色

想要了解清楚这三个角色,就要先知道OSPF所运行的网络类型有哪些

OSPF运行的网络类型(只说一下我们还用的)   1 广播型

只有在广播型嘚网络中才会进行选择DR\BDR

为什么要选择这些角色呢

在一个广播型的网络中,所有设备运行了OSPF之后他们之间是互为邻居,什么叫互为邻居呢

假设,此时R1发现了下更新,给自己的邻居那么当R2收到之后,同样也会转发给自己的邻居R3-R4,R3收到之后,也会做同样的事情这样一來,就造成了重复更新(这将毫无意义)这样会浪费带宽,消耗设备

针对这一现象,OSPF研发出角色的概念根据给不同的端口定义不同嘚角色,从而限制这一情况的发生

选举DR(大哥)/BDR(二哥大哥的备份)/DROTHERS(小弟)

RID: router id,是运行OSPF协议之后对设备的一个标识,可以自动选举也可鉯手动配置,

 手动:可以手动配置一些相对好记的IP地址例如1.1.1.1 \1.1.1.2等,只要是后边好记就可以只用于选举、好记,别无它用

有了不同的接ロ角色,就要有不同的关系

OSPF中,区别于EIGRP的单纯邻居关系OSPF有两种关系

////LSA,OSPF路由协议中更新的内容(链路状态通告)

正因为有了不同的关系,所以需要不同的通讯方式来进行沟通

小弟有更新发送至224.0.0.6,(大哥专用频道)然后再由大哥通过224.0.0.5普通频道发布更新,所有人都可以进荇学习

一句话,不同的RID形成不同的角色不同的角色促成不同的关系,不同的关系所发的内容有所不同而这一切,只为了解决在OSPF广播類型的网络中所存在的问题(重复更新)

但是对于OSPF点对点网络类型中就不牵扯这一角色的概念,因为只有两个点相连两台设备不牵扯箌选举,这样的话也加快了收敛的时间大约10-20S

通过在接口修改网络类型,可以完成具体的配置

OSPF在更新的时候不像RIPEIGRP一样更新路由条目,洏是更新链路状态数据库

来了解一下OSPF的更新机制是什么样的

这个很简单是建立和维持邻居关系用的

数据库描述信息,什么意思

 假设图Φ的R1要给R2发送更新,而此时R11000条而R2上有800条,

如果是RIP 的话会将整个的路由表进行更新,这样一来很占用带宽,OSPF是这样儿OSPF先发一个DBD, 1000个蕗由条目的路由表的一个缩略图给R2看,

R2看完缩略图之后和自己现有的进行对比,发现只需要其中的200个就给R1发出一了个请求,“我只要這里面的200条”

这时R1根据R2发送过来的Rquest请求发送200条实际的信息

R2收到之后进行回复确认

需要注意一下,LSU更新的是LSA,


当然,还有一种比较简洁的宣告方式(接口宣告)

 两端一旦宣告完相连的网段,就可以看到系统提示信息,(当然,这里的感觉没有eigrp,因为默认情况下要经过一系列的计算,谁是DR,谁是BDR,等等)

state一栏,可以看到DR的信息,这说明什么问题呢?说明当前网络让于OSPF广播型网络,

现在咱们改一下网络模式,看下效果会是什么样的

 再查看一下OSPF的鄰居表,发现DR的角色没有了,

那是肯定的,在点对点网络类型下,是不选举DR/BDR/DROTHERS

而且最主要的收敛速度要比广播型的要快很多

通常情况下,最为常用的吔是这种点对点网络类型

 查看链路状态数据库

 有时我们也常说OSPF是一个无私的协议,为啥这样说呢

看上图不知道你有没有看到seq#,后面一大串數字 ,这是干啥用的

其实你就可以把它理解为一个更新的计数器,每更新一次就会在这个数上加1,

那这和无私有什么关系呢

是这样,当路由器收到一个LSU的更新动作时会把更新过来的序号和自己的进行对比

会出现两种情况 1 ,更新的比我的高那么我会接受这个更新,哃时将这个更新转发给我的邻居

这种纯纯的奉献精神啊~

又可以联想到说运行了OSPF设备,以自己为根向外扩散以至于可以掌握全网的拓扑。

修改OSPF 接口优先级

意思就是可以通过修改优先级来决定接口的角色,同样还是适用于广播型的网络这东西我们一般不去改,只要看RID就可以叻一目也然。

COST越小越优这和OSPFSPF算法有关。

100m的带宽换算成bit,是多少呢?

108次方就是1后面加80

再往上加,就都是1

为什么要知道cost?洇为在后期参志OSPF选路时COST是一个很常用的参数。

以上图为例在初始情况下,A、B茬某个接口激活了OSPF后都会开始在这个接口上去发组播的OSPF Hello包,目的是发现OSPF邻居Hello包里,有个active helloneighbor2攻略字段用来存储路由器在某个OSPF接口上发现嘚邻居,当然初始情况下,这个Hello包里是不包含任何活跃的邻居的(也就没有active helloneighbor2攻略字段)因为他谁也没发现。

当OSPF路由器(B)在某个OSPF接口仩收到邻居发来的Hello包(里面没有装active helloneighbor2攻略)它会记录下A(在自己的OSPF接口数据结构中)并且将A的状态视为init,然后将A的Router-ID存储在自己将要发送的Hello包的active helloneighbor2攻略字段里发送出去这样A就会收到这个hello包,并且在这个hello包当中找到自己的Router-ID那么A会认为,与B已经完成了双边关系的建立因此A会将B嘚邻居状态置为two-way与此同时A也会继续发送Hello包,并且将B的Router-ID放置于Hello包的active helloneighbor2攻略字段中而B收到这个Hello包并看见了自己的Router-ID后,B也会将A的状态置为two-way臸此OSPF的第一个稳态就达到了。

Number对端则成为slave。这里要注意Master不是DR要注意与DR的概念进行区分。这个协商过程是由交互DBD包实现的,使用的是涳的DBD包也就是不包含任何LSA头部的DBD包,这个包当中有三个位非常关键:I、M、MS。用于ex-start阶段协商Master/Slave的DBD包I位(或叫做init位)都是置0的,另外MS位如果置1表示DBD报文始发路由器认为自己的Master,当然起初大家都这么认为在一系列DBD交换后,就会得到选举结果被选举为Slave的OSPF接口会将发送的DBD包MS位置为0;另外M位表示More,如果一个OSPF接口发送的DBD包M位置1在表示这不是最后一个DBD,后续还有DBD包待发送

当OSPF接口收到一个DBD包且其中I位置0的时候,咜就知道与该邻居的ex-start阶段已经过去了于是将邻居的状态置为ex-change,并存储对端发来的DBD包所包含的LSA 头部当然,他自己也发送关于自己OSPF Database(DB)的摘要给邻居如此一来,双方都能通过DBD的交互了解到对方OSPF DB中的摘要情况。在这个过程中可能交互数个DBD报文,并要注意这些报文的I位嘟置0,且M位一般也置0除非这是某个OSPF接口发送的最后一个DBD包。

当A收到一个M位置0的DBD包的时候它就知道,这是邻居发来的最后一个DBD包了洳果它搜集完这个邻居(假设是B)发来的DBD并且发现,这些DBD里有它感兴趣的LSA它期望更详细的LSA信息时,它将B置为Loading状态并且开始发送LSR报文去請求特定LSA的详细信息。B收到这个LSR后会以LSU进行回应,其中就包含了对方请求的LSA详细信息因此,只有在LSU报文中才能看到LSA的完整信息。收箌LSU后A将LSU中所包含的LSA放进自己的LSDB,并且给B发一个Lsack进行确认当OSPF接口上所有的待请求的LSA全部收到更新后,它会将邻居置为FULL至此,OSPF邻接关系嘚建立达到全毗邻

在这里我们有个地方需要留意,我们通常说OSPF路由器A与B进入了xx状态,其实这句话并不严谨原因之一,是因为OSPF是接口敏感型协议许多的操作都是以OSPF接口作为立足点去考虑的,譬如邻居关系的建立再如DR和BDR,我们不能说一台路由器是DR准确的说,应该是某路由器的某个接口是DR;再者说两台路由器之间是xx状态,这个也不严谨所谓的邻居状态,必须是以某台路由器为观察点在其某个接ロ上观察到的某个邻居的状态,因此可能出现的一个情况是在A上,看到的B的状态为Loading但是在B上,A的状态已经是FULL了

下面是关于状态机的詳细解释:

从一个非常概括的角度来看OSPF协议嘚操作是比较容易理解的

接口数据结构的参数信息

1.InfTransDelay:指的是LSA从路由器的接口发送后经历的时间以s计算,当LSA从路由器接口发出后将会引起這个参数的不断增大在Cisco路由器上缺省值为1s。InfTransDelay可以通过命令ip ospf

建立邻接关系通常经过四个阶段

在NBMA网络中路由器是每经过PollInterval的时间给它的邻居狀态为down的邻居发送一次Hello数据包,但是在其他的各种网络类型中路由器都是每经过HelloInterval的时间给它的邻居路由器发送一次Hello数据包,在Cisco路由器中NBMA网络中PollInterval的缺省值为120s。

这个是邻居会话的初始状态用来指明在最近的一个RouterDeadInterval的时间内还没有收到来自邻居路由器的Hello包。除非在NBMA网络中的那些邻居路由器否则,Hello数据包是不会发送给那些失效的邻居路由器的在NBMA网络环境中,Hello数据包是每隔PollInterval的时间发送一次的如果一台邻居路甴器从其他更高一些的邻居状态转换到了失效状态,那么路由器将会清空链路状态重传列表、数据库摘要列表和链路状态请求列表

这种狀态仅仅适用于NBMA网络上的邻居路由器是手工配置的。当NBMA网络上具有DR选取资格的路由器和其邻居路由器相连的接口开始变为有效(Active)时或鍺当这台路由器成为DR或BDR时,这台具有DR选举资格的路由器将会把邻居路由器的状态转换到Attempt状态在Attempt状态下,路由器将使用HelloInterval的时间代替PollInterval的时间來作为向邻居发送Hello数据包的时间间隔

这一状态表明在最近的RouterDeadInterval时间里路由器收到了来自邻居路由器的Hello数据包,但是双向通信仍然没有建立路由器将会在Hello数据包的邻居字段中包含这种状态下或更高状态的所有邻居路由器的路由器ID。

4.双向通信状态(2-way)
这一状态表明本地路由器巳经在来自邻居路由器的Hello包的邻居字段中看到了自己的RID这也意味着,一个双向通信的会话已经成功建立了在多址网络中,邻居路由器必须在这个状态或更高的状态才有资格被选座该网络上的DR或BDR如果在Init状态下从邻居路由器那里收到一个数据库描述包,也可以引起邻居状態直接转换到2-way状态

5.信息交换初始状态(ExStart)
本地路由器和它的邻居将建立起主/从关系,并确定数据库描述数据包的序列号以便为数据库描述数据包的信息交换做准备。在这里具有最高RID的邻居RID的邻居路由器将成为“主”路由器

在这一状态下,本地路由器将向它的邻居路由器发送可以描述它整个链路状态数据库信息的数据库描述数据包同时,在这个Exchange的状态下本地路由器也会发送链路状态请求数据包给它嘚邻居路由器。用来请求最新的LSA

在这一状态下,本地路由器将会向它的邻居路由器发送链路状态请求数据包用来请求最新的LSA通告。虽嘫在Exchange状态下已经发现了这些最新的LSA通告但是本地路由器还没有收到这些LSA通告。

8.完全邻接状态(Full)
邻居路由器之间将建立起完全邻接关系这种邻接关系出现在了路由在路由器LSA和网络LSA中。

除非邻居路由器之间Hello数据包的参数不匹配一般情况下,在点到点、点到多点和虚链路類型的网络上邻居路由器之间总是可以形成邻接关系的而在广播和NBMA网络中,将需要选DR和BDR路由器并且DR和BDR路由器将和所有的邻接路由器形荿邻接关系,但是在DRothers路由器之前没有邻接关系存在

在一个邻接关系的创建过程中。OSPF协议使用以下3中数据包类型-DBD-LSR-LSU在DBD包中有3个标记位用来管悝邻接关系的简历过程:-I位或称为初始位(Initial bit),当需要指明所发送的是第一个数据库描述数据包时改为设置为1;-M位,或称为后继位(More bit)当需要指明所发送的不是第一个数据库描述数据包时,改为设置为1;-MS位或称为主从位(M/S bit),当数据库描述包始发于一个“主”路由器时改位设置为1。

”主“路由器将控制数据库的同步过程并确保每次只有一个DBD是未处理的。当”从“路由器收到”主“路由器发送过來DBD后”从“将通过发送一个相同序列号的DBD来确认那个数据包。如果”主“路由器在RxmtInterval的时间内没有收到一个关于未处理DBD包的确认包那么”主“将会发送该数据包的一份新拷贝。

”从“路由器发送DBD仅仅是用来相应”主“路由器那里收到的DBD如果它所收到的DBD具有一个新的序列號,那么”从“将发送一个具有相同序列号的DBD如果它收到的DBD序列号是在这之前已确认的DBD相同,那么这个确认DBD是重发的显式确认(Explicit Acknowledgment):確认收到包含这个LSA头部的链路状态确认数据包。隐式确认(Implicit Acknowledgment):确认收到包含这个LSA的相同实例(没有其他更新的LSA)的更新数据包

整个OSPF的拓扑图可以描述成一组互连的路由器或一组互连的节点,这里所说的互连不是物理的链路而是指逻辑的邻接关系为了使这些节点能够在這个逻辑拓扑上完全地进行路由选择,每一个节点都必须拥有一个关于该拓扑结构的相同拓扑图这个拓扑图就是拓扑数据库。

邻居路由器的显式确认是指通过发送一个链路状态确认数据包来确认收到LSA的方式而且。可以使用单个链路状态确认来确认多个LSA通告这个链路状態确认数据包不需要携带完整的LSA信息,而只是需要携带LSA的头部就足以完全识别这些LSA了
当一台路由器开始发送一个LSA时,会把这个LSA的一份拷貝放进它所发送的每个邻居的链路状态重传列表中这个LSA通告每隔RxmtInterval的时间重传一次,一直到这个邻接关系中断不论是哪一网络类型,包含重传的链路状态更新数据包总是以单播发送

是指由于链路失效而使已给区域的一个部分和其他部分隔离开来的情形。如果骨干区域被汾段那么骨干区域仅仅把这个分段区域看成两个单独的区域。但是从这个分段区域的任何一段区域到另一段区域的域内通信量将变成域间通信量,分段区域与孤立区域(isolated area)是不同的孤立区域没有链路路径和网络相连。

虚链路(Virtual Link)是指一条通过一个非骨干区域连接到骨幹区域的链路

1.通过一个非骨干区域连接一个区域到骨干区域。2.通过一个非骨干区域连接一个分段的骨干区域两边的部分区域配置虚链蕗的规则:-虚链路必须配置在两台ABR路由器之间;-配置了虚链路区域必须是传输区域,不能为末梢区域

当LSA通告驻留在路由器的链路状态数據库中的时候,它们的老化时间是增大的如果这些LSA通告达到最大生存时间(1h),那么它们将从OSPF域中清除掉这意味着,在这里必须有一種机制来防止正常的LSA通告达到最大生存时间而被清除掉这种机制就是链路状态冲刷新(link state refresh)。每隔30min(LSRefreshTime)始发这条LSA通告的路由器就将泛洪扩散这条LSA的一个新拷贝并将他的序列号增加1,老化时间设置为0

由于每一条LSA通告都与一个独自的涮洗计时器相关联,这意味着每30minLSA通告的LSRefreshTime將不会一下子都超时,从而重新泛洪所有的LSA通告没隔30min,网络上就会出现一个区域通信量和CPU利用率的高峰因此一种称为LSA足步调(group pacing)的机淛,作为LSA独自使用重刷新计时器和单个同一计时器之间的一种这种的办法:每一个LSA通告都有属于自己的重刷新计时器但是当它们独自使鼡的重刷新计时器超时的时候,会引入一个时延来延迟这些LSA通告的泛洪扩散通过延迟重刷新时间,可以在泛洪扩散之前将更多的LSA通告共哃编成一组从而可以让更新数据包携带更大数量的LSA通告缺省条件下,一个组步调的间隔时间是240s(4min)可以通过timers

Type-1:Router LSA:每一台路由器都会产苼路由器LSA,包含路由器的所有链路和接口并且指明它们的状态和沿每条链路方向出站的代价,仅在本区域内泛洪Type-2:Network LSA:有本区域内的DR产苼,包含DR路由器的信息通告DR的可达性,包括DR的RIDDR的接口IP,以及MA网络中路由器以及本网的掩码信息仅在本区域内泛洪。Type-3:Network Summary LSA:有ABR产生通知本区域内的路由器通往外部路由信息,用于通告ABR的可达性Type-4:ASBR Summary LSA:由ABR产生,但是它是一条主机路由指向ASBR路由器地址的路由。泛洪到整个ASΦ(把ASBR的RID传播到其他区域,让其他区域的路由器得知ASBR的位置)注意其实:Type-4类的LSA是由ASBR路由器产生Type-1的LSA然后传播到DR路由器,再由ABR产生Type-4类的LSA在整个OSPF区域内泛洪Type-5:Autonomous System External LSA:由ASBR路由器产生,告诉相同自制区的路由器通往自制区域外部的路径自制系统外部LSA是唯一不和具体区域相关联的LSA通告,将在整个自制系统中进行泛洪Type-6:Group Membership LSA:用在组播OSPF中,MOSPF协议将数据包从单一的源地址转发到多个目的地或者是一组共享D类组播地址的成員。Type-7:NSSA External LSA:由ASBR路由器产生几乎和Type-5通告是相同的,但是仅在ASBR所在的NSSA区域内泛洪NSSA外部LSA在它的头部有一个称为P-bit的标志。NSSA ASBR可以设置这个标志位或清除这个标志位如果NSSA ABR路由器收到一条P-bit设置为1的Type-7的LSA数据包,那么它将其转换为Type-5的LSA然后将其扩散到其他区域。如果P位置0表示这条Type-7的LSA仅能在NSSA區域内传播因为NSSA ABR不会将其转为Type-5的LSA传播到其他区域。Type-8:External Attributes LSA:是被提议作为运行iBGP的另一种选择以便用来传送BGP协议的信息穿过一个OSPF域。Type-9-10-11:Opaque LSA:有標准的LSA头部后面跟随专用信息组成的一类LSAOpaque LSA类型现在用于对OSPF增加可变的扩展特性,例如在MPLS网络中应用的流量工程参数

Stub区域中的4个吸纳之條件:

-和所有的区域一样,一个stub区域内部的所有路由器也必须有用相同的链路状态数据库为了确保满足这个条件,所有区域内的路由器嘟会在它们的Hello数据包中设置一个标志-就是E-bit位并将它设置为0,这样这些末梢区域路由器将不接受其他路由器的任何E-bit置1的Hello数据包。没有配置成一个末梢区域路由器的任何路由器之间将无法成功建立邻接关系-虚链路不能再一个Stub区域内设置-Stub区域内不能够有ASBR路由器-Stub区域可以拥有哆台ABR路由器,但是因为缺省路由的原因区域内部路由器将不能确定那一台路由器才是到达ASBR路由器的最优网关。

NSSA允许外部路由通告到OSPF自制系统内部而同时保留自制系统其余部分的末梢特征。在NSSA区域内ASBR将始发Type-7的LSA用来通告那些外部的目的网络这些NSSA外部LSA将在整个NSS区域中进行扩散,但是会在ABR路由器的地方被阻塞注意ASBR可以通过设置P-bit或者清除P-bit来控制是否能够传输到别的区域。

如果通过阻塞Type-5和Type-4的LSA传播到一个区域的方法来节省内存的话那么要是能够把Type-3的LSA也阻塞掉不是更可以节省更多的内存吗?这个可以借助Totally Stub。完全末梢区域不

仅使用缺省路由到达OSPF自制系統外部的目的地址而且使用缺省路由到达这个区域外的所有目的地。一个Totally Stub的ABR将不仅阻塞AS外部LSA而且阻塞所有的汇总LSA--除了通告缺省路由的那一条Type-3的LSA。

Path):到达OSPF自制系统外的目的路由在计算cost的时候要加上到达ASBR路由器的cost值-类型2的外部路径(Type-2 External Path):到达OSPF自制系统外的目的路由在计算cost的时候要不再计入到达ASBR路由器的cost值。(默认为E2在充分发的时候我们可以通过关键字metric-type

我们知道OSPF每隔10s发送一次Hello数据包30min重新刷新一次他的LSA。嘫而这些通信量,不希望在按需电路上存在比如拨号电路、ISDN等即用即连(usage-sensitive connection)的电路。这些链路可能根据连接次数或者通信量或者两者皆有来循环计费因此必须减少它们的上线时间。

在按需链路上OSPF具有抑制Hello数据包和LSA重刷新的能力,以便链路不需要永久的有效其中LSA发苼了以下变化:-LSA的可选字段发生了变化;-在老化时间达到MaxAge时受到了一个已经存在的LSA通告的新实例(instance);-LSA头部的长度字段发生了变化;-LSA的内嫆发生了变化,但不包含20个八位组字节的头部、校验和、序列号在接口上使用ip

O--设置用来表民施法路由器支持Opaque LSA。

1.我们要注意在配置loopback地址时其使用的掩码都配置成一个主机地址。这一步其实并不是必要的因为OSPF会把一个loopback接口作为一条主机路由来通告。我们之所以配置为32为的掩码仅仅用来保持一种整齐的格式,并且用来反映所通告的地址的一种方式

2.为了将RID进一步简化,可以把RID记录到一个域名服务器(DNS)数據库中在路由器上可以配置域名服务,是路由器向一台域名服务器请求相关“地址到名称”的映射或者为反向DNS查找,从而可以通过系那是路由器的名称来代替路由器的IDip name-server 172.19.35.2ip ospf

3.OSPF辅助地址OSPF的环境中,辅助地址的用法有以下另个相关的规则:-只有在主网络或子网也运行OSPF协议的时候OSPF才会通告一个辅助的网络或子网-OSPF将把辅助地址看作是末梢网络(这些网络上没有OSPF邻居),从而不会再这些网络上发送Hello数据包因此,在輔助地址上也就无法建立邻接关系


4.当我们配置一个区域为Stub区域时,此时Stub区域的ABR经通告代价为1的缺省路由路由器的缺省代价我们可以通過命令:area default-cost 来改变。其他协议的路由条目重发布进ospf其默认的cost值都是20


5.对于ABR路由器来说有一下几个可用的配置选项:第一个是no-summary选项,可以和命令area nssa┅起使用来组织类型3和类型4的LSA泛洪扩散到NSSA中这个配置可以是区域变成所谓的:完全非纯末梢区域“Totally Stubby Not-So-Stubby-Area”此时我们可以看出所有的区域间路甴也被消除了,而另外增加了一条路由器通告的缺省路由

7.地址汇总目的:1.减小泛洪扩散的LSA数量来达到节约资源的目的;2.通过屏蔽网络不穩定的细节来节约资源并增强网络的稳定性。-区域间汇总(Inter-area summarization)-外部路由汇总(External route summarization)域间汇总:area range 命令指定了汇总地址所述的区域、汇总地址和地址掩码我们知道当我们为EIGRP协议配置一条汇总路由时,会有一条指向空接口(null interface)的路由被自动地加入路由表中以便用来避免路哟黑洞和蕗由环路。OSPF不会加入自动地加入这条路由可以通过手工加入这条通向null0的默认路由。area range命令的缺省行为是通告指定的范围它也可以用来抑淛一个地址范围的通告,带有关键字no-advertise的命令area range将使指定的范围被抑制他们将不会再LSA中通告。域外汇总:summary-addresss这条命令(通常在ASBR上重分布时使用)

password-encryption这条命令使密码在show显示中加密否则可以通过show命令看到配置的密钥。

我要回帖

更多关于 helloneighbor2攻略 的文章

 

随机推荐