一种创建邻居发现表项的方法和一种服务器的制作方法

文档序号:7700664阅读:160来源:国知局

专利名称::一种创建邻居发现表项的方法和一种服务器的制作方法
技术领域
:本发明涉及网络通信
技术领域
,尤指一种创建邻居发现表项的方法和一种DHCPv6服务器。
背景技术
:支持IPv6的动态主机配置协议(DHCPv6,DynamicHostConfigurationProtocolforIPv6)是针对IPv6编址方案设计的、为主机分配IPv6地址和其他网络配置参数的协议。DHCPv6采用客户端/服务器通信模式,由客户端向DHCPv6服务器提出配置申请,DHCPv6服务器返回为客户端分配的IP地址等相应的配置信息,以实现IP地址等信息的动态配置。具体可以概括为1)客户端主动发起恳求(Solicit),往本网段发送目的为FF02::1:2的多播报文;2)如果子网段内存在DHCPv6服务器,则回应通告(Advertise)报文,该通告报文中携带DHCPv6服务器的标识和优先权信息。3)客户端在指定时间内收集所有DHCPv6服务器返回的Advertise报文,根据其中的优先权信息选择一个DHCPv6服务器。4)客户端向所选择的DHCPv6服务器发送请求(Request)报文。5)相应的DHCPv6服务器收到Request报文后,从前缀池中选择一个前缀,并通过回复(Reply)报文返回给客户端。6)客户端根据Reply报文中的前缀配置自身的IPv6地址,以及根据Reply报文中的其他信息配置自身的参数。7)当指定时间Tl到达时,客户端向DHCPv6服务器发送续约(Renew)5报文,为所使用的IP续约;DHCPv6服务器根据绑定情况返回Reply报文,同意续约。8)如果客户端不再使用IP地址,如用户下线时,客户端设备向DHCPv6服务器发送DHCP租约释放(Release)报文;由DHCPv6服务器将相应的IP地址标记为空闲,以名、后续重新-使用。邻居发现(ND,NeighborDiscovery)协议是IPv6的基本组成部分。ND协议使用五种类型的第6版本互联网控制才艮文协议(ICMPv6,InternetControlMessageProtocolVersion6)l艮文实现以下功能地址解片斤、-验证邻居是否可达、重复地址4企测、路由器发现/前缀发现、地址自动配置和重定向等。ND协议使用的五种类型的ICMPv6报文及其作用如表1所示:<table>tableseeoriginaldocumentpage6</column></row><table>表1下面对ND协议报文所实现的邻居地址解析和重复地址检测功能进行简单介绍1、地址解析地址解析是获取同一链路上的邻居节点的链路层地址,通过邻居请求报文NS和邻居通告才艮文NA实现。图1是现有技术的地址解析过程的示意图。如图1所示,节点A要获取节点B的链路层地址,则节点A以组播方式发送NS报文,该NS报文的源地址是节点A的接口IPv6地址,目的地址是节点B的被请求节点组播地址,报文内容中包含了作为源链路地址的节点A的链路层地址;节点B收到NS报文后,判断其中的目的地址是否为自己的IPv6地址对应的被请求节点组播地址,如果是,则节点B学习节点A的链路层地址,生成相应的ND表项,并以单播方式向节点A返回NA报文,该NA报文中包含了作为源链路地址的节点B的链路层地址;节点A收到NA报文,从中获取节点B的4连^各层地址,生成相应的ND表项。2、重复地址检测(DAD)当节点获取到一个IPv6地址后,需要使用重复地址检测功能确定该地址是否已被其他节点使用。图2是现有技术中的重复地址检测过程的示意图。如图2所示,节点A发送NS报文,该NS报文的源地址是未指定的地址,用"::,,表示,目的地址是待检测的IPv6地址对应的,皮请求节点组播地址,NS报文的内容中包含了待检测的IPv6地址;如果节点B已经使用了这个待检测的IPv6地址,则会返回NA报文,该NA报文中包含了节点B自身的IPv6地址;节点A收到节点B发送的NA报文后,便知道该IPv6地址,反之,则说明该地址未#皮<吏用,节点A可以<吏用该IPv6地址。目前,在企业组网中,一般将DHCPv6服务器部署在一台网关设备上,下面直接通过二层交换机接入主机,主机通过DHCPv6协议向DHVPv6服务器申请前缀,并生成自己的IP地址,然后通过ND协议中的重复地址检测DAD机制进行冲突地址检测。在运营商网络,也可以在汇聚层部署DHCPv6服务器,通过二层交换机与各接入路由器相连,接入路由器申请前缀并配置自己的地址。上述地址配置过程中,由于ND协议报文都是明文传送的,主机上如果存在伪造者,可能通过伪造ND报文的方式给DHCPv6服务器的ND表项造成攻击。例如,伪造NS报文,使得DHCPv6服务器的ND表项过多,或者伪造NA报文,更改DHCPv6服务器的ND表项,给网络增加了不安全因素。针对上述DHCPv6服务器的ND表项容易遭受伪造报文攻击的问题,现有技术中采了用静态地址分配和"SEND"方案。其中,静态地址分配方案为在接入交换机上针对每个可能的接入者,预先分配IPv6地址,并将其与链3各地址、接入点进行绑定,接入点即《连^各层连接点,如以太网中的端口。SEND方案对ND报文进行加密认证,保证ND交互的安全性,需要路由器和主才几都支持加密iU正。但是,静态地址分配方案对于大规模的IPv6部署来说,管理成本较高,而SEND方案则需要当前设备和主机升级IPv6协议栈,以支持加密认证过程,目前支持的系统少,缺少部署的可能性。因此,需要一个新的防止伪造报文攻击,以保证DHCPv6服务器的ND表项安全的方案。
发明内容本发明提供了一种创建邻居发现ND表项的方法,该方法能够保证DHCPv6服务器所创建的ND表项的安全性。本发明还提供了一种DHCPv6服务器,该DHCPv6服务器能够保证自身所创建的ND表项的安全性。为达到上述目的,本发明的技术方案具体是这样实现的本发明公开了一种创建邻居发现ND表项的方法,该方法包括支持IPv6动态主机配置协议DHCPv6服务器生成合法前缀表,该合法前缀表中的合法前缀为DHCPv6服务器已分配的前缀;DHCPv6服务器接收重复地址检测邻居请求DADNS报文,根据该DADNS报文中的目的IP地址的前缀查询合法前缀表,判断是否为合法前缀,如果是合法前缀,则将该DADNS报文中的目的IP地址、源链路地址和接收该DADNS才艮文的4妄入点添加到地址绑定表中的一个表项中,且将该表项的状态置为初始状态;8DHCPv6服务器接收地址解析邻居请求NS/邻居通告NA报文,根据该地址解析NS/NA才艮文中的源IP地址、源链路地址以及接收该地址解析NS/NA报文的接入点查询查询地址绑定表;如果地址绑定表中存在一致的表项,且为初始状态,则将该表项的状态置为已知状态,并根据该地址解析NS/NA才艮文创建ND表项。本发明还公开了一种DHCPv6服务器,该DHCPv6服务器包括前缀表建立模块、存储模块、地址绑定表建立模块和ND表建立模块,其中,前缀表建立模块,用于生成合法前缀表并保存到存储模块中;所述合法前缀表中的合法前缀为DHCPv6服务器已分配的前缀;存储模块,用于保存合法前缀表、地址绑定表和ND表;地址绑定表建立纟莫块,用于接收重复地址;险测邻居请求DADNSl艮文,根据该DADNS报文中的目的IP地址的前缀查询合法前缀表,判断是否为合法前缀,如果是合法前缀,则将该DADNS报文中的目的IP地址、源链路地址和接收该DADNS报文的接入点添加到地址绑定表中的一个表项中,且将该表项的状态置为初始状态;ND表建立模块,用于接收地址解析邻居请求NS/邻居通告NA报文,根据该地址解析NS/NA报文中的源IP地址、源链路地址以及接收该地址解析NS/NA才艮文的接入点查询查询地址绑定表,如果地址绑定表中存在一致的表项,且为初始状态,则将该表项的状态置为已知状态,并根据该地址解析NS/NA报文创建ND表项。由上述技术方案可见,本发明这种DHCPv6服务器生成合法前缀表,该合法前缀表中的合法前缀为DHCPv6服务器已分配的前缀;DHCPv6服务器接收重复地址检测邻居请求DADNS报文,根据该DADNS报文中的目的IP地址的前缀查询合法前缀表,判断是否为合法前缀,'如果是合法前缀,则将该DADNS报文中的目的IP地址、源链路地址和接收该DADNS报文的接入点添加到地址绑定表中的一个表项中,且将该表项的状态置为初始状态;DHCPv6服务器接收地址解析邻居请求NS/邻居通告NA报文,根据该地址解析NS/NAl艮文中的源IP地址、源链路地址以及接收该地址解析NS/NA报文的接入点查询查询地址绑定表;如果地址绑定表中存在一致的表项,且为初始状态,则将该表项的状态置为已知状态,并根据该地址解析NS/NA报文创建ND表项的技术方案,根据已分配的合法前缀以及所侦听到的ND协议才艮文,保证了所创建的ND表项的安全性。图1是现有技术的地址解析过程的示意图2是现有技术中的重复地址检测过程的示意图3是本发明实施例一种创建ND表项的方法的流程图4是本发明实施例一种DHCPv6服务器的组成结构框图。具体实施例方式本发明的核心思想是.采用前缀分配方式实现地址分配的DHCPv6服务器,通过侦听ND报文以及自身分配的前缀,创建安全的ND表项,进而保证设备和网络的安全。为使本发明的目的、技术方案及优点更加清楚明白,以下参对本发明进一步i^细i兌明。图3是本发明实施例一种创建ND表项的方法的流程图。如图3所示,该方法包括以下步骤步骤301、DHCPv6服务器生成合法前缀表,该合法前缀表中的合法前缀为DHCPv6服务器已分配的前缀。在本发明的一个实施例中合法前缀表如表2所示:<table>tableseeoriginaldocumentpage10</column></row><table>表2如表2所示,合法前缀表的每个表项包括合法前缀、前缀公告发出时间和前缀生存期。DHCPv6服务器在一个前缀表项的前缀超出其对应的前缀生存期时,删除该前缀表项。此外,当DHCPv6服务器收到DHCP租约释放报文时,根据该DHCP租约释放报文所释放的前缀,删除合法前缀表中对应的表项。步骤302、DHCPv6服务器接收重复地址检测邻居请求DADNS报文,根据该DADNS报文中的目的IP地址的前缀查询合法前缀表,判断是否为合法前缀,如果是合法前缀,则将该DADNS报文中的目的IP地址、源链路地址和接收该DADNS报文的接入点添加到地址绑定表中的一个表项中,且将该表项的状态置为初始状态。本步骤中,DADNS报文的目的IP地址即为待进行冲突检测的IP地址。本步骤中,如果DADNS报文中的目的IP地址的前缀不是合法前缀,即合法前缀表中没有对应的前缀,则将该DADNS报文丢弃。即本发明实施例中只根据前缀合法的DADNS报文建立地址绑定表。在本发明实施例中的地址绑定表如表3所示IP地址链路地址接入点表项状态IP1LAIACPI碎刀士台IP2LA2ACP2表3如表3所示,地址绑定表的每一个表项包括网际协议IP地址、链路地址、接入点和表项状态。其中,链路地址为链路层协议的地址,如以太网中对应的链路地址;接入点为链路层连接点,如以太网中的端口等;表项状态在任意时刻取以下两种状态中的一种初始状态、已知状态。步骤303、DHCPv6服务器接收地址解析邻居请求NS/邻居通告NA报文,才艮据该地址解析NS/NA报文中的源IP地址、源链路地址以及接收该地址解析NS/NA报文的接入点查询查询地址绑定表;如果地址绑定表中存在一致的表项,且为初始状态,则将该表项的状态置为已知状态,并根据该地址解析NS/NA报文创建ND表项。ii本步骤中,DHCPv6服务器根据接收的地址解析NS/NA报文中的IP地址、4连路地址以及^妄收该地址解析NS/NA纟艮文的接入点查询查询地址绑定表时,如果地址绑定表中不存在一致的表项,则HCPv6服务器可以直接丢弃所接收的地址解析NS/NA报文,或者HCPv6服务器根据地址解析NS/NA报文创建低安全级别的ND表项,即将其老化时间设置为小于ND协议所规定的ND表项的老化时间,以最先删除这些低安全级别的ND表项。在本发明实施例中的ND表如表4所示<table>tableseeoriginaldocumentpage12</column></row><table>如表4所示,地址绑定表的每一个表项包括IP地址、链路地址和接入点。当然,表4只是ND表一个举例说明而以,HCPv6服务器也可以同现有技术一样,根据地址解析NS/NAl艮文中的其他信息在ND表项中添加其他的内容,如VLAN信息等。根据图3所示的方案创建的DHCPv6服务器的ND表项可以保证其安全性,进而可以保护设备和网络的安全性。在图3所示的创建ND表项的方法中,DHCPv6服务器还可以根据处于初始状态的地址绑定表项中的IP地址发送地址解析NS报文,如果接收到回应的NA报文,则将处于初始状态的地址绑定表项置为已知状态,并根据所回应的NA报文创建相应的ND表项。例如,当IP地址为IP1的地址绑定表项为初始状态时,DHCPv6服务器发送以IP1为目标地址的NS(具体才艮文封装可参见RFC4861,4.3节),如果DHCPv6服务器收到的回应所述NS的NA才艮文的链路地址和接入点与IP1的地址绑定表项中的链^各地址和接入点一致,则创建相应的ND表项。在图3所示的方案中,当合法前缀中的一个前缀的生存期到期时,DHCPv6服务器会从合法前缀表中删除该前缀的表项,此时,DHCPv6服务器还需要从地址绑定表和ND表中删除与该前缀匹配的表项。例如,合法前缀表中的前缀1的生存期到期,则DHCPv6服务器从合法前缀表中删除前缀1对应表项,并从地址绑定表和ND表中删除IP地址的前缀与前缀1匹配的所有表项。另外,当DHCPv6服务器收到DHCP租约释放报文时,会根据该DHCP租约释放报文所释放的前缀,删除合法前缀表中对应的表项,此时,DHCPv6服务器也需要删除地址绑定表和ND表中的与该释放的前缀匹配的表项。例如,DHCP租约释放报文所释放的前缀2,则DHCPv6服务器从合法前缀表中删除前缀2对应表项的同时,还从地址绑定表和ND表中删除IP地址的前缀与前缀2匹配的所有表项。在图3所示的方案中,由于DHCPv6服务器将所创建的ND表项的安全性是得到保证的,因此DHCPv6服务器可以将所创建的ND表项的老化时间设置为,大于ND协议所规定的ND表项的老化时间。至于比ND协议所规定的ND表项的老化时间大多少可以根据实际情况而定。下面基于上述实施例,给出本发明中的一种DHCPv6服务器的组成结构框图。图4是本发明实施例一种DHCPv6服务器的组成结构框图。如图4所示,该DHCPv6服务器包括前缀表建立模块401、存储模块402、地址绑定表建立模块403和ND表建立模块404,其中前缀表建立模块401,用于生成合法前缀表并保存到存储模块402中;所述合法前缀表中的合法前缀为DHCPv6服务器已分配的前缀;存储模块402,用于保存合法前缀表、地址绑定表和ND表;地址绑定表建立模块403,用于接收重复地址检测邻居请求DADNS报文,根据该DADNS报文中的目的IP地址的前缀查询合法前缀表,判断是否为合法前缀,如果是合法前缀,则将该DADNS报文中的目的IP地址、源链路地址和接收该DADNS才艮文的接入点添加到地址绑定表中的一个表项中,且将该表项的状态置为初始状态;ND表建立模块404,用于接收地址解析邻居请求NS/邻居通告NA才艮文,根据该地址解析NS/NA报文中的源IP地址、源链路地址以及接收该地址解析NS/NA报文的接入点查询查询地址绑定表,如果地址绑定表中存在一致的表项,且为初始状态,则将该表项的状态置为已知状态,并根据该地址解析NS/NA报文创建ND表项。在图4中,ND表建立模块404,进一步用于根据处于初始状态的地址绑定表项中的IP地址发送地址解析NS报文,如果接收到回应的NA报文,则将处于初始状态的地址绑定表项置为已知状态,并根据所回应的NA报文创建ND表项。在图4中,前缀表建立模块401,进一步用于在合法前缀中的一个前缀的生存期到期时,从合法前缀表中删除该前缀的表项,并将删除的前缀通知地址绑定表建立模块403和ND表建立模块404;还进一步用于在收到DHCP租约释放报文时,根据该DHCP租约释放报文所释放的前缀,删除合法前缀表中对应的前缀表项,并将删除的前缀通知地址绑定表建立才莫块403和ND表建立模块404。地址绑定表项建立模块403,进一步用于根据前缀表建立模块401所通知的前缀,从地址绑定表中删除与该前缀匹配的表项。ND表建立模块404,进一步用于根据前缀表建立模块401所通知的前缀,从ND表中删除与该前缀匹配的表项。在图4中,ND表建立模块404,进一步用于将所创建的ND表项的老化时间设置为,大于ND协议所规定的ND表项的老化时间。在图4中,ND表建立模块404,在接收地址解析邻居请求NS/邻居通告NA报文,根据该地址解析NS/NA报文中的源IP地址、源链路地址以及接收该地址解析NS/NA纟艮文的接入点查询查询地址绑定表时,如果地址绑定表中不存在一致的表项,则进一步用于,直接丟弃所接收的地址解析NS/NA报文,或者,根据地址解析NS/NA报文创建ND表项,并将其老化时间设置为小于ND协议所规定的ND表项的老化时间。综上所述,本发明这种DHCPv6服务器生成合法前缀表,该合法前缀表中的合法前缀为DHCPv6服务器已分配的前缀;DHCPv6服务器接收重复地址检测邻居请求DADNS报文,根据该DADNS报文中的目的IP地址的前缀查询合法前缀表,判断是否为合法前缀,如果是合法前缀,则将该DADNS才艮文中的目的IP地址、源链路地址和接收该DADNS才艮文的接入点添加到地址绑定表中的一个表项中,且将该表项的状态置为初始状态;DHCPv6服务器接收地址解析邻居请求NS/邻居通告NA报文,根据该地址解析NS/NA报文中的源IP地址、源链路地址以及接收该地址解析NS/NA报文的接入点查询查询地址绑定表;如果地址绑定表中存在一致的表项,且为初始状态,则将该表项的状态置为已知状态,并根据该地址解析NS/NA报文创建ND表项的技术方案,根据已分配的合法前缀以及所侦听到的ND协议报文,保证了所创建的ND表项的安全性。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求1、一种创建邻居发现ND表项的方法,其特征在于,该方法包括支持IPv6动态主机配置协议DHCPv6服务器生成合法前缀表,该合法前缀表中的合法前缀为DHCPv6服务器已分配的前缀;DHCPv6服务器接收重复地址检测邻居请求DADNS报文,根据该DADNS报文中的目的IP地址的前缀查询合法前缀表,判断是否为合法前缀,如果是合法前缀,则将该DADNS报文中的目的IP地址、源链路地址和接收该DADNS报文的接入点添加到地址绑定表中的一个表项中,且将该表项的状态置为初始状态;DHCPv6服务器接收地址解析邻居请求NS/邻居通告NA报文,根据该地址解析NS/NA报文中的源IP地址、源链路地址以及接收该地址解析NS/NA报文的接入点查询查询地址绑定表;如果地址绑定表中存在一致的表项,且为初始状态,则将该表项的状态置为已知状态,并根据该地址解析NS/NA报文创建ND表项。2、如权利要求l所述的方法,其特征在于,该方法进一步包括DHCPv6服务器根据处于初始状态的地址绑定表项中的IP地址发送地址解析NS报文,如果接收到回应的NA报文,则将处于初始状态的地址绑定表项置为已知状态,并根据所回应的NA才艮文创建ND表项。3、如权利要求1或2所述的方法,其特征在于,该方法进一步包括当合法前缀中的一个前缀的生存期到期时,DHCPv6服务器从合法前缀表中删除该前缀的表项,并从地址绑定表和ND表中删除与该前缀匹配的表项;当DHCPv6服务器收到DHCP租约释放报文时,根据该DHCP租约释放报文所释放的前缀,删除合法前缀表中对应的表项,以及删除地址绑定表和ND表中的该释放的前缀匹配的表项。4、如权利要求1或2所述的方法,其特征在于,该方法进一步包括DHCPv6服务器将所创建的ND表项的老化时间设置为,大于ND协议所规定的ND表项的老化时间。5、如权利要求1或2所述的方法,其特征在于,DHCPv6服务器根据接收的地址解析NS/NA报文中的IP地址、链^各地址以及接收该地址解析NS/NA报文的接入点查询查询地址绑定表时,如果地址绑定表中不存在一致的表项,则该方法进一步包括HCPv6服务器直接丢弃所接收的地址解析NS/NA报文;或者,根据地址解析NS/NA报文创建ND表项,并将其老化时间设置为小于ND协议所规定的ND表项的老化时间。6、一种DHCPv6服务器,其特征在于,该DHCPv6服务器包括前缀表建立模块、存储模块、地址绑定表建立模块和ND表建立模块,其中,前缀表建立模块,用于生成合法前缀表并保存到存储模块中;所述合法前缀表中的合法前缀为DHCPv6服务器已分配的前缀;存储模块,用于保存合法前缀表、地址绑定表和ND表;地址绑定表建立模块,用于接收重复地址检测邻居请求DADNS报文,根据该DADNS报文中的目的IP地址的前缀查询合法前缀表,判断是否为合法前缀,如果是合法前缀,则将该DADNS报文中的目的IP地址、源链路地址和接收该DADNS报文的接入点添加到地址绑定表中的一个表项中,且将该表项的状态置为初始状态;ND表建立模块,用于接收地址解析邻居请求NS/邻居通告NA报文,根据该地址解析NS/NA报文中的源IP地址、源链路地址以及接收该地址解析NS/NA报文的接入点查询查询地址绑定表,如果地址绑定表中存在一致的表项,且为初始状态,则将该表项的状态置为已知状态,并根据该地址解析NS/NA报文创建ND表项。7、如权利要求6所述的DHCPv6服务器,其特征在于,ND表建立模块,进一步用于根据处于初始状态的地址绑定表项中的IP地址发送地址解析NS报文,如果接收到回应的NA报文,则将处于初始状态的地址绑定表项置为已知状态,并根据所回应的NA报文创建ND表项。8、如权利要求6或7所述的DHCPv6服务器,其特征在于,前缀表建立模块,进一步用于在合法前缀中的一个前缀的生存期到期时,从合法前缀表中删除该前缀的表项,并将删除的前缀通知地址绑定表建立模块和ND表建立模块;进一步用于在收到DHCP租约释放报文时,根据该DHCP租约释放报文所释放的前缀,删除合法前缀表中对应的前缀表项,并将删除的前缀通知地址绑定表建立模块和ND表建立模块;地址绑定表项建立模块,进一步用于根据前缀表建立模块所通知的前缀,从地址绑定表中删除与该前缀匹配的表项;ND表建立模块,进一步用于根据前缀表建立模块所通知的前缀,从ND表中删除与该前缀匹配的表项。9、如权利要求6或7所述的DHCPv6服务器,其特征在于,所述ND表建立模块,进一步用于将所创建的ND表项的老化时间设置为,大于ND协议所规定的ND表项的老化时间。10、如权利要求6或7所述的DHCPv6服务器,其特征在于,所述ND表建立模块,在接收地址解析邻居请求NS/邻居通告NA报文,根据该地址解析NS/NA报文中的源IP地址、源链路地址以及接收该地址解析NS/NA报文的接入点查询查询地址绑定表时,如果地址绑定表中不存在一致的表项,则进一步用于,直接丢弃所接收的地址解析NS/NA报文,或者,根据地址解析NS/NA报文创建ND表项,并将其老化时间设置为小于ND协议所规定的ND表项的老化时间。全文摘要本发明公开了一种创建邻居发现ND表项的方法,包括DHCPv6服务器根据已分配的前缀生成合法前缀表;DHCPv6服务器根据接收的重复地址检测邻居请求DADNS报文和合法前缀表生成地址绑定表;DHCPv6服务器根据接收的地址解析邻居请求NS/邻居通告NA报文以及地址绑定表生成ND表。本发明还公开了一种DHCPv6服务器。本发明的技术方案能够保证DHCPv6服务器所创建的ND表项的安全性。文档编号H04L12/56GK101582888SQ20091008581公开日2009年11月18日申请日期2009年6月1日优先权日2009年6月1日发明者涛林申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1