1. 组网需求
    Switch B、Switch D为ED。虚拟机VM 1、VM 3属于VXLAN 10,VM 2属于VXLAN 20。通过VXLAN数据中心互联实现不同数据中心、不同VXLAN网络的互联。
    具体需求为:
    · 手工建立VXLAN隧道和VXLAN-DCI隧道。
    · 手工关联VXLAN和VXLAN隧道、VXLAN-DCI隧道。
    · 站点之间的泛洪流量采用头端复制的方式转发。

  2. 组网图

  3. 配置步骤
    (1) 配置IP地址和单播路由协议
    请按照以上拓扑图配置各接口的IP地址和子网掩码;在各台交换机上配置OSPF协议,确保交换机之间路由可达;配置Switch B和Switch D发布10.1.1.0/24、10.1.2.0/24网段的路由。(具体配置过程略)
    (2) 配置Switch A

开启L2VPN能力。

system-view
[SwitchA] l2vpn enable

创建VSI实例vpna和VXLAN 10。

[SwitchA] vsi vpna
[SwitchA-vsi-vpna] vxlan 10
[SwitchA-vsi-vpna-vxlan-10] quit
[SwitchA-vsi-vpna] quit

创建VSI实例vpnb和VXLAN 20。

[SwitchA] vsi vpnb
[SwitchA-vsi-vpnb] vxlan 20
[SwitchA-vsi-vpnb-vxlan-20] quit
[SwitchA-vsi-vpnb] quit

配置接口Loopback0的IP地址,作为隧道的源端地址。

[SwitchA] interface loopback 0
[SwitchA-Loopback0] ip address 1.1.1.1 255.255.255.255
[SwitchA-Loopback0] quit

在Switch A和Switch B之间建立VXLAN隧道:

· 创建模式为VXLAN的隧道接口Tunnel1。
· 指定隧道的源端地址为本地接口Loopback0的地址1.1.1.1。
· 指定隧道的目的端地址为Switch B上接口Loopback0的地址2.2.2.2。
[SwitchA] interface tunnel 1 mode vxlan
[SwitchA-Tunnel1] source 1.1.1.1
[SwitchA-Tunnel1] destination 2.2.2.2
[SwitchA-Tunnel1] quit

配置Tunnel1与VXLAN 10关联。

[SwitchA] vsi vpna
[SwitchA-vsi-vpna] vxlan 10
[SwitchA-vsi-vpna-vxlan-10] tunnel 1
[SwitchA-vsi-vpna-vxlan-10] quit
[SwitchA-vsi-vpna] quit

配置Tunnel1与VXLAN 20关联。

[SwitchA] vsi vpnb
[SwitchA-vsi-vpnb] vxlan 20
[SwitchA-vsi-vpnb-vxlan-20] tunnel 1
[SwitchA-vsi-vpnb-vxlan-20] quit
[SwitchA-vsi-vpnb] quit

在接入服务器的接口Ten-GigabitEthernet1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 100的数据帧,并将该服务实例与VSI实例vpna关联。

[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 100
[SwitchA-Ten-GigabitEthernet1/0/1] service-instance 1000
[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] encapsulation s-vid 100
[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna
[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] quit
[SwitchA-Ten-GigabitEthernet1/0/1] quit

在接入服务器的接口Ten-GigabitEthernet1/0/2上创建以太网服务实例1000,该实例用来匹配VLAN 200的数据帧,并将该服务实例与VSI实例vpnb关联。

[SwitchA] interface ten-gigabitethernet 1/0/2
[SwitchA-Ten-GigabitEthernet1/0/2] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/2] port trunk permit vlan 200
[SwitchA-Ten-GigabitEthernet1/0/2] service-instance 1000
[SwitchA-Ten-GigabitEthernet1/0/2-srv1000] encapsulation s-vid 200
[SwitchA-Ten-GigabitEthernet1/0/2-srv1000] xconnect vsi vpnb
[SwitchA-Ten-GigabitEthernet1/0/2-srv1000] quit
[SwitchA-Ten-GigabitEthernet1/0/2] quit
(3) 配置Switch B

开启L2VPN能力。

system-view
[SwitchB] l2vpn enable

创建VSI实例vpna和VXLAN 10。

[SwitchB] vsi vpna
[SwitchB-vsi-vpna] vxlan 10
[SwitchB-vsi-vpna-vxlan-10] quit
[SwitchB-vsi-vpna] quit

创建VSI实例vpnb和VXLAN 20。

[SwitchB] vsi vpnb
[SwitchB-vsi-vpnb] vxlan 20
[SwitchB-vsi-vpnb-vxlan-20] quit
[SwitchB-vsi-vpnb] quit

配置接口Loopback0的IP地址,作为隧道的源端地址。

[SwitchB] interface loopback 0
[SwitchB-Loopback0] ip address 2.2.2.2 255.255.255.255
[SwitchB-Loopback0] quit

在Switch B和Switch A之间建立VXLAN隧道:

· 创建模式为VXLAN的隧道接口Tunnel1。
· 指定隧道的源端地址为本地接口Loopback0的地址2.2.2.2。
· 指定隧道的目的端地址为Switch A上接口Loopback0的地址1.1.1.1。
[SwitchB] interface tunnel 1 mode vxlan
[SwitchB-Tunnel1] source 2.2.2.2
[SwitchB-Tunnel1] destination 1.1.1.1
[SwitchB-Tunnel1] quit

在Switch B和Switch D之间建立VXLAN-DCI隧道:

· 创建模式为VXLAN-DCI的隧道接口Tunnel2。
· 指定隧道的源端地址为本地接口Loopback0的地址2.2.2.2。
· 指定隧道的目的端地址为Switch D上接口Loopback0的地址3.3.3.3。
[SwitchB] interface tunnel 2 mode vxlan-dci
[SwitchB-Tunnel2] source 2.2.2.2
[SwitchB-Tunnel2] destination 3.3.3.3
[SwitchB-Tunnel2] quit

配置Tunnel1、Tunnel2与VXLAN 10关联。

[SwitchB] vsi vpna
[SwitchB-vsi-vpna] vxlan 10
[SwitchB-vsi-vpna-vxlan-10] tunnel 1
[SwitchB-vsi-vpna-vxlan-10] tunnel 2
[SwitchB-vsi-vpna-vxlan-10] quit
[SwitchB-vsi-vpna] quit

配置Tunnel1、Tunnel2与VXLAN 20关联。

[SwitchB] vsi vpnb
[SwitchB-vsi-vpnb] vxlan 20
[SwitchB-vsi-vpnb-vxlan-20] tunnel 1
[SwitchB-vsi-vpnb-vxlan-20] tunnel 2
[SwitchB-vsi-vpnb-vxlan-20] quit
[SwitchB-vsi-vpnb] quit

创建VSI虚接口VSI-interface1,并为其配置IP地址,该IP地址作为VXLAN 10内虚拟机的网关地址,指定该VSI虚接口为分布式本地网关接口,并开启本地代理ARP功能。

[SwitchB] interface vsi-interface 1
[SwitchB-Vsi-interface1] ip address 10.1.1.1 255.255.255.0
[SwitchB-Vsi-interface1] distributed-gateway local
[SwitchB-Vsi-interface1] local-proxy-arp enable
[SwitchB-Vsi-interface1] quit

创建VSI虚接口VSI-interface2,并为其配置IP地址,该IP地址作为VXLAN 20内虚拟机的网关地址,指定该VSI虚接口为分布式本地网关接口,并开启本地代理ARP功能。

[SwitchB] interface vsi-interface 2
[SwitchB-Vsi-interface2] ip address 10.1.2.1 255.255.255.0
[SwitchB-Vsi-interface2] distributed-gateway local
[SwitchB-Vsi-interface2] local-proxy-arp enable
[SwitchB-Vsi-interface2] quit

开启分布式网关的动态ARP表项同步功能。

[SwitchB] arp distributed-gateway dynamic-entry synchronize

为VXLAN 10所在的VSI实例vpna指定VSI虚接口VSI-interface1。

[SwitchB] vsi vpna
[SwitchB-vsi-vpna] gateway vsi-interface 1
[SwitchB-vsi-vpna] quit

配置VXLAN 20所在的VSI实例和接口VSI-interface2关联。

[SwitchB] vsi vpnb
[SwitchB-vsi-vpnb] gateway vsi-interface 2
[SwitchB-vsi-vpnb] quit
(4) 配置Switch D

开启L2VPN能力。

system-view
[SwitchD] l2vpn enable

创建VSI实例vpna和VXLAN 10。

[SwitchD] vsi vpna
[SwitchD-vsi-vpna] vxlan 10
[SwitchD-vsi-vpna-vxlan-10] quit
[SwitchD-vsi-vpna] quit

创建VSI实例vpnb和VXLAN 20。

[SwitchD] vsi vpnb
[SwitchD-vsi-vpnb] vxlan 20
[SwitchD-vsi-vpnb-vxlan-20] quit
[SwitchD-vsi-vpnb] quit

配置接口Loopback0的IP地址,作为隧道的源端地址。

[SwitchD] interface loopback 0
[SwitchD-Loopback0] ip address 3.3.3.3 255.255.255.255
[SwitchD-Loopback0] quit

在Switch D和Switch E之间建立VXLAN隧道:

· 创建模式为VXLAN的隧道接口Tunnel1。
· 指定隧道的源端地址为本地接口Loopback0的地址3.3.3.3。
· 指定隧道的目的端地址为Switch E上接口Loopback0的地址4.4.4.4。
[SwitchD] interface tunnel 1 mode vxlan
[SwitchD-Tunnel1] source 3.3.3.3
[SwitchD-Tunnel1] destination 4.4.4.4
[SwitchD-Tunnel1] quit

在Switch D和Switch B之间建立VXLAN-DCI隧道:

· 创建模式为VXLAN-DCI的隧道接口Tunnel2。
· 指定隧道的源端地址为本地接口Loopback0的地址3.3.3.。
· 指定隧道的目的端地址为Switch B上接口Loopback0的地址2.2.2.2。
[SwitchD] interface tunnel 2 mode vxlan-dci
[SwitchD-Tunnel2] source 3.3.3.3
[SwitchD-Tunnel2] destination 2.2.2.2
[SwitchD-Tunnel2] quit

配置Tunnel1、Tunnel2与VXLAN 10关联。

[SwitchD] vsi vpna
[SwitchD-vsi-vpna] vxlan 10
[SwitchD-vsi-vpna-vxlan-10] tunnel 1
[SwitchD-vsi-vpna-vxlan-10] tunnel 2
[SwitchD-vsi-vpna-vxlan-10] quit
[SwitchD-vsi-vpna] quit

配置Tunnel2与VXLAN 20关联。

[SwitchD] vsi vpnb
[SwitchD-vsi-vpnb] vxlan 20
[SwitchD-vsi-vpnb-vxlan-20] tunnel 2
[SwitchD-vsi-vpnb-vxlan-20] quit
[SwitchD-vsi-vpnb] quit

创建VSI虚接口VSI-interface1,并为其配置IP地址,该IP地址作为VXLAN 10内虚拟机的网关地址,指定该VSI虚接口为分布式本地网关接口,并开启本地代理ARP功能。

[SwitchD] interface vsi-interface 1
[SwitchD-Vsi-interface1] ip address 10.1.1.1 255.255.255.0
[SwitchD-Vsi-interface1] distributed-gateway local
[SwitchD-Vsi-interface1] local-proxy-arp enable
[SwitchD-Vsi-interface1] quit

创建VSI虚接口VSI-interface2,并为其配置IP地址,该IP地址作为VXLAN 20内虚拟机的网关地址,指定该VSI虚接口为分布式本地网关接口,并开启本地代理ARP功能。

[SwitchD] interface vsi-interface 2
[SwitchD-Vsi-interface2] ip address 10.1.2.1 255.255.255.0
[SwitchD-Vsi-interface2] distributed-gateway local
[SwitchD-Vsi-interface2] local-proxy-arp enable
[SwitchD-Vsi-interface2] quit

开启分布式网关的动态ARP表项同步功能。

[SwitchD] arp distributed-gateway dynamic-entry synchronize

为VXLAN 10所在的VSI实例vpna指定VSI虚接口VSI-interface1。

[SwitchD] vsi vpna
[SwitchD-vsi-vpna] gateway vsi-interface 1
[SwitchD-vsi-vpna] quit

配置VXLAN 20所在的VSI实例和接口VSI-interface2关联。

[SwitchD] vsi vpnb
[SwitchD-vsi-vpnb] gateway vsi-interface 2
[SwitchD-vsi-vpnb] quit
(5) 配置Switch E

开启L2VPN能力。

system-view
[SwitchE] l2vpn enable

创建VSI实例vpna和VXLAN 10。

[SwitchE] vsi vpna
[SwitchE-vsi-vpna] vxlan 10
[SwitchE-vsi-vpna-vxlan-10] quit
[SwitchE-vsi-vpna] quit

配置接口Loopback0的IP地址,作为隧道的源端地址。

[SwitchE] interface loopback 0
[SwitchE-Loopback0] ip address 4.4.4.4 255.255.255.255
[SwitchE-Loopback0] quit

在Switch E和Switch D之间建立VXLAN隧道:

· 创建模式为VXLAN的隧道接口Tunnel1。
· 指定隧道的源端地址为本地接口Loopback0的地址4.4.4.4。
· 指定隧道的目的端地址为Switch D上接口Loopback0的地址3.3.3.3。
[SwitchE] interface tunnel 1 mode vxlan
[SwitchE-Tunnel1] source 4.4.4.4
[SwitchE-Tunnel1] destination 3.3.3.3
[SwitchE-Tunnel1] quit

配置Tunnel1与VXLAN 10关联。

[SwitchE] vsi vpna
[SwitchE-vsi-vpna] vxlan 10
[SwitchE-vsi-vpna-vxlan-10] tunnel 1
[SwitchE-vsi-vpna-vxlan-10] quit
[SwitchE-vsi-vpna] quit

在接入服务器的接口Ten-GigabitEthernet1/0/1上创建以太网服务实例1000,该实例用来匹配VLAN 100的数据帧。

[SwitchA] interface ten-gigabitethernet 1/0/1
[SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk
[SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 100
[SwitchA-Ten-GigabitEthernet1/0/1] service-instance 1000
[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] encapsulation s-vid 100

配置以太网服务实例1000与VSI实例vpna关联。

[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna
[SwitchA-Ten-GigabitEthernet1/0/1-srv1000] quit
[SwitchA-Ten-GigabitEthernet1/0/1] quit
4. 验证配置
(1) 验证ED(下文以Switch B为例,其它设备验证方法与此类似)

查看Switch B上的Tunnel接口信息,可以看到VXLAN模式和VXLAN-DCI模式的Tunnel接口处于up状态。

[SwitchB] display interface tunnel
Tunnel1
Current state: UP
Line protocol state: UP
Description: Tunnel1 Interface
Bandwidth: 64 kbps
Maximum transmission unit: 1464
Internet protocol processing: Disabled
Last clearing of counters: Never
Tunnel source 2.2.2.2, destination 1.1.1.1
Tunnel protocol/transport UDP_VXLAN/IP
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Input: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops
Tunnel2
Current state: UP
Line protocol state: UP
Description: Tunnel2 Interface
Bandwidth: 64 kbps
Maximum transmission unit: 1464
Internet protocol processing: Disabled
Last clearing of counters: Never
Tunnel source 2.2.2.2, destination 3.3.3.3
Tunnel protocol/transport UDP_VXLAN_DCI/IP
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Input: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops

查看Switch B上的VSI虚接口信息,可以看到VSI虚接口处于up状态。

[SwitchB] display interface vsi-interface
Vsi-interface1
Current state: UP
Line protocol state: UP
Description: Vsi-interface1 Interface
Bandwidth: 1000000 kbps
Maximum transmission unit: 1500
Internet address: 10.1.1.1/24 (primary)
IP packet frame typeKTFMT_ETHNT_2, hardware address: 0011-2200-0102
IPv6 packet frame typeKTFMT_ETHNT_2, hardware address: 0011-2200-0102
Physical: Unknown, baudrate: 1000000 kbps
Last clearing of counters: Never
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Input: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops
Vsi-interface2
Current state: UP
Line protocol state: UP
Description: Vsi-interface2 Interface
Bandwidth: 1000000 kbps
Maximum transmission unit: 1500
Internet address: 10.1.2.1/24 (primary)
IP packet frame typeKTFMT_ETHNT_2, hardware address: 0011-3300-0102
IPv6 packet frame typeKTFMT_ETHNT_2, hardware address: 0011-3300-0102
Physical: Unknown, baudrate: 1000000 kbps
Last clearing of counters: Never
Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec
Input: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops

查看Switch B上的VSI信息,可以看到VSI内创建的VXLAN,与VSI关联的VSI虚接口,以及VXLAN关联的VXLAN隧道、VXLAN-DCI隧道等信息。

[SwitchB] display l2vpn vsi verbose
VSI Name: vpna
VSI Index : 0
VSI State : Up
MTU : 1500
Bandwidth : -
Broadcast Restrain : -
Multicast Restrain : -
Unknown Unicast Restrain: -
MAC Learning : Enabled
MAC Table Limit : -
MAC Learning rate : -
Drop Unknown : -
Flooding : Enabled
Gateway interface : VSI-interface 1
VXLAN ID : 10
Tunnels:
Tunnel Name Link ID State Type Flood proxy
Tunnel1 0x5000001 Up Manual Disabled
Tunnel2 0x5000002 Up Manual Disabled
VSI Name: vpnb
VSI Index : 0
VSI State : Up
MTU : 1500
Bandwidth : -
Broadcast Restrain : -
Multicast Restrain : -
Unknown Unicast Restrain: -
MAC Learning : Enabled
MAC Table Limit : -
MAC Learning rate : -
Drop Unknown : -
Flooding : Enabled
Gateway interface : VSI-interface 2
VXLAN ID : 20
Tunnels:
Tunnel Name Link ID State Type Flood proxy
Tunnel1 0x5000001 Up Manual Disabled
Tunnel2 0x5000002 Up Manual Disabled

查看Switch B上VSI的ARP表项信息,可以看到已学习到了虚拟机的ARP信息。

[SwitchB] display arp
Type: S-Static D-Dynamic O-Openflow R-Rule M-Multiport I-Invalid
IP address MAC address VLAN/VSI Interface/Link ID Aging Type
11.1.1.4 000c-29c1-5e46 N/A Vlan11 19 D
10.1.1.11 0cda-41b5-cf09 0 Tunnel1 20 D
10.1.1.12 0011-4400-0102 0 Tunnel2 20 D
10.1.2.11 0cda-41b5-cf89 1 Tunnel1 20 D
(2) 验证主机
虚拟机VM 1、VM 2、VM 3之间可以互访。

VXLAN数据中心互联典型配置举例相关推荐

  1. 纤亿通谈大型数据中心互联之T级光传输解决方案

    随着互联网的蓬勃发展,大型数据中心也如雨后春笋般涌现. 今天主要讲解目前大型数据中心的互联方案吧.现在国内大型数据中心互联传输的业务量逐渐从百G过度到T级,但是光纤都是已有光纤,资源紧缺,很难再次铺设 ...

  2. 大型数据中心互联(T级光传输方案)

    随着互联网的蓬勃发展,大型数据中心也如雨后春笋般涌现.今天主要讲解目前大型数据中心的互联方案. 现在国内大型数据中心互联传输的业务量逐渐从百G过度到T级,但是光纤都是已有光纤,资源紧缺,很难再次铺设光 ...

  3. 华三交换机配置vrrp_H3C交换机 典型配置举例-6W100

    1  基于IPv4的VRRP典型配置举例 1.1  简介 本章介绍使用VRRP技术提高网络可靠性的典型配置举例. 1.2  VRRP单备份组实现网关备份典型配置举例 表1 配置适用的产品与软件版本关系 ...

  4. VxLAN数据中心L2/L3互通(端到端)

    VxLAN数据中心端到端方式实现L2/L3互连,这种实现方式可以使数据中心属于同一个EVPN-VXLAN域,相较于hand-off方式通过端到端实现数据中心L2互连可以满足Mac mobility.A ...

  5. 全球最大IXP为何选择与华为开展数据中心互联合作?

    在固定宽带这个巨大市场,以技术创新为"利器"的华为,又攻克了新"城池"--AMS-IX(阿姆斯特丹互联网交换中心). 近日,位于荷兰的全球最大IXP(互联网交换 ...

  6. 华为ac配置radius认证服务器_华为aaa配置 华为AAA认证典型配置举例 - 网络设备 - 服务器之家...

    华为aaa配置 华为AAA认证典型配置举例 发布时间:2017-03-06 来源:服务器之家 2.5 AAA典型配置举例 2.5.1 Telnet/SSH用户通过RADIUS服务器认证的应用配置 SS ...

  7. 无线控制器认证服务器,H3C WX系列无线控制器作为SSH服务器password认证典型配置举例...

    H3C WX系列无线控制器作为SSH服务器password认证典型配置举例 一.组网需求: WX系列AC.FIT AP.便携机(安装有无线网卡).交换机 二.组网图: 本配置举例中的AC使用的是WX5 ...

  8. 从Google Aquila和RMA谈谈数据中心互联技术变革,NUPA和UMA

    最近Google发布了"全新"数据中心架构,一个可预测.低延迟.高带宽.低成本.低碳的数据中心架构.并提出了TiN和RMA概念.今天笔者从边缘智芯的技术路线,谈谈什么是TiN和RM ...

  9. JVM调优总结(七)-典型配置举例1

    以下配置主要针对分代垃圾回收算法而言. 堆大小设置 年轻代的设置很关键 JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理 ...

最新文章

  1. DBUtils的使用之增删改的操作
  2. python语法基础知识-python_基础知识_安装和基础语法
  3. python table数据抓取_Python爬虫:数据抓取工具及类库详解
  4. java文本区显示在右边_怎么让文本区从右边开始显示文本
  5. A Windows Mobile GPS Application Sample – Using Fake GPS
  6. Java 8 CompletableFuture
  7. 在asp.net 2.0中使用SqlBulkCopy类迁移数据
  8. 上位机软件控制下位机PHP,采用stm32f103CB硬件I2C1/2(自制硬件)中断/DMA访问,四轴开源程序,DMP,PCB外框图纸库文件,USBToVCOM代码下位机...
  9. Android官方开发文档Training系列课程中文版:手势处理之ViewGroup的事件管理
  10. windows 编写的脚本 无法在linux下运行
  11. 富文本框让最大四百像素_富文本框的使用
  12. 李彦宏回应百度落后:我们擅长技术含量高的
  13. 战争论 —— 蓝田之战
  14. Win10显示文件扩展名
  15. python 有限域函数库_有限域GF(2^8)内乘法代码实现以及原理
  16. 一个故事看懂计算机操作系统的进化史
  17. php图形验证码验证,php图片验证码代码
  18. pikachu通关全集
  19. 数字 阅读与创造——读戴德金之三
  20. 西电网安专硕考研分享

热门文章

  1. 养肥了再宰,Nginx之父被警方抓走!
  2. 如何看论文信息(期刊会议,引用数,期刊等级,会议层次)
  3. SAP HR的使用心得
  4. 1974: 两点之间的距离(结构体专题)
  5. Day 92 : Docker容器技术详解
  6. 干货 | 独创分布式网络负载均衡最佳实践
  7. Javaweb-书城项目
  8. 04.9. 环境和分布偏移
  9. 安卓dj专业打碟机软件_DJ打碟机调速杆,你真的会用吗?
  10. F-星球大战(几何题)