《1 VPN综述》

1 VPN综述

随着网络尤其是网络经济的发展, 企业规模日益扩大, 客户分布日益广泛, 合作伙伴日益增多, 于是企业在自身网络的灵活性、安全性、经济性、扩展性等方面提出了更高的要求。虚拟专用网 (VPN) 以其独具特色的优势, 赢得了越来越多的企业青睐。

《1.1VPN应用分析》

1.1VPN应用分析

虚拟专用网 (VPN) , 指利用公共的网络设施 (包括公共因特网及服务提供商 (SP) 的传输网) 来模拟专用网络的技术总称。从逻辑上看, VPN是叠加在公共网络之上的专用网络。

VPN代表了当今网络发展的最新趋势, 它综合了传统数据网络安全和 服务质量 (QoS) 的性能优点和共享数据网络结构简单与低成本的特点, 能够提供远程访问, 外部网和内部网的连接, 价格比专线或者帧中继网络要低得多。而且, VPN在降低成本的同时满足了对网络带宽、接入和服务不断增加的需求, 因此, VPN必将成为未来企业传输业务的主要工具。

《1.2IP-VPN[1]》

1.2IP-VPN[1]

实现VPN功能可以有几种机制, 通常依据VPN使用的隧道机制可以分为下面两种:

1) 建立在链路层虚连接 (异步转移模式 (ATM) 的永久虚电路 (PVC) , 帧中继 (FR) ) 基础上的VPN;

2) 基于IP隧道的VPN, VPN通过网络层隧道通信。

IP-VPN定义为:在IP骨干网络上模拟专有的广域网 (WAN) 。IP骨干网络包括Internet和服务提供商 (SP) 的IP骨干网。

利用公共IP骨干来组建VPN, 要求IP-VPN实现机制能够满足客户的应用需求, 它包括以下方面:

1) VPN内传输的数据与承载VPN的IP骨干数据无关 因为VPN的数据有可能是多协议的 (非IP) , 还有VPN内采用的IP地址并不是全球统一分配的唯一的地址[2]

2) 数据安全 使用VPN的客户要求某种等级的数据安全。

3) QoS保证 在租用线专网和基于PVC的VPN, 用户从SP可以得到带宽和延迟的保证, 在IP-VPN下, 客户也有相应的QoS要求。

IP-VPN有几种分类方法, 分别对应于不同的情况。

1) 基于客户端设备 (CPE) 和基于网络

VPN的划分, 并非出于技术的考虑, 而主要是依据 SP和VPN客户之间对于维护VPN运作的责任划分。这种不同的划分或多或少引起了技术差异。基于CPE的VPN, VPN的功能主要集中到各种各样的客户端设备, 例如防火、边缘路由器或者专门的VPN终端设备。在这种情况下, VPN的运行通常是由用户自己来维护, SP仅提供传输基础。基于网络的VPN, VPN的运行由SP来维护, VPN的功能也集中在SP的骨干设备上 (如骨干网的接入路由器) 。

2) 根据VPN的应用范围, 可以有接入 (Access)

VPN, 内联网 (Intranet) VPN, 外联网 (Extranet) VPN。

3) 根据IP-VPN实现的具体机制, 依据SP边缘设备所起的作用的不同, 可以有如下划分:

·虚拟租用线 (VLL) SP边缘设备在进入链路和出去的隧道之间作简单的映射而不察看数据包的内容。

·虚拟专用路由网 (VPRN) 提供商边缘 (PE) 设备执行路由功能, 具体说, PE对进入的VPN数据包察看其第三层信息 (可能还需要其他信息以区分不同的VPN) , 并在此基础上做出路由转发决策, 将数据导向合适的出去隧道。

·虚拟专用拨号网 (VPDN) 其应用对象为移动办公用户。VPDN利用公用电话网 (PSTN) 建立到SP的网络接入服务器 (NAS) 的点到点协议 (PPP) 会话, SP NAS利用诸如二层传输协议 (L2TP) 等隧道协议将该会话延伸至企业网NAS。

·虚拟专用局域网段 (VPLS) 与VPRN相比, 在VPLS中PE设备执行桥接功能而非路由功能, 具体说, PE对进入的包的转发决策是建立在其第二层信息 (可能还需要其他信息以区分不同的VPN) 的基础上。

《2 VPRN及其两种实现机制》

2 VPRN及其两种实现机制

VPRN是对广域路由网的模拟。在SP骨干网上, VPRN包括执行路由转发功能的SP PE路由器, 以及连接这些路由器的IP隧道构成的网格 (见图1) 。

《图1》

图1 虚拟专用路由网络参考模型

图1 虚拟专用路由网络参考模型  

Fig.1 VPRN reference model

《2.1VPRN实现需要考虑的几个方面》

2.1VPRN实现需要考虑的几个方面

VPRN实现需要考虑的一些问题:

1) VPN IP地址空间专有问题 多个VPN以及SP骨干网可能使用重叠的IP地址。PE服务于多个VPN, 故需要一种机制来保证各VPN, 以及SP IP骨干的IP地址空间相互独立。

2) VPN拓扑 根据不同的应用需求, 可能要求不同的VPN内部拓扑。如全连接拓扑或Hub-Spoke拓扑。

3) 数据包转发 由于PE为多个VPN复用, 故必须有一种机制确保VPN内的数据不会泄漏到其他VPN。

4) 构建Extranet和多种接入模式 VPN的实现机制需要提供方便组建多个VPN之间的Extranet的能力。多种接入模式意味着实现机制可以容纳用户节点与提供服务的骨干网的多种连接关系。

基于网络的VPN的实现有两种基本的结构, BGP/MPLS和VR。

《2.2BGP/MPLS VPN[3] ——VPRN实现之一》

2.2BGP/MPLS VPN[3] ——VPRN实现之一

在这种实现机制中, 多协议标记交换 (MPLS) 作为骨干网上的隧道机制, 使用边界网关协议 (BGP) 在VPN内各节点之间交换路由信息。

该机制中, PE维护若干相互独立的路由表, 接入PE的不同的VPN节点使用不同的路由表, 从而实现数据转发的独立。至于各个VPN的路由信息则是通过各个PE运行BGP实体来维护的。VPN信息对SP网络的核心设备是透明的。

为了适应VPN的应用需求, 对BGP作了若干扩展:

1) VPN-IPV4 Address Family PE上多个VPN共用一个BGP实体来交换路由信息, 为此引入了一种新的地址格式——VPN-IPV4 Address[4], 从而使得BGP实体可以处理不同VPN内地址重叠的问题。它并不代表路由的来源, 也不控制路由的再分配。VPN数据转发时, 只考虑 IP地址部分。

2) BGP路由属性和路由过滤 BGP路由属性是描述一个路由特性的一套参数。输入过滤、决策以及输出过滤都是基于路由属性。为支持VPN, 引入了一个路由属性——路由目标 (RT) 。RT属性标志一列节点, 通过RT属性可以控制VPN内的路由不会被扩散到其他VPN内。

MPLS实现了包转发决策与包头内容分离, 因此也可以作为一种隧道机制。在VPN中使用MPLS作为隧道机制, 可以利用MPLS对流量工程的支持来实现VPN的QoS。

在控制平面, 用户设备 (CE) 与PE之间通过各种途径 (如外部边界网关协议 (EBGP) , 路由信息协议 (RIP) , 开放最短路径优先 (OSPF) , 静态路由) 交换路由信息。PE之间通过内部边界网关协议 (IBGP) 交换VPN路由信息。需要正确配置接入PE的各个客户节点使用的RT属性以避免VPN之间的信息泄漏。在数据平面, 各个客户节点进入的数据包根据其进入接口决定其使用的转发表。在转发表中查找到下一跳信息并进行转发。

此外, 该机制还需要考虑VPN隧道的复用以及跨越多个SP的VPN等。

《2.3虚拟路由器 (VR) ——VPRN实现之二》

2.3虚拟路由器 (VR) ——VPRN实现之二

在这种机制中, VPN SP 为每个VPN提供一组位于PE上的VR以及连接VR的隧道, VR之间运行普通路由协议 (例如RIP, OSPF或BGP) 来通告VPN NLRI信息。采用其他机制来通告VPN成员信息。

虚拟路由器, 虚拟表示VR是逻辑上的而不是一个单独的物理设备, 但具有实际路由器的功能, 包括路由维护功能、转发功能、接入控制功能甚至VR之间的固定带宽的连接。

在实现时, PE上的一个VR表现为一个路由实体, 可以采用进程或线程来实现 (见图2) 。VR是对物理路由器在软件和硬件上的模拟。具体讲, 需要有路由功能、转发功能、接入控制功能以及管理与配置。

《图2》

图2 虚拟路由器参考模型

图2 虚拟路由器参考模型  

Fig.2 VR reference model

在SP的骨干网, 虚拟路由器仅存在于PE, VR与VR之间的连通性可以利用第二层虚连接或利用IP隧道。采用IP隧道机制跨越SP骨干网, 要求对SP骨干网拓扑的了解, 因此, 每个PE还需为SP骨干网维护一个路由实体 (图2中的VR1, 2, 3, 4) 。

VPN的成员信息指SP网中包含某一特定VPN的VR的一组PE。VPN的拓扑信息指某一特定VPN的一组VR之间的连接关系。在VR方案中, 成员信息和拓扑信息的发现机制是分离的 (在BGP/MPLS中, 二者都是借助于BGP及其扩展协议而实现的) 。

对于VPN成员信息的发现, 可以通过目录服务器、详细的管理配置, 也可以利用骨干网现有路由协议的扩展, 来捎带VPN信息 (例如BGP) 。对于拓扑信息, 只要VPN的成员关系确定后, 即可借助于VR间使用的路由协议来建立VR路由会话从而交换VPN拓扑信息。

《2.4VPRN总结以及两种实现机制的比较》

2.4VPRN总结以及两种实现机制的比较

如上所述, VPRN的关键在于SP PE执行路由转发功能, 路由转发涉及到数据平面和控制平面。控制平面负责维护拓扑信息, 控制数据流向。数据平面执行转发功能。在VPN环境下, 各平面基本功能未变, 但需考虑一些相关方面。在控制平面, 需要明确各VPN的成员, 还需要为PE上的各个VPN逻辑上划分相关资源并且隔离各VPN的相关资源, 做到各VPN之间互不影响。这些资源包括路由信息的通告机制、路由信息表、转发实体、带宽资源。考虑到安全和QoS问题, 可能还包括各个VPN的接入控制策略、数据的安全封装格式、与每个VPN客户的SLA以及对VPN客户数据流的监控等。在数据平面上, 任务比较简单, 对进入的包映射到正确的VPN转发实体进行处理。由此可见, BGP/MPLS和VR两种机制的主要区别不在数据平面而在控制平面, 而且主要是在路由信息 (拓扑信息) 的通告机制上。

对于VPN成员关系的确定, BGP/MPLS直接采用BGP协议捎带。VR没有详细规定一种具体方案, 而是列出了几种可选方案, BGP协议捎带是其中一种。其他方面, 诸如路由信息表、转发实体、带宽资源等, 两种机制并无明显差别, 至少逻辑上表现不出任何差别, 其实现机制依具体情况而定。

但是, 在路由信息的通告机制上, 二者有根本的区别。BGP/MPLS中, 扩展的BGP协议被用来通告拓扑信息, 而且多个VPN共用一个BGP协议实体, 通过特殊的BGP属性RT, 在逻辑上隔离各个VPN。而在VR机制中, 引入了VR概念, 使各个VPN的路由信息通告机制隔离得更加彻底, 而不仅仅是逻辑上的表现, 从而实现了更大的灵活性, 允许各VPN使用自身的路由协议而互不相关。

上述二者的区别导致了实现机制上的差异。BGP/MPLS的实现主要是对BGP现有协议的扩展。而VR的实现则要麻烦得多, 需要在一个物理路由器上采用软件技术构造出多个并行的具有实际路由器功能 (软件方面:路由信息维护, 数据包转发;硬件方面:各种数据接口) 的虚拟路由器。涉及到VR的动态创建和管理, 而且各个VR可以动态加载各种路由协议 (RIP, OSPF, BGP等) 。

由此可以看出二者的优劣:VR机制概念清晰, 用户容易理解, 而且便于以后VPN业务的扩展。但缺点是实现较为困难, 尤其是在需要支持大量VR时 (例如1 000数量级) ;而BGP/MPLS实现较为容易, 但概念上不如VR清晰, 而且VPN业务的扩展也不方便。

《3 VPLS及其实现——虚拟局域网 (VLAN) 》

3 VPLS及其实现——虚拟局域网 (VLAN)

VPLS基本特征在于其数据转发决策基于链路层信息。因此, SP网络的PE设备执行桥接功能。VPLS利用SP的骨干网设施或Internet来模拟局域网段。VPLS服务的一个重要特性便在于其对于协议 (网络层以上协议) 是透明的, 这对企业节点之间的多协议传输是很重要的。

《3.1VPLS概述》

3.1VPLS概述

VPLS实现有其特殊要求。首先, VPLS隧道中传输的是链路层帧格式而非网络层数据包。其次PE执行桥接功能, 因此生成树算法 (STA) 也应被激活来避免环路。还有鉴于广播功能在桥接中的重要性, 执行桥接功能的VPLS PE必须具有广播的能力。此外, 需要某种机制来保证VPLS内的数据不会泄漏。但与VPRN不同的是, VPLS的地址是全球唯一, 不会重叠的。因此, 在具体实现时, 无需为每个VPLS单独维护一个转发表。VPLS之间的隔离要求做到:在物理上, 一个VPLS的帧不会出现在另一个VPLS的网段上。

VPRN和VPLS的根本区别在于VPLS中PE执行桥接而VPRN中PE执行路由功能。二者的应用范围也不同, 其主要差异:

1) VPLS基于第二层信息, 故其扩展性不好;VPRN基于第三层信息, 扩展性好。

2) VPRN只能用于IP网络;而VPLS对于多协议网络以及非IP网络是合适的。

《3.2VPLS实现——VLAN》

3.2VPLS实现——VLAN

VLAN是一种在链路层划分广播域的技术。通过VLAN来划分广播域, 可以充分考虑应用需求, 从而使得广播域的分布与流量的分布相吻合。当然, VLAN还有其他方面的优势:例如提高安全性能, 简化网络配置等。但从应用角度来看, VLAN可以作为VPLS的一种实现机制。

VLAN划分的依据有多种, 常见的有基于端口、基于链路层地址、基于网络层协议等。基于端口是最基本的一种[5], 文中VLAN的实现属于这一类的。

基于端口的VLAN划分原则很简单, 即通过管理配置或其他手段将VLAN桥的某几个端口组成一个VLAN, VLAN可以包括多个本地桥, 也可以通过WAN扩展到其他远端桥。

VLAN不仅仅限于一个设备, 而应该可以通过上连端口扩展到多个VLAN桥设备。多个设备可能跨越WAN。这种应用正符合VPLS的概念。此时, 一个VLAN即可视为一个VPN。VPN节点的CPE设备接入VLAN桥的一个端口, 将同一VPN的节点接入的所有桥端口配置为一个VLAN。

下面简单介绍一种已经产品化了的基于端口的VLAN。这也是笔者所做的主要工作。

作为桥设备, 用户的管理对象为端口, 端口有两种类型:a. 提供以太网接入的10/100 Mb/s自适应端口。b. 提供上联的逻辑端口, 提供与远端设备的互连。

VLAN转发模块结构图见图3, 下面对各模块功能作简单介绍。

《图3》

图3 虚拟局域网模块图

图3 虚拟局域网模块图  

Fig.3 VLAN module

1) VLAN Forwarding 该模块为业务处理核心模块, 负责从上联端口、以太端口, 以及网络层进入的帧处理, 全部体现VLAN的转发原则。

2) LAN Switch 该模块负责本地以太端口的业务接入和交换, 同时负责MAC表的维护。

3) Uplink Module 该模块负责与其他设备的互连。

4) IP Routing模块 该模块负责不同VLAN间的通信。此外, 该模块可以作为VLAN的缺省网关, 从而满足与其他网络互连的需求。

5) STA 避免桥接环境下的环路问题。

6) 管理平面 管理和配置。

7) MAC地址表 该模块负责MAC地址信息的维护, 包括本地和远端的MAC地址, 其对应的端口和端口VLAN属性。

《4 基于网络VPN的QoS——基于MPLS》

4 基于网络VPN的QoS——基于MPLS

VPN在提供灵活的连通性的同时, 必须具有与专线相当的QoS和安全特性。

《4.1基于网络VPN下客户QoS需求》

4.1基于网络VPN下客户QoS需求

在基于CPE的VPN情况下 (图4a) , 其通信模式是节点对节点的, 节点之间通常为全连接拓扑。提供的QoS有如下特点:提供节点到节点的固定带宽, 固定延迟的连接。这种情况下, 各节点之间的流量分配由用户来规划, 用户数据流的不确定性仅表现在时间上。服务商实行收费和分配资源就相对容易得多。

《图4》

图4 两种VPN的不同服务模式

图4 两种VPN的不同服务模式  

Fig.4 Two different VPN service mode

而在基于网络的VPN下, 节点通过一种连接形式接入PE (见图4b) , 用户去往VPN内所有其他节点的数据都由该连接进入骨干网, 此时, VPN内流量分布的不确定性需要SP来处理。即SP需要根据VPN内流量的分布动态调整网络资源。用户数据流的不确定性不仅表现在时间上, 而且表现在空间上。这样的用户数据流是难以估计的, 因此, 为该用户预留资源、保证其QoS以及收费等均相对困难。

虽然后一种服务模式为ISP的管理提出了很大的挑战, 但是这种方式对用户的益处是显而易见的:

1) 用户不需要详细指明各节点之间的流量分配。

2) 这种服务模式可以为用户取得复用效益。

此外用户对VPN的需求不仅仅是Best-effort, 这就要求IP-VPN可以同时提供多种QoS要求的服务。

通过上面对IP-VPN的需求分析, 可以看出实现基于网络VPN QoS需要解决的两个主要方面:

1) 估计用户流量在时间和空间上的不确定性, 并动态调整网络资源以适应用户流量分布。

2) 满足用户对多种QoS服务的要求。

《4.2基于网络VPN QoS实现》

4.2基于网络VPN QoS实现

要实现上述两个目标, 在很大程度上依赖于SP的骨干网对QoS的支持能力。假设骨干网具有以下能力:

1) 可以同时支持具有不同QoS需求的业务。

2) 提供动态调整网络资源的手段。

VPN QoS需要解决的主要问题在于:

1) 在VPN接入点根据VPN SLA对VPN数据进行接入控制。

2) 根据VPN内数据流的动态分布而调整SP骨干网络的资源分配。

3) 对各服务类型的数据流应用合适的调度策略满足其QoS。

下面讨论一种解决基于网络VPN QoS的方法。假设客户可以通过VPN传输具有不同QoS要求的数据, 如Best-effort流, 可靠的数据流、语音流、图像传输等。

《4.2.1 方案总体结构》

4.2.1 方案总体结构

在该方案中 (见图5) , 假定SP核心为支持流量工程能力的MPLS网络, 主要的组成有MPLS边缘PE、核心标记交换路由器 (LSR) 、资源管理器 (RM) 。

在这个结构中, PE作为VPN接入设备, 同时又是MPLS域的边缘设备, 需要执行以下功能:

1) 作为VPN接入设备, 可以处理VPN客户的资源请求, 根据现有网络资源的使用情况决定是否接纳该连接。

2) 作为VPN域的边缘设备, 需要具有对用户数据流的监视、分类、标记、整形/丢弃。

3) 为了满足不同业务的QoS, 应具有差分服务 (DiffServ) 功能, 具有支持EF-PHB和 AS-PHB Group的各个类的能力[6,7], 并且提供动态配置各个PHB占用资源的能力。

4) 作为MPLS边缘设备, 需要执行其相应的功能。

5) 根据测量得到的当前各DS-PHB的流量分布动态调整它们之间的带宽分配。

6) 提供接口供RM查询网络资源的使用情况, 或定期向RM报告资源占用状况。

《图5》

图5 基于网络VPN QoS 框架结构

图5 基于网络VPN QoS 框架结构  

Fig.5 Network-based VPN QoS framework

核心设备为支持差分服务功能的MPLS标记交换路由器, 具有以下功能:

1) 支持MPLS以及已定义的流量工程[8];

2) 提供接口供RM查询网络资源的使用情况, 或者定期向RM报告资源占用状况。

资源管理服务器监视SP骨干网的当前资源占用状况。根据历史纪录预测网络流量分布, 并通过MPLS流量工程 (TE) , 调节PE之间标记交换路径 (LSP) 的资源分配和LSP的路径。

该方案中, 隧道复用不仅在不同的VPN流之间, 而且也在不同的差分服务转发行为等价类 (DS-PHB) 之间。隧道复用可以取得明显的优势:

1) 骨干网络标记空间的有效利用和标记空间的使用状况稳定, 不会因支持的VPN数目和DS-PHB数目变化而变化。

2) 复用带来了数据流量分布的相对稳定, 从而为骨干网资源管理带来方便。如上所述, VPN单个用户的流量分布具有不可预测性, 但不同用户的数据流复用到一个隧道上, 以隧道为资源控制单元。那么, 复用流表现出来的统计特性相对平稳。

3) 不同的DS-PHB流复用到一个隧道上, 方便带宽资源在各PHB之间的分配。从而可以在本地完成资源分配而无需RM调整隧道的带宽。

由上可以看出, 为适应VPN流量分布的变化, 网络资源的动态调节发生在两个层次上, 首先是RM根据目前网络的资源情况以及VPN流量分布的预测, 对骨干网络VPN隧道——LSP的资源进行调节。RM的调节发生在较长的时段, 主要解决由确定性原因引起的流量分布变化。其次就是PE本地的资源调节, 即根据当前各PHB的流量动态改变它们之间的资源分配。PE本地调节发生在较短的时段, 解决的主要是随机的流量分布变化。

《4.2.2 PE资源分配实现机制以及流量分布预测》

4.2.2 PE资源分配实现机制以及流量分布预测

PE的重要性不言而喻, 其功能结构图见图6。其中流量分布预测和资源分配主要是解决各PHB复用一条LSP, 并且满足相应的要求。在此, 经过比较各种包调度策略、包丢弃规则以及流量分布预测机制, 笔者提出了一种流量预测和调度结构, 见图7。该调度结构位于每个输出接口 (物理的和虚拟的) 上。

《图6》

图6 PE功能结构图

图6 PE功能结构图  

Fig.6 PE function chart

其中对EF-PHB采用最大值预测器, 而AF-PHB则采用高斯预测器。预测结果控制各个队列的调度权值。采用最坏情况加权公平排队 (WF2Q) 规则, 对EF-PHB队列实行尾丢弃 (DT) , 而对于AF-PHB实行随机早期检测 (RED) , 并且每个AF-PHB支持三个丢弃级别。

《图7》

图7 本方案中的服务模型

图7 本方案中的服务模型  

Fig.7 Service model in our solution

对预测器的选择考虑:因为EF-PHB类流通常为实时业务, 故对该类业务采用最大值预测器。虽然可能导致过分配, 但由于WF2Q规则可以实现资源的共享, 因此不会浪费资源。而AF-PHB各类通常为数据业务, 暂时的拥塞不会影响其性能, 故采用高斯预测器。

包调度规则通过分配两种本地资源来影响各类业务的性能:通过分配出链路带宽来影响业务流量, 通过每个包的服务时间来影响业务的时延。目前已经提出了多种包调度规则, 性能各有优劣。具体的分析可以参见文献[9,10]。其中WF2Q规则具有较好的性能, 而且具有工程上可行的算法WF2Q+, 因此采用WF2Q 调度规则。

队列调度机制仅能影响业务流量和时延, 而丢包率则依赖于本地缓存资源的管理, 需要利用包丢弃规则。此外, 对于TCP流, 包丢弃规则也是一种重要的网关拥塞避免机制。目前已有的机制有:尾丢弃 (DT) , 随机丢弃 (RD) , 随机早期检测 (RED) , 性能分析可以参见文献[11]。在图7的方案中, EF-PHB主要支持语音或图像流, 通常使用的不是TCP协议。故而, 对于EF-PHB使用了DT。而AF-PHB提供不同等级的数据业务, 故利用RED来保证AF-PHB Group 中每一类的不同丢弃级别的行为。

《5 结语》

5 结语

VPN的涵盖面非常广, 而且VPN本身并不仅是一个技术上的概念, 更多地是一个服务上的概念, 现有标准更多规定了VPN服务应满足的需求, 而对其实现机制则规定较少。在这种情况下, 不同VPN实现机制的互通是非常重要的。此外, IP-VPN提供的QoS目前仍未达到专线的水平, 这将大大制约IP-VPN的市场发展。笔者虽然提出了一种可能的实现机制, 但其有效性仍有待下一步实现工作进行检验和修正。还有一些文中未涉及但对于VPN服务至关重要的方面:VPN的管理、计费和安全也有待进一步工作。