【计算机网络】配置NAT

名词解释

静态转换 (Static Nat) 是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。

动态转换 (Dynamic Nat) 是指将内部网络的私有IP地址转换为公用IP地址时,IP地址对是不确定的,而是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。

内部本地地址 转换前的源主机内部地址

内部全局地址 在外网中源主机的地址。是真实的Internet地址

外部本地地址 外网中主机的内部本地地址。

外部全局地址 外部主机地址,同样是真实的Internet地址

网段分布
在如下范围内的地址可以作为内网地址分配

网段类型网段范围
A类地址10.0.0.0–10.255.255.255
B类地址172.16.0.0–172.31.255.255
C类地址192.168.0.0–192.168.255.255

网络拓扑

在这里插入图片描述
在这里插入图片描述样例组网如图所示,由2台MSR3020(RTA、RTB)路由器、2台S3610(SW1、SW2)交换机、3台PC(Client_A、Client_B、Server)组成。

Client_A、Client_B位于私网,网关为RTA,RTA同时为NAT设备,有1个私网接口(G0/0)和1个公网接口(G0/1),公网接口与公网路由器RTB互连。Server位于公网,网关为RTB。

本组网模拟了实际组网中涉及的几种NAT主要应用。Easy IP配置最为简单,一般用于拨号接入互联网的场合;Basic NAT不如NAPT普及;NAPT可以提高公网IP的利用效率,适用于私网作为客户端访问公网服务器的场合;NAT Server则用于私网需要对公网提供服务的场合。

配置Basic NAT

搭建环境

首先,依照图示搭建环境,完成路由器RTA与RTB的接口IP地址的配置。为了对去往Server的数据包提供路由,在私网出口路由器RTA上需要配置一条静态路由,指向公网路由器RTB,下一跳为RTB的接口G0/0。这时RTA应该能ping 通Server。配置主机Client_A的IP地址为10.0.0.1/24,网关为10.0.0.254;配置主机Client_B的IP地址为10.0.0.2/24,网关为10.0.0.254。

基本配置

完成IP地址、路由等基本配置。

[RTA]interface G0/0
[RTA-GigabitEthernet0/0]ip address 10.0.0.254 24
[RTA-GigabitEthernet0/0]interface G 0/1
[RTA-GigabitEthernet0/1]ip address 198.76.28.1 24
[RTA-GigabitEthernet0/1]ip route-static 0.0.0.0 0 198.76.28.2

[RTB]interface G0/0
[RTB-GigabitEthernet0/0]ip address 198.76.28.2 24
[RTB-GigabitEthernet0/0]interface G 0/1
[RTB-GigabitEthernet0/1]ip address 198.76.29.1 24

检查连通性

分别在Client_A和Client_B上ping Server(IP地址为198.76.29.4)。显示如下:

C:\>ping 198.76.29.4

Pinging 198.76.29.4 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 198.76.29.4:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

结果显示,从Client_A、Client_B无法ping通Server。这是因为在公网路由器上不可能有私网的路由,从Server回应的ping 响应报文到RTB的路由表上无法找到10.0.0.0网段的路由。

配置Basic NAT

Basic NAT是一种1:1映射的NAT,其基本原理如下:私网是一个单出口网络(stub network),与公网的接口处做地址转换。NAT的公网一侧分配有一个地址段的“合法”IP,私网一侧则分配保留IP。地址映射关系可以静态配置,也可以动态绑定。私网访问公网的数据报文经过NAT时,源IP地址被改写成所映射的公网IP地址;公网到私网的数据报文经NAT时,目的IP地址被改写成映射的私网IP地址。也就是说,通过Basic NAT 内网和外网的IP地址能够被自动地转换,对用户透明。

采用静态配置的方式,必须保证公网IP数目与私网IP数目一样多,否则没有被配置的私网IP地址将不能访问公网。动态绑定方式则要灵活得多,公网IP的数量可以少于私网IP的数量,当有较多用户同时访问公网时,公网IP可能不足,会导致部分访问的请求失败。管理员可以根据私网中对公网访问的最大并发数来配置公网IP地址数。此外,其它的一些管理措施也能增加对公网IP地址的使用率,比如:限制用户对公网IP的绑定时间,以及解除长期为使用的IP绑定。

在RTA上配置Basic NAT:

#通过acl定义一条源地址属于10.0.0.0/24网段的流
[RTA]acl basic 2000 
[RTA-acl-basic-2000]rule 0 permit source 10.0.0.0 0.0.0.255
#配置NAT地址池1,地址池中的用于地址转换的地址从198.76.28.11到198.76.28.20共十个
[RTA]nat address-group 1
address 198.76.28.11 198.76.28.20
#进入接口模式视图
[RTA]interface G0/1
#将地址池1与ACL 2000关联,并在接口上下发,方向为出方向
[RTA-GigabitEthernet0/1]nat outbound 2000 address-group 1 no-pat 

由配置可见,在RTA上配置了公网地址池address-group 1,地址范围为198.76.28.11~198.76.28.20。参数no-pat表示使用一对一的地址转换,只转换数据包的地址而不转换端口信息。此时路由器RTA会对该接口上出方向并且匹配acl 2000的流量做地址转换。

检查连通性

从Client_A、Client_B分别ping Server,能够ping通:

C:\>ping 198.76.29.4

Pinging 198.76.29.4 with 32 bytes of data:

Reply from 198.76.29.4: bytes=32 time<1ms TTL=126
Reply from 198.76.29.4: bytes=32 time<1ms TTL=126
Reply from 198.76.29.4: bytes=32 time=1ms TTL=126
Reply from 198.76.29.4: bytes=32 time<1ms TTL=126

Ping statistics for 198.76.29.4:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 1ms, Average = 0ms

检查NAT表项

完成上一步骤后,立即在RTA上检查NAT表项:

<RTA>display nat session                                                   
                                                                                
There are currently 4 NAT sessions:                                      
                                                                                
Protocol      GlobalAddr  Port      InsideAddr  Port        DestAddr  Port     
       -    198.76.28.11   ---        10.0.0.2   ---             ---   ---      
 VPN:  0,        status: NOPAT,        TTL: 00:04:00,       Left: 00:04:00     
                                                                                
       -    198.76.28.12   ---        10.0.0.1   ---             ---   ---      
 VPN:  0,        status: NOPAT,        TTL: 00:04:00,       Left: 00:03:59     
                                                                                
       1    198.76.28.12  1024        10.0.0.1  1024     198.76.29.4  1024      
 VPN:  0,        status: NOPAT,        TTL: 00:01:00,       Left: 00:00:59     

       1    198.76.28.11   512        10.0.0.2   512     198.76.29.4   512      
 VPN:  0,        status: NOPAT,        TTL: 00:01:00,       Left: 00:01:00   

从显示信息中可以看出,该ICMP报文的源地址10.0.0.1已经转换成公网地址198.76.28.12,目的端口号和源端口号均为1024。源地址10.0.0.2已经转换成公网地址198.76.28.11,目的端口号和源端口号均为512。一分钟以后再次观察此表项,发现表中后两项消失了,四分钟以后再次观察,发现表项全部消失,显示如下:

<RTA>display nat session                                                        
                                                                                
No NAT sessions are currently active!  

这是因为NAT表项具有一定的老化时间(aging-time),一旦超过老化时间,NAT会删除表项。前两条由系统为配置建立的NAT表项,老化时间为4分钟,后两项五元组表项由流触发而建立的,老化时间为1分钟。
可以通过命令display nat aging-time查看路由器的NAT默认老化时间:

<RTA>display nat aging-time          无此命令                                                
NAT aging-time value information:                                               
       tcp ---- aging-time value is  86400 (seconds)                            
       udp ---- aging-time value is    300 (seconds)                            
      icmp ---- aging-time value is     60 (seconds)                            
      pptp ---- aging-time value is  86400 (seconds)                            
       dns ---- aging-time value is     60 (seconds)                            
   tcp-fin ---- aging-time value is     60 (seconds)                            
   tcp-syn ---- aging-time value is   3600 (seconds)                            
  ftp-ctrl ---- aging-time value is   7200 (seconds)                            
  ftp-data ---- aging-time value is    300 (seconds)   

如有必要,还可以通过命令nat aging-time对NAT老化时间进行修改。
除此之外,还可以观察NAT的调试信息,显示如下:

<RTA>terminal monitor                                                           
% Current terminal monitor is on.                                       
<RTA>terminal debugging                                                         
% Current terminal debugging is on.  
<RTA>debugging nat packet                                                       
  NAT packet debugging is enabled                                               
<RTA>                                                                           
*May 16 08:56:47:713 2009 RTA NAT/7/debug:                                      
(GigabitEthernet0/1-out :)Pro : ICMP                                            
(       10.0.0.1: 1024 -     198.76.29.4: 1024) ------>                         
(   198.76.28.12: 1024 -     198.76.29.4: 1024)                                 
*May 16 08:56:47:714 2009 RTA NAT/7/debug:                                      
(GigabitEthernet0/1-in  :)Pro : ICMP                                            
(    198.76.29.4: 1024 -    198.76.28.12: 1024) ------>                         
(    198.76.29.4: 1024 -        10.0.0.1: 1024)                                 
*May 16 08:56:47:746 2009 RTA NAT/7/debug:                                      
(GigabitEthernet0/1-out :)Pro : ICMP                                            
(       10.0.0.2:  512 -     198.76.29.4:  512) ------>                         
(   198.76.28.11:  512 -     198.76.29.4:  512)                                 
*May 16 08:56:47:746 2009 RTA NAT/7/debug:                                      
(GigabitEthernet0/1-in  :)Pro : ICMP                                            
(    198.76.29.4:  512 -    198.76.28.11:  512) ------>                         
(    198.76.29.4:  512 -        10.0.0.2:  512)                                 
*May 16 08:56:48:715 2009 RTA NAT/7/debug:                                      
(GigabitEthernet0/1-out :)Pro : ICMP                                            
(       10.0.0.1: 1024 -     198.76.29.4: 1024) ------>                         
(   198.76.28.12: 1024 -     198.76.29.4: 1024)                                 
*May 16 08:56:48:715 2009 RTA NAT/7/debug:                                      
(GigabitEthernet0/1-in  :)Pro : ICMP                                            
(    198.76.29.4: 1024 -    198.76.28.12: 1024) ------>                         
(    198.76.29.4: 1024 -        10.0.0.1: 1024)                                 
*May 16 08:56:48:743 2009 RTA NAT/7/debug:                                      
(GigabitEthernet0/1-out :)Pro : ICMP                                            
(       10.0.0.2:  512 -     198.76.29.4:  512) ------>                         
(   198.76.28.11:  512 -     198.76.29.4:  512)                                 
*May 16 08:56:48:743 2009 RTA NAT/7/debug:                                      
(GigabitEthernet0/1-in  :)Pro : ICMP                                            
(    198.76.29.4:  512 -    198.76.28.11:  512) ------>                         
(    198.76.29.4:  512 -        10.0.0.2:  512)         

上述调试信息中的前两个转换信息表明:在GigabitEthernet0/1-out 方向,ICMP报文的源地址10.0.0.1转换成198.76.28.12且端口都为1024;同时在GigabitEthernet0/1-in方向,ICMP报文源地址198.76.29.4转换成10.0.0.1且端口都为1024。

恢复配置

在RTA上删除Basic NAT相关配置。

#删除NAT地址池
[RTA]undo nat address-group 1
#在接口下删除NAT绑定
[RTA]interface G0/1
[RTA-GigabitEthernet0/1]undo nat outbound 2000 address-group 1 no-pat

NAPT配置

NAPT是一种“一对多”的地址映射方法,公网IP只有一个,与之映射的私网IP若干,因此只得把传输层的TCP/UDP端口或者ICMP的Identifier也加入进来,以(私网地址, 本地传输层端口号)——(公网地址, 分配的传输层端口号)。

私网客户端Client_A、 Client_B需要访问公网服务器Server,但由于公网地址有限,在RTA上配置的公网地址池范围为198.76.28.11~198.76.28.11,因此配置NAPT,动态地为Client_A、Client_B分配公网地址和协议端口。

搭建环境

[RTA]interface G0/0
[RTA-GigabitEthernet0/0]ip address 10.0.0.254 24
[RTA-GigabitEthernet0/0]interface G 0/1
[RTA-GigabitEthernet0/1]ip address 198.76.28.1 24
[RTA-GigabitEthernet0/1]ip route-static 0.0.0.0 0 198.76.28.2

[RTB]interface G0/0
[RTB-GigabitEthernet0/0]ip address 198.76.28.2 24
[RTB-GigabitEthernet0/0]interface G 0/1
[RTB-GigabitEthernet0/1]ip address 198.76.29.1 24

检查连通性

从Client_A、Client_B ping Server(IP地址为198.76.29.4),显示如下:

C:\>ping 198.76.29.4

Pinging 198.76.29.4 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 198.76.29.4:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss)

结果显示,从Client_A、Client_B无法ping通Server。

配置NAPT

在RTA上完成NAPT相关配置:

#通过acl定义一条源地址属于10.0.0.0/24网段的流
[RTA]acl number basic2000
[RTA-acl-basic-2000]rule 0 permit 10.0.0.0 0.0.0.255
#配置NAT地址池1,地址池中只放入一个地址198.76.28.11
[RTA-acl-basic-2000]nat address-group 1 198.76.28.11 198.76.28.11
[RTA]nat address-group 1
address 198.76.28.11 198.76.28.11
#在接口视图下将NAT地址池与acl 2000绑定并下发
[RTA]interface G0/1
[RTA-GigabitEthernet0/1]nat outbound 2000 address-group 1

此时未携带no-pat关键字( 配置Basic NAT 的命令为[RTA-GigabitEthernet0/1]nat outbound 2000 address-group 1 no-pat),意味着NAT要对数据包进行端口的转换。

检查连通性

从Client_A、Client_B上分别ping Server,能够ping通:

C:\>ping 198.76.29.4

Pinging 198.76.29.4 with 32 bytes of data:

Reply from 198.76.29.4: bytes=32 time=12ms TTL=126
Reply from 198.76.29.4: bytes=32 time=1ms TTL=126
Reply from 198.76.29.4: bytes=32 time=1ms TTL=126
Reply from 198.76.29.4: bytes=32 time=1ms TTL=126

Ping statistics for 198.76.29.4:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 1ms, Maximum = 12ms, Average = 3ms

检查NAT表项

完成上一步骤后,立即在RTA上检查NAT表项:

<RTA>display nat session                                                        
                                                                                
There are currently 2 NAT sessions:                                             
                                                                                
Protocol      GlobalAddr  Port      InsideAddr  Port        DestAddr  Port      
       1    198.76.28.11 12289        10.0.0.1  1024     198.76.29.4  1024      
 VPN:  0,        status:    11,        TTL: 00:01:00,       Left: 00:00:59      
                                                                                
       1    198.76.28.11 12288        10.0.0.2   512     198.76.29.4   512      
 VPN:  0,        status:    11,        TTL: 00:01:00,       Left: 00:00:51      

从表项中可以看到源地址10.0.0.1和10.0.0.2都转换成同一个公网地址198.76.28.11,所不同的是转换后的端口,10.0.0.1转换后的端口为12289,10.0.0.2转换后的端口为12288。当RTA出接口收到目的地址为198.76.28.11的回程流量时,正是用当初转换时赋予的不同的端口来分辩该流量是转发给10.0.0.1还是10.0.0.2。NAPT正是靠这种方式,对数据包的IP层和传输层信息同时进行转换,显著地提高公有IP地址的利用效率。

恢复配置

在RTA上删除 NAPT相关配置:
[RTA]undo nat address-group 1
[RTA]interface G0/1
[RTA-GigabitEthernet0/1]undo nat outbound 2000 address-group 1

Easy IP配置

Easy IP是指进行地址转换时直接使用NAT路由器的出口(外部网络接口)的公有IP地址作为转换后的源地址,能够最大程度的节省IP地址资源。它同样也可以利用ACL控制哪些内部地址可以进行地址转换,但无需配置NAT地址池。

私网客户端Client_A、Client_B需要访问公网服务器Server,使用公网接口IP地址动态为Client_A、Client_B分配公网地址和协议端口。

搭建环境

[RTA]interface G0/0
[RTA-GigabitEthernet0/0]ip address 10.0.0.254 24
[RTA-GigabitEthernet0/0]interface G 0/1
[RTA-GigabitEthernet0/1]ip address 198.76.28.1 24
[RTA-GigabitEthernet0/1]ip route-static 0.0.0.0 0 198.76.28.2

[RTB]interface G0/0
[RTB-GigabitEthernet0/0]ip address 198.76.28.2 24
[RTB-GigabitEthernet0/0]interface G 0/1
[RTB-GigabitEthernet0/1]ip address 198.76.29.1 24

检查连通性

从Client_A、Client_B ping Server(IP地址为198.76.29.4),显示如下:

C:\>ping 198.76.29.4

Pinging 198.76.29.4 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 198.76.29.4:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss)

结果显示,从Client_A、Client_B无法ping通Server。

配置Easy IP

在RTA上完成Easy IP相关配置:

#通过acl定义一条源地址属于10.0.0.0/24网段的流
[RTA]acl number basic 2000
[RTA-acl-basic-2000]rule 0 permit 10.0.0.0 0.0.0.255
#在接口视图下将acl 2000与接口关联下发NAT
[RTA]interface G0/1
[RTA-GigabitEthernet0/1]nat outbound 2000

检查连通性

从Client_A、Client_B分别ping Server,能够ping通。

检查NAT表项

完成上一步骤后,立即在RTA上检查NAT表项。

<RTA>display nat session                                                        
                                                                                
There are currently 2 NAT sessions:                                             
                                                                                
Protocol      GlobalAddr  Port      InsideAddr  Port        DestAddr  Port      
       1     198.76.28.1 12290        10.0.0.1  1024     198.76.29.4  1024      
 VPN:  0,        status:    11,        TTL: 00:01:00,       Left: 00:00:29      
                                                                                
       1     198.76.28.1 12289        10.0.0.2   512     198.76.29.4   512      
 VPN:  0,        status:    11,        TTL: 00:01:00,       Left: 00:00:26      

从显示信息中可以看到,源地址10.0.0.1和10.0.0.2都转换为RTA的出接口地址198.76.28.1。
请思考一个问题:完成NAT配置后,从Client_A能够ping通Server,但是如果从Server端ping Client_A呢?ping命令结果显示如下:

C:\Documents and Settings\user>ping 10.0.0.1

Pinging 10.0.0.1 with 32 bytes of data:

Reply from 198.76.29.1: Destination host unreachable.
Reply from 198.76.29.1: Destination host unreachable.
Reply from 198.76.29.1: Destination host unreachable.
Reply from 198.76.29.1: Destination host unreachable.

Ping statistics for 10.0.0.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

结果显示Server不能ping通Client_A。为什么呢?
仔细思考,不难发现在RTA上始终没有10.0.0.0/24网段的路由,所以Server直接ping Client_A是不可达的。而Client_A能ping通Server是因为,由Server回应的ICMP回程报文源地址是Server的地址198.76.29.4,但是目的地址是RTA的出接口地址198.76.28.1,而不是Client_A的实际源地址10.0.0.1。也就是说这个ICMP连接必须是由Client端来发起连接,触发RTA做地址转换后转发。还记得我们在RTA出接口Eth 0/1下发NAT配置时的那个outbound吗?NAT操作是在出方向使能有效。所以,如果从Server端始发ICMP报文ping Client端,是无法触发RTA做地址转换的。
那么,要想让Server端能够ping通Client_A,应该怎么做呢?在NAT Server的配置中,可以找到答案。

NAT Server配置

Client_A需要对外提供ICMP服务,在RTA上为Client_A静态映射公网地址和协议端口,公网地址为198.76.28.11。

检查连通性

从Server ping Client_A的私网地址10.0.0.1,无法ping通。

配置NAT Server

在RTA上完成NAT Server相关配置。

[RTB]interface G0/1
#在出接口上将私网服务器地址和公网地址做一对一NAT映射
[RTB-GigabitEthernet0/1]nat server protocol icmp global 198.76.28.11 inside 10.0.0.1

检查连通性

从Server主动ping Client_A的公网地址198.76.28.11,能够ping通。

C:\Documents and Settings\user>ping 198.76.28.11
Pinging 198.76.28.11 with 32 bytes of data:

Reply from 198.76.28.11: bytes=32 time=1ms TTL=126
Reply from 198.76.28.11: bytes=32 time=1ms TTL=126
Reply from 198.76.28.11: bytes=32 time=1ms TTL=126
Reply from 198.76.28.11: bytes=32 time=1ms TTL=126

Ping statistics for 198.76.28.11:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 1ms, Maximum = 1ms, Average = 1ms

检查NAT表项

在RTA上检查NAT Server表项。

 [RTA]display nat server                                                         
Server in private network information:                                          
  There are currently 1 internal servers                                        
  Interface:GigabitEthernet0/1, Protocol:1(icmp),                               
     [global]     198.76.28.11:      ----   [local]         10.0.0.1:      ----

表项信息中显示出公网地址和私网地址的一对一的映射关系。

恢复配置

在RTA上删除 NAT Server相关配置。

[RTA]interface G0/1
[RTA-GigabitEthernet0/1]undo nat server protocol icmp global 198.76.28.11 inside 10.0.0.1

NAT Server特性就是为了满足公网客户端访问私网内部服务器的需求,将私网地址/端口静态映射成公网地址/端口,以供公网客户端访问。比如在实际应用中,客户的私有网络中的一台WEB或FTP服务器需要对公网客户提供服务,这时需要使用NAT Server特性对外映射一个公网地址给自己的私网服务器。请思考,这时如果Client_A主动ping Server能否ping通?Client_B能否ping通Server?为什么?
按照上面RTA中的NAT Server的配置命令,如果Client_A是一台FTP服务器,能否对外提供FTP服务?当然可以,只要修改NAT Server的相关配置。NAT Server相关配置如下所示:

[RTB]interface G0/1
[RTB-GigabitEthernet0/1]nat server protocol tcp global 198.76.28.11 ftp inside 10.0.0.1 ftp

四种NAT模式的比较

NAT模式配置方式特点
Basic NAT[RTB-GigabitEthernet0/1] nat outbound 2000 address-group 1 no-pat一对一映射,内网IP自动分配一个外网IP
NAPT[RTA-GigabitEthernet0/1] nat outbound 2000 address-group 1多对一映射,多个内网I分配一个外网IP,通过端号对应内网IP
Easy NAT[RTA-GigabitEthernet0/1] nat outbound 2000多对一映射,直接使用NAT路由器的出口作为外网IP,但Server端无法ping通Client端
NAT Server[RTB-GigabitEthernet0/1] nat server protocol icmp global 198.76.28.11 inside 10.0.0.1将内网地址映射成外网地址外网客户端使用,解决了Easy NAT Server端无法ping通Client端的问题

引用文献

华为Easy IP和NAT Server实现原理
192.168.和10.0.开头的IP、内网IP段、IP简介、分类——(IP观止)
网络基本功(十九):细说NAT原理与配置
华为Easy-IP配置指南
静态NAT、动态NAT、PAT(端口多路复用)的配置

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值