【防火墙技术连载39】强叔侃墙 双机热备篇 VRRP与VGMP的故事(下)

digest [复制链接]
发表于 : 2014-12-4 15:15:12 最新回复:2017-12-08 16:10:59
17610 27
强叔侃墙
强叔侃墙 官方号

上篇我们在学习了VRRP的实现原理,以及如何通过VGMP解决VRRP问题后,提出了两个问题。第一个问题是“两台防火墙的VGMP组是如何传递VGMP的优先级信息的?”。答案是防火墙的VGMP组通过备份通道(心跳线),利用VGMP报文来传递优先级信息第二个问题是“两台防火墙的VGMP组的状态协商和切换过程,以及报文交互过程到底是怎样的呢?”,我们还没有给出答案。

      在本篇中,强叔将通过图解的方式完整地给出各种情况下,两台防火墙的VGMP组的状态协商和切换过程,以及报文交互过程,保证您有看***儿的感觉~

防火墙VGMP组的缺省情况

在欣赏***儿前,我们首先来了解下背景知识,也就是防火墙VGMP组的缺省情况。

如下图所示,每台防火墙提供两个VGMP组:Active组和Standby组。缺省情况下,Active组的优先级为65001,状态为ActiveStandby组的优先级为65000,状态为Standby。主备备份情况下,主用设备启用Active组,所有成员(例如VRRP备份组)加入Active组;备用设备启用Standby组,所有成员加入Standby组。负载分担情况下,两台设备都启用Active组和Standby组,每台设备上的所有成员分别加入Active组和Standby组。FW1Active组和FW2Standby组形成一组“主备”,FW2Active组和FW1Standby组形成一组“主备”,两台防火墙互为“主备”,形成负载分担。


 

        以上讲的是中低端防火墙USG2000/5000/6000系列的情况,由于高端防火墙存在接口板和业务板,所以高端防火墙的缺省优先级与中低端防火墙是不同的:

高端防火墙Master组的缺省优先级=45001+1000×(业务板个数+接口板个数)。

Slave组的缺省优先级=45000+1000×(业务板个数+接口板个数)。

说明:这里说明的高端防火墙优先级算法以USG9000系列V1R3版本为例。而本篇的双机热备配置和状态切换过程以中低防火墙的USG2000/5000/6000系列为例。

主备备份双机热备状态形成过程

主备备份方式的双机热备是目前较常用的双机方式,配置和理解也比较简单,因此我们先从主备备份双机热备状态形成的过程来看。

为了让大家能够真实地感受到VRRPVGMP在防火墙上的存在,我们下面会先给出防火墙主备备份双机热备的配置,然后描述配置完成后双机热备状态形成的过程。

为了实现主备备份方式的双机热备,我们需要在FW1上启用Active组,并将FW1上的VRRP备份组都加入Active组;在FW2上启用Standby组,并将FW2上的VRRP备份组都加入Standby组。实现此操作的命令为vrrp vrid virtual-router-id virtual-ip virtual-address [ ip-mask | ip-mask-length ] { active | standby }。这条命令看似简单,但功能很强大,一条命令配置下去两件事轻松搞定:

l 由于是在接口视图下执行这条命令,所示实际上是将接口加入了VRRP备份组,同时指定了虚拟IP地址和掩码。

    当接口的IP地址与VRRP备份组的虚拟IP地址不在同一网段时,必须配置虚拟IP地址的掩码。

l active | standby”参数是将VRRP备份组加入ActiveStandby组。

结合下面的图来给出我们建立主备方式双机热备的具体配置,如下表所示:

FW1的配置

FW2的配置

interface GigabitEthernet 1/0/1

 ip address 10.1.1.2 255.255.255.0

 vrrp vrid 1 virtual-ip 10.1.1.1 255.255.255.0 active

//将接口GE1/0/1加入VRRP备份组1,并将VRRP备份组1加入Active组。

interface GigabitEthernet 1/0/1

 ip address 10.1.1.3 255.255.255.0

 vrrp vrid 1 virtual-ip 10.1.1.1 255.255.255.0 standby

//将接口GE1/0/1加入VRRP备份组1,并将VRRP备份组1加入Standby组。

interface GigabitEthernet 1/0/3

 ip address 1.1.1.2 255.255.255.0

 vrrp vrid 2 virtual-ip 1.1.1.1 255.255.255.0 active

//将接口GE1/0/3加入VRRP备份组2,并将VRRP备份组2加入Active组。

interface GigabitEthernet 1/0/3

 ip address 1.1.1.3 255.255.255.0

 vrrp vrid 2 virtual-ip 1.1.1.1 255.255.255.0 standby

//将接口GE1/0/3加入VRRP备份组2,并将VRRP备份组2加入Standby组。

hrp interface GigabitEthernet 1/0/2  //指定心跳口

hrp enable      //启用双机热备功能

hrp interface GigabitEthernet 1/0/2  //指定心跳口

hrp enable      //启用双机热备功能

各种VGMP报文和HRP报文都是通过心跳口发送的,心跳口可以说是双机热备的“命脉”,要点多多,务必关注:

l 两台设备的心跳口必须加入相同的安全区域。

l 两台设备的心跳口的接口类型和编号必须相同。例如主用设备的心跳接口为GigabitEthernet 1/0/2,那么备用设备的心跳接口也必须为GigabitEthernet 1/0/2

l 配置心跳口时如果不添加remote参数,则两台设备的心跳口需要直接相连或通过二层交换机相连,并且不需要配置安全策略。如果配置心跳口时添加remote参数(例如hrp interface GigabitEthernet 1/0/2 remote 10.1.1.2),那么两台设备的心跳口可以通过路由器相连,但是需要配置安全策略。因为不添加remote参数时,心跳口发送的报文是用VRRP报文封装的,是一种组播报文。组播报文不能跨越网段传输,且不受安全策略控制。添加remote参数后,从心跳口发送的各种报文将封装成UDP报文。UDP报文是一种单播报文,只要路由可达就可以跨越网段传输,但需要受到安全策略控制。安全策略的配置方法是允许报文在local区域与心跳口所在安全区域间双向通过。

如上图所示,配置完成后,主备备份方式的双机热备状态形成过程如下(图中序号与下文序号一致):

1)    双机热备启用之后,FW1Active组的状态会由Initialize切换成ActiveFW2Standby组的状态由Initialize切换成Standby

2)    由于FW1VRRP备份组都加入了Active组,而Active组的初始状态为Active,所以FW1VRRP备份组1VRRP备份组2的状态都为Active。同理FW2VRRP备份组1VRRP备份组2的状态都为Standby

3)    这时FW1VRRP备份组12会分别向上行和下行交换机发送免费ARP报文,将VRRP备份组的虚拟MAC地址通知给他们。其中00-00-5E-00-01-01VRRP备份组1的虚拟MAC地址,00-00-5E-00-01-02VRRP备份组2的虚拟MAC地址。

4)    上下行的交换机的MAC表项会分别记录虚拟MAC地址与端口Eth0/0/1的对应关系。这样当上下行的业务报文到达交换机后,交换机会将报文转发到FW1上,所以FW1成为了主用设备,FW2成为了备用设备。

5)    同时FW1Active组还会通过心跳线定时向FW2Standby组发送HRP心跳报文。



3      主用设备接口故障后的状态切换过程

两台防火墙形成主备备份状态后,如果主用设备的接口故障,那么两台防火墙会发生主备状态切换,具体过程如下:

1)    如下图所示,当主用设备的接口GE1/0/1故障后,FW1VRRP备份组1的状态变成Initialize

2)    FW1Active组会感知到这一变化,将自身的优先级降低2(一个接口故障优先级降低2),并将自身状态切换成Active To Standby(图中简写为A To S)。Active To Standby是一种短暂的中间状态,用户是不可见的。

3)    FW1Active组会向对端发送VGMP请求报文,请求将状态切换成StandbyVGMP请求报文是一种VGMP报文,携带本端VGMP组调整后的优先级64999


4)    如下图所示,FW2Standby组收到FW1Active组的VGMP请求报文后,将会与对端比较VGMP优先级。经过比较后发现本端的优先级65000高于对端的64999,因此FW2Standby组会将自身状态切换成Active

5)    FW2Standby组会向对端返回VGMP应答报文,允许对端进行状态切换。

6)    与此同时FW2Standby组会强制组内的VRRP备份组12也将状态切换成Active

7)    FW2VRRP备份组12会分别向下行和上行交换机发送免费ARP报文,更新他们的MAC转发表。

 

8)    如下图所示,FW1Active组收到对端的VGMP确认报文后,会将自身状态切换成Standby

9)    FW1Active组会强制组内的VRRP备份组将状态切换成Standby。由于VRRP备份组1内的接口故障,所以VRRP备份组1的状态为Initialize不变,只有VRRP备份组2的状态切换成Standby

10)  与此同时,上下行交换机收到FW2的免费ARP报文后会更新MAC表项,记录虚拟MAC地址与端口Eth0/0/2的对应关系。这样当上下行的业务流量到达交换机后,交换机会将流量转发到FW2上。至此两台防火墙的主备状态切换完成,FW2成为新的主用设备,FW1成为新的备用设备。

11)  主备状态切换完成后,新的主用设备FW2会定时向新的备用设备FW1发送心跳报文。


 【防火墙技术连载39】强叔侃墙 双机热备篇 VRRP与VGMP的故事(下)-1296073-5

主用设备整机故障后的状态切换过程

当主用设备整机故障后,主用设备的VGMP组将不会再发送HRP心跳报文。这时如果备用设备的VGMP组连续三次收不到主用设备的HRP心跳报文,那么他就会认定对端的VGMP组故障,从而将自身切换到主用状态。

原主用设备故障恢复后的状态切换过程(抢占)

当原主用设备的故障恢复后,如果配置了抢占功能,那么原主用设备将重新抢占成为主用设备,具体过程如下文所示。如果没有配置抢占功能,则原主用设备依旧保持备份状态。

1)    如下图所示,原主用设备的接口GE1/0/1故障恢复后,VRRP备份组1的状态由Initialize切换成Standby

2)    FW1Active组感知到这一变化后,会将自身的优先级升高2(一个接口故障恢复优先级升高2),升高到65001FW1Active组会与对端比较VGMP优先级,对端的优先级信息是从对端发送的HRP心跳报文中获取的。经过比较后发现本端的优先级65001高于对端的65000。这时如果配置了抢占功能,则会启动抢占延时。抢占延时结束后,FW1Active组会将状态由Active To Standby切换成Standby To Active(图中简写为S To A)。Standby To Active是一种短暂的中间状态,用户是不可见的。

3)    FW1Active组会向对端发送VGMP请求报文,请求将状态切换成ActiveVGMP请求报文是一种VGMP报文,携带本端VGMP组调整后的优先级65001


4)    如下图所示,FW2Standby组收到FW1Active组的VGMP请求报文后,将会与对端比较VGMP优先级。经过比较后发现本端的优先级65000低于对端的65001,因此FW2Standby组会将自身状态切换成Standby

5)    FW2Standby组会向对端返回VGMP应答报文,允许对端将状态切换成Active

6)    与此同时FW2Standby组会强制组内的VRRP备份组12也将状态切换成Standby

7)    如下图所示,FW1Active组收到对端的VGMP确认报文后,会将自身状态切换成Active

8)    FW1Active组会强制组内的VRRP备份组12也将状态切换成Active

9)    FW1VRRP备份组12会分别向下行和上行交换机发送免费ARP报文,更新他们的MAC转发表。上下行交换机收到免费ARP报文后会更新MAC表项,记录虚拟MAC地址与端口Eth0/0/1的对应关系。这样当上下行的业务报文到达交换机后,交换机会将报文转发到FW1上。至此两台防火墙的主备状态切换完成,FW1重新抢占成为主用设备,而FW2重新成为备用设备。

10)  主备状态切换完成后,主用设备FW1会定时向备用设备FW2发送心跳报文。


负载分担双机热备状态形成和切换过程

以上我们描述的是主备备份方式的双机热备状态形成和切换过程,下面我们来看负载分担状态的情况。

如下图所示,为了实现负载分担方式的双机热备,我们需要在FW1FW2上都启用Active组和Standby组,使FW1Active组与FW2Standby组进行通信,构成一组“主备”,FW2Active组与FW1Standby组进行通信,也构成一组“主备”。这样两台FW形成互为主备的状态,也就是负载分担状态。

结合下图给出负载分担方式的双机热备配置,如下表所示:

interface GigabitEthernet 1/0/1

 ip address 10.1.1.3 255.255.255.0

 vrrp vrid 1 virtual-ip 10.1.1.1 255.255.255.0 active

//将接口GE1/0/1加入VRRP备份组1,并将VRRP备份组1加入Active组。

vrrp vrid 2 virtual-ip 10.1.1.2 255.255.255.0 standby

//将接口GE1/0/1加入VRRP备份组2,并将VRRP备份组2加入Standby组。

interface GigabitEthernet 1/0/1

 ip address 10.1.1.4 255.255.255.0

 vrrp vrid 1 virtual-ip 10.1.1.1 255.255.255.0 standby  

 //将接口GE1/0/1加入VRRP备份组1,并将VRRP备份组1加入Standby组。

vrrp vrid 2 virtual-ip 10.1.1.2 255.255.255.0 active  

//将接口GE1/0/1加入VRRP备份组2,并将VRRP备份组2加入Active组。

interface GigabitEthernet 1/0/3

 ip address 1.1.1.3 255.255.255.0

 vrrp vrid 3 virtual-ip 1.1.1.1 255.255.255.0 active

//将接口GE1/0/3加入VRRP备份组3,并将VRRP备份组3加入Active组。

vrrp vrid 4 virtual-ip 1.1.1.2 255.255.255.0 standby  

//将接口GE1/0/3加入VRRP备份组4,并将VRRP备份组4加入Standby组。

interface GigabitEthernet 1/0/3

 ip address 1.1.1.4 255.255.255.0

 vrrp vrid 3 virtual-ip 1.1.1.1 255.255.255.0 standby  

//将接口GE1/0/3加入VRRP备份组3,并将VRRP备份组3加入Standby组。

vrrp vrid 4 virtual-ip 1.1.1.2 255.255.255.0 active  

//将接口GE1/0/3加入VRRP备份组4,并将VRRP备份组4加入Active组。

hrp interface GigabitEthernet 1/0/2  //指定心跳口

hrp enable      //启用双机热备功能

hrp interface GigabitEthernet 1/0/2  //指定心跳口

hrp enable      //启用双机热备功能

由上表可以看到:1、负载分担场景下,每个业务接口需要加入两个VRRP备份组,且这两个VRRP备份组要分别加入Active组和Standby组。例如GE1/0/1接口加入了备份组12,备份组12 分别加入了Active组和Standby组。2、两台防火墙的相同编号的VRRP备份组需分别加入Active组和Standby组。例如FW1VRRP备份组1加入了Active组,FW2VRRP备份组1加入了Standby组。

如上图所示,配置完成后,负载分担方式的双机热备状态形成过程如下:

1)    FW1FW2Active组的状态会由Initialize切换成ActiveStandby组的状态由Initialize切换成Standby

2)    由于FW1VRRP备份组13加入了Active组,而Active组的初始状态为Active,所以FW1VRRP备份组1VRRP备份组3的状态都为Active;由于FW1VRRP备份组24加入了Standby组,而Standby组的初始状态为Standby,所以FW1VRRP备份组2VRRP备份组4的状态都为Standby;同理FW2VRRP备份组1VRRP备份组3的状态都为StandbyVRRP备份组4VRRP备份组4的状态都为Active

3)    这时FW1VRRP备份组13会分别向下行和上行交换机发送送免费ARP报文,将VRRP备份组13的虚拟MAC地址通知给他们;FW2VRRP备份组24会分别向下行和上行交换机发送送免费ARP报文,将VRRP备份组24的虚拟MAC地址通知给他们。

4)    下行交换机的MAC表项会记录VRRP备份组1的虚拟MAC地址(00-00-5E-00-01-01)与端口Eth0/0/1的对应关系,VRRP备份组2的虚拟MAC地址(00-00-5E-00-01-02)与端口端口Eth0/0/2的对应关系。这样当下行交换机下面的设备请求VRRP备份组1的虚拟MAC地址(将VRRP备份组1的虚拟IP设置为下一跳)时,交换机会将业务报文转发到FW1上;而请求VRRP备份组2的虚拟MAC地址(将VRRP备份组2的虚拟IP设置为下一跳)时,交换机会将业务报文转发到FW2上。同理上行交换机上面的设备请求VRRP备份组3的虚拟MAC地址(将VRRP备份组3的虚拟IP设置为下一跳)时,交换机会将业务报文转发到FW1上;而请求VRRP备份组4的虚拟MAC地址(将VRRP备份组4的虚拟IP设置为下一跳)时,交换机会将业务报文转发到FW2上。这样FW1FW2都会转发业务报文,所以FW1FW2都是主用设备,形成负载分担状态。

5)    负载分担状态形成后,FW1Active组会定期向FW2Standby组发送HRP心跳报文,FW2Active组会定期向FW1Standby组发送HRP心跳报文。

 

       两台防火墙形成负载分担方式的双机热备后,如果其中一台防火墙的接口故障,那么他们将切换成主备备份状态,具体过程如下:

1)    如下图所示,当FW1GE1/0/1接口故障时,FW1VRRP备份组12的状态都会变成Initialize

2)    FW1Active组与Standby组的优先级都会降低2。这时FW1Active组的优先级变成64999低于FW2Standby组的优先级65000 FW2Standby组的优先级变成64998依旧低于FW2Active组的优先级65001。这样经过VGMP组之间的状态协商后(具体原理和报文交互请看上面的主备备份方式),FW1Active组的状态切换成StandbyFW2Standby组的状态切换成Active

3)    FW1Active组和FW2Standby组会强制组内VRRP备份组也进行状态切换,所以FW2VRRP备份组13的状态都切换成Active

4)    FW2VRRP备份组13会分别向下行和上行交换机发送免费ARP报文,更新他们的MAC转发表。

5)    下行交换机收到免费ARP报文后,会更新自身的MAC转发表,将VRRP备份组1的虚拟MAC地址(00-00-5E-00-01-01)修改成与Eth0/0/2对应。同理上行交换机会将VRRP备份组3的虚拟MAC地址(00-00-5E-00-01-03)修改成与Eth0/0/2对应。这样当上下行的业务报文到达交换机后,交换机会将报文都转发到FW2上。至此双机热备状态切换完成,时FW1成为备用设备,FW2成为主用设备,负载分担状态变成主备备份状态。

6)     负载分担切换成主备备份状态后,主用设备FW2会定时向备用设备FW1发送心跳报文。



总结

     上面的内容应该可以完美地回答“两台防火墙的VGMP组的状态协商和切换过程,以及报文交互过程到底是怎样的呢?”这个问题了。 而由上面的例子可以看出,VGMP在双机热备中主要实现以下三个功能:

1、  故障监控VGMP组能够监控VRRP备份组状态变化,从而感知到VRRP组内接口的故障和恢复。(私下里嘀咕:VGMP组能不能直接监控接口故障呢,一定要通过VRRP备份组监控接口么?)

2、  状态切换VGMP组感知到VRRP备份组状态变化后,会调整自身的优先级,并与对端的VGMP组重新协商主备状态。(私下里嘀咕:这一点比较清楚了,本篇都是在讲状态如何切换和协商的。)

3、  流量引导:两个VGMP组主备状态建立或者切换后,会强制组内VRRP备份组状态统一切换,然后由状态为ActiveVRRP备份组发送免费ARP来引导流量通过自身转发。(私下里嘀咕:如果VGMP组能够直接监控接口的话,流量引导方式也是这样么?)

实际上VGMP功能很强大,通过监控VRRP备份组状态实现防火墙主备状态切换和流量引导仅仅是VGMP的一个招式。这个招式仅仅适用于防火墙上行或下行设备是交换机的场景,因为VRRP本身就是为这个场景量身定制的。当防火墙上行或下行设备是路由器的时候,VGMP就无力应对了么?当然不会的!下节我们就对VGMP的更多绝招进行介绍,帮助大家全面了解双机热备功能,做到兵来将挡、水来土掩!

附录:VGMP状态机

前面我们学习了VGMP组的各种状态变化过程。下面强叔再通过解释VGMP状态机的形式,来帮助各位小伙伴加深对VGMP状态变化的理解。难道你不觉得了解了某个功能的状态机后,整个人都变得高大上了吗?!

说明:本篇的VGMP状态机目前适用于USG2000/5000/6000系列防火墙和USG9000系列防火墙的V1R3版本。


(0)    启用双机热备功能后,各VGMP组进入Initialize(初始化)状态。

(1)    启用Active组后,Active组的状态由Initialize切换成Active

(2)    启用Standby组后,Standby组的状态由Initialize切换成Standby

(3)    本端VGMP组监控的接口故障时,状态由Active切换成ActiveToStandby,并发送VGMP请求报文给对端设备的VGMP组。

(4)    本端VGMP组收到对端的VGMP请求报文,发现自身优先级高,则将状态由Standby切换成Acitve,并发送VGMP确认报文给对端设备的VGMP组。

(5)    本端VGMP组收到对端的VGMP确认报文,确认本端需要进行状态切换,则本端的VGMP组状态由ActiveToStandby切换成Standby

(6)    对端VGMP组确认本端的VGMP组不需要进行状态切换或连续三次没有回应本端的VGMP请报文,则本端的VGMP组状态由ActiveToStandby切换成Active

(7)    本端VGMP组监控的接口故障恢复后,如果本端VGMP组优先级高于对端且配置了抢占功能,则本端VGMP组状态由Standby切换成StandbyToAcitve,并向对端发送VGMP请求报文。

(8)    本端VGMP组收到对端的VGMP请求报文,发现对端优先级高,则将状态由Active切换成Standby,并发送VGMP确认报文给对端设备的VGMP组。

(9)    本端VGMP组收到对端的VGMP确认报文,确认本端需要进行状态切换,则本端的VGMP组状态由StandbyToAcitve切换成Active,完成抢占过程。

(10)   对端VGMP组确认本端的VGMP组不需要进行状态切换或连续三次没有回应本端的VGMP请报文,则本端的VGMP组状态由StandbyToAcitve切换成Standby

 

 

上一篇 双机热备篇 VRRP与VGMP的故事(上)

下一篇 双机热备篇 VGMP招式详解

汇总贴

本帖被以下专题推荐:

  • x
  • 常规:

点评 回复

跳转到指定楼层
强叔侃墙
强叔侃墙 官方号 发表于 2015-2-16 17:21:26 已赞(0) 赞(0)

回复 13 楼

能否提供以下抓包或截图,我们再分析一下。
  • x
  • 常规:

点评 回复

强叔侃墙
强叔侃墙 官方号 发表于 2015-2-16 17:21:42 已赞(0) 赞(0)

回复 14 楼

可以这样理解 :)
  • x
  • 常规:

点评 回复

员Lemon
员Lemon  专家 发表于 2014-12-4 15:26:18 已赞(0) 赞(0)

好资料顶起来~~
  • x
  • 常规:

点评 回复

x00151571
x00151571   发表于 2014-12-4 15:30:35 已赞(0) 赞(0)

画图费心了,清楚!

  • x
  • 常规:

点评 回复

Cai_n
Cai_n   发表于 2014-12-4 15:40:07 已赞(0) 赞(0)

好文,先顶后读!

  • x
  • 常规:

点评 回复

kmyd
kmyd  大师 发表于 2014-12-4 23:02:11 已赞(0) 赞(0)

好东西,感谢强叔!!!
  • x
  • 常规:

点评 回复

伟大玮先生
伟大玮先生   发表于 2014-12-5 09:17:00 已赞(0) 赞(0)

7)    FW2VRRP备份组12会分别向下行和上行交换机发送免费ARP报文,更新他们的MAC转发表。

下面的图一直在转,换了多个网络环境均不能正常显示

  • x
  • 常规:

点评 回复

强叔侃墙
强叔侃墙 官方号 发表于 2014-12-5 10:27:48 已赞(0) 赞(0)

回复 6 楼

重新上传了那张图,您再看下?
  • x
  • 常规:

点评 回复

wangbenlie
wangbenlie   发表于 2014-12-5 13:44:06 已赞(0) 赞(0)

感谢分享!

  • x
  • 常规:

点评 回复

123
返回列表
发表回复
您需要登录后才可以回帖 登录 | 注册

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录