DMVPN 动态多点隧道技术

2023-05-16

DMVPN的特点

  • 配置简单

中心站点只需要配置一次即可,增加站点无需修改中心站点配置,分支站点配置几乎相同;

  • 性能好

能够实现动态mGRE隧道,数据在分支之间能够直接通信,一次加解密即可;

  • 支持动态IP地址

只需要中心拥有固定IP地址,分支机构可以使用动态IP地址,甚至可以位于NAT之后;

  • 提供全互联拓扑

分支机构到中心的静态mGRE隧道、分支机构之间的动态mGRE隧道;

  • 零丢包能力

初始的一些报文由中心代为转发,分支之间的动态隧道建立起来之后,数据直接在分支之间传递;

  • 支持分支结构到中心的组播

能够支持IP组播网络以及动态路由协议;

DMVPN的四个基本组件

  • mGRE

提供通信信道;对于中心站点来说,只需要配置源地址,目标地址根据Spoke的注册报文来产生;

  • NHRP

下一跳地址解析协议,主要负责分支注册、分支NBMA地址解析;C/S架构,Hub是Server,Spoke是Client;

  • 动态路由协议

主要负责传递路由

  • IPSec

主要负责流量加固

DMVPN实施

上拓扑!!!

配置思路:

1、接口IP地址,连接CE设备使能VRF

2、ISP内网络互通,使用OSPF

3、ISP内部署MPLS

4、部署BGP VPNV4

5、BGP创建VRF,引入直连

6、CE设备创建静态路由------Spoke与Spoke和HUB之间可以互通

7、在CE设备上开启Tunnel接口,mode为mGRE

8、在Tunnel接口下开启NHRP-------此时Tunnel接口之间可以互通

9、CE设备之间部署EIGRP,network loopback 1 IP地址------Loopback 1 之间可以互通

10、一定要在隧道可以胡同的情况下再做隧道的加密

1、PE设备上创建VRF,并绑定接口,以R3为例

R3(config)#vrf definition alextest 
R3(config-vrf)#rd 1:1
R3(config-vrf)#route-target 1:1
R3(config-vrf)#address-family ipv4 
R3(config-vrf-af)#exit
R3(config-vrf)#exit
R3(config)#interface ethernet 0/0
R3(config-if)#vrf forwarding alextest 
R3(config-if)#ip address 13.1.1.3 255.255.255.0

 2、ISP中部署OSPF,以R3为例

R3(config)#router ospf 1 
R3(config-router)#router-id 3.3.3.3
R3(config-router)#exit
R3(config)#interface loopback 0
R3(config-if)#ip ospf 1 area 0
R3(config-if)#exit
R3(config)#interface ethernet 0/1
R3(config-if)#ip ospf 1 area 0
R3(config-if)#ip ospf network point-to-point 
R3(config-if)#exit
R3(config)#interface ethernet 0/2
R3(config-if)#ip ospf 1 area 0
R3(config-if)#ip ospf network point-to-point 

3、在R3上查看OSPF邻居

R3#show ip ospf neighbor 

Neighbor ID     Pri   State           Dead Time   Address         Interface
5.5.5.5           0   FULL/  -        00:00:30    35.1.1.5        Ethernet0/2
4.4.4.4           0   FULL/  -        00:00:36    34.1.1.4        Ethernet0/1

4、在接口上启用MPLS,以R3为例

R3(config)#interface range ethernet 0/1-2
R3(config-if-range)#mpls ip 

5、查看LDP邻居

R3#show mpls ldp neighbor 
    Peer LDP Ident: 4.4.4.4:0; Local LDP Ident 3.3.3.3:0
        TCP connection: 4.4.4.4.54414 - 3.3.3.3.646
        State: Oper; Msgs sent/rcvd: 9/9; Downstream
        Up time: 00:00:59
        LDP discovery sources:
          Ethernet0/1, Src IP addr: 34.1.1.4
        Addresses bound to peer LDP Ident:
          34.1.1.4        4.4.4.4         
    Peer LDP Ident: 5.5.5.5:0; Local LDP Ident 3.3.3.3:0
        TCP connection: 5.5.5.5.60145 - 3.3.3.3.646
        State: Oper; Msgs sent/rcvd: 8/8; Downstream
        Up time: 00:00:47
        LDP discovery sources:
          Ethernet0/2, Src IP addr: 35.1.1.5
        Addresses bound to peer LDP Ident:
          35.1.1.5        5.5.5.5        

6、在ISP中配置BGP

R3(config)#router bgp 1
R3(config-router)#no bgp default ipv4-unicast 
R3(config-router)#neighbor 4.4.4.4 remote-as 1
R3(config-router)#neighbor 4.4.4.4 update-source loopback 0
R3(config-router)#neighbor 5.5.5.5 remote-as 1
R3(config-router)#neighbor 5.5.5.5 update-source loopback 0
R3(config-router)#address-family vpnv4
R3(config-router-af)#neighbor 4.4.4.4 activate 
R3(config-router-af)#neighbor 5.5.5.5 activate 
R3(config-router-af)#neighbor 4.4.4.4 route-reflector-client 
R3(config-router-af)#neighbor 5.5.5.5 route-reflector-client 
R4(config)#router bgp 1
R4(config-router)# bgp log-neighbor-changes
R4(config-router)# no bgp default ipv4-unicast
R4(config-router)# neighbor 3.3.3.3 remote-as 1
R4(config-router)# neighbor 3.3.3.3 update-source Loopback0
R4(config-router)# !
R4(config-router)# address-family ipv4
R4(config-router-af)# exit-address-family
R4(config-router)# !
R4(config-router)# address-family vpnv4
R4(config-router-af)#  neighbor 3.3.3.3 activate
R4(config-router-af)#  neighbor 3.3.3.3 send-community extended
R4(config-router-af)# exit-address-family
R5(config)#router bgp 1
R5(config-router)# bgp log-neighbor-changes
R5(config-router)# no bgp default ipv4-unicast
R5(config-router)# neighbor 3.3.3.3 remote-as 1
R5(config-router)# neighbor 3.3.3.3 update-source Loopback0
R5(config-router)# address-family ipv4
R5(config-router-af)# exit-address-family
R5(config-router)# address-family vpnv4
R5(config-router-af)#  neighbor 3.3.3.3 activate
R5(config-router-af)#  neighbor 3.3.3.3 send-community extended
R5(config-router-af)# exit-address-family

7、查看BGP邻居

R3#show bgp vpnv4 unicast all summary 
BGP router identifier 3.3.3.3, local AS number 1
BGP table version is 1, main routing table version 1

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
4.4.4.4         4            1       8       8        1    0    0 00:04:03        0
5.5.5.5         4            1       6       5        1    0    0 00:03:06        0

8、在VRF里重发布直连,使ISP可以传递互联网路由

R3(config)#router bgp 1
R3(config-router)#address-family ipv4 vrf alextest
R3(config-router-af)#redistribute connected 

9、在站点上配置静态路由

R1(config)#ip route 0.0.0.0 0.0.0.0 13.1.1.3
R2(config)#ip route 0.0.0.0 0.0.0.0 24.1.1.4
R6(config)#ip route 0.0.0.0 0.0.0.0 56.1.1.5

10、此时站点之间使可以联通的

R1#ping 56.1.1.6
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 56.1.1.6, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/3 ms
R1#
R1#
R1#
R1#ping 24.1.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 24.1.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms

11、此时只能说站点之间的互联网IP地址是互通的,不代表站点背后的网络是互通的

12、创建隧道接口,开启NHRP

R6(config)#interface tunnel 0
R6(config-if)#ip address 172.16.30.253 255.255.255.0
R6(config-if)#tunnel mode gre multipoint 
R6(config-if)#tunnel source 56.1.1.6 
R6(config-if)#ip nhrp map multicast dynamic  
R6(config-if)#ip nhrp network-id 1        #开启NHRP
R1(config)#interface tunnel 0
R1(config-if)#ip address 172.16.30.1 255.255.255.0
R1(config-if)#tunnel mode gre multipoint 
R1(config-if)#tunnel source 13.1.1.1
R1(config-if)#ip nhrp map 172.16.30.253 56.1.1.6      #指定中心点的NHRP
R1(config-if)#ip nhrp map multicast 56.1.1.6        #指定所有组播流量封装
R1(config-if)#ip nhrp nhs 172.16.30.253               #指定NHRP Server
R1(config-if)#ip nhrp network-id 1                  #开启NHRP
R1(config-if)#no ip nhrp shortcut                   #使设备工作在二阶段
R2(config)#interface Tunnel0
R2(config-if)# ip address 172.16.30.2 255.255.255.0
R2(config-if)# no ip redirects
R2(config-if)# ip nhrp map 172.16.30.253 56.1.1.6
R2(config-if)# ip nhrp map multicast 56.1.1.6
R2(config-if)# ip nhrp network-id 1
R2(config-if)# ip nhrp nhs 172.16.30.253
R2(config-if)# tunnel source 24.1.1.2
R2(config-if)# tunnel mode gre multipoint
R2(config-if)#no ip nhrp shortcut  

13、在中心站点上验证NHRP

R6#show ip nhrp 
172.16.30.1/32 via 172.16.30.1
   Tunnel0 created 00:05:09, expire 01:54:50
   Type: dynamic, Flags: unique registered used nhop 
   NBMA address: 13.1.1.1 
172.16.30.2/32 via 172.16.30.2
   Tunnel0 created 00:01:05, expire 01:58:54
   Type: dynamic, Flags: unique registered used nhop 
   NBMA address: 24.1.1.2

14、在R1上查看NHRP

R1#show ip nhrp 
172.16.30.253/32 via 172.16.30.253
   Tunnel0 created 00:06:55, never expire 
   Type: static, Flags: used 
   NBMA address: 56.1.1.6 

15、在R1上ping R2的隧道接口IP地址,再查看NHRP,会产生一个动态NHRP表项

R1#ping 172.16.30.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.30.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms

R1#traceroute 172.16.30.2 numeric 
Type escape sequence to abort.
Tracing the route to 172.16.30.2
VRF info: (vrf in name/id, vrf out name/id)
  1 172.16.30.253 7 msec 1 msec 2 msec
  2 172.16.30.2 7 msec *  3 msec


R1#show ip nhrp    
172.16.30.1/32 via 172.16.30.1
   Tunnel0 created 00:00:01, expire 01:59:58
   Type: dynamic, Flags: router unique local 
   NBMA address: 13.1.1.1 
    (no-socket) 
172.16.30.2/32 via 172.16.30.2
   Tunnel0 created 00:00:01, expire 01:59:58
   Type: dynamic, Flags: router nhop 
   NBMA address: 24.1.1.2 
172.16.30.253/32 via 172.16.30.253
   Tunnel0 created 00:07:50, never expire 
   Type: static, Flags: used 
   NBMA address: 56.1.1.6 
   
R1#traceroute 172.16.30.2 numeric 
Type escape sequence to abort.
Tracing the route to 172.16.30.2
VRF info: (vrf in name/id, vrf out name/id)
  1 172.16.30.2 2 msec *  1 msec

从上边的Tranroute可以看出,数据显示经过了HUB站点,在产生了动态NHRP映射关系之后,数据直接转发至Spoke站点了,这就是零丢包能力

16、HUB与Spoke之间配置路由协议EIGRP

R6(config)#interface loopback 1
R6(config-if)#ip address 192.1.6.1 255.255.255.255
R6(config-if)#exit
R6(config)#router eigrp 1 
R6(config-router)#network 192.1.6.1 0.0.0.0
R6(config-router)#network 172.16.30.0 0.0.0.255
R1(config)#interface loopback 1 
R1(config-if)#ip address 192.1.1.1 255.255.255.255
R1(config-if)#exit
R1(config)#router eigrp 1 
R1(config-router)#network 192.1.1.1 0.0.0.0
R1(config-router)#network 172.16.30.0 0.0.0.255
R2(config)#interface loopback 1 
R2(config-if)#ip address 192.168.2.1 255.255.255.255
R2(config-if)#exit
R2(config)#router eigrp 1 
R2(config-router)#network 192.168.2.1 0.0.0.0
R2(config-router)#network 172.16.30.0 0.0.0.255

17、在HUB点查看邻居以及路由(此时Spoke站点只跟HUB点建立邻居关系,Spoke之间是没有邻居的)

R6#show ip eigrp neighbors 
EIGRP-IPv4 Neighbors for AS(1)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
1   172.16.30.2             Tu0                      13 00:00:53    9  1434  0  3
0   172.16.30.1             Tu0                      14 00:01:58    2  1434  0  3


R6#show ip route eigrp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is 56.1.1.5 to network 0.0.0.0

      192.1.1.0/32 is subnetted, 1 subnets
D        192.1.1.1 [90/27008000] via 172.16.30.1, 00:02:17, Tunnel0
      192.168.2.0/32 is subnetted, 1 subnets
D        192.168.2.1 [90/27008000] via 172.16.30.2, 00:01:12, Tunnel0

18、此时在HUB点是可以看到所有路由的,但是在Spoke点上是没有另一个Spoke点的路由的

R1#show ip route eigrp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is 13.1.1.3 to network 0.0.0.0

      192.1.6.0/32 is subnetted, 1 subnets
D        192.1.6.1 [90/27008000] via 172.16.30.6, 00:04:32, Tunnel0

19、那么如何解决这个问题呢?

关闭EIGRP的吓一跳自我和水平分割即可

R6(config)#interface tunnel 0
R6(config-if)#no ip next-hop-self eigrp 1         #关闭下一跳自我
R6(config-if)#no ip split-horizon eigrp 1         #关闭水平分割

20、测试

R1#show ip route eigrp                              
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is 13.1.1.3 to network 0.0.0.0

      192.1.6.0/32 is subnetted, 1 subnets
D        192.1.6.1 [90/27008000] via 172.16.30.6, 00:03:04, Tunnel0
      192.168.2.0/32 is subnetted, 1 subnets
D        192.168.2.1 [90/28288000] via 172.16.30.2, 00:03:01, Tunnel0




R1#traceroute 192.168.2.1 source loopback 1 numeric 
Type escape sequence to abort.
Tracing the route to 192.168.3.1
VRF info: (vrf in name/id, vrf out name/id)
  1 172.16.30.2 2 msec *  1 msec

注意:此时DMVPN并没有加密,需要注意的是,一定要把隧道做通,再去做隧道的加密!!

扩展:在上文实验的基础上

1、在Spoke站点删除NHRP map

R1(config)#interface tunnel 0
R1(config-if)#no ip nhrp map 172.16.30.253 56.1.1.6

2、在Sopke和HUB点上关闭Tunnel 0 接口,再开启

3、此时会导致在R1上没有EIGRP邻居,R6上有EIGRP邻居

R1#show ip eigrp neighbors 
EIGRP-IPv4 Neighbors for AS(1)
R1#
R6#show ip eigrp neighbors 
EIGRP-IPv4 Neighbors for AS(1)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
0   172.16.30.1             Tu0                      10 00:01:08    1  5000  1  0
R6#
*Aug  4 16:18:54.960: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.30.1 (Tunnel0) is down: retry limit exceeded
R6#
*Aug  4 16:18:57.947: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.30.1 (Tunnel0) is up: new adjacency

注意:这里有Q Cnt计数,且邻居一直up,down,那就证明当前EIGRP是有问题的

分析:抓包更直接

R6#show ip nhrp 
172.16.30.1/32
   Tunnel0 created 00:01:02, expire 00:02:02
   Type: incomplete, Flags: negative 
   Cache hits: 7

①R1向R6发送hello报文

②R6收到了R1的hello报文,回复update报文,并没有发出去

③因此R6产生了上述现象

所以,在配置过程中一定要注意NHRP的映射关系要配置正确

21、使用IPSec加密

需要注意两点:

①在使用IPSec加密时,隧道的源不能是指定的IP地址,要更换为接口

②配置前要把隧道关闭,配置完开启

IPsec配置一样,这里只做HUB点演示

R6(config)#crypto isakmp policy 10
R6(config-isakmp)#authentication pre-share 
R6(config-isakmp)#encryption 3des 
R6(config-isakmp)#group 2 
R6(config-isakmp)#hash sha256 
R6(config-isakmp)#exit
R6(config)#crypto isakmp key alex666 address 0.0.0.0 
R6(config)#crypto ipsec transform-set Trans esp-3des esp-sha256-hmac 
R6(cfg-crypto-trans)#mode transport 
R6(cfg-crypto-trans)#exit
R6(config)#crypto ipsec profile alex 
R6(ipsec-profile)#set transform-set Trans
R6(ipsec-profile)#exit
R6(config)#interface tunnel 0
R6(config-if)#shutdown 
R6(config-if)#tunnel source ethernet 0/0
R6(config-if)#tunnel protection ipsec profile alex 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DMVPN 动态多点隧道技术 的相关文章

  • 一次成功流水帐 ros中使用serial包实现串口通信debug和教程汇总

    会参考以下几个教程 xff0c 但是这几个都不完整 ros中使用serial包实现串口通信 鲁班班班七号的博客 CSDN博客 ros 串口通信 ROS使用serial库编译时出现 未定义的引用 解决办法 学术马的博客 CSDN博客 ros编
  • Haar特征+Adaboost人脸识别C实现

    Haar特征 43 Adaboost的人脸识别C实现 xff0c 部分简单的功能借助Opencv实现 xff0c 数据是MIT人脸数据 程序的实现主要是参考 Rapid Object Detection using a Boosted ca
  • Redhat6.5出现不识别CPU

    Detected CPU family 6 model 6Z UNSUPPORTED HARDUARE DEVICE CPU family 6 model gt 59 Redhat6 5版本会出现开机不是别cpu重启服务器 xff0c 可解
  • 爬取豆瓣网站前top250电影名称和评分保存到本地excel中(附效果图和代码)

    import requests from lxml import etree import xlwt headers 61 39 User Agent 39 39 Mozilla 5 0 Windows NT 10 0 Win64 x64
  • CentOS和Ubuntu有什么不同

    很多的初学者在刚开始接触Linux的时候 xff0c 是否有很多疑问 xff0c Linux有上百个系统到达有什么区别 Linux代表探索和自由 因为Linux在技术上代表内核的意思 内核是为设备提供驱动程序 网络通信 文件系统 进程管理等
  • Ubuntu系统各个版本

    http releases ubuntu com releases
  • ArduSub ROV无法前进

    本方案仅适用于ArduSub 控制系统的ROV xff0c 本方案参考ArduSub 官网http www ArduSub com 里的解决方法 问题描述 xff1a 本人在ROV实验中遇到的问题 xff1a 使用遥控器控制ROV向前行驶时
  • STM32F103C8T6核心板——引脚使用注意!!!

    STM32F103C8T6核心板 引脚使用注意 xff01 xff01 xff01 有的引脚与下载JTAG端口复用 有的与BOOT复用 xff0c 若发生引脚不够使用的情况 xff0c 可以将他们进行一点特殊的设置 xff0c 变成普通引脚
  • Keil5_因为临时环境变量造成的编译错误

    Keil5 因为临时环境变量造成的编译错误 如果安装本文所附文件 xff08 注册时打开两个软件都需要管理员权限运行 xff09 仍有同样问题 xff0c 原因可能有如下四个可能 一 电脑用户名使用了中文 解决办法 xff1a 更改为英文
  • STM32_CUBE_IDE_工程的导入和导出

    STM32 CUBE IDE 工程的导入和导出 1 我们写好了代码想要上传到代码仓库共享给别人怎么办 xff0c 就需要先导出工程再上传而不能直接将工程代码直接上传 2 导出工程 3 上传到码云仓库 4 导入之前导出的工程 导出工程 导出的
  • 常见驱动电路

    常见驱动电路 1 基础知识补充 xff08 三极管和MOS管 xff09 2 网上搜集的一些资料 xff08 个人认为可行 xff09 3 实践中使用过的一些驱动电路 4 学习开发板上面的驱动电路 三极管和MOS管的区别 1 三极管和MOS
  • VScode+keil插件-取代keil开发不要太爽了

    VScode 43 keil插件 取代keil开发不要太爽了 前言 xff1a 之前几年开发都是使用的keil xff0c 所以基本所有工程都是keil的工程 xff0c 一时间开发项目还不能及时转变使用HAL库开发 xff08 stm32
  • 关于maven项目中pom.xml文件报红问题的解决方法

    主要原因是可能需要的依赖没有进行自动的加载到本地仓库 xff0c 可以通过设置File gt Settings 设置好maven的本地仓库的位置以及maven的位置 xff0c 即可解决依赖的问题
  • 网络调试助手——局域网广播消息——模拟HTTP服务器

    网络调试助手 局域网广播消息 模拟HTTP服务器 前言 xff1a 作为一名嵌入式开发者 xff0c 不能熟练使用网络调试助手 xff0c 我羞愧至极 xff0c 赶紧弄明白记录下来才是正事 怎么使用网络调试助手向局域网广播消息 注释 xf
  • AT89C51、AT89S51、STC89C51有什么区别?

    标题AT89C51 AT89S51 STC89C51有什么区别 xff1f 1 首先明确一点 xff0c 这几个型号都属于51单片机 xff0c 程序和电路是通用的 xff1b 2 AT89C51是美国ATMEL公司生产的 xff0c 下载
  • 新装的GIT需要配置秘钥才能正常使用

    新装的GIT需要配置秘钥才能正常使用 实际这个过程就是git配置SSH 1 打开git 命令行终端输入指令生成秘钥 操作过程 xff1a 连击三次回车 xff0c 如下图即为成功 ssh span class token operator
  • 正则表达式_总结

    正则表达式 总结 说明 xff1a 限定SpinBox控件的输入范围 span class token comment 限定输入框为1 120 span SpinBox span class token punctuation span i
  • 电路设计_运算放大器应用

    电路设计 运算放大器应用 说明 xff1a 运算放大器是个万用宝 xff0c 要好好利用起来 xff0c 1 电压跟随 xff1a 起到隔离作用 xff0c 高阻抗变低阻抗 2 同向比例放大器 xff1a 放大输入电压信号 xff0c 在输
  • ESP32_IDF_基于win11的开发环境搭建

    ESP32 IDF 基于win11的开发环境搭建 说明 xff1a 1 安装ofline 2 编译下载 xff08 本来打算使用vscode配合使用来开发的 xff0c 奈何vscode环境真难搞 xff0c 放弃了 xff0c 用不惯 x
  • 树莓派的联网方式

    树莓派的多种联网方式 配置WiFi文件将空白的ssh文件放入sd卡配置WiFI文件 家庭局域网或热点查找树莓派ip 通过网线联网 配置WiFi文件 在sd卡中烧录系统之后 xff0c sd卡中会有如下程序 xff1a 将空白的ssh文件放入

随机推荐

  • STM32F103系列PWM波

    话不多说 xff0c 直接上我能跑通的代码 pwm h span class token macro property span class token directive hash span span class token direct
  • HTTP的几种认证方式之DIGEST 认证(摘要认证) 服务端

    https www cnblogs com xy ouyang p 12609387 html
  • Ubuntu 22.04LTS中使用aptitude来解决build-essential安装过程中过高版本包依赖问题

    小白近日安装完Ubuntu 22 04LTS后 xff0c 记不清是不是用了Software Updater还是自己手动upgrade了包 xff0c 导致在配置编译工具build essential 输入sudo apt install
  • 解决com.github.penggle kaptcha 2.3.2 报错

    需要从该地址处kaptcha的jar包下载位置 xff0c 从该地址下载jar包后 xff0c 可以把该jar包存放在C Users hp Desktop这个位置 xff0c 通过windows的cmd命令进入命令操作界面 执行以下命令 x
  • children 获取所有的子元素节点 2020/11/21

    children 获取所有的子元素节点 也是我们实际开发常用的 span class token operator lt span span class token operator span span class token consta
  • window常见事件 2020/11/24

    window onload是窗口 xff08 页面 xff09 加载时间 xff0c 当文档内容完全加载完成后触发该事件注意 xff1a window onload传统注册事件方式只能写一次 xff0c 如果有多个 xff0c 会以最后一个
  • 用if函数,进入无限循环,如何退出当前函数

    用if函数 xff0c 进入无限循环 xff0c 如何退出当前函数 wxml文件 span class token operator lt span view class span class token operator 61 span
  • form-type:submit和reset用法

    form type submit和reset用法 span class token operator lt span form bindsubmit span class token operator 61 span span class
  • checkbox背景颜色设置

    checkbox背景颜色设置 js文件 data span class token punctuation span languages span class token punctuation span span class token
  • MongoDB安装方案

    安装MongoDB 黑马头条项目 43 人力资源后台项目的接口服务均采用了 MongoDB 43 KOA2 技术栈 xff0c 所以在使用本地服务之前 xff0c 我们需要首先安装MongoDB xff0c 这也是该环节中出问题最多的一项
  • 小程序生成海报携带参数-云函数生成二维码

    1 逻辑代码 span class token keyword async span span class token function qcFn span span class token punctuation span span cl
  • 小程序动画

    小程序动画 点击事件 span class token comment lt 三大特色 gt span span class token tag span class token tag span class token punctuati
  • 小程序云开发--内容安全审查API云调用

    云调用 云调用是小程序 云开发提供的在云函数中调用微信开放接口的能力 xff0c 需要在云函数中通过 wx server sdk 使用 接口方法 openapi span class token punctuation span secur
  • 如何通过异或运算快速简单的实现两个数的值的交换

    实现代码如下图所示 xff1a public class class01 public static void swap int a int b a 61 a b b 61 a b a 61 a b System out println a
  • Cisco ISE AAA认证

    ISE 介绍 思科身份服务引擎 ISE 是一种身份验证安全服务 可以在简单而灵活的界面中显示用户和设备 查看并通过网络平台共享详细信息 使其了解用户 设备和网络的具体情况 当然Cisco还有类型的产品 xff0c 比如NAC ACS 那么三
  • PNET模拟器 安装(附下载地址)

    PNET模拟器介绍 Lab is Simple PNET安装步骤 1 将OVA文件导入Vmware 2 注意点 3 开机 xff0c 进行安装 4 选择第一个 5 安装成功 6 打开浏览器输入上边的IP地址 7 选择Online Mode
  • Python自动化备份网络设备配置

    前提 xff1a https blog csdn net weixin 50299079 article details 109300864 好嘞 xff0c 废话不多说 xff0c 开始搞 本文以Cisco CSR1000V设备配合Pyt
  • Check Point R80.40 防火墙

    Check Point 它是一家以色列的公司 xff0c 是面向全球企业用户业内领先的信息安全解决方案提供商 Check Point 解决方案对恶意软件 勒索软件和高级目标威胁的防范率处于业界领先水准 xff0c 可有效保护客户免受网络攻击
  • YangSuite 与 Netconf

    Cisco YangSuite 提供了一组工具和插件 xff0c 用于学习 xff0c 测试采用yang模型的可编程接口 xff0c 例如Netconf Restconf gNMI等 关于理论可以参考之前写的Cisco YangExplor
  • DMVPN 动态多点隧道技术

    DMVPN的特点 配置简单 中心站点只需要配置一次即可 xff0c 增加站点无需修改中心站点配置 xff0c 分支站点配置几乎相同 xff1b 性能好 能够实现动态mGRE隧道 xff0c 数据在分支之间能够直接通信 xff0c 一次加解密