05-SNMP配置
本章节下载: 05-SNMP配置 (304.63 KB)
目 录
设备运行于FIPS模式时,本特性的相关配置相对于非FIPS模式有所变化,具体差异请见本文相关描述。有关FIPS模式的详细介绍请参见“安全配置指导”中的“FIPS”。
SNMP(Simple Network Management Protocol,简单网络管理协议)是网络中管理设备和被管理设备之间的通信规则,它定义了一系列消息、方法和语法,用于实现管理设备对被管理设备的访问和管理。SNMP具有以下优势:
· 自动化网络管理。网络管理员可以利用SNMP平台在网络上的节点检索信息、修改信息、发现故障、完成故障诊断、进行容量规划和生成报告。
· 屏蔽不同设备的物理差异,实现对不同厂商产品的自动化管理。SNMP只提供最基本的功能集,使得管理任务分别与被管设备的物理特性和下层的联网技术相对独立,从而实现对不同厂商设备的管理,特别适合在小型、快速和低成本的环境中使用。
SNMP网络元素分为NMS和Agent两种。
· NMS(Network Management Station,网络管理站)是运行SNMP客户端程序的工作站,能够提供非常友好的人机交互界面,方便网络管理员完成绝大多数的网络管理工作。
· Agent是驻留在设备上的一个进程,负责接收、处理来自NMS的请求报文。在一些紧急情况下,如接口状态发生改变等,Agent也会主动通知NMS。
NMS是SNMP网络的管理者,Agent是SNMP网络的被管理者。NMS和Agent之间通过SNMP协议来交互管理信息。
SNMP提供四种基本操作:
· Get操作:NMS使用该操作查询Agent的一个或多个对象的值。
· Set操作:NMS使用该操作重新设置Agent数据库(MIB,Management Information Base)中的一个或多个对象的值。
· Trap操作:Agent使用该操作向NMS发送报警信息。
目前,设备的SNMP Agent支持SNMP v1、SNMP v2c和SNMP v3三种版本。
· SNMP v1采用团体名(Community Name)认证。团体名用来定义SNMP NMS和SNMP Agent的关系。如果SNMP报文携带的团体名没有得到设备的认可,该报文将被丢弃。团体名起到了类似于密码的作用,用来限制SNMP NMS对SNMP Agent的访问。
· SNMP v2c也采用团体名认证。它在兼容SNMP v1的同时又扩充了SNMP v1的功能:它提供了更多的操作类型(GetBulk和InformRequest);它支持更多的数据类型(Counter64等);它提供了更丰富的错误代码,能够更细致地区分错误。
· SNMP v3提供了基于用户的安全模型(USM,User-Based Security Model)的认证机制。用户可以设置认证和加密功能,认证用于验证报文发送方的合法性,避免非法用户的访问;加密则是对NMS和Agent之间的传输报文进行加密,以免被窃听。通过有无认证和有无加密等功能组合,可以为SNMP NMS和SNMP Agent之间的通信提供更高的安全性。
NMS和Agent成功建立连接的前提条件是NMS和Agent使用的SNMP版本必须相同。
任何一个被管理的资源都可以表示成一个对象,称为被管理对象。MIB(Management Information Base,管理信息库)是被管理对象的集合。它定义了对象之间的层次关系以及对象的一系列属性,比如对象的名字、访问权限和数据类型等。每个Agent都有自己的MIB。NMS根据权限可以对MIB中的对象进行读/写操作。NMS、Agent和MIB之间的关系如图1-1所示。
图1-1 NMS、Agent和MIB关系图
MIB是以树状结构进行存储的。树的节点表示被管理对象,它可以用从根开始的一条路径唯一地识别(OID)。如图1-2所示,被管理对象B可以用一串数字{1.2.1.1}唯一确定,这串数字是被管理对象的OID(Object Identifier,对象标识符)。
图1-2 MIB树结构
由于SNMP v3版本的配置和SNMP v1版本、SNMP v2c版本的配置有较大区别,所以下面分两种情况进行SNMP基本功能的配置介绍,详见表1-1和表1-2。
FIPS模式下不支持SNMPv1/v2c版本相关配置。
表1-1 配置SNMP基本参数(SNMP v3版本)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动SNMP Agent服务 |
snmp-agent |
可选 缺省情况下,SNMP Agent服务处于关闭状态 执行此命令或执行snmp-agent的任何一条配置命令(不含display命令),都可以启动SNMP Agent服务 |
设置系统信息 |
非FIPS模式下: snmp-agent sys-info { contact sys-contact | location sys-location | version { all | { v1 | v2c | v3 }* } } FIPS模式下: snmp-agent sys-info { contact sys-contact | location sys-location | version v3 } |
可选 缺省情况下,系统维护联系信息为“New H3C Technologies Co.,Ltd.”,物理位置信息为“Hangzhou, China”,版本为SNMP v3 |
设置本地SNMP实体的引擎ID |
snmp-agent local-engineid engineid |
可选 缺省为公司的企业号+设备信息 |
创建或更新MIB视图内容 |
snmp-agent mib-view { excluded | included } view-name oid-tree [ mask mask-value ] |
可选 缺省情况下,视图名为ViewDefault,OID为1 |
设置一个SNMP组 |
snmp-agent group v3 group-name [ authentication | privacy ] [ read-view read-view ] [ write-view write-view ] [ notify-view notify-view ] [ acl acl-number ] |
必选 |
计算用户给定明文密码通过加密算法处理后的密文密码 |
非FIPS模式下: snmp-agent calculate-password plain-password mode { 3desmd5 | 3dessha | md5 | sha } { local-engineid | specified-engineid engineid } FIPS模式下: snmp-agent calculate-password plain-password mode sha { local-engineid | specified-engineid engineid } |
可选 |
为一个SNMP组添加一个新用户 |
非FIPS模式下: snmp-agent usm-user v3 user-name group-name [ [ cipher ] authentication-mode { md5 | sha } auth-password [ privacy-mode { 3des | aes128 | des56 } priv-password ] ] [ acl acl-number ] FIPS模式下: snmp-agent usm-user v3 user-name group-name [ cipher ] [ authentication-mode sha auth-password [ privacy-mode aes128 priv-password ] ] [ acl acl-number ] |
必选 如果使用cipher参数,则后面的auth-password和priv-password都将被视为密文密码 |
设置Agent能接收/发送的SNMP消息包的最大长度 |
snmp-agent packet max-size byte-count |
可选 缺省情况下,Agent能接收/发送的SNMP消息包长度的最大值为1500字节 |
表1-2 配置SNMP基本参数(SNMP v1版本、SNMP v2c版本)
操作 |
命令 |
说明 |
||
进入系统视图 |
system-view |
- |
||
启动SNMP Agent服务 |
snmp-agent |
可选 缺省情况下,SNMP Agent服务处于关闭状态 执行此命令或执行snmp-agent的任何一条配置命令,都可以启动SNMP Agent服务 |
||
设置系统信息 |
snmp-agent sys-info { contact sys-contact | location sys-location | version { { v1 | v2c | v3 }* | all } } |
必选 缺省情况下,系统维护联系信息为“New H3C Technologies Co.,Ltd.”,物理位置信息为“Hangzhou, China”,版本为SNMP v3 |
||
设置本地SNMP实体的引擎ID |
snmp-agent local-engineid engineid |
可选 缺省为公司的企业号+设备信息 |
||
创建或更新MIB视图内容 |
snmp-agent mib-view { excluded | included } view-name oid-tree [ mask mask-value ] |
可选 缺省情况下,视图名为ViewDefault,OID为1 |
||
设置访问权限 |
直接设置 |
创建一个新的SNMP团体 |
snmp-agent community { read | write } community-name [ acl acl-number | mib-view view-name ]* |
二者必选其一 直接设置是以SNMP v1和v2c版本的团体名进行设置 间接设置采用与SNMP v3版本一致的命令形式,添加的用户到指定的组,即相当于SNMP v1和SNMP v2c版本的团体名,在NMS上配置的团体名需要跟Agent上配置的用户名一致 |
间接设置 |
设置一个SNMP组 |
snmp-agent group { v1 | v2c } group-name [ read-view read-view ] [ write-view write-view ] [ notify-view notify-view ] [ acl acl-number ] |
||
为一个SNMP组添加一个新用户 |
snmp-agent usm-user { v1 | v2c } user-name group-name [ acl acl-number ] |
|||
设置Agent能接收/发送的SNMP消息包的最大长度 |
snmp-agent packet max-size byte-count |
可选 缺省情况下,Agent能接收/发送的SNMP消息包长度的最大值为1500字节 |
· USM用户创建后是否有效,与设备的SNMP实体引擎ID有关,如果用户创建时的引擎ID和当前的引擎ID不同,则该用户当前无效。
· MIB视图是MIB的子集,由视图名和MIB子树来唯一确定一个MIB视图。视图名相同但包含的子树不同,则认为是不同的视图。除缺省视图外,用户最多可以创建16个MIB视图。
SNMP日志功能将记录NMS对SNMP Agent的GET和SET操作。当进行GET操作时,Agent会记录NMS用户的IP地址、GET操作的节点名和节点的OID。当进行SET操作时,Agent会记录NMS用户的IP地址、SET操作的节点名、节点的OID、设置的值以及SET操作返回的错误码和错误索引。这些日志将被发送到设备的信息中心,级别为informational,即作为设备的一般提示信息。通过设置信息中心的参数,最终决定SNMP日志的输出规则(即是否允许输出以及输出方向)。
SNMP日志记录GET请求、SET请求和SET响应信息,不记录GET响应信息。
表1-3 开启SNMP日志功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
打开SNMP日志开关 |
snmp-agent log { all | get-operation | set-operation } |
必选 缺省情况下,SNMP日志开关处于关闭状态 |
配置SNMP日志输出规则 |
info-center source { module-name | default } channel { channel-number | channel-name } [ debug { level severity | state state } * | log { level severity | state state } * | trap { level severity | state state } * ] * |
可选 缺省情况下,SNMP日志只会输出到日志主机(loghost)和日志文件(logfile)方向,如果要输出到别的方向(比如控制台、监视终端等)需要使用该命令配置 |
· 大量的日志记录会占用设备的存储空间,影响设备的性能。正常情况下,建议关闭SNMP日志功能。
· SNMP每条日志信息中记录的node域和value域的长度之和不能超过1024字节。否则,超出的部分将不输出。
· 有关系统信息、信息中心以及info-center source命令的详细介绍请参见“网络管理和监控配置指导”中的“信息中心配置”。
Trap是Agent主动向NMS发送的信息,用于报告一些紧急的重要事件(如被管理设备重新启动等)。Trap报文有两种:通用Trap和企业自定义Trap。设备支持的通用Trap包括authentication、coldstart、linkdown、linkup和warmstart五种,其它均为企业自定义Trap。企业自定义Trap由模块生成。因为Trap信息通常较多,会占用设备内存,从而影响设备性能,所以建议用户根据需要开启指定模块的Trap功能,生成相应的Trap报文。
开启Trap功能后,相应模块生成的Trap报文将被发送到设备的信息中心。信息中心有七个输出方向,缺省情况下,允许所有模块的所有Trap信息发往控制台(console)、监视终端(monitor)、日志主机(loghost)和日志文件(logfile);允许所有模块的高于等于warnings级别的Trap信息发往告警缓冲区(trapbuffer)和SNMP模块(snmpagent);日志缓冲区(logbuffer)方向不能发送Trap信息。可以根据各模块生成的Trap信息的级别设置信息中心参数,最终决定Trap报文的输出规则(即是否允许输出以及输出方向)。有关信息中心的配置请参见“网络管理和监控配置指导”中的“信息中心配置”。
表1-4 开启Trap功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
在全局下开启Trap功能 |
snmp-agent trap enable [ configuration | flash | standard [ authentication | coldstart | linkdown | linkup | warmstart ]* | stp [ tc ] | system ] |
可选 缺省情况下,各模块的Trap功能处于开启状态 |
进入接口视图 |
interface interface-type interface-number |
- |
在端口下开启端口状态变化的Trap功能 |
enable snmp trap updown |
可选 缺省情况下,端口下端口状态变化的Trap功能处于开启状态 |
· 如果要求端口在状态发生改变时生成端口linkUp/linkDown的Trap报文,需要在端口下和全局都开启端口状态变化的Trap功能。端口下开启请使用命令enable snmp trap updown,全局下开启请使用命令snmp-agent trap enable [ standard [ linkdown | linkup ] * ]。
· 要使各个模块生成相应的Trap报文,除了使用snmp-agent trap enable命令开启Trap功能,还可能与各个模块的配置有关,详情请参见各模块的相关描述。
如果要将Trap发送给NMS,则需要进行以下配置准备:
· 完成SNMP基本配置(包括版本设置,如果使用SNMP v1和v2c版本需要设置团体名;如果使用SNMP v3版本需要设置用户名和MIB视图。这些参数的配置必须和NMS上的配置相同)。
· 设备与NMS建立连接,能够互相操作。
当Trap报文发送到SNMP模块后,SNMP模块将Trap报文存在消息队列里,用户可以设置该队列的长度、Trap报文在队列里的保存时间,也可以将报文发送给指定的目标主机(通常为NMS)等。
表1-5 配置Trap报文发送参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置Trap目标主机属性 |
非FIPS模式下: snmp-agent target-host trap address udp-domain { ip-address | ipv6 ipv6-address } [ udp-port port-number ] params securityname security-string [ v1 | v2c | v3 [ authentication | privacy ] ] FIPS模式下: snmp-agent target-host trap address udp-domain { ip-address | ipv6 ipv6-address } [ udp-port port-number ] params securityname security-string v3 [ authentication | privacy ] |
可选 如果要将Trap信息发送给NMS,该步骤为必选,并将ip-address指定为NMS的IP地址 |
设置发送Trap报文中的源地址 |
snmp-agent trap source interface-type interface-number |
可选 |
对RFC定义的标准linkUp/linkDown Trap报文进行私有扩展 |
snmp-agent trap if-mib link extended |
可选 缺省情况下,使用的是RFC定义的标准linkUp/linkDown Trap报文 |
设置Trap报文发送队列的长度 |
snmp-agent trap queue-size size |
可选 缺省情况下,Trap报文的消息队列最多可以存储100条Trap消息 |
设置Trap报文的保存时间 |
snmp-agent trap life seconds |
可选 缺省情况下,Trap报文的保存时间为120秒 |
· 对linkUp/linkDown Trap报文进行私有扩展后,设备生成和发送的linkUp/linkDown Trap报文将由RFC定义的标准linkUp/linkDown Trap报文后追加接口描述和接口类型信息构成。如果NMS不支持该扩展报文,请禁用私有扩展功能,使设备发送标准的linkUp/linkDown Trap报文。
· 当Trap报文的发送队列满,又收到新的Trap信息时,则系统会自动删除最先收到的Trap报文。
· Trap报文的保存时间到达时,系统会自动删除该Trap报文。
在完成上述配置后,在任意视图下执行display命令,均可以显示配置后SNMP的运行情况,通过查看显示信息,来验证配置的效果。
表1-6 SNMP显示和维护
操作 |
命令 |
显示系统维护联络信息、系统位置信息及SNMP版本信息 |
display snmp-agent sys-info [ contact | location | version ] * [ | { begin | exclude | include } regular-expression ] |
显示SNMP报文统计信息 |
display snmp-agent statistics [ | { begin | exclude | include } regular-expression ] |
显示设备的SNMP实体引擎ID |
display snmp-agent local-engineid [ | { begin | exclude | include } regular-expression ] |
显示SNMP组信息 |
display snmp-agent group [ group-name ] [ | { begin | exclude | include } regular-expression ] |
显示Trap消息队列的基本信息 |
display snmp-agent trap queue [ | { begin | exclude | include } regular-expression ] |
显示系统当前可以发送Trap消息的模块及其Trap消息的使能状态 |
display snmp-agent trap-list [ | { begin | exclude | include } regular-expression ] |
显示SNMP v3用户信息 |
display snmp-agent usm-user [ engineid engineid | username user-name | group group-name ] * [ | { begin | exclude | include } regular-expression ] |
显示SNMP v1或SNMP v2c团体信息(FIPS模式下不支持该命令) |
display snmp-agent community [ read | write ] [ | { begin | exclude | include } regular-expression ] |
显示MIB视图的信息 |
display snmp-agent mib-view [ exclude | include | viewname view-name ] [ | { begin | exclude | include } regular-expression ] |
· NMS与Agent通过以太网相连,NMS的IP地址为1.1.1.2/24,Agent的IP地址为1.1.1.1/24。
· NMS通过SNMP v1或者SNMP v2c对Agent进行监控管理,Agent在故障或者出错的时候能够主动向NMS报告情况。
(1) 配置Agent
# 配置Agent的IP地址为1.1.1.1/24,并确保Agent与NMS之间路由可达。(配置步骤略)
# 设置SNMP基本信息,包括版本、团体名。
<Sysname> system-view
[Sysname] snmp-agent sys-info version v1 v2c
[Sysname] snmp-agent community read public
[Sysname] snmp-agent community write private
# 设置交换机的联系人和位置信息,以方便维护。
[Sysname] snmp-agent sys-info contact Mr.Wang-Tel:3306
[Sysname] snmp-agent sys-info location telephone-closet,3rd-floor
# 允许向网管工作站(NMS)1.1.1.2/24发送Trap报文,使用的团体名为public。
[Sysname] snmp-agent trap enable
[Sysname] snmp-agent target-host trap address udp-domain 1.1.1.2 params securityname public v1
snmp-agent target-host命令中的指定的版本必须和NMS上运行的SNMP版本一致,如果NMS上运行的是SNMP v2c版本,则需要将snmp-agent target-host命令中的版本参数设置为v2c。否则,网管站将收不到Trap信息。
(2) 配置NMS
在使用SNMP v1/v2c版本的NMS上需要设置“只读团体名”和“读写团体名”。另外,还要设置“超时”时间和“重试次数”。用户可利用网管系统完成对设备的查询和配置操作,具体情况请参考NMS的配套手册。
网管侧的配置必须和设备侧保持一致,否则无法进行相应操作。
(3) 结果验证
· 通过以上配置,NMS可以和设备建立SNMP连接,能够通过MIB节点查询、设置设备上某些参数的值。
· 对设备上某个空闲的接口执行shutdown/undo shutdown操作,NMS上将看到相应的Trap信息。
· NMS与Agent通过以太网相连,NMS的IP地址为1.1.1.2/24,Agent的IP地址为1.1.1.1/24。
· NMS通过SNMP v3只能对Agent的接口状态进行监控管理,Agent在故障或者出错的时候能够主动向NMS报告情况,NMS接收Trap的端口号为5000。
· NMS与Agent建立SNMP连接时,需要认证,认证协议为MD5,密码为authkey。NMS与Agent之间传输的SNMP报文需要加密,使用的加密协议为DES,加密密码为prikey。
(1) 配置Agent
# 配置Agent的IP地址为1.1.1.1/24,并确保Agent与NMS之间路由可达。(配置步骤略)
# 设置访问权限:用户只能读写节点interfaces(OID为1.3.6.1.2.1.2)下的对象,不可以访问其它MIB对象。使用的用户名为managev3user,认证方式为MD5,认证密码为authkey,加密算法为DES56,加密密码是prikey。
<Sysname> system-view
[Sysname] undo snmp-agent mib-view ViewDefault
[Sysname] snmp-agent mib-view included test interfaces
[Sysname] snmp-agent group v3 managev3group read-view test write-view test
[Sysname] snmp-agent usm-user v3 managev3user managev3group authentication-mode md5 authkey privacy-mode des56 prikey
# 设置设备的联系人和位置信息,以方便维护。
[Sysname] snmp-agent sys-info contact Mr.Wang-Tel:3306
[Sysname] snmp-agent sys-info location telephone-closet,3rd-floor
# 允许向网管工作站(NMS)1.1.1.2/24发送Trap报文,使用的用户名为managev3user。
[Sysname] snmp-agent trap enable
[Sysname] snmp-agent target-host trap address udp-domain 1.1.1.2 params securityname managev3user v3 privacy
(2) 配置NMS
SNMP v3采用认证和加密的安全机制,在NMS上需要设置用户名,选择安全级别。根据不同的安全级别,需要分别设置认证方式、认证密码、加密方式、加密密码等。另外,还要设置“超时”时间和“重试次数”。用户可利用网管系统完成对设备的查询和配置操作,具体情况请参考NMS的配套手册。
NMS侧的配置必须和设备侧保持一致,否则无法进行相应操作。
(3) 结果验证
· 通过以上配置,NMS可以和设备建立SNMP连接,能够通过MIB节点查询、设置设备上某些参数的值。
· 对设备上某个空闲的接口执行shutdown/undo shutdown操作,NMS上将看到相应的Trap信息。
· NMS与Agent通过以太网相连,NMS的IP地址为1.1.1.2/24,Agent的IP地址为1.1.1.1/24。
· 在Agent上配置SNMP日志功能,以便记录NMS对Agent进行了哪些操作。
图1-5 配置SNMP日志组网图
# 打开控制台对日志信息的显示功能(此步骤可省略,缺省为该功能是开启的)。
<Sysname> terminal monitor
<Sysname> terminal logging
# 配置信息中心允许输出级别高于等于informational的系统信息到Console口。
<Sysname> system-view
[Sysname] info-center source snmp channel console log level informational
# 打开Agent的SNMP日志开关,对NMS的GET和SET操作进行记录。
[Sysname] snmp-agent log get-operation
[Sysname] snmp-agent log set-operation
· NMS对Agent进行GET操作时,可以在控制台上看到如下日志信息。
%Jan 1 02:49:40:566 2006 Sysname SNMP/6/GET:
seqNO = <10> srcIP = <1.1.1.2> op = <get> node = <sysName(1.3.6.1.2.1.1.5.0)> value=<>
· NMS对Agent进行SET操作,可以在控制台上看到如下日志信息。
%Jan 1 02:59:42:576 2006 Sysname SNMP/6/SET:
seqNO = <11> srcIP = <1.1.1.2> op = <set> errorIndex = <0> errorStatus =<noError> node = <sysName(1.3.6.1.2.1.1.5.0)> value = <Sysname>
表1-7 SNMP日志输出信息描述表
字段 |
描述 |
Jan 1 02:49:40:566 2006 |
表示SNMP日志生成的时间 |
seqNO |
表示该SNMP日志的编号(系统会对记录的SNMP日志进行自动编号,编号从0开始) |
srcIP |
NMS的IP地址 |
op |
表示SNMP操作类型(GET或者SET) |
node |
SNMP操作节点的名称和实例的OID |
errorIndex |
错误索引(其中0表示没有错误) |
errorstatus |
错误状态(其中noError表示没有错误) |
value |
SET操作时设置的值(GET操作时此域为空,表示不记录GET操作获取的值) 当设置的值为字符串,而且字符串中包含编码范围超出了ASCII 0~127或者不可显示的字符时,则以十六进制的方式显示整个字符串,形如:value = <81-43>[hex] |
信息中心的系统信息可以输出到控制台或日志缓冲区等方向。本举例是将SNMP日志信息输出到控制台,如果要配置别的输出方向,请参见“网络管理和监控配置指导”中的“信息中心配置”。
H3C私有MIB有两种风格,一种设备sysOID在H3C企业ID 25506下,私有MIB在企业ID 2011下的MIB,称为H3C兼容风格MIB;一种设备sysOID与私有MIB均在H3C企业ID 25506下的MIB,称为H3C新风格MIB。这两种风格的MIB在管理功能上完全一致,区别仅在于根节点不同。设备在出厂前都会加载好MIB,设备型号不同,可能MIB风格不同。为了支持NMS对设备的灵活管理,设备提供了MIB风格配置功能,即用户可以任意切换MIB的两种风格,但需要保证设备的MIB风格和NMS的MIB风格一致,NMS才能顺利配套管理设备。
表2-1 设置MIB风格
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置设备的MIB风格 |
mib-style [ new | compatible ] |
可选 缺省情况下,设备的MIB风格为new |
修改设备的MIB风格后需要重启设备才会生效。所以,建议在设置MIB风格后,马上重启设备,以保证MIB风格修改生效。
在完成上述配置后,在任意视图下执行display命令,均可以显示配置后MIB的风格,通过查看显示信息,来验证配置的效果。
表2-2 SNMP显示和维护
操作 |
命令 |
查询设备的MIB风格 |
display mib-style [ | { begin | exclude | include } regular-expression ] |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!