一、BGP/MPLS隧道技术

1、各种隧道技术的优缺点

随着商业模式下分公司分支机构的快速增长,总公司与分公司之间使用大带宽、高安全性的"专线"网络互联需求日益增长。隧道技术得到广泛应用。隧道技术节省了用户建立私有网络的成本,个人用户和分支机构只需要与公共网络的Internet网络连接,通过隧道技术建立起不同个用户、分支和总部之间的管道,就能实现它们之间的私网互通。

隧道技术能够节省用户建立私有网络的成本,作为用户建立私有网络方式有很多种,前面写得有GRE、IPSec、L2 TP这些传统的隧道技术。

1.1、传统隧道技术-隧道建立在CE上。

CE(Custom Edge):直接与服务提供商相连的用户设备。
PE(Provider Edge Router):指骨干网上的边缘路由器,与CE相连,主要负责VPN业务的接入。
P (Provider Router):指骨干网上的核心路由器,主要完成路由和快速转发功能。由于网络规模不同,网络中可能不存在P路由器。PE路由器也可能同时是P路由器。

在CE与CE之间建立隧道,并直接传递路由信息,路由协议数据总是在客户设备之间交换,服务商对客户网络结构一无所知。典型代表是GRE、IPSec。
优点:
不同的客户地址空间可以重叠,保密性、安全性非常好。
缺点:
需要客户自己创建并维护隧道。通常客户不愿意,也没有这个能力。

1.2、传统隧道技术-隧道建立在PE上。

特点:
在PE上为每一个隧道用户建立相应的GRE隧道,路由信息在PE与PE之间传递,公网中的P设备不知道私网的路由信息。
优点:
客户把隧道的创建及维护完全交给服务商,保密性、安全性比较好。
缺点:
不同的隧道用户不能共享相同的地址空间,即使可以共享,则PE与CE之间的地址、tunnel之间的地址一定不能相同,并且必须使用大量的ACL和策略路由。在实际中不具备可行性。

总结:
传统隧道技术的本质是一种静态隧道,这好比是静态路由,所以他具有类似静态路由的全部缺陷:

  • 所有的配置与部署都需要手工完成,而且具有N2问题:如果某个客户的隧道中新增了一个结点,则需要完成如下工作

    • 在这个新增结点上建立与所有已存在的N个结点的隧道及相关的路由。
    • 对于已存在的N个结点,需要在每个结点上都建立一个与新增结点之间的隧道及相关的路由。
  • 由于是“静态”隧道,则无法反应网络的实时变化。

而且,如果隧道建立在CE上,则必须由用户维护,如果建立在PE上,则又无法解决地址冲突问题。

1.3、Peer-to-Peer虚拟专用网络

Peer-to-Peer是指客户与运营商边界路由器建立邻居关系。

1、如同静态路由一样,所有具有“静态”性质的东西都不太适合大规模的应用和部署。所以,首先要解决的问题就是将虚拟专用网络的部署及路由发布变为动态性。Peer-to-Peer 虚拟专用网络的产生就是源于这种思想。
2、这里的Peer-to-Peer是指CE-to-PE,也就是要在CE与PE之间交换私网路由信息,然后由PE将这些私网路由在P-Network中传播这样这些私网路由会自动的传播到其他的PE上。
3、这种虚拟专用网络由于私网路由会泄露到公网上,所以必须严格的通过路由来控制,即:要确保同一个VPN的CE路由器上只能有本虚拟专用网络的路由。所以,通常CE与PE之间运行的路由协议,与P-Network上运行的路由协议是不同的,即使相同,也要有很好的路由过滤和选择的机制。

1.3.1、共享PE方式

所有虚拟专用网络用户的CE都连到同一台PE上,PE与不同的CE之间运行不同的路由协议(或者是相同路由协议的不同进程,比如OSPF)。由路由始发PE将这些路由发布到公网上,在接收端的PE上将这些路由过滤后再发给相应的CE设备。

缺点:为了防止连接在同一台PE上的不同CE之间互通,必须在PE上配置大量的ACL。

1.3.2、专用PE方式

为每一个虚拟专用网络单独准备一台PE路由器,PE和CE之间可以运行任意的路由协议,与其他虚拟专用网络无关。PE之间运行BGP,并使用路由属性进行过滤。
优点:无需配置任何的ACL了。
缺点:每一个虚拟专用网络用户都有新增一台专用的PE,代价过于昂贵了。

总结:
Peer-to-Peer虚拟专用网络没有使用隧道技术,导致私网路由泄露到公网上,安全性很差。仍旧存在所有的设备无法共享相同的地址空间问题。

1.3.3、MPLS隧道技术

MPLS中的LSP正是一种天然的隧道,而且这种隧道的建立是基于LDP协议,又恰恰是一种动态的标签生成协议。解决了Peer-to-Peer虚拟专用网络没有隧道技术的问题。

BGP解决了地址冲突问题。
(1)、BGP是唯一支持大量路由的路由协议;
(2)、BGP是基于TCP来建立连接,可以在不直接相连的路由器间交换信息,这使得P路由器中无须包含VPN路由信息;
(3)、BGP可以运载附加在路由后的任何信息,作为可选的BGP属性,任何不了解这些属性的BGP路由器都将透明的转发它们,这使在PE路由器间传播路由非常简单。

BGP/MPLS隧道技术相比传统隧道技术解决了3个重大问题

  • 实现隧道的动态建立;
  • 解决了本地地址冲突问题;
  • 私网路由易于控制。

MPLS隧道技术最大的优势在速度和QOS支持上。MPLS是目前唯一能够实现IP网中的Qos与流量工程的网络技术。

2、MPLS隧道

2.1、MPLS隧道的网络结构


CE(Custom Edge):直接与服务提供商相连的用户设备。
PE(Provider Edge Router):指骨干网上的边缘路由器,与CE相连,主要负责VPN业务的接入。
P (Provider Router):指骨干网上的核心路由器,主要完成路由和快速转发功能。由于网络规模不同,网络中可能不存在P路由器。PE路由器也可能同时是P路由器。

MPLS隧道的网络构造由服务提供商来完成。在这种网络构造中,由服务提供商向用户提供虚拟专用网络服务,用户感觉不到公共网络的存在,就好像拥有独立的网络资源一样。同样对于服务提供商骨干网络内部的P路由器,也就是不与CE直接相连的路由器而言,也不知道有虚拟专用网络的存在,而仅仅负责骨干网内部的数据传输。所有的虚拟专用网络的构建、连接和管理工作都是在PE上进行的。PE位于服务提供商网络的边缘,从PE的角度来看,用户的一个连通的IP系统被视为一个site,每一个site通过CE与PE相连,site是构成虚拟专用网络的基本单元。一个虚拟专用网络是由多个site组成的,一个site也可以同时属于不同的虚拟专用网络。属于同一个虚拟专用网络的两个site通过服务提供商的公共网络相连,虚拟专用网络数据在公共网络上传播,必须要保证数据传输的私有性和安全性。也就是说,从属于某个虚拟专用网络的site发送出来的报文只能转发到同样属于这个虚拟专用网络的site里去,而不能被转发到其他site中去。同时,任何两个没有共同的site的虚拟专用网络都可以使用重叠的地址空间,即在用户的私有网络中使用自己独立的地址空间,而不用考虑是否与其他虚拟专用网络或公网的地址空间冲突。所有这些就都需要依赖于VRF(VPN Routing & Forwarding Instance,虚拟路由与转发)。

PE与CE之间引入SIS、OSPF、BGP、静态协议,PE与对端PE运行MP-BGP。CE和PE之间建立邻居关系,双向重分布。

控制层面不能在LSP内部运行,VPN只关心出口地址和接口,不关心入口。数据层面才能通过LDP交换数据。

2.2、MPLS隧道转发


(1)、根据用户2的具体IP地址通过MPLS转发。
R1、R2、R3、R4路由器运行MPLS协议,并建立起了R1到R4之间的标签访问路径。用户1访问用户2,报文的目的地址是22.1.1.1从R1进入,该报文将进行MPLS转发,在LSP上的LSR只检查MPLS标签,在R1设备为入节点,通过标签压入将报文封装在MPLS标签里。

(2)、根据出节点的Loopback地址进行MPLS转发,MPLS隧道建立。
入节点上的匹配,入节点通过接收到IP地址匹配出该报文的出节点是哪台设备,先查RIB(路由信息表)并发现对应路由表项有与之关联的LIB(标签信息表)获知出节点是R4设备。在入节点和出节点上配置一个Loopback地址,作为入节点和出节点设备的标识,这样就在入节点和出节点之间建立了一条MPLS网络,在这条网络中建立起了R1到R4之间的标签访问路径。这时就会形成到R4的Loopback地址44.1.1.1/32标签转发表。

私网报文在MPLS网络内部按照MPLS转发,到达R3设备,标签弹出,普通IP报文到达R4设备,通过查询路由表传送到用户2。R1到R4之间形成一条隧道,隧道内的所有LSR设备直接根据报文的MPLS标签进行数据转发,无须识别封装在MPLS标签内部IP报文。从此可发现只须在入节点、出节点上进行配置,私网报文就能成功穿越公共网络。

MPLS隧道技术只需要在公共网络上运行MPLS协议,就可以依靠MPLS的动态标签分配原理,在所有的用户公网出口设备之间建立连接对方的标签转发协议。

3、VRF虚拟网络路由转发实例

上图中公网中同一台PE连接的用户都使用了192.168.0.0/24网段的IP地址,这时会造成PE设备无法区分接收到的数据流,到底传给谁?同样另一台PE连接的用户都使用了172.16.10.0/24网段。

BGP解决了地址冲突问题。是如何解决的?是通过多VRF(Virtual Routing and Forwarding,虚拟路由与转发)技术可以解决。

3.1、什么是VRF?

如何理解VRF?VRF(Virtual Routing and Forwarding,虚拟路由与转发),每一个VRF可以看作虚拟的路由器,好像是一台专用的PE设备。该虚拟路由器包括如下元素:

  • 一张独立的路由表,当然也包括了独立的地址空间。
  • 一组归属于这个VRF的接口的集合。
  • 一组只用于本VRF的路由协议。

对于每个PE,可以维护一个或多个VRF,同时维护一个公网的路由表(也叫全局路由表),多个VRF实例相互分离独立。也就是一台路由器分成多个VRF,每个VRF之间互相独立,互相不可见。各自拥有独立的路由表项、端口、路由协议等。

PE设备:针对每一个CE(直接与服务提供商相连的用户设备),创建一个与之对应的VRF。一个VRF包括一张路由表一张转发表、一组使用这个VRF的接口集合以及一组与之相关的策略。VRF为每个CE维护逻辑上分离的路由表。每一个VRF维护独立的地址空间,在VRF中应当包含了到达所有与本CE属于同一个虚拟专用网络的CE路由信息。这样,在PE上,来自CE的报文就可以根据相应的VRF来进行转发,而不用担心不同VPN之间地址空间的冲突。

在CE和PE之间:通过静态路由、RIP、OSPF、EBGP等来传播路由信息,在骨干网内通过运行IGP(内部路由协议)来保证内部的连通性,通过IBGP来传播虚拟专用网络组成信息和路由。分离的路由表防止了数据泄漏出虚拟专用网络之外,同时防止了虚拟专用网络之外的数据进入。

VRF接口:VRF可以与任何类型的接口关联起来,不管是物理接口还是逻辑接口(例如以太网口,子接口,虚接口等)。这样,当报文直接通过一个与VRF关联的接口到达时,只需在该VRF中查找报文的目的地址。一个VRF接口,即当一个接口与一个VRF关联起来,这个接口不再是传统意义上的公用网络的接口,而是一个私有网络的接口。VRF可以与任何类型的接口关联起来,不管是物理接口还是逻辑接口。

二、MP-BGP路由协议

MPLS的标签分两层,外层是LDP分配的,内层是多协议MP-BGP分配的。外层标签是转发层面。虚拟专用网络(VPN)是内层标签,是控制层面是BGP、IGP的重分布。MPLS是一种3层的虚拟专用网络技术。MPLS 虚拟专用网络使用BGP在服务提供商骨干网上发布虚拟专用网络路由,使用MPLS在服务提供商骨干网上转发虚拟专用网络报文。

1、MP-BGP技术

1.1、MP-BGP路由协议的产生

BGP路由协议更适用于隧道技术有两个特点具体如下:
(1)、BGP路由协议是基于TCP连接建立路由邻居的,可以实现跨越多台路由器建立BGP邻居,直接交互路由信息。这样在组网中,就无须经过中间的P设备转达,隧道中间的P设备,不须要了解虚拟专用网络的信息;另外,不同的虚拟专用网络间地址空间会有重叠,如果这些虚拟专用网络都经过P设备转达,P设备上将无法区分。

(2)、BGP路由协议的协议报文是基于TLV结构的,具有扩展属性位,便于携带更多的表明由特征的信息。三元组TLV(attribute type, attribute length, attribute value)。

正因为这两个特性,BGP路由协议被BGP/MPLS技术选用于穿越公网传递私网路由的路由协议。为适应虚拟专用网络技术的需要,BGP路由协议进行了相应的扩展,扩展后的BGP路由协议称为MP-BGP(Multiprotocol BGP,多协议BGP路由协议)。

普通BGP路由协议里,BGP路由协议通过BGP更新消息发布和删除路由。

BGP更新消息主要包括三部分:

  • Withdrawn Routes:之前发布过的,现在不再有效的路由信息。
  • Path Attributes:路由信息的属性,是BGP用以进行路由控制和决策的信息,如LP属性、MED属性等。
  • NLRI:路由信息,由一个或者多个IPv4地址前缀组成,这个就是需要发布给邻居的新生效的路由信息。

传统的BGP-4只能管理IPv4单播路由信息,对于使用其它网络层协议(如IPv6、组播等)的应用,在跨AS传播时就受到一定限制。RFC2858对BGP进行了扩展,扩展后的路由协议称为MP-BGP。现在MP-BGP标准为RFC4760。

MP-BGP对IPv6单播网络的支持特性称为BGP4+,对IPv4组播网络的支持特性称为MBGP(Multicast BGP)。MP-BGP为IPv6单播网络和IPv4组播网络建立独立的拓扑结构,并将路由信息储存在独立的路由表中,保持单播IPv4网络、单播IPv6网络和组播网络之间路由信息相互隔离,也就实现了用单独的路由策略维护各自网络的路由。

1.2、MP-BGP对比BGP的主要变化。

1、MP-BGP新增路径属性(MP_REACH_NLRI、MP_UNREACH_NLRI)和地址族(address family(AFI))实现对 IPv6、组播、VPN功能的支持,并且对BGP协议原有的团体属性进行了扩展,新增了扩展团体属性。

Path Attributes(路由信息的属性)中增加的两项:
MP_REACH_NLRI:多协议可达NLRI。用于发布可达路由及下一跳信息。
MP_UNREACH_NLRI:多协议不可达NLRI。用于撤销不可达路由。

属性编号 属性名称 类别/类型代码
1 Origin 公认必遵/代码1
2 AS_PATH 公认必遵/代码2
3 Next_Hop 公认必遵/代码3
4 MED 可选非过度属性/代码4
5 Local-Pref 公认任意属性/代码5
6 Atomic-aggregate 公认任意属性/代码6
7 Aggregator 可选过渡属性/代码7
8 Community 可选过渡属性/代码8
9 Originator-ID 可选过渡属性/代码9
10 Cluster_List 可选过渡属性/代码10
11 DPA BGP的目的点属性
12 通告者 BGP/IDRP路由服务属性
13 RCIP_PATH/Cluster_ID BGP/IDRP路由服务属性
14 MP_REACH_NLRI 可选非过渡属性/代码14
15 MP_UNREACH_NLRI 可选非过渡属性/代码15
16 Extended_CommunitiesI

注意:
(1)、携带了MP_REACH_NLRI属性的Update消息必须携带用于EBGP和IBGP信息交换的Origin属性和AS_Path属性。MP_REACH_NLRI+Origin属性+AS_Path属性
(2)、这个Update消息在IBGP对等体之间传播,还要携带Local_Pref属性。
(3)、这条消息是从EBGP对等体接收的,本地系统需要检查AS_Path列表最左侧的AS号是否与发送该信息的AS号一致。如果不一致,本地系统会发送Notification消息(携带Update消息错误码)给对端。
(4)、Update消息中MP_REACH_NLRI属性没有携带NLRI,则该消息也不允许携带Next_Hop属性。
(5)、这条消息中包含了Next_Hop属性,Next_Hop属性将被忽略。多协议不可达NLRI用于撤销一条或多条不可达路由。
(6)、携带了MP_UNREACH_NLRI属性的Update消息不再需要携带其他的属性。

MP-BGP协议通过对BGP的扩展,不仅可以用于BGP/MPLS虚拟专用网络技术中传递私网路由,还可以用在IPv6、6PE、L2VPN等技术中,从而有更广泛的应用。

2、MP-BGP协议对比原BGP改动分为三点:
(1)、新增的MP_REACH_NLRI属性代替了原BGP更新消息的NLRI及Next-hop属性。
(2)、新增的MP_UNREACH_NLRI属性代替了原BGP更新消息里面的Withdrawn Routes(撤销路由)。
(3)、在BGP属性部分增加的一种新的属性Extended_Communities属性。

原BGP新增路由:

MP-BGP新增路由:

注意:Path Attributes路径属性
Path Attributes 是个变长字段,它是一个 list,包含 N 个三元组(attribute type, attribute length, attribute value)。也就是TLV结构。

Address Family Identifier和Subsequent Address Family Identifier一起用于指示该属性通告的可达性信息所属的地址族。

Address-family:说明下面路由前缀将采用的地址类型,不仅包含原先的普通IPv4地址,可能是IPv6地址,或者是用于BGP/MPLS 虚拟专用网络中传递私网路由所要用到的VPNv4地址。

NLRI(Network Layer Reachability Information):表示的是新增路由的目的网段信息,如果在Address-family区域中指明采用的地址簇是VPNv4地址簇,那么该处格式将包含两个部分,第一部分是私网标签,是一个MPLS标签值;第二部分是一个VPNv4地址,其格式是RD+IPv4地址。VPNv4地址格式是BGP/MPLS 虚拟专用网络传递私网路由所需要的。

这里可以携带多个Label,每个Label的前20位是标签,后4位的前3位是EXP域,最后一位用于指示是否是栈底。
这个标签必须是MP_REACH_NLRI属性中Next_Hop属性所指的LSR所分配。

MP_UNREACH_NLRI属性代替了原BGP更新消息里面的Withdrawn Routes(撤销路由)。

1.3、Route Target属性

MP-BGP的最后一个改动是增加了一个扩展团体属性(Extended_CommunitiesI),并且起了一个新名字:RT(Route Target)。这个翻译过来就是路由目标,通常被称为RT属性。

扩展的community有如下两种格式:其中type字段为0x0002或者0x0102时表示RT。通常由用户根据自己的使用习惯来决定使用哪种格式。


0x0002类型的RT格式为2字节的AS号加上4字节的用户自定义数字,如100:1、200:1等,100、200通常为BGP的AS号,AS号不是必须配置,也可不配置;后面的1、2通常为VPN编号,表示不同的虚拟专用网络。

0x0102类型的RT格式为4字节的IP地址加上2字节的用户自定义数字,如192.168.0.1:1、10.10.10.1:2等,前面的IP地址通常为PE设备的Router ID,与上而一样也可不配置;后面的1、2通常为VPN编号,表示不同的虚拟专用网络。

0x0202类型的RT格式为4字节的AS号加上2字节的用户自定义数字,如65538:1、65540:2等,自治系统号最小值为65536;后面的1、2通常为VPN编号,表示不同的虚拟专用网络。

RT的本质是每个VRF表达自己的路由取舍及喜好的方式。可以分为两部分:Export Target与Import Target。

  • 在一个VRF中,在发布路由时使用RT的export规则。直接发送给其他的PE设备;
  • 在接收端的PE上,接收所有的路由,并根据每个VRF配置的RT的import规则进行检查,如果与路由中的RT属性匹配(“或”方式比较,有交集就接收。),则将该路由加入到相应的VRF中。

VPN TARGET属性定义了一条VPN路由可以为哪些站点所接收,以及PE可以接收哪些站点发送来的路由。

RT实际上是一个属性列表,可以配置一个或多个Export Target与import Target属性值。举例:PE1设备接收到一台CE设备的路由时,会将该接口所属的VRF的export值加入到该路由的target属性中。

PE1发送时,MP-BGP会携带所有的Export Target值,在同一个虚拟专用网络的PE接收到路由信息中携带有RT Export Targe值,接收PE将此值与本地虚拟专用网络的import Target属性值进行比较,从而决定是否加入到VRF路由表,以及加入到哪个VRF路由表中。

RT的灵活应用:

  • Intranet模式
    一个VPN中的所有用户形成闭合用户群,相互之间能够进行流量转发,VPN中的用户不能与任何本VPN以外的用户通信。这种组网方式叫做Intranet模式,其站点通常是属于同一个组织。
  • Hub-spoke模式
    中心访问控制设备所在站点称为Hub站点,其他用户站点称为Spoke站点。用户Hub站点可以与每一Spoke站点进行互通,而每一Spoke站点之间禁止相互访问。简单来说就是分部如果需要互访,都通过总部来进行。
  • Extrance模式
    外联网模式,各分部实现互相访问。

由于每个RT Export Target与import Target都可以配置多个属性,可以实现非常灵活的虚拟专用网络(VPN)访问控制。以上图为例设置总部PE的Import Target的值为100:2,Export Target的值为100:1,设置分部的PEImport Target的值为100:1,Export Target的值为100:2,当分部发送路由时,会在MP-BGP路由信息中携带RT属性值100:2,当总部收到路由后,对比发现本地的Import Target的属性值是100:2,相同则接收该路由,将此路由收录到虚拟专用网络路由表中。

商业虚拟专用网络技术十二 BGP/MPLS相关推荐

  1. 商业虚拟专用网络技术十四 BGP/MPLS技术扩展

    一.BGP/MPLS技术扩展 1.BGP/MPLS VPN企业内网使用 1.1.BGP/MPLS VPN组网的不足 1.1.1.企业内网结构 接入层:主要负责工作组的接入和访问控制,由于分散所以流量一 ...

  2. 商业虚拟专用网络技术十 MPLS技术

    一.MPLS协议 1.MPLS简介 在90年代传统路由器设备因其.转发性能低下,无法提供QOS保证.逐渐成为网络的瓶颈.为什么会出现这样的状况? 主要是因为路由器采用的转发效率不高,路由器使用的是IP ...

  3. 商业虚拟专用网络技术十一 MPLS转发

    商业虚拟专用网络技术十一 MPLS转发 4.MPLS转发的实现 4.1.标签压入PUSH 4.2.标签交换SWAP 4.3.标签弹出POP 4.4.华为设备转发过程 4.5.MPLS对TTL的操作 4 ...

  4. 商业虚拟专用网络技术十三 BGP/MPLS报文转发

    二.MP-BGP路由协议 1.4.RD前缀 假设VPN1和VPN2都使用了10.110.10.0/24网段的地址,并各自发布了一条去往此网段的路由.虽然本端PE通过不同的VPN实例可以区分地址空间重叠 ...

  5. 商业虚拟专用网络技术四数据传输安全技术

    一.数据传输安全技术 1.数据安全基本概念 数据是用于表示客观事物的未经加工的原始素材.在此篇中主要是指由电子设备产生的二机制文件,比如图片.音乐.视频.文档.程序及各种格式文件,存储于电子介质上的电 ...

  6. 商业虚拟专用网络技术六IPSec配置

    一.配置IPSec 1.配置的前提 配置IPSec前需要做好准备工作: (1).网络可达 需要确定网络流量的可达性,就是从出站口发送的数据包是否能够通过网络到达指定IP地址的设备. (2).确定需要保 ...

  7. MPLS工作机制及MPLS 虚拟专用网络技术

    一.MPLS概述 1.1 概述 传统的IP网络中,路由基于IP头部中的目的地址进行寻址以及转发操作,所有的路由设备需要维护路由表用于指导数据的转发.路由设备执行查询时,依据最长前缀匹配原则进行操作.在 ...

  8. 【阿里聚安全·安全周刊】阿里双11技术十二讲直播预约|AWS S3配置错误曝光NSA陆军机密文件

    原文链接:点击打开链接 摘要: 关键词:阿里双11技术十二讲直播丨雪人计划丨亚马逊AWS S3配置错误丨2018威胁预测丨MacOS漏洞丨智能风控平台MTEE3丨黑客窃取<权利的游戏>剧本 ...

  9. 【阿里聚安全·安全周刊】阿里双11技术十二讲直播预约|AWS S3配置错误曝光NSA陆军机密文件...

    关键词:阿里双11技术十二讲直播丨雪人计划丨亚马逊AWS S3配置错误丨2018威胁预测丨MacOS漏洞丨智能风控平台MTEE3丨黑客窃取<权利的游戏>剧本|Android 8.1   本 ...

  10. 互动媒体技术十二个“一”的文艺创作——小说创作

    互动媒体技术十二个"一"的文艺创作--小说创作 <玻璃>节选 俞城(男一号):学生,21岁.性格极具特色,表面倔强,但是经历过不为人知的故事.祖籍北京,地球上只剩下了爷 ...

最新文章

  1. linux -------- 使用xshell ,winscp 连接linux 以及一些问题解决
  2. python里面的之前打过的记忆信息-python 中 __init__方法
  3. Linux Bash变量-数值运算与运算符
  4. c语言xml字符串,C语言的XML解析器
  5. c语言消字母游戏实验报告,C语言编程实验报告格式示例
  6. angualarjsdemo
  7. java 文件封装_Java 封装
  8. pythoncookie自动模拟登录_用Python模拟技巧带你实现自动抽屉登录自动点赞
  9. “如果产品经理躺平接受需求,那程序员免不了想打一架”
  10. PyTorch | torch.randperm()使用方法
  11. Mysql中Event的一些测试
  12. 小米宣布将停止MIUI全球Beta测试计划
  13. 红外传感器的基础知识
  14. 微信小程序——flex弹性布局水平垂直居中
  15. C#XmlHelper操作Xml文档的帮助类
  16. access ribbon 编程_彻底玩转MS ACCESS 2016功能区编程设计(01)
  17. 关于CSDN如何搜索用户以及关注好友
  18. linkinfo.dll病毒 盗取 用户登陆 网页帐号,和密码
  19. python中title函数有什么用_Python 基础知识全篇-函数(Functions)
  20. 计算机二级主要是学什么,计算机二级ms office考的都是什么内容

热门文章

  1. MongoDB ODM
  2. 论一个好翻译的重要性
  3. 训练GAN,你应该知道的二三事
  4. 微软联合创始人,花花公子保罗·艾伦的传奇一生
  5. ANDROID_MARS学习笔记_S01原始版_009_下载文件
  6. [LeetCode][沙雕氵]如何用LeetCode130写一个故事?
  7. awgn matlab,Matlab实现加性高斯白噪声信道(AWGN)下的digital调制格式识别分类
  8. java中intern,在Java中什么时候使用String.intern()方法?
  9. 使用bs4爬取《孙子兵法》(处理string属性遇见<br>标签时提取为空)
  10. CSS响应式布局--三栏布局实例演示及优缺点详解