场景:

通常我们联通外网,是使用ISP联通从运营商获取的公网地址,但是NAT基础无法去从一个私网连接登录到另外一个私网地址。

例如:我们从分公司的网络去登录公司总部的某一台服务器。此时我们的源MAC地址是本地PC,目标MAC地址是网关,源IP是本地的私网ip,而目标ip是总公司的一个私网ip。而我们通过ISP路由器,此时查看我们的三层ip地址来更改我们的ip地址,但是我们只能去修改我们去的ip地址。 --- NAT技术只能去修改目标/源ip地址中的一个,无法做到用私网访问私网

而如何做到私网和私网间的联通呢?

1.物理专线---> 成本高,真实联通的网线

2.虚拟物理专线---> 虚拟专用网 --- 虚拟联通的网线

很显然我们没有办法去拉一条物理专线,所以我们只能去做一条虚拟联通的虚拟物理网线。而虚拟网线技术使用的核心技术是GRE(隧道)。

GRE:

GRE:通用路由封装技术,创建一条点到点的虚拟隧道,来代替真实的物理专线

 隧道技术 --- 在隧道的两端通过封装以及解封装技术在公网上建立一条数据通道。并使用这个虚拟的数据通道进行数据传输

注意,一旦隧道建立成功护,将会把两边的私网融合成一个私网。所以,在一开始分配私网网段时,就需要考虑,避免和其他的真实网段冲突。

特点:

我们希望的走法:

  SIP:本地的私网地址    DIP:目标网段的私网地址          数据

真实数据包的走法:

SIP:本地ISP的入接口 DIP:目标网段ISP的出接口        数据

加入GRE之后:

SIP:

本地ISP的入接口

DIP:

目标ISP的出接口

GRE   SIP:本地的私网地址 DIP:目标网段的私网地址  数据

原理:

本地的私网边界路由器通过在去往目标网段的数据包上加上GRE标签(并用GRE封装自己真实想去的网段),目标网段的ISP通过转发数据包到对应的路由器,对应的路由器拆看是给自己的数据包,拆三层,发现GRE封装,此时再通过本地GRE技术,查看真实去往的网段信息

NAT配置:

//私网1
[R1]interface l 0
[R1-LoopBack0]ip address 192.168.1.1 24
[R1-LoopBack0]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address  1.0.0.1 30
[R1]ip route-static 0.0.0.0 0 1.0.0.2 //私网2
[R3]interface l 0
[R3-LoopBack0]ip address  192.168.3.1 24
[R3-LoopBack0]int g0/0/0
[R3-GigabitEthernet0/0/0]ip address  2.0.0.2 30
[R3]ip route    //ISP路由器
[ISP]interface g0/0/0
[ISP-GigabitEthernet0/0/0]ip address  1.0.0.2 30
[ISP-GigabitEthernet0/0/0]interface g0/0/1
[ISP-GigabitEthernet0/0/1]ip address 2.0.0.1 30//检测    两个私网的接口地址可以连通
[R1]ping 2.0.0.2PING 2.0.0.2: 56  data bytes, press CTRL_C to breakRequest time outReply from 2.0.0.2: bytes=56 Sequence=2 ttl=254 time=50 msReply from 2.0.0.2: bytes=56 Sequence=3 ttl=254 time=30 msReply from 2.0.0.2: bytes=56 Sequence=4 ttl=254 time=50 msReply from 2.0.0.2: bytes=56 Sequence=5 ttl=254 time=30 ms--- 2.0.0.2 ping statistics ---5 packet(s) transmitted4 packet(s) received20.00% packet lossround-trip min/avg/max = 30/40/50 ms//但是无法ping通到对方私网的具体网段  -- 如环回
<R1>ping -a 192.168.1.1 192.168.2.1PING 192.168.2.1: 56  data bytes, press CTRL_C to breakRequest time outRequest time outRequest time outRequest time outRequest time out--- 192.168.2.1 ping statistics ---5 packet(s) transmitted0 packet(s) received100.00% packet loss//同样的使用本地的环回也无法ping通对方的接口
<R1>ping -a 192.168.1.1 2.0.0.2PING 2.0.0.2: 56  data bytes, press CTRL_C to breakRequest time outRequest time outRequest time outRequest time outRequest time out--- 2.0.0.2 ping statistics ---5 packet(s) transmitted0 packet(s) received100.00% packet loss

此时进行抓包,发现了一个有趣的现象 ,在通过R1的环回192.168.1.0/24去ping2.0.0.2这个对方私网接口的出接口时,发现有回包:

这个是在R3的G0/0/0接口抓的包

这个是在R1的G0/0/0接口抓的包

很明显,在ISP的回包时,没有产生回包

配置GRE技术:

         我们使用的GRE技术,就是产生一个类似静态的直达路由,让192.168.1.0/24网段和192.168.3.0/24网段能做到直达。

GRE隧道的网段依附于一个存在的物理专线,所以在配置GRE隧道时,需要注意网段分配

//配置GRE技术,首先有对端的路由表,既:能ping到对端的接口//R1方
//①创建隧道接口   可以配置的隧道接口有511个
[R1]interface Tunnel 0/0/0
[R1-Tunnel0/0/0]//②隧道接口配置IP地址   -- 这个ip地址必须为私网ip地址,而不是公网ip地址
[R1-Tunnel0/0/0]ip address  192.168.3.1 24//③定义封装类型为 GRE
[R1-Tunnel0/0/0]tunnel-protocol gre //④定义封装内容   源ip和目标ip   --- 这个ip必须是依附在可以连通的网段上 --- ISP的网络进出口
[R1-Tunnel0/0/0]source 1.0.0.1
[R1-Tunnel0/0/0]destination 2.0.0.2//检查
[R1-Tunnel0/0/0]display this
[V200R003C00]
#
interface Tunnel0/0/0ip address 192.168.2.1 255.255.255.0 tunnel-protocol gresource 1.0.0.1destination 2.0.0.2
#
return//R3方
[R3]interface  Tunnel 0/0/0
[R3-Tunnel0/0/0]ip address 192.168.2.2 24
[R3-Tunnel0/0/0]tunnel-protocol gre
[R3-Tunnel0/0/0]source 2.0.0.2
[R3-Tunnel0/0/0]description 1.0.0.1
[R3-Tunnel0/0/0]display this
[V200R003C00]
#
interface Tunnel0/0/0description 1.0.0.1ip address 192.168.2.2 255.255.255.0 tunnel-protocol gresource 2.0.0.2
#
return//然后GRE需要配置基于路由表查询  !!! 这个很重要,相当于配置一个静态路由刷新到路由表上#R1上的虚拟管道路由ip为192.168.2.1#R3上的虚拟管道路由ip为192.168.2.2[R1]ip route-static 192.168.3.0 24 192.168.2.2    #R1上配置到R3的静态路由(基于管道的虚拟路由)   --- 通过虚拟的管道对端ip访问网段
[R3]ip route-static 192.168.1.0 24 192.168.2.1#R3上配置到R1的静态路由(基于管道的虚拟路由)   --- 通过虚拟的管道对端ip访问网段//此时查看ip的静态路由
<R1>display ip routing-table protocol static
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : StaticDestinations : 2        Routes : 2        Configured Routes : 2Static routing table status : <Active>Destinations : 2        Routes : 2Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface0.0.0.0/0   Static  60   0          RD   1.0.0.2         GigabitEthernet
0/0/0192.168.3.0/24  Static  60   0          RD   192.168.2.2     Tunnel0/0/0Static routing table status : <Inactive>Destinations : 0        Routes : 0//此时用R1去ping通R3的换回
<R1>ping -a 192.168.1.1 192.168.3.1PING 192.168.3.1: 56  data bytes, press CTRL_C to breakReply from 192.168.3.1: bytes=56 Sequence=1 ttl=255 time=30 msReply from 192.168.3.1: bytes=56 Sequence=2 ttl=255 time=20 msReply from 192.168.3.1: bytes=56 Sequence=3 ttl=255 time=30 msReply from 192.168.3.1: bytes=56 Sequence=4 ttl=255 time=30 msReply from 192.168.3.1: bytes=56 Sequence=5 ttl=255 time=30 ms--- 192.168.3.1 ping statistics ---5 packet(s) transmitted5 packet(s) received0.00% packet lossround-trip min/avg/max = 20/28/30 ms

抓包查看!!!

此时再查看这个具体的数据包(在正常的数据包上,套接了GRE模块,包含真实访问ip)

分析:

MGRE技术:

此时总公司想要联通三个分公司(MA网络),此时各个分公司要做到总公司的GRE路由和互相之间的GRE路由明显会产生很大的开销,配置太多。如果使用GRE路由技术存在一个技术问题:此时Sip为总公司的ip地址,而Dip不固定(可能为分公司的1~3),此时引入MGRE技术。

原理:NHRP协议

GRE搭建的是一个点到点的隧道,所以导致其扩展性较差(此时,当多个私网需要互相链接时,需要搭建多个GRE隧道,配置要求太高。而如果配置一个总的GRE通道没有办法确定目标的IP地址)。此时需要使用MGRE技术(多点通用路由封装技术)。MGRE技术的核心就是NHRP协议。

NHRP协议:下一跳解析协议(自动学习隧道地址和物理地址的对应关系的一种方式)
        原理:需要在私网中选出一个不会变化的物理接口作为NHRP的中心(NHS - 下一跳服务器),剩下的分支都需要知道中心的隧道IP和物理接口IP,他们需要将自己的物理接口IP和隧道IP发送给中心(如果分支的物理接口的IP地址发生变化,则需要立即将对应关系重新发送)。

这样NHS将会收集到所有分支的地址映射关系。之后需要通讯时,查看对应关系,封装对应的接口IP即可分支之间需要进行通讯,则先将数据发给中心,由中心进行转发.
        这种中心站点到分支站点的架构 -- HUB-SPOKE架构
        因为MGRE搭建的逻辑拓扑是一个多节点的网络,但是发送信息时依然是点到点的发送,无法使用广播/组播行为,这样的网络可以称为NBMA网络(属于逻辑上搭建的NBMA网络,真正意义上物理设备搭建出的NBMA网络是帧中继。)

配置①:先保证私网节点间联通

//模拟总公司路由R1
[R1]interface g0/0/0
[R1-GigabitEthernet0/0/0]ip address  1.0.0.1 30
[R1-GigabitEthernet0/0/0]int l 0
[R1-LoopBack0]ip address  192.168.1.1 24//模拟分公司1路由R2
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address  2.0.0.1 30
[R2-GigabitEthernet0/0/0]int l 0
[R2-LoopBack0]ip address  192.168.2.1 24
[R2]ip route-static 0.0.0.0 0 2.0.0.2//模拟分公司2路由R3
[R3]interface  g0/0/0
[R3-GigabitEthernet0/0/0]ip address  3.0.0.1 30
[R3-GigabitEthernet0/0/0]int l 0
[R3-LoopBack0]ip address  192.168.3.1 24
[R3]ip route-static 0.0.0.0 0 3.0.0.2//模拟分公司3路由R4
[R4]interface  g0/0/0
[R4-GigabitEthernet0/0/0]ip address  4.0.0.1 30
[R4-GigabitEthernet0/0/0]int l 0
[R4-LoopBack0]ip address  192.168.4.1 24
[R4]ip route-static 0.0.0.0 0 4.0.0.2//模拟运营商的ISP
[ISP]interface g0/0/0
[ISP-GigabitEthernet0/0/0]ip address  1.0.0.2 30
[ISP-GigabitEthernet0/0/0]interface g0/0/1
[ISP-GigabitEthernet0/0/1]ip address 2.0.0.2 30
[ISP-GigabitEthernet0/0/1]interface g0/0/2
[ISP-GigabitEthernet0/0/2]ip address 3.0.0.2 30
[ISP-GigabitEthernet0/0/2]interface g4/0/0
[ISP-GigabitEthernet4/0/0]ip address 4.0.0.2 30//此时在总公司路由R1去ping分公司的路由
[R1]ping 4.0.0.1PING 4.0.0.1: 56  data bytes, press CTRL_C to breakRequest time outReply from 4.0.0.1: bytes=56 Sequence=2 ttl=254 time=70 msReply from 4.0.0.1: bytes=56 Sequence=3 ttl=254 time=30 msReply from 4.0.0.1: bytes=56 Sequence=4 ttl=254 time=40 msReply from 4.0.0.1: bytes=56 Sequence=5 ttl=254 time=10 ms--- 4.0.0.1 ping statistics ---5 packet(s) transmitted4 packet(s) received20.00% packet lossround-trip min/avg/max = 10/37/70 ms//目前的私网路由已经联通

配置②:给中心站点

给中心站点进行配置:边界路由器出接口的公网ip地址不会发生变化作为NHS(中心站点)

//配置中心管道
[R1]interface Tunnel 0/0/0//中心的管道ip
[R1-Tunnel0/0/0]ip address  192.168.5.1 24//选择管道协议为MGRE
[R1-Tunnel0/0/0]tunnel-protocol g
[R1-Tunnel0/0/0]tunnel-protocol gre ?p2mp  Point to multi-point GRE mode<cr>  Please press ENTER to execute command
[R1-Tunnel0/0/0]tunnel-protocol gre p2mp //配置真实源ip
[R1-Tunnel0/0/0]source 1.0.0.1//创建nhrp域100
[R1-Tunnel0/0/0]nhrp network-id  100#NHRP域为全局唯一的(不同于RIP的域),在其他的路由器上也要使用相同的NHRP域
#display nhrp peer all  -- 查看NHRP表的配置情况
[R1]display nhrp peer all Number of nhrp peers: 0

配置③:给分支站点

//分公司R2的配置
[R2]interface  Tunnel 0/0/0
[R2-Tunnel0/0/0]ip address  192.168.5.2 24//配置MGRE模式
[R2-Tunnel0/0/0]tunnel-protocol gre p2mp //源端口为本地端口
[R2-Tunnel0/0/0]source GigabitEthernet 0/0/0//然后配置NHRP 100域 (R1创建的)
[R2-Tunnel0/0/0]nhrp network-id 100//NHRP中,向中心站点R1的注册    nhrp entry 隧道地址[中心ip] 物理接口地址[中心接口] register
[R2-Tunnel0/0/0]nhrp entry 192.168.5.1 1.0.0.1 register//此时在中心的R1上查看nhrp域
[R1]display nhrp peer all
-------------------------------------------------------------------------------
Protocol-addr   Mask  NBMA-addr       NextHop-addr    Type         Flag
-------------------------------------------------------------------------------
192.168.5.2     32    2.0.0.1         192.168.5.2     dynamic      route tunnel
-------------------------------------------------------------------------------
Tunnel interface: Tunnel0/0/0
Created time    : 00:00:10
Expire time     : 01:59:50Number of nhrp peers: 1//R3,R4同理
[R3]interface Tunnel 0/0/0
[R3-Tunnel0/0/0]ip address  192.168.5.3 24
[R3-Tunnel0/0/0]tunnel-protocol  gre p2mp
[R3-Tunnel0/0/0]source G0/0/0
[R3-Tunnel0/0/0]nhrp network-id 100
[R3-Tunnel0/0/0]nhrp entry 192.168.5.1 1.0.0.1 register [R4]interface t0/0/0
[R4-Tunnel0/0/0]ip address  192.168.5.4 24
[R4-Tunnel0/0/0]tunnel-protocol gre p2mp
[R4-Tunnel0/0/0]source g0/0/0
[R4-Tunnel0/0/0]nhrp network-id  100
[R4-Tunnel0/0/0]nhrp entry 192.168.5.1 1.0.0.1 register //此时再去R1的NHRP表上查看
<R1>display nhrp peer all
-------------------------------------------------------------------------------
Protocol-addr   Mask  NBMA-addr       NextHop-addr    Type         Flag
-------------------------------------------------------------------------------
192.168.5.2     32    2.0.0.1         192.168.5.2     dynamic      route tunnel
-------------------------------------------------------------------------------
Tunnel interface: Tunnel0/0/0
Created time    : 00:07:04
Expire time     : 01:52:56
-------------------------------------------------------------------------------
Protocol-addr   Mask  NBMA-addr       NextHop-addr    Type         Flag
-------------------------------------------------------------------------------
192.168.5.3     32    3.0.0.1         192.168.5.3     dynamic      route tunnel
-------------------------------------------------------------------------------
Tunnel interface: Tunnel0/0/0
Created time    : 00:02:02
Expire time     : 01:57:58
-------------------------------------------------------------------------------
Protocol-addr   Mask  NBMA-addr       NextHop-addr    Type         Flag
-------------------------------------------------------------------------------
192.168.5.4     32    4.0.0.1         192.168.5.4     dynamic      route tunnel
-------------------------------------------------------------------------------
Tunnel interface: Tunnel0/0/0
Created time    : 00:00:46
Expire time     : 01:59:14Number of nhrp peers: 3

联通:

此时我们已经做完了基本MGRE配置了,只需要写虚拟网段的路由就可以进行联通。

//R1上进行配置
[R1]ip route-static 192.168.2.0 24 192.168.5.2
//R2上进行配置
[R2]ip route-static 192.168.1.0 24 192.168.5.1
//此时可以进行联通
[R1]ping 192.168.2.1PING 192.168.2.1: 56  data bytes, press CTRL_C to breakReply from 192.168.2.1: bytes=56 Sequence=1 ttl=255 time=40 msReply from 192.168.2.1: bytes=56 Sequence=2 ttl=255 time=20 msReply from 192.168.2.1: bytes=56 Sequence=3 ttl=255 time=20 msReply from 192.168.2.1: bytes=56 Sequence=4 ttl=255 time=20 msReply from 192.168.2.1: bytes=56 Sequence=5 ttl=255 time=40 ms--- 192.168.2.1 ping statistics ---5 packet(s) transmitted5 packet(s) received0.00% packet lossround-trip min/avg/max = 20/28/40 ms

此时,可不可以使用动态路由协议RIP来获取网段信息,而不是写静态路由呢?

      #伪广播:中心汇聚分站点的私网路由信息,此时中心并不知道私网的地址,此时需要开启伪广播多次发送单播包来发送信息给分站点

// 总公司R1
[R1]rip
[R1-rip-1]version 2
[R1-rip-1]network  192.168.1.0
[R1-rip-1]network  192.168.5.0
[R1]display ip routing-table protocol rip
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : RIPDestinations : 3        Routes : 3        RIP routing table status : <Active>Destinations : 3        Routes : 3Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface192.168.2.0/24  RIP     100  1           D   192.168.5.2     Tunnel0/0/0192.168.3.0/24  RIP     100  1           D   192.168.5.3     Tunnel0/0/0192.168.4.0/24  RIP     100  1           D   192.168.5.4     Tunnel0/0/0RIP routing table status : <Inactive>Destinations : 0        Routes : 0//分公司R2
[R2]rip
[R2-rip-1]version 2
[R2-rip-1]network  192.168.2.0
[R2-rip-1]network 192.168.5.0//分公司R3
[R3]rip
[R3-rip-1]version 2
[R3-rip-1]network  192.168.3.0
[R3-rip-1]network 192.168.5.0//分公司R4
[R4]rip
[R4-rip-1]version 2
[R4-rip-1]network 192.168.4.0
[R4-rip-1]network 192.168.5.0//此时只有R1可以有到R2-R4的路由,而R2-R4没有RIP路由表刷新
//原因: MGRE环境下不支持广播或者组播行为   --- RIP的地址包为组播包224.0.0.9//此时中心开启了伪广播            #伪广播为中心开启!!!
[R1-Tunnel0/0/0]nhrp entry multicast dynamic//此时R2-R4能刷出中心的路由
[R2]display ip routing-table protocol rip
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : RIPDestinations : 1        Routes : 1        RIP routing table status : <Active>Destinations : 1        Routes : 1Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface192.168.1.0/24  RIP     100  1           D   192.168.5.1     Tunnel0/0/0RIP routing table status : <Inactive>Destinations : 0        Routes : 0//但是此时各个分公司之间无法做到获得相互的路由信息
//原因:RIP水平分割导致
//此时中心关闭接口水平分割功能
[r1-Tunnel0/0/0]undo rip split-horizon//此时查看R2的RIP路由表  --- 可以刷新出信息
<R2>display  ip routing-table protocol rip
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : RIPDestinations : 3        Routes : 3        RIP routing table status : <Active>Destinations : 3        Routes : 3Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface192.168.1.0/24  RIP     100  1           D   192.168.5.1     Tunnel0/0/0192.168.3.0/24  RIP     100  2           D   192.168.5.1     Tunnel0/0/0192.168.4.0/24  RIP     100  2           D   192.168.5.1     Tunnel0/0/0RIP routing table status : <Inactive>Destinations : 0        Routes : 0

抓包!!!此时刚开启RIP协议
 没有关水平接口

关了水平接口之后

GRE,MGRE技术相关推荐

  1. CCNP实验:CHAP认证、MGRE技术

    文章目录 CCNP实验:CHAP认证.MGRE技术 1.规划IP: 2.配置: (1)底层: (2)路由: ①配置缺省: ②搭建MGRE环境: ③路由宣告: ④在R1上做NAT: ⑤CHAP认证: C ...

  2. hcip笔记(GRE,MGRE的介绍与配置)

    物理专线 --- 1,成本:2,地理位置限制 VPN --- 虚拟专用网 --- 隧道技术 --- 封装技术 GRE --- 通用路由封装 希望的走法 SIP:192.168.1.1 DIP:192. ...

  3. 【GRE/MGRE】

    ** 实验要求: ** 1.R5为ISP,只能进行ip地址配置;其所有接口配置为公有ip地址 2.R1与R5间使用PPP的PAP认证,R5为主认证方;R2与R5间使用PPP的chap认证,R5为主认证 ...

  4. 思科、华为 GRE 隧道技术 的原理及配置详解

    文章目录 概述 隧道传递数据包的过程分为3步: GRE 隧道 配置思路 工作原理 实验 实验要求: GRE 配置 总结 华为GRE 配置 概述 GRE是一种最传统的隧道协议,其根本功能就是要实现隧道功 ...

  5. 网络类型(P2P类型、MA类型、以太网技术、HDLC、PPP、GRE、MGRE)

    网络类型 网络三大类型 从数据链路层(二层)的技术来判断 一.点到点(P2P) 在一个物理的网段内,只能存在两个物理节点,无需二层地址.例如:串线. 二.BMA(广播型多路访问) 在一个物理的网段内, ...

  6. 【HCIP】数据链路层封装技术、GRE及实验(eNSP)

    文章目录 数据链路层封装技术 GRE MGRE 实验 实验要求 实验拓扑 实验步骤 IP配置 HDLC封装(R1-R2) ppp封装,pap认证(R2-R3) ppp封装,chap认证(R2-R4) ...

  7. cisco 2911 GRE ***

    实施GRE隧道技术 R1(config)#crypto isakmp policy 10 R1(config-isakmp)#encr 3des     hash  md5    authen pri ...

  8. ×××技术详解(全)

    ×××技术详解(全)   一.引言   <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office ...

  9. 华为AR1220路由器配置GRE隧道

    华为AR1220路由器配置GRE隧道 1.概要 组网要求 AR1.AR2.AR3 属于VPN骨干网,它们之间执行OSPF协议. AR2和AR3之间使用三层隧道协议,实现PC1和PC2互联. PC1和P ...

最新文章

  1. 带你开发类似 Pokemon Go 的 AR 游戏
  2. Ubuntu下编译ffmpeg+openh264+x264
  3. MBR与GPT的区别
  4. 私钥公钥学习心得(二)比特币与支付宝
  5. uniapp页面传参使用encodeURIComponent转义特殊符号
  6. java生成j动态页面_zk动态产生多个页面的例子代码
  7. import threading线程进程
  8. swoole 热重启
  9. JVM stack与Heap的区别
  10. 15.MongoDB的一致性(读关注与写关注)
  11. ListView添加图片文字项
  12. HTML小作业---网站首页/新闻栏目/banner图/js下拉框
  13. steam新授权软件_「西米软件推荐」桌面乱七八糟的人,请认真看完
  14. docker容器网络通信原理分析
  15. 双人版井字棋游戏c语言设计报告,井字棋游戏课程设计总结报告.doc
  16. exe文件关联被更改的解决方法
  17. 如何用python爬虫薅羊毛_怎么写网络爬虫来薅羊毛?
  18. js对文字批注_HTML 页面添加批注 - JavaScript - ITeye
  19. kubectl全部命令用法示例
  20. html右下角的字数计算,JavaScript_用JS剩余字数计算的代码,先看看HTML代码: textarea name - phpStudy...

热门文章

  1. 计算机维修知识论文,计算机维护和维修毕业论文.doc
  2. last 命令 – 显示用户历史登录情况
  3. 适配器模式(类适配器,对象适配器,接口适配器)
  4. c语言求摸球游戏,Play In The Dark——走近视觉障碍玩家的世界
  5. 脚本是什么意思?有什么特点?与RPA有哪些区别?
  6. 晒书有礼!《编写可读代码的艺术》(The Art of Readable Code)晒书有礼活动进行中...
  7. 贝店。贝店是什么?怎么注册?邀请码什么是分享经济?
  8. WordPress添加个性化的博客宠物的方法
  9. [usaco月赛]梦幻王国
  10. 李白打酒(蓝桥杯真题)——python讲解