• [交流吐槽] 笔记
    鸿蒙培训直播截图物联网的层级架构:物联网常见的通信协议:1.CoAP:受限制的应用协议,运行于UDP协议之上,非常小巧;2.MQTT:消息队列遥测传输协议,构建于TCP、IP之上,硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型“轻量级”通讯协议;比较:物联网接入设备方式:鸿蒙设备内核开发:设备无线联网开发:鸿蒙网络通信开发:华为云IOT平台介绍:
  • [技术干货] ensp usg6000学习笔记1
    华为防火墙通过安全区域来对网络进行划分默认的账号密码是adminAdmin@123默认区域由trust、untrust、DMZ和locallocal为特殊区域一个区域中可以存在很多接口,不只是真实物理接口区域之间有优先级local 100    #设备本身,包括设备的各接口本身trust 85    #通常用于定义内网终端用户所在的区域DMZ 50    #通常用于定义内网服务器所在区域untrust 5    #通常用于定义Internet等不安全的网络区域优先级唯一安全域间是两个安全区域之间唯一道路安全策略即在道路上建立的安全关卡对于trust区域流向DMZ区域的流量为outbound从DMZ区域到trust区域的流量为inboundtrust到local区域是对于local区域的是local区域的inbound!在华为设备中高优先级区域不能直接访问低优先级区域!system-view             #进入系统视图firewall zone trust             #进入防火墙trust区域add interface gigabitethernet 1/0/2    #将接口添加到虚拟机system-view firewall zone name test   #创建区域trustset priority 85           #设置区域优先级-------------------------------------------------------------------------安全策略如果防火墙没有配置安全策略,或查找安全策略时,所有的安全策略都没有命中,则默认执行域间的缺省包过滤动作(拒绝所有)。安全策略是按一定规则控制设备对安全区域间的流量进行转发和内容安全一体化检测的策略规则的本身是包过滤当设置outbound允许到untrust区域inbound拒绝到trust区域的规则时从trust区域到untrust区域发起的连接时被允许的但是从untrust区域发起的连接是拒绝的------------------包过滤技术实现包过滤的核心技术是访问控制列表包过滤防火墙只根据设定好的静态规则来判断是否运行报文通过------------------状态检测技术和会话机制如果规则允许通过,状态检测防火墙会将属于同一连接的所有报文作为一个整体的数据流当内网主机访问外网服务器时,因为防火墙设置允许内网主机访问外网服务器的规则,所有允许数据包通过,但是防火墙并没有设置外网服务器访问内网的规则。这时防火墙把源IP、源端口、目标IP、目标端口和协议记录到会话表。当外网响应时,就可以访问到内网主机。会话当然会存在老化时间,华为老化时间跟协议有关一条会话表表示通信双方的一个连接。------------------多端口协议如果遇到多端口协议,单纯的包过滤方法是访问进行数据流定义的server-map表这个功能叫ASPF  设备通过检测报文的应用层数据,自动获取相关信息并建立会话表,以保证正常通讯------------------配置策略security-policy        #进入安全策略视图 rule name test         #配置规则名称  source-zone trust         #配置源区域  destination-zone untrust    #配置目标区域  destination-zone local    #配置目标区域2  source-address 10.1.1.0 24    #配置源地址段  action permit        #配置动作是什么,通过还是拒绝缺省包过滤策略firewall packet-filter default [permit|deny] [interzone|all] [vpn-instance vpn-instance-name] zone-name1 zone-name2 [direction [inbound|outbound]]#配置防火墙内某个区域间缺省包过滤。域间包过滤规则system-viewpolicy interzone trust untrust inbound policy 1  policy source {[IP地址] [反掩码|子网掩码] | [mac地址] | any | range [开始ip] [结束ip] }  policy destination 192.168.2.0 0.0.0.255  #配置目的地址  policy destination 192.168.1.0 m 24       #配置目的地址2  policy services esp   active permit 在所有策略中都可以配置多个源区域目标区域或者源地址目标地址------------------配置ASPFsystem-view            firewall interzone trust untrust    #配置于会发生FTP通信的区域detect ftp                #检测FTPdisplay firewall server-map        #查看server-map表---------------------------------------------------------------------------------NAT ¿源NAT的转换方式NAT NO-PAT    只转换报文的IP地址,不转换端口NAPT            转换报文的IP地址和端口下面的配置是建立在全通的基础上配置NAT地址池nat address-group test1 section 0 1.1.1.10 1.1.1.11USG 5000配置NATnat-policy interzone trust untrust outbound  policy 1   policy source-address 10.1.1.0 0.0.0.255  active source-nat  address-group 1USG 6000中配置NAT地址池是使用的是字符串,USG 5000使用的是数字USG 6000配置源NAT策略nat-policy  rule name test  source-zone trust  destination-zone untrust  source-address 10.1.1.0 24  action nat address-group test1NAT端口映射nat server test tcp global 1.1.1.10 8080 inside 10.2.0.7 www no-reverse将外网的1.1.1.10的端口8080映射到内网的10.2.0.7的80端口no-reverse定义方向是外网到内网---------------------------------------------------------------------------------攻击防护DDOS攻击和防御流量型攻击syn floodudp flood应用层攻击http floodhttps flooddns floodddos防范配置参数anti-ddos flow-statistic enable        #开启流量统计功能anti-ddos statistic smapling-feaction ?        #配置ddos流量统计抽样对比anti-ddos defend-time ? end-delay ?        #设置启动和停止ddos防御的时间anti-ddos source-ip detect aging-time ?    #设置IP监控表的老化时间配置syn floodanti-ddos syn-flood source-detect ?        #配置全局syn flood攻击防御功能,可以到接口中配置udp flood配置全局配置anti-ddos udp-flood dynamic-fingerprint-learn ? ?    #配置udp flood防范攻击anti-ddos udp-fingerprint-learn offset offset fingerprint-length fingerprint-length #配置动态指纹学习方式anti-ddos udp-fingerprint-learn packet-length enable     #配置报文长度学习功能anti-ddos udp-frag-flood dynamic-fingerprint-learn ? ?    #配置udp分片攻击防范功能接口配置anti-ddos udp-flood relation-defend source-detect ? ?     #配置udp flood防范攻击anti-ddos udp-frag-flood ? ?                #配置udp分片攻击防范功能防御单包攻击firewall defend smurf enable              #开启smurf攻击防御firewall defend land enable               #开启land攻击防御firewall defend fraggle enable           #开启fraggle攻击防御firewall defend winnuke enable           #开启winnuke攻击防御firewall defend ping-of-death enable    #开启ping-of-death攻击防御firewall defend time-stamp enable       #开启time-stamp攻击防御firewall defend route-record enable      #开启route-record攻击防御---------------------------------------------------------------------------------IPsec VPN1!创建acl捕获流量acl number 3001rule 1 permit ip destination 192.168.1.0 0.0.0.255 source 192.168.2.0 0.0.0.2552!创建安全提议ipsec proposal testtransform esp esp authentication-akgorithm sha2-512esp encryption-algorithm aes-256encapsulation-mode tunnel3!创建IKE安全提议ike proposal 1encrytuin-algorithm aes-256authentication-algorithm sha-512#dh group 24!创建IKE对等体ike peer FW2undo version 2 exchange-mode mainike-proposal 1remote-address 1.1.1.6pre-share-key Cloud!@346!配置ipsec策略ipsec policy testike-peer FW2proposal test security acl 30017!配置接口interface gigabitethernet 1/0/1ipsec policy test !在防火墙设备中ipsec vpn接口所在的区域要能够进入local区域在usg5000系列防火墙中要配置缺省包过滤。接口的service-manager是默认关闭的,通过display firewall packet-filter default all 可以查看到所有区域的同行情况在usg6000系列防火墙中区域之间是不能联通的,需要配置安全策略,比如local>trust,local>untrust。如果要在防火墙中ping出去,要配置local>某个区域!——————————————————————————————
  • [技术干货] STM32入门开发 NEC红外线协议解码(超低成本无线传输方案)
    # 一、环境介绍 **MCU:** STM32F103ZET6 **编程软件环境:** keil5 **红外线传输协议:** NEC协议---38KHZ载波:。NEC协议是红外遥控协议中常见的一种。 **解码思路:** 外部中断 + 定时器方式 **代码风格:** 模块化编程,寄存器直接操作方式 # 二、NEC协议与解码思路介绍 ## 2.1 采用的相关硬件 **图1:** 这是NEC协议的红外线遥控器: 如果自己手机没有红外线遥控器的功能,可以淘宝上买一个小遥控器来学习测试,成本不高,这个遥控器也可以自己做,能解码当然也可以编码发送,只需要一个红外光发射管即可。 ![image.png](https://bbs-img.huaweicloud.com/blogs/img/20220706/1657115699913865031.png) **图2:** 这是红外线接收头模块。如果自己的开发板没有自带这个接收头,那就单独买一个接收头模块,使用杜邦线接到开发板的IO口上即可用来测试学习,接线很方便。 ![image.png](https://bbs-img.huaweicloud.com/blogs/img/20220706/1657115709191819920.png) ![image.png](https://bbs-img.huaweicloud.com/blogs/img/20220706/1657115717863220745.png) **图3:** 这是红外线发射管,如果自己想做遥控器的发射端,自己做遥控器,那么就可以直接购买这种模块即可。 ![image.png](https://bbs-img.huaweicloud.com/blogs/img/20220706/1657115733168792089.png) ## 2.2 红外线协议介绍 在光谱中波长自760nm至400um的电磁波称为红外线,它是一种不可见光。红外线通信的例子我们每个人应该都很熟悉,目前常用的家电设备几乎都可以通过红外遥控的方式进行遥控,比如电视机、空调、投影仪等,都可以见到红外遥控的影子。这种技术应用广泛,相应的应用器件都十分廉价,因此红外遥控是我们日常设备控制的理想方式。 **红外线的通讯原理:** 红外光是以特定的频率脉冲形式发射,接收端收到到信号后,按照约定的协议进行解码,完成数据传输,在消费类电子产品里,脉冲频率普遍采用 30KHz 到 60KHz 这个频段,NEC协议的频率就是38KHZ。 这个以特定的频率发射其实就可以理解为点灯,不要被复杂的词汇难住了,就是控制灯的闪烁频率(亮灭),和刚学单片机完成闪光灯一样的意思,只不过是灯换了一种类型,都是灯。 接收端的原理: 接收端的芯片对这个红外光比较敏感,可以根据有没有光输出高低电平,如果发送端的闪烁频率是有规律的,接收端收到后输出的高电平和低电平也是有规律对应的,这样发送端和接收端只要约定好,那就可以做数据传输了。 红外线传输协议可以说是所有无线传输协议里成本最低,最方便的传输协议了,但是也有缺点,距离不够长,速度不够快;当然,每个传输协议应用的环境不一样,定位不一样,好坏没法比较,具体要看自己的实际场景选择合适的通信方式。 # 2.3 NEC协议介绍 NEC协议是众多红外线协议中的一种(这里说的协议就是他们数据帧格式定义不一样,数据传输原理都是一样的),我们购买的外能遥控器、淘宝买的mini遥控器、电视机、投影仪几乎都是NEC协议。 像格力空调、美的空调这些设备使用的就是其他协议格式,不是NEC协议,但是只要学会一种协议解析方式,明白了红外线传输原理,其他遥控器协议都可以解出来。 **下图是NEC协议传输一次数据的完整格式:** ![image.png](https://bbs-img.huaweicloud.com/blogs/img/20220706/1657115744483521051.png) NEC协议一次完整的传输包含: 引导码、8位用户码、8位用户反码、8位数据码、8位数据反码。 **(注意:下面的解释都是站在红外线接收端的角度来进行说明的,就是解码端的角度)** **引导码:** 由9ms的高电平+4.5ms的低电平组成。 **4个字节的数据:** 用户码+用户反码+数据码+数据反码。 这里的反码可以用来校验数据是否传输正确,有没有丢包。 **重点: NEC协议传输数据位的时候,0和1的区分是依靠收到的高、低电平的持续时间来进行区分的---这是解码关键。** 标准间隔时间:0.56ms 收到数据位0: 0.56ms 收到位1: 1.68ms 所以,收到一个数据位的完整时间表示方法是这样的: 收到数据位0: 0.56m低电平+ 0.56ms的高电平 收到数据位1: 0.56ms低电平+1.68ms的高电平 **红外线接收头模块输出电平的原理:** 红外线接收头感应到有红外光就输出低电平,没有感应到红外光就输出高电平。 **这是使用逻辑分析采集红外线接收头输出的信号:** ![image.png](https://bbs-img.huaweicloud.com/blogs/img/20220706/1657115768556288931.png) **这是采集红外线遥控器上的LED灯输出电平时序图,刚好和接收端相反:** ![image.png](https://bbs-img.huaweicloud.com/blogs/img/20220706/1657115780744895873.png) 单片机编写解码程序的时候,常见的方式就是采用外部中断+定时器的方式进行解析,中断可以设置为低电平触发,因为接收头没有感应到红外光默认是输出高电平,如果收到NEC引导码,就会输出低电平,进入到中断服务函数,完成解码,解码过程中开启定时器记录每一段的高电平、低电平的持续时间,按照NEC协议进行判断,完成最终解码。 STM32可以使用输入捕获方式完成解码,其实输入捕获就是外部中断+定时器的组合,只不过是STM32内部封装了一层。 **外部中断服务器里的解码程序如下(这个在其他单片机上思路是一样的):** ```cpp /* 函数功能: 外部中断线9_5服务函数 */ void EXTI9_5_IRQHandler(void) { u32 time; u8 i,j,data=0; //清除中断线9上的中断请求 EXTI->PR|=19; time=Infrared_GetTime_L(); //得到低电平时间 if(time7000||time>10000)return; //标准时间: 9000us time=Infrared_GetTime_H(); //得到高电平时间 if(time3000||time>5500)return; //标准时间4500us //正式解码NEC协议 for(i=0;i4;i++) { for(j=0;j8;j++) { time=Infrared_GetTime_L(); //得到低电平时间 if(time400||time>700)return; //标准时间: 560us time=Infrared_GetTime_H(); //得到高电平时间 if(time>1400&&time1800) //数据1 1680us { data>>=1; data|=0x80; } else if(time>400&&time700) //数据0 560us { data>>=1; } else return; } InfraredRecvData[i]=data; //存放解码成功的值 } //解码成功 InfraredRecvState=1; } ``` # 三、核心完整代码 ![image.png](https://bbs-img.huaweicloud.com/blogs/img/20220706/1657115799439626463.png) ![image.png](https://bbs-img.huaweicloud.com/blogs/img/20220706/1657115811706554464.png) 本程序的解码思路是: 将红外线接收模块的输出脚接到STM32的PB9上,配置STM32的PB9为外部中断模式,下降沿电平触发;如果收到红外线信号就进入到中断服务函数里解码,如果解码过程中发现数据不符合要求就终止解码,如果数据全部符合要求就按照协议接收,直到解码完成,设置标志位,在main函数里打印解码得到的数据。 代码都是模块化编程,阅读起来也很方便。 ## 3.1 红外线解码.c ```cpp #include "nec_Infrared.h" u8 InfraredRecvData[4]; //存放红外线解码接收的数据 u8 InfraredRecvState=0; //0表示未接收到数据,1表示接收到数据 /* 函数功能: 红外线解码初始化(接收) */ void Infrared_RecvInit(void) { Infrared_Time6_Init(); //定时器初始化 /*1. 配置GPIO口*/ RCC->APB2ENR|=13; //PB GPIOB->CRH&=0xFFFFFF0F; GPIOB->CRH|=0x00000080; GPIOB->ODR|=19; /*2. 配置外部中断*/ EXTI->IMR|=19; //外部中断线9,开放中断线的中断请求功能 EXTI->FTSR|=19; //中断线9_下降沿 RCC->APB2ENR|=10; //开启AFIO时钟 AFIO->EXTICR[2]&=~(0xF1*4); AFIO->EXTICR[2]|=0x11*4; STM32_NVIC_SetPriority(EXTI9_5_IRQn,1,1); } /* 函数功能: 初始化定时器,用于红外线解码 */ void Infrared_Time6_Init(void) { RCC->APB1ENR|=14; RCC->APB1RSTR|=14; RCC->APB1RSTR&=~(14); TIM6->PSC=72-1; //预分频器 TIM6->ARR=65535; //重装载寄存器 TIM6->CR1|=17; //开启缓存功能 //TIMx->CR1|=10; //开启定时器 } /* 函数功能: 测量高电平持续的时间 */ u32 Infrared_GetTime_H(void) { TIM6->CNT=0; TIM6->CR1|=10; //开启定时器 while(NEC_IR){} //等待高电平结束 TIM6->CR1&=~(10); //关闭定时器 return TIM6->CNT; } /* 函数功能: 测量低电平持续的时间 */ u32 Infrared_GetTime_L(void) { TIM6->CNT=0; TIM6->CR1|=10; //开启定时器 while(!NEC_IR){} //等待低电平结束 TIM6->CR1&=~(10); //关闭定时器 return TIM6->CNT; } /* 函数功能: 外部中断线9_5服务函数 */ void EXTI9_5_IRQHandler(void) { u32 time; u8 i,j,data=0; //清除中断线9上的中断请求 EXTI->PR|=19; time=Infrared_GetTime_L(); //得到低电平时间 if(time7000||time>10000)return; //标准时间: 9000us time=Infrared_GetTime_H(); //得到高电平时间 if(time3000||time>5500)return; //标准时间4500us //正式解码NEC协议 for(i=0;i4;i++) { for(j=0;j8;j++) { time=Infrared_GetTime_L(); //得到低电平时间 if(time400||time>700)return; //标准时间: 560us time=Infrared_GetTime_H(); //得到高电平时间 if(time>1400&&time1800) //数据1 1680us { data>>=1; data|=0x80; } else if(time>400&&time700) //数据0 560us { data>>=1; } else return; } InfraredRecvData[i]=data; //存放解码成功的值 } //解码成功 InfraredRecvState=1; } ``` ## 3.2 主函数.c ```cpp #include "stm32f10x.h" #include "led.h" #include "delay.h" #include "key.h" #include "usart.h" #include "at24c02.h" #include "W25Q64.h" #include "spi.h" #include "nec_Infrared.h" int main() { LED_Init(); BEEP_Init(); KeyInit(); USARTx_Init(USART1,72,115200); IIC_Init(); W25Q64_Init(); printf("芯片ID号:0x%X\n",W25Q64_ReadID()); Infrared_RecvInit(); while(1) { if(InfraredRecvState) { InfraredRecvState=0; printf("用户码:%d,按键码:%d\n",InfraredRecvData[0],InfraredRecvData[2]); printf("user反码:%d,key反码:%d\n",(~InfraredRecvData[1])&0xFF,(~InfraredRecvData[3])&0xFF); BEEP=!BEEP; LED0=!LED0; } } } ``` # 四、扩展提高 如果上面的NEC的解码思路已经看到,程序已经可以自己编写,就可以试着使用STM32的输入捕获+定时器方式写一版解码代码,既能更加熟悉NEC协议、也可以学习STM32定时器捕获捕获的用法;也可以做一些小东西来锻炼,比如:红外线遥控小车、音乐播放器支持红外线遥控器切歌,电机的开关、灯的开关等等。 搞定协议解码之后,我们下一步就是完成自定义的NEC协议红外线制作,采用STM32模拟一个万能红外线遥控器。 在光谱中波长自760nm至400um的电磁波称为红外线,它是一种不可见光。目前几乎所有的视频和音频设备都可以通过红外遥控的方式进行遥控,比如电视机、空调、影碟机等,都可以见到红外遥控的影子。这种技术应用广泛,相应的应用器件都十分廉价,因此红外遥控是我们日常设备控制的理想方式。
  • [认证交流]  网络类型
    一、云专线:云专线(Direct Connect)用于搭建用户本地数据中心与华为云VPC之间高速、低时延、稳定安全的专属连接通道,充分利用华为云服务优势的同时,继续使用现有的IT设施,实现灵活一体,可伸缩的混合云计算环境。云专线服务具有以下几大产品优势:高安全:用户使用云专线接入华为云上VPC,使用专享私密通道进行通信,网络隔离,安全性极高。低时延:专用网络进行数据传输,网络性能高,延迟低,用户使用体验更佳。支持大带宽:华为云专线单线路最大支持100Gbps带宽连接,满足各类用户带宽需求。资源无缝扩展:通过云专线将用户本地数据中心与云上资源互联,形成灵活可伸缩的混合云部署。必须使用单模的1GE、10GE、40GE或100GE的光模块与华为云的接入设备对接。同时,需要提前与华为云专线POP点对齐LC、波长、距离等关键参数。光模块参数举例:1GE LC 单模 1310nm 10KM。必须禁用端口的自动协商功能,同时必须手动配置端口速度和全双工模式。必须跨整个连接 (包括中间设备) 支持 802.1Q VLAN 封装。可以支持BGP或者静态路由对接,您的设备须支持边界网关协议(BGP)和BGP MD5认证或支持静态路由。(可选) 您可以在网络上配置双向转发检测 (BFD)。在物理连接层上支持的最大传输单位 (MTU) 高达 1522 字节 (14 字节以太网标头 + 4 字节 VLAN 标记 + 1500 字节 IP 数据报 + 4 字节 FCS)。推荐参数值:1500。二、VPN:虚拟专用网络(Virtual Private Network,以下简称VPN),用于在远端用户和虚拟私有云(Virtual Private Cloud,以下简称VPC)之间建立一条安全加密的公网通信隧道。当您作为远端用户需要访问VPC的业务资源时,您可以通过VPN连通VPC。默认情况下,在虚拟私有云(VPC)中的弹性云服务器无法与您自己的数据中心或私有网络进行通信。如果您需要将VPC中的弹性云服务器和您的数据中心或私有网络连通,可以启用VPN功能。VPN由VPN网关、对端网关和VPN连接组成,VPN网关提供了虚拟私有云的公网出口,与用户本地数据中心侧的对端网关对应。VPN连接则通过公网加密技术,将VPN网关与对端网关关联,使本地数据中心与虚拟私有云通信,更快速、安全的构建混合云环境。优势:高安全:采用华为专业设备,基于IKE和IPsec对传输数据加密,提供了电信级的高可靠性机制,从硬件、软件、链路三个层面保证VPN服务的稳定运行。无缝扩展资源:将用户本地数据中心与云上VPC互联,业务快速扩展上云,实现混合云部署。连通成本低:利用Internet构建IPsec加密通道,使用费用相对云专线服务更便宜。即开即用:即开即用,部署快速,实时生效,在用户数据中心的VPN设备进行简单配置即可完成对接三、IPRAN:IP RAN 的意思是“无线接入网IP化”。IP 指的是互联协议,RAN指的是Radio Access Network。相对于传统的SDH传送网,IPRAN是基于IP的传送网的。IP RAN是针对IP化基站回传应用场景进行优化定制的路由器/交换机整体解决方案。在城域汇聚/核心层采用IP/MPLS技术,接入层主要采用二层增强以太技术,或采用二层增强以太与三层IP/MPLS相结合的技术方案。IP RAN技术的特点及优势:1、端到端的IP化:端到端的IP化使得网络复杂度大大降低,简化了网络配置,能极大缩短基站开通、割接和调整的工作量。2、端到端IP减少了网络中协议转换的次数,简化了封装解封装的过程,使得链路更加透明可控,实现了网元到网元的对等协作、全程全网的OAM管理以及层次化的端到端QoS。IP化的网络还有助于提高网络的智能化,便于部署各类策略,发展智能管道。3、更高效的网络资源利用率:面向连接的SDH或MSTP提供的是刚性管道,容易导致网络利用率低下。而基于IP/MPLS的IPRAN不再面向连接,而是采取动态寻址方式,实现承载网络内自动的路由优化,大大简化了后期网络维护和网络优化的工作量。4、多业务融合承载:IPRAN采用动态三层组网方式,可以更充分满足综合业务的承载需求,实现多业务承载时的资源统一协调和控制层面统一管理,提升运营商的综合运营能力。四、PONPON是一种典型的无源光纤网络,是指 (光配线网中) 不含有任何电子器件及电子电源,ODN全部由光分路器 (Splitter) 等无源器件组成,不需要贵重的有源电子设备。一个无源光网络包括一个安装于中心控制站的光线路终端 (OLT),以及一批配套的安装于用户场所的光网络单元 (ONUs) 。目前广泛使用的PON技术在现有的网络包括两种主流技术:EPON和GPON。EPON上行和下行带宽是1.25Gbit/s GPON带宽为2.5Gbit/s的下游和上游的带宽为1.25Gbit/s,大多数EPON/GPON只配置了以太网接口,可选POTS和2M接口传统的PON系统下行数据流采用广播技术、上行数据流采用TDMA技术,以解决多用户每个方向信号的复用问题。传统PON技术采用WDM技术,在光纤上实现单纤双向传输,解决2个方向信号的复用传输。PON一般由光线路终端(OLT)、分光器(ODU)、用户终端(ONU)3个部分构成。目前在现网中广泛应用的PON技术包括EPON和GPON 2种主流技术,EPON上下行带宽均为1.25 Gbit/s,GPON下行带宽为2.5 Gbit/s,上行带宽为1.25 Gbit/s.相对成本低1) 相对成本低,维护简单,容易扩展,易于升级。PON结构在传输途中不需电源,没有电子部件,因此容易铺设,基本不用维护,长期运营成本和管理成本的节省很大。纯介质网络2) 无源光网络是纯介质网络,彻底避免了电磁干扰和雷电影响,极适合在自然条件恶劣的地区使用。资源占用3) PON系统对局端资源占用很少,系统初期投入低,扩展容易,投资回报率高。 4) 提供非常高的带宽。EPON目前可以提供上下行对称的1.25Gb/s的带宽,并且随着以太技术的发展可以升级到10Gb/s。GPON则是高达2.5Gb/s的带宽。5) 服务范围大。PON作为一种点到多点网络,以一种扇形的结构来节省CO的资源,服务大量用户。用户共享局端设备和光纤的方式更是节省了用户投资。6) 带宽分配灵活,服务质量(QoS)有保证。G/EPON系统对带宽的分配和保证都有一套完整的体系。可以实现用户级的SLA。云连接:云连接(Cloud Connect)能够提供一种快速构建跨区域VPC及云上多VPC与云下多数据中心之间的高速、优质、稳定的网络能力,帮助用户打造一张具有企业级规模和通信能力的全球云上网络。 混合云网络 通过云连接,将云下基础设施网络和分布在多个区域的多个VPC逻辑全互联,实现云上云下的混合云网络架构 优势 多样化连接 将云下基础设施基于云专线在接入公有云后,通过云连接实现和云上多个VPC互联,支持企业业务部署混合云架构 一点接入多点通达 通过云连接,实现用户云下自有数据中心网络与云上多区域多VPC之间的网络互通,满足管理面网络及业务面网络的通讯需求
  • [经验交流] 网络类型
    一、云专线:云专线(Direct Connect)用于搭建用户本地数据中心与华为云VPC之间高速、低时延、稳定安全的专属连接通道,充分利用华为云服务优势的同时,继续使用现有的IT设施,实现灵活一体,可伸缩的混合云计算环境。云专线服务具有以下几大产品优势:高安全:用户使用云专线接入华为云上VPC,使用专享私密通道进行通信,网络隔离,安全性极高。低时延:专用网络进行数据传输,网络性能高,延迟低,用户使用体验更佳。支持大带宽:华为云专线单线路最大支持100Gbps带宽连接,满足各类用户带宽需求。资源无缝扩展:通过云专线将用户本地数据中心与云上资源互联,形成灵活可伸缩的混合云部署。必须使用单模的1GE、10GE、40GE或100GE的光模块与华为云的接入设备对接。同时,需要提前与华为云专线POP点对齐LC、波长、距离等关键参数。光模块参数举例:1GE LC 单模 1310nm 10KM。必须禁用端口的自动协商功能,同时必须手动配置端口速度和全双工模式。必须跨整个连接 (包括中间设备) 支持 802.1Q VLAN 封装。可以支持BGP或者静态路由对接,您的设备须支持边界网关协议(BGP)和BGP MD5认证或支持静态路由。(可选) 您可以在网络上配置双向转发检测 (BFD)。在物理连接层上支持的最大传输单位 (MTU) 高达 1522 字节 (14 字节以太网标头 + 4 字节 VLAN 标记 + 1500 字节 IP 数据报 + 4 字节 FCS)。推荐参数值:1500。二、VPN:虚拟专用网络(Virtual Private Network,以下简称VPN),用于在远端用户和虚拟私有云(Virtual Private Cloud,以下简称VPC)之间建立一条安全加密的公网通信隧道。当您作为远端用户需要访问VPC的业务资源时,您可以通过VPN连通VPC。默认情况下,在虚拟私有云(VPC)中的弹性云服务器无法与您自己的数据中心或私有网络进行通信。如果您需要将VPC中的弹性云服务器和您的数据中心或私有网络连通,可以启用VPN功能。VPN由VPN网关、对端网关和VPN连接组成,VPN网关提供了虚拟私有云的公网出口,与用户本地数据中心侧的对端网关对应。VPN连接则通过公网加密技术,将VPN网关与对端网关关联,使本地数据中心与虚拟私有云通信,更快速、安全的构建混合云环境。优势:高安全:采用华为专业设备,基于IKE和IPsec对传输数据加密,提供了电信级的高可靠性机制,从硬件、软件、链路三个层面保证VPN服务的稳定运行。无缝扩展资源:将用户本地数据中心与云上VPC互联,业务快速扩展上云,实现混合云部署。连通成本低:利用Internet构建IPsec加密通道,使用费用相对云专线服务更便宜。即开即用:即开即用,部署快速,实时生效,在用户数据中心的VPN设备进行简单配置即可完成对接三、IPRAN:IP RAN 的意思是“无线接入网IP化”。IP 指的是互联协议,RAN指的是Radio Access Network。相对于传统的SDH传送网,IPRAN是基于IP的传送网的。IP RAN是针对IP化基站回传应用场景进行优化定制的路由器/交换机整体解决方案。在城域汇聚/核心层采用IP/MPLS技术,接入层主要采用二层增强以太技术,或采用二层增强以太与三层IP/MPLS相结合的技术方案。IP RAN技术的特点及优势:1、端到端的IP化:端到端的IP化使得网络复杂度大大降低,简化了网络配置,能极大缩短基站开通、割接和调整的工作量。2、端到端IP减少了网络中协议转换的次数,简化了封装解封装的过程,使得链路更加透明可控,实现了网元到网元的对等协作、全程全网的OAM管理以及层次化的端到端QoS。IP化的网络还有助于提高网络的智能化,便于部署各类策略,发展智能管道。3、更高效的网络资源利用率:面向连接的SDH或MSTP提供的是刚性管道,容易导致网络利用率低下。而基于IP/MPLS的IPRAN不再面向连接,而是采取动态寻址方式,实现承载网络内自动的路由优化,大大简化了后期网络维护和网络优化的工作量。4、多业务融合承载:IPRAN采用动态三层组网方式,可以更充分满足综合业务的承载需求,实现多业务承载时的资源统一协调和控制层面统一管理,提升运营商的综合运营能力。四、PONPON是一种典型的无源光纤网络,是指 (光配线网中) 不含有任何电子器件及电子电源,ODN全部由光分路器 (Splitter) 等无源器件组成,不需要贵重的有源电子设备。一个无源光网络包括一个安装于中心控制站的光线路终端 (OLT),以及一批配套的安装于用户场所的光网络单元 (ONUs) 。目前广泛使用的PON技术在现有的网络包括两种主流技术:EPON和GPON。EPON上行和下行带宽是1.25Gbit/s GPON带宽为2.5Gbit/s的下游和上游的带宽为1.25Gbit/s,大多数EPON/GPON只配置了以太网接口,可选POTS和2M接口传统的PON系统下行数据流采用广播技术、上行数据流采用TDMA技术,以解决多用户每个方向信号的复用问题。传统PON技术采用WDM技术,在光纤上实现单纤双向传输,解决2个方向信号的复用传输。PON一般由光线路终端(OLT)、分光器(ODU)、用户终端(ONU)3个部分构成。目前在现网中广泛应用的PON技术包括EPON和GPON 2种主流技术,EPON上下行带宽均为1.25 Gbit/s,GPON下行带宽为2.5 Gbit/s,上行带宽为1.25 Gbit/s.相对成本低1) 相对成本低,维护简单,容易扩展,易于升级。PON结构在传输途中不需电源,没有电子部件,因此容易铺设,基本不用维护,长期运营成本和管理成本的节省很大。纯介质网络2) 无源光网络是纯介质网络,彻底避免了电磁干扰和雷电影响,极适合在自然条件恶劣的地区使用。资源占用3) PON系统对局端资源占用很少,系统初期投入低,扩展容易,投资回报率高。 4) 提供非常高的带宽。EPON目前可以提供上下行对称的1.25Gb/s的带宽,并且随着以太技术的发展可以升级到10Gb/s。GPON则是高达2.5Gb/s的带宽。5) 服务范围大。PON作为一种点到多点网络,以一种扇形的结构来节省CO的资源,服务大量用户。用户共享局端设备和光纤的方式更是节省了用户投资。6) 带宽分配灵活,服务质量(QoS)有保证。G/EPON系统对带宽的分配和保证都有一套完整的体系。可以实现用户级的SLA。
  • [经验交流] IP规划、子网规划
    公网与私网IP 公网IP:在Internet上的计算机使用的IP地址是全球统一规划的,称为公网地址。 私网IP:在企业、学校等内网通常使用保留的私网地址。 1)为什么设置私网IP? 因为IPV4的地址数量不足,同时在最初分类IP设计中的缺陷,导致在网络不断发展中,IP地址匮乏严重。于是,提出了私网IP,即保留一部分IP作为私网IP,这些IP可以再内网中使用,不同内网都可以使用这些IP(即复用,只要一个内网中地址互相区别,不同内网可复用),则无形中仿佛增加了IP数量。2)哪些是私网IP地址 A类:10.0.0.0-10.255.255.255,掩码 255.0.0.0; B类:172.16.0.0-172.31.255.255,掩码 255.255.0.0; C类:192.168.0.0-192.168.255.255,掩码 255.255.255.0 3)如果内网使用私网IP标识主机,这些主机如何访问Internet? 对于私网地址,由于不同内网中复用,因为不能在Internet访问中使用,否则会引发冲突。那如何解决该问题,即NAT技术(Network Address Translator),其作用是将私网IP转换为公网IP,当然提供有多种NAT技术。 子网划分 1)什么是子网? 子网(subnet),将一个大的网络划分成几个较小的网络,每一个网络都有其自己的子网地址; 2) 为什么进行子网划分? IP地址的有效利用率问题 路由器的工作效率问题 通过在子网中包含广播流量来控制流量 减少整体网络流量并提高网络性能3)如何进行子网划分? 基本思路: 子网划分是在分类的IP基础上提出的,对于分类IP其网络位已确定,想进一步进行子网划分,则考虑借用主机位作为子网位,从而形成三层地址结构,即网络位,子网位,主机位,利用网络位与子网位共同来标识网段。借位规则: 1 从高位向低位依次连续借位 2 至少主机位留2位,因为主机位全0和主机位全1的IP地址需保留 3 借位与什么相关? 1) 需要划分的子网数量; 2) 子网中主机的数量 如何把所划分的子网表达出来,即标识子网网段?子网掩码:子网掩码与IP地址进行与运算其结果即为网络地址,将掩码进行扩展,网络位与子网位置1,主机位置0. A类地址默认子网掩码:255.0.0.0 B类地址默认子网掩码:255.255.0.0 C类地址默认子网掩码:255.255.255.0 子网划分方法: 等长子网划分 等长子网划分就是将一个网段等分成多个网段,也就是等分成多个子网。 子网划分就是借用现有网段的主机位做子网位,划分出多个子网。子网划分的任务包括两部分: 1)确定网络掩码的长度。 2)确定子网中第一个可用的IP地址和最后一个可用的IP地址。 2 可变长子网划分VLSM 现实中,不同子网的主机数量不同,等长子网划分比较简单,但是地址存在浪费,基于不同子网的IP需求,对于不同子网采用不同的子网长度。 基本步骤: 1)首先,根据子网中最大的IP需求量,先对网络划分子网。 2)然后,再根据具体情况,将子网进一步划分子网。 3)根据需要重复此过程,以创建不同大小的子网。 子网合并 把多个网络(子网)的网络位当做主机位,将多个网络(子网)合并成一个大的网络(子网),其目标可对于路由表中的项目进行合并,增加路由效率。 如何合并?什么样的能合并? 核心:相同前缀,连续地址 路由匹配:最长前缀匹配 (思考?认真体会一下这一点)
  • [技术干货] 经验分享
    一、计算1.1 创建弹性伸缩的流程创建伸缩配置:1、登录管理控制台,2、 选择“计算 > 弹性伸缩 > 伸缩实例”。 单击“创建伸缩配置”。 4. 在“创建伸缩配置”页面,填写弹性伸缩配置信息,您可以选择使用已有云服务 器规格为模板或者使用新模板。 创建弹性伸缩组: 返回“伸缩实例”页面,单击“创建弹性伸缩组”。 2. 在创建伸缩组页面,填写弹性伸缩组的基本信息,例如,名称、最大实例数、最 小实例数、期望实例数等,在高级配置中还可对标签进行配置。 其中,“伸缩配置”选择已创建的伸缩配置。创建伸缩策略 在伸缩组所在行的“操作”列下,单击“查看伸缩策略”。 2. 在“伸缩策略”页签,单击“添加伸缩策略”。通过伸缩控制可以实现弹性云服务器(ECS)实例伸缩和带宽伸缩:伸缩控制:配置策略设置指标阈值/伸缩活动执行的时间,通过云监控监控指标是否达到阈值,通过定时调度,实现伸缩控制。配置策略:可以根据业务需求,配置告警策略/定时策略/周期策略。配置告警策略:可配置CPU、内存、磁盘、入网流量等监控指标。配置定时策略:通过配置触发时间可以配置定时策略。配置周期策略:通过配置重复周期、触发时间、生效时间可以配置周期策略。云监控监控到所配置的告警策略中的某些指标达到告警阈值,从而触发伸缩活动,实现ECS实例的增加/减少或带宽的增大/减小。到达所配置的触发时间时,触发伸缩活动,实现ECS实例的增加/减少或带宽的增大/减小。1.2 哪些云服务在子网里面,哪些在az里面,哪些是整个region级的region:ELB、NAT、AS、云监控、云容器……az:云硬盘、云硬盘备份、SFS……子网:ECS、物理机服务DRS 跨REGIONSDRS 跨AZOBS 跨REGION复制1.3 传统视频网站怎么部署,用什么产品  二、存储2.1 块存储、文件存储、对象存储原理及特性。相互比较SAN存储提供给应用的是一个LUN或者是一个卷,LUN和卷是面向磁盘空间的一种组织方式,上层应用要通过FC或者ISCSI协议访问SAN。SAN存储处理的是管理磁盘的问题,适用于实时读写场景。NAS存储提供给应用的是一个文件系统或者是一个文件夹,上层应用通过NFS和CIFS协议进行访问。利用FTP+TFTP协议进行上传下载,文件系统要维护一个目录树,适用于企业组织内部共享场景,提升办公效率和存储空间利用率(减少同类型数据复存)对象存储更加适合web类应用,基于URL访问地址提供一个海量的桶存储空间,能够存储各种类型的文件对象,对象存储是一个扁平架构,无需维护复杂的文件目录。无需考虑存储空间的限制,一个桶支持近乎无限大的存储空间。(适用于离线、冷数据、归档数据作为后端存储为客户打造的离线存储系统,性价比高……)维度    对象存储服务        云硬盘        弹性文件服务       概念      提供海量、安全、高可靠、低成本的数据存储能力,可供用户存储任意类型和大小的数据。      可以为云服务器提供高可靠、高性能、规格丰富并且可弹性扩展的块存储服务,可满足不同场景的业务需求。云硬盘就类似PC中的硬盘。   提供按需扩展的高性能文件存储,可为云上多个云服务器提供共享访问。弹性文件服务就类似Windows或Linux中的远程目录。   存储数据的逻辑      存放的是对象,可以直接存放文件,文件会自动产生对应的系统元数据,用户也可以自定义文件的元数据。   存放的是二进制数据,无法直接存放文件,如果需要存放文件,需要先格式化文件系统后使用。   存放的是文件,会以文件和文件夹的层次结构来整理和呈现数据。      访问方式      可以通过互联网或专线访问。需要指定桶地址进行访问,使用的是HTTP和HTTPS等传输协议。      只能在ECS/BMS中挂载使用,不能被操作系统应用直接访问,需要格式化成文件系统进行访问。      在ECS/BMS中通过网络协议挂载使用,支持NFS和CIFS的网络协议。需要指定网络地址进行访问,也可以将网络地址映射为本地目录后进行访问。   使用场景      如大数据分析、静态网站托管、在线视频点播、基因测序和智能视频监控等。   如高性能计算、企业核心集群应用、企业应用系统和开发测试等。      如高性能计算、媒体处理、文件共享和内容管理和Web服务等。   容量   EB级别   TB级别   PB级别   时延   10ms   亚毫秒级   3~10ms   IOPS/TPS   千万级   单盘 128K   单文件系统 10K   带宽   TB/s级别   MB/s级别   GB/s级别   是否支持数据共享   是   是      是      是否支持远程访问   是      否      是      是否支持在线编辑   否      是      是      是否能单独使用   是      否      是   2.2 raid计算题,raid和存储热备盘要吃透,raid10,raid5,raid6,热备盘,冷热备份盘的问题,raid6和raid10得可用空间计算RAID 0           100%,RAID 1           50%,RAID 3和5     (N-1)/n,RAID 6          (N-2)/nRAID 10          50% 级别特征原理单元冗余性能利用率最多坏用途缺陷RAID0条带分片分散存入2块硬盘2否读写速度2倍100%0/2SWAP/TMP不冗余,数据难恢复RAID1镜像相同数据存入2块硬盘2是写速度不变读速度2倍50%1/2数据备份读写速度没加,利用率低RAID3校验分片分散存入2块硬盘校验码存入第3块硬盘3是读写速度2倍2/3=66%1/3用的很少1. 坏盘时另外2块需要重新计算还原坏盘数据2. 校验码盘压力大成为瓶颈RAID5校验分片和校验码混合存储3是读写速度2倍2/3=66%1/3用的不多坏盘时另外2块需要重新计算还原坏盘数据RAID6校验分片盘校验码盘分别2个数据分片校验码计算2次4是读写速度2倍2/42/41∈2用的很少“部队中有一半是搞后勤的,感觉还是不太爽。”RAID101+02块硬盘1组先做RAID1多组RAID1再做RAID04是读写速度N倍N为组数2/42/41∈2用的最多-RAID505+03块硬盘1组先做RAID5多组再做RAID06是读写数读2N倍N为组数4/62/61∈3土豪用的“好是好,就是贵!” (备注:raid5,6的利用率见下图)raid5和raid6:raid5:一组分散在不同条带上的奇偶校验数据;允许一块盘故障,两块及以上故障,整个raid故障;RAID 5是RAID 0和RAID 1的折衷方案raid6:两组独立的奇偶校验数据;允许两块盘故障;安全性较高,性能稍差,硬盘利用率较低raid5写的性能比raid10好,读的性能不如raid10;raid双重数据校验,运算负担大,读写性能不如raid5;raid5利用率为n-1/n(n>2),raid6利用率为n-2/n(n>3) 热备盘:原理:         热备盘相当于帮Raid阵列多做多个备份,如果Raid陈列里其中一个盘坏了,这个热备盘就会顶替Raid里的那个坏盘,同时利用异或校验算法,把坏盘上面的数据原样做出来并存储在热备盘中。这样一来就等于Raid没受到损坏,然后你再找个一个同样的盘把坏盘替换掉,Raid和热备盘的状态又正常了!热备盘的类型:      Global Hotspare:即全局热备盘,为RAID卡上所有已配置的RAID所共有,1块RAID卡中可配置1个或多个全局热备盘。当任意RAID内的与热备盘同类型的硬盘故障时,全局热备盘均可自动替代。      Dedicated Hotspare:即局部热备盘,为RAID卡上某个指定的RAID所专有,每个RAID都可以配置1个或多个局部热备盘。当指定RAID内的与热备盘同类型的硬盘故障时,局部热备盘可自动替换。 冷备盘:    以 2 盘的 RAID1 为例。假如坏掉了一块盘,RAID1 阵列将只有 1 块盘在正常运行,这时的 RAID1 阵列将处于降级(Degraded)状态,也就意味着当前阵列已无容错冗余能力,虽然还能继续运行,但是数据已经不安全,需要人为干预进行修复。只需要拔出坏掉的硬盘,换一块相同容量的、好的硬盘插上去,RAID1 阵列就会自动开始恢复重建过程。简单来说,就是将剩余 1 块盘中的数据重新拷贝到新换上的这块盘中。根据硬盘大小的不同,阵列恢复重建过程将从十几小时到几十小时不等。那么,换上的这块硬盘,不管是从抽屉里拿出来的还是去科技市场买了一块新的,都是通过人为操作插入到整个阵列里的。在出问题之前,这块盘就冷冷的躺在抽屉里而并不会通电,这块盘就叫冷备盘(Cold Spare)。考:obs设置标准转低频,低频转归档生命周期管理可适用于以下典型场景:(1)周期性上传的日志文件,可能只需要保留一个星期或一个月。到期后要删除它们。(2)某些文档在一段时间内经常访问,但是超过一定时间后便可能不再访问了。这些文档需要在一定时间后转化为低频访问存储,归档存储或者删除。生命周期管理可以按对象名前缀进行设置规则,也可以在整个桶上设置规则。生命周期管理功能支持数据从当前版本转换为低频访问存储、转换为归档存储,以及数据进行过期删除。您可以指定在对象最后一次更新后多少天,受规则影响的对象将转换为低频访问存储、归档存储或者过期并自动被OBS删除。转换为低频访问存储的时间最少设置为30天,若同时设置转换为低频访问存储和转换为归档存储,则转换为归档存储的时间要比转换为低频访问存储的时间至少长30天,例如转换为低频访问存储设置为33天,则转换为归档存储至少需要设置为63天。对象存储类别转换限制:仅支持将标准存储对象转换为低频访问存储对象,低频访问存储对象转换为标准存储对象需手动转换。仅支持将标准存储或低频访问存储对象转换为归档存储对象。如果要将归档存储对象转换为标准存储或低频访问存储对象,需要手动恢复对象,然后手动转换存储类别。 三、网络3.1 VPN组网、原理分析      VPN(Virtual Private Network,虚拟专用网)是一种在公用网络上建立专用网络的技术。它之所以称之为虚拟网,主要是因为VPN的两个节点之间并没有像传统专用网那样使用端到端的物理链路,而是架构在公用网络如Internet之上的逻辑网络,用户数据通过逻辑链路传输。        按照VPN协议分,常见的VPN种类有:IPsec、SSL、GRE、PPTP和L2TP等。其中IPsec是通用性较强的一种VPN技术,适用于多种网络互访的场景。       IPsec VPN是指采用IPsec实现远程接入的一种VPN技术,通过在公网上为两个或多个私有网络之间建立IPsec隧道,并通过加密和验证算法保证VPN连接的安全。            IPsec VPN保护的是点对点之间的通信,通过IPsec VPN可以在主机和主机之间、主机和网络安全网关之间或网络安全网关(如路由器、防火墙)之间建立安全的隧道连接。其协议主要工作在IP层,在IP层对数据包进行加密和验证。          相对于其他VPN技术,IPsec VPN安全性更高,数据在IPsec隧道中都是加密传输,但相应的IPsec VPN在配置和组网部署上更复杂。IPsec的工作原理大致可以分为4个阶段:识别“感兴趣流”。网络设备接收到报文后,通常会将报文的五元组等信息和IPsec策略进行匹配来判断报文是否要通过IPsec隧道传输,需要通过IPsec隧道传输的流量通常被称为“感兴趣流”。协商安全联盟(Security Association,以下简称SA)。SA是通信双方对某些协商要素的约定,比如双方使用的安全协议、数据传输采用的封装模式、协议采用的加密和验证算法、用于数据传输的密钥等,通信双方之间只有建立了SA,才能进行安全的数据传输。识别出感兴趣流后,本端网络设备会向对端网络设备发起SA协商。在这一阶段,通信双方之间通过IKE协议先协商建立IKE SA(用于身份验证和密钥信息交换),然后在IKE SA的基础上协商建立IPsec SA(用于数据安全传输)。数据传输。IPsec SA建立成功后,双方就可以通过IPsec隧道传输数据了。IPsec为了保证数据传输的安全性,在这一阶段需要通过AH或ESP协议对数据进行加密和验证。加密机制保证了数据的机密性,防止数据在传输过程中被窃取;验证机制保证了数据的真实可靠,防止数据在传输过程中被仿冒和篡改。    如图所示,IPsec发送方会使用加密算法和加密密钥对报文进行加密,即将原始数据“乔装打扮”封装起来。然后发送方和接收方分别通过相同的验证算法和验证密钥对加密后的报文进行处理得到完整性校验值ICV。如果两端计算的ICV相同则表示该报文在传输过程中没有被篡改,接收方对验证通过的报文进行解密处理;如果ICV不相同则直接丢弃报文。  MPLS VPN:使用场景在运营商骨干网络上提供L3VPN业务,利用BGP协议发布路由信息,在骨干网内部使用MPLS转发VPN报文。概念CE(Consumer Edge):用户边缘路由器,与运营商网络直接相连的路由器。    感知不到VPN的存在,一个CE设备只能对应一个VPN    主要功能就是将VPN客户的路由通告给PE,以及从PE学习同一个VPN下其他站点的路由PE(Provider Edge):运行商(骨干网)边缘路由器,与用户网络相连的路由器。    负责VPN业务接入,处理VPN-IPV4路由    使用VRF对VPN客户进行隔离    通过与客户设备CE进行路由协议,以便获取客户路由,并将路由生成VPNv4前缀放入MPLS VPN骨干网传递到对端PEP(Provider):骨干网路由器,与PE或其他P相连。    负责快速转发数据    不知道VPN客户网络,以及客户的路由。只负责在骨干网内运载标签数据VRF(Virtual Router Forwarding):PE上的虚拟路由器(路由进程)。     一张独立的路由表,包括独立的地址空间     一组归属于这个VRF的接口的集合,    一组只用于本VRF的路由协议    一个VPN对应一个VRFRD(Route-Distinguisher):路由标识符     BGP进程用该字段区分不同VPN,有了RD后就可以解决不同VPN之间的IP地址重叠问题,VPN用户的IP地址不再是整个系统全局唯一,而是VPN内唯一即可。RT(Route-Target)      每个VRF表达自己的路由输出和输出方式,主要用于控制VPN路由的发布和安装策略。  3.2 高可用组网——计算虚拟机高可用高并发场景的组网——李赛:负载均衡方案:1.在VPC/子网内创建弹性负载均衡实例作为服务接口对外提供 3.3 IP规划、子网规划3)公网与私网IP  公网IP:在Internet上的计算机使用的IP地址是全球统一规划的,称为公网地址。  私网IP:在企业、学校等内网通常使用保留的私网地址。  1)为什么设置私网IP?         因为IPV4的地址数量不足,同时在最初分类IP设计中的缺陷,导致在网络不断发展中,IP地址匮乏严重。于是,提出了私网IP,即保留一部分IP作为私网IP,这些IP可以再内网中使用,不同内网都可以使用这些IP(即复用,只要一个内网中地址互相区别,不同内网可复用),则无形中仿佛增加了IP数量。     2)哪些是私网IP地址  A类:10.0.0.0-10.255.255.255,掩码 255.0.0.0; B类:172.16.0.0-172.31.255.255,掩码  255.255.0.0; C类:192.168.0.0-192.168.255.255,掩码  255.255.255.0 3)如果内网使用私网IP标识主机,这些主机如何访问Internet?  对于私网地址,由于不同内网中复用,因为不能在Internet访问中使用,否则会引发冲突。那如何解决该问题,即NAT技术(Network Address Translator),其作用是将私网IP转换为公网IP,当然提供有多种NAT技术。    子网划分 什么是子网?  子网(subnet),将一个大的网络划分成几个较小的网络,每一个网络都有其自己的子网地址;  2) 为什么进行子网划分?        IP地址的有效利用率问题 路由器的工作效率问题 通过在子网中包含广播流量来控制流量  减少整体网络流量并提高网络性能3)如何进行子网划分?  基本思路:    子网划分是在分类的IP基础上提出的,对于分类IP其网络位已确定,想进一步进行子网划分,则考虑借用主机位作为子网位,从而形成三层地址结构,即网络位,子网位,主机位,利用网络位与子网位共同来标识网段。  借位规则:     1 从高位向低位依次连续借位     2 至少主机位留2位,因为主机位全0和主机位全1的IP地址需保留      3 借位与什么相关?           1) 需要划分的子网数量;  2) 子网中主机的数量   如何把所划分的子网表达出来,即标识子网网段?  子网掩码:子网掩码与IP地址进行与运算其结果即为网络地址,将掩码进行扩展,网络位与子网位置1,主机位置0.  A类地址默认子网掩码:255.0.0.0  B类地址默认子网掩码:255.255.0.0  C类地址默认子网掩码:255.255.255.0  子网划分方法:  等长子网划分 等长子网划分就是将一个网段等分成多个网段,也就是等分成多个子网。  子网划分就是借用现有网段的主机位做子网位,划分出多个子网。子网划分的任务包括两部分:  1)确定网络掩码的长度。  2)确定子网中第一个可用的IP地址和最后一个可用的IP地址。    2  可变长子网划分VLSM   现实中,不同子网的主机数量不同,等长子网划分比较简单,但是地址存在浪费,基于不同子网的IP需求,对于不同子网采用不同的子网长度。  基本步骤:  1)首先,根据子网中最大的IP需求量,先对网络划分子网。  2)然后,再根据具体情况,将子网进一步划分子网。  3)根据需要重复此过程,以创建不同大小的子网。  子网合并 把多个网络(子网)的网络位当做主机位,将多个网络(子网)合并成一个大的网络(子网),其目标可对于路由表中的项目进行合并,增加路由效率。  如何合并?什么样的能合并?  核心:相同前缀,连续地址  路由匹配:最长前缀匹配  (思考?认真体会一下这一点)3.4 网络类型一、云专线:云专线(Direct Connect)用于搭建用户本地数据中心与华为云VPC之间高速、低时延、稳定安全的专属连接通道,充分利用华为云服务优势的同时,继续使用现有的IT设施,实现灵活一体,可伸缩的混合云计算环境。云专线服务具有以下几大产品优势:高安全:用户使用云专线接入华为云上VPC,使用专享私密通道进行通信,网络隔离,安全性极高。低时延:专用网络进行数据传输,网络性能高,延迟低,用户使用体验更佳。支持大带宽:华为云专线单线路最大支持100Gbps带宽连接,满足各类用户带宽需求。资源无缝扩展:通过云专线将用户本地数据中心与云上资源互联,形成灵活可伸缩的混合云部署。必须使用单模的1GE、10GE、40GE或100GE的光模块与华为云的接入设备对接。同时,需要提前与华为云专线POP点对齐LC、波长、距离等关键参数。光模块参数举例:1GE LC 单模 1310nm 10KM。必须禁用端口的自动协商功能,同时必须手动配置端口速度和全双工模式。必须跨整个连接 (包括中间设备) 支持 802.1Q VLAN 封装。可以支持BGP或者静态路由对接,您的设备须支持边界网关协议(BGP)和BGP MD5认证或支持静态路由。(可选) 您可以在网络上配置双向转发检测 (BFD)。在物理连接层上支持的最大传输单位 (MTU) 高达 1522 字节 (14 字节以太网标头 + 4 字节 VLAN 标记 + 1500 字节 IP 数据报 + 4 字节 FCS)。推荐参数值:1500。二、VPN:虚拟专用网络(Virtual Private Network,以下简称VPN),用于在远端用户和虚拟私有云(Virtual Private Cloud,以下简称VPC)之间建立一条安全加密的公网通信隧道。当您作为远端用户需要访问VPC的业务资源时,您可以通过VPN连通VPC。默认情况下,在虚拟私有云(VPC)中的弹性云服务器无法与您自己的数据中心或私有网络进行通信。如果您需要将VPC中的弹性云服务器和您的数据中心或私有网络连通,可以启用VPN功能。VPN由VPN网关、对端网关和VPN连接组成,VPN网关提供了虚拟私有云的公网出口,与用户本地数据中心侧的对端网关对应。VPN连接则通过公网加密技术,将VPN网关与对端网关关联,使本地数据中心与虚拟私有云通信,更快速、安全的构建混合云环境。优势:高安全:采用华为专业设备,基于IKE和IPsec对传输数据加密,提供了电信级的高可靠性机制,从硬件、软件、链路三个层面保证VPN服务的稳定运行。无缝扩展资源:将用户本地数据中心与云上VPC互联,业务快速扩展上云,实现混合云部署。连通成本低:利用Internet构建IPsec加密通道,使用费用相对云专线服务更便宜。即开即用:即开即用,部署快速,实时生效,在用户数据中心的VPN设备进行简单配置即可完成对接三、IPRAN:IP RAN 的意思是“无线接入网IP化”。IP 指的是互联协议,RAN指的是Radio Access Network。相对于传统的SDH传送网,IPRAN是基于IP的传送网的。IP RAN是针对IP化基站回传应用场景进行优化定制的路由器/交换机整体解决方案。在城域汇聚/核心层采用IP/MPLS技术,接入层主要采用二层增强以太技术,或采用二层增强以太与三层IP/MPLS相结合的技术方案。IP RAN技术的特点及优势:1、端到端的IP化:端到端的IP化使得网络复杂度大大降低,简化了网络配置,能极大缩短基站开通、割接和调整的工作量。2、端到端IP减少了网络中协议转换的次数,简化了封装解封装的过程,使得链路更加透明可控,实现了网元到网元的对等协作、全程全网的OAM管理以及层次化的端到端QoS。IP化的网络还有助于提高网络的智能化,便于部署各类策略,发展智能管道。3、更高效的网络资源利用率:面向连接的SDH或MSTP提供的是刚性管道,容易导致网络利用率低下。而基于IP/MPLS的IPRAN不再面向连接,而是采取动态寻址方式,实现承载网络内自动的路由优化,大大简化了后期网络维护和网络优化的工作量。4、多业务融合承载:IPRAN采用动态三层组网方式,可以更充分满足综合业务的承载需求,实现多业务承载时的资源统一协调和控制层面统一管理,提升运营商的综合运营能力。四、PONPON是一种典型的无源光纤网络,是指 (光配线网中) 不含有任何电子器件及电子电源,ODN全部由光分路器 (Splitter) 等无源器件组成,不需要贵重的有源电子设备。一个无源光网络包括一个安装于中心控制站的光线路终端 (OLT),以及一批配套的安装于用户场所的光网络单元 (ONUs) 。目前广泛使用的PON技术在现有的网络包括两种主流技术:EPON和GPON。EPON上行和下行带宽是1.25Gbit/s GPON带宽为2.5Gbit/s的下游和上游的带宽为1.25Gbit/s,大多数EPON/GPON只配置了以太网接口,可选POTS和2M接口传统的PON系统下行数据流采用广播技术、上行数据流采用TDMA技术,以解决多用户每个方向信号的复用问题。传统PON技术采用WDM技术,在光纤上实现单纤双向传输,解决2个方向信号的复用传输。PON一般由光线路终端(OLT)、分光器(ODU)、用户终端(ONU)3个部分构成。目前在现网中广泛应用的PON技术包括EPON和GPON 2种主流技术,EPON上下行带宽均为1.25 Gbit/s,GPON下行带宽为2.5 Gbit/s,上行带宽为1.25 Gbit/s.相对成本低1) 相对成本低,维护简单,容易扩展,易于升级。PON结构在传输途中不需电源,没有电子部件,因此容易铺设,基本不用维护,长期运营成本和管理成本的节省很大。纯介质网络2) 无源光网络是纯介质网络,彻底避免了电磁干扰和雷电影响,极适合在自然条件恶劣的地区使用。资源占用3) PON系统对局端资源占用很少,系统初期投入低,扩展容易,投资回报率高。 4) 提供非常高的带宽。EPON目前可以提供上下行对称的1.25Gb/s的带宽,并且随着以太技术的发展可以升级到10Gb/s。GPON则是高达2.5Gb/s的带宽。5) 服务范围大。PON作为一种点到多点网络,以一种扇形的结构来节省CO的资源,服务大量用户。用户共享局端设备和光纤的方式更是节省了用户投资。6) 带宽分配灵活,服务质量(QoS)有保证。G/EPON系统对带宽的分配和保证都有一套完整的体系。可以实现用户级的SLA。3.5 管理业务双平面3.6 测带宽的题目     假设每次访问的平均页面大小是200K字节,网站的预期目标是每天50W PV的访问量。我们的计算开始:50W PV如果在一天内平均分布,折合到每秒大概是50W/(246060)=6次访问,按照我们之前的假设平均页面大小是200K字节计算,这6次访问总 共就是1200K字节(需要注意的是这个地方是字节),字节的单位是Byte,而带宽的单位是bit,1Byte=8bit,因此1200K Byte大概就是9600K bit,也就是9Mbps(1M=1024K)。在实际的网站运行过程中,我们的网站必须要在峰值流量时保持正常的访问,这里就会用到我们之前的假设,峰 值流量是平均流量的5倍,按照这个计算,实际需要的带宽大约在9Mbps*5=45Mbps左右。   具体的计算公式是:   网站独享带宽=一天总的PV值÷ 一天总时间(换算到S)*平均页面大小(单位KB)* 8  3.7 vpc内部组网和外部公网入口怎么做,dns怎么做,elb怎么部署(以图示例)3.8 数据库高性能用哪种,怎么部署怎么计费?1、用分布式数据库中间件(DDM)2、部署过程基本架构就是DDM下挂多个Mysql实例,包括只读实例和写实例:步骤一:购买数据库中间件实例及RDS for MySQL实例步骤二:创建逻辑库并关联RDS for MySQL实例步骤三:创建DDM帐号步骤四:连接DDM逻辑库 3、计费包年包月/按需付费(小时) 四、数据库4.1 LNMP LAMP开数据库LAMP:Linux + Apache + MySQL+php的组合方式LNMP:Linux + Nginx + MySQL+php的组合方式LAMP和LNMP最主要的区别在于:一个使用的是Apache,一个使用的是Nginx。Linux 开源免费软件,作为网站的操作系统 Apache/Nginx Web服务器软件 MySQL 多线程多用户的数据库管理系统,用来存放数据 PHP 服务器端的应用程序软件,快速执行动态网页LAMP:使用的是Apache,Apache是世界是用排名第一的Web服务器软件,其几乎可以在所有广泛使用的计算机平台上运营,由于其跨平台和安全性被广泛使用,是最流行的Web服务端软件之一。相比于nginx,apache有些臃肿,内存和CPU开销较大,性能上有损耗,nginx对于静态文件的响应能力远高apache。 Apache是负载PHP的最佳选择,如果流量很大的话,可以使用nginx来负载非PHP的Web请求。。LNMP:使用的是Nginx,Nginx是一款高性能额Http和反向代理服务器,也是一个AMAP/POP3/SMTP服务器。nginx使用资源更少,支持更多并发连接,效率更高,作为负载均衡服务器。nginx即可对内进行支持,也可对外进行服务,安装简单。总之:1、LNMP方式的优点:占用VPS资源较少,Nginx配置起来也比较简单,利用fast-cgi的方式动态解析PHP脚本。缺点:php-fpm组件的负载能力有限,在访问量巨大的时候,php-fpm进程容易僵死,容易发生502 bad gateway错误。2、基于 LAMP 架构设计具有成本低廉、部署灵活、快速开发、安全稳定等特点,是 Web 网络应用和环境的优秀组合。若是服务器配置比较低的个人网站,当然首选 LNMP 架构。当然,在大流量的时候。把Apache和Nginx结合起来使用,也不失为一个不错选择。五、容器5.1 容器化改造、拓扑及网络规划 1:负载均衡应用改造点:选择合适的负载均衡器中小型的Web应用可以使用ngnix或HAProxy,大型网站或重要的服务可以使用LVS,目前该企业业务较小,选取nginx作为负载均衡器!2:web应用改造点:应用存在长时间执行请求   增加消息队列,通过消息队列将长任务与用户请求解耦3:应用服务器应用改造点:应用实例依赖于本地的存储来持久化数据如果是日志,建议变成流汇聚到分布式日志系统中。如果必须要使用存储,要使用共享文件系统如NFS 可以利用namespace创建虚拟集群,namaspace之间可以完全隔离,也可以通过某种方式,让一个namespace中的service访问其他namespace中的服务。业务拓扑: 网络规划:Step1:kube-proxy、core-dns从Master中kube-apiserver订阅service,POD2的Service创建时,kube-proxy刷新本节点iptables,core-DNS更新路由数据。Step2:Pod2通过域名访问Pod4的service4,发起到core-dns查询请求,并获取对应的ClusterIP(如果使用ClusterIP直接访问则忽略这一步骤)Step3:Pod2发送业务报文,目的地址为获取到的ClusterIP。容器网络根据目的地址匹配策略后进行VxLAN封装,封装源地址为容器所在的VM IP地址,目的地址为目的容器所在VM IP,并将报文发给I层vSwitch,然后转发至目的容器所在VM,容器网络解VxLAN封装后,根据ClusterIP将业务报文发送目的service及POD。 5.2 容器的高可用原理,原理图一、容器集群高可用部署原理:1.CCE高可用集群采用分别在3个AZ中部署三套Master节点方式;2.应用AZ内高可用部署,通过ClusterIP服务调用不跨AZ。3.应用发布LoadBalancer类型的Service对接到集群所在AZ的融合ELB服务实例;4.应用通过VIP访问数据库,数据库自动切换应用不感知。5.支持多AZ动态容器存储,根据pod所在AZ创建数据卷。高可用架构原理图:二、容器实例高可用容器高可用依赖于多实例部署,在合理配置反亲和后,如果发生单实例、单节点、单AZ故障,业务均不受影响。  容器多实例可以实现多节点、多可用区部署5.3 视频存储容器化一.存储容器化存储作为基础组件,直接和本地盘打交道,所以我们一个要解决的事情就是如果Kubernetes 管理本地盘。kubernetes管理本地盘通过官方提供的local-static-provisioner自动生成LocalPersistentVolume管理磁盘。LocalPersistentVolume是Kubernetes提供的一种管理本地盘的资源。  5.1 使用Statefulset管理存储容器通过statefulset 管理有状态的存储服务, 为每个pod分配一个单独的磁盘可以使用volumeClaimTemplates给每个pod生成唯一的pvc,具体规则{podName},事先准备好PVC 和 PV,通过Statefulset 我们就可以把我们的存储托管到云上了。另外借助daemonset,可以把我们gateway模块部署到每一个node上面。处理云存储的请求。  5.2 存储容器化的收益1)降低运维成本基于Kubernetes和statfulset获得了滚动更新,灰度更新,健康检查,快速扩容等功能,只需要一组yaml文件就可以快速搭建一个集群,相比于传统写ansible脚本部署的方式复杂度大大降低。2)降低开发运维成本由于Kubernetes把存储抽象成StorageClass PersistentVolume PersistentVolumeClaim。我们可以通过他们管理我们的存储资源,基于Kubernetes lable的过滤功能,可以实现简单的关系查询,通过PVC与PV管理存储资源,减少管理端的开发。定位问题也能通过POD信息快速定位到问题机器和问题云盘。而且接入Kubernetes生态上的prometheus后,监控告警也能快速开发。3)隔离性增强docker限制cpu memory使用,减少进程之间资源互相干扰,进一步提升资源利用率。 在做流媒体容器化过程中,各个系统 Portal 平台、中间件、ops 基础设施、监控等都做了相应的适配改造,改造后的架构矩阵如下图所示。Portal:流媒体 的 PaaS 平台入口,提供 CI/CD 能力、资源管理、自助运维、应用画像、应用授权(db 授权、支付授权、应用间授权)等功能。2.运维工具:提供应用的可观测性工具, 包括 watcher(监控和报警)、bistoury (Java 应用在线 Debug)、qtrace(tracing 系统)、loki/elk(提供实时日志/离线日志查看)。中间件:应用用到的所有中间件,mq、配置中心、分布式调度系统 qschedule、dubbo 、mysql sdk 等。3.虚拟化集群:底层的 K8s 和 OpenStack 集群。4.Noah:测试环境管理平台,支持应用 KVM/容器混合部署。一.CI/CD 流程改造 主要改造点:应用画像: 把应用相关的运行时配置、白名单配置、发布参数等收敛到一起,为容器发布提供统一的声明式配置。授权系统: 应用所有的授权操作都通过一个入口进行,并实现自动化的授权。K8s 多集群方案: 通过调研对比,KubeSphere 对运维优化、压测评估后也满足我们对性能的要求,最终我们选取了 KubeSphere 作为多集群方案。二.中间件适配改造改造关注点:由于容器化后,IP 经常变化是常态,所以各个公共组件和中间件要适配和接受这种变化。Qmq组件改造点:Broker端加快过期数据的处理速度。原因:由于IP变化频繁,对于一个主题有几百个甚至上千个的IP订阅,会产生很多文件Qconfig/Qschedule组件改造点:按实例级别的推送、任务执行在容器场景下不建议使用 。原因:因为IP经常变化,在容器化场景下发布、pod驱逐等都会导致IP变化,按实例维度推送没有意义Dubbo组件改造点:更改上线下线逻辑,下线记录由永久节点改为临时节点。 原因:上下线机制加上频繁的IP变更会导致zookeeper上产生大量的过期数据Openresty改造点:监听多K8s集群的endpoint变更,并更新到upstream; KVM、容器server地址共存,支持KVM和容器混合部署;三应用平滑迁移方案设计为了帮助业务快速平滑地迁移到容器,制定了一些规范和自动化测试验证等操作来实现这个目标。1.容器化的前置条件: 应用无状态、不存在 post_offline hook(服务下线后执行的脚本)、check_url 中不存在预热操作。2.测试环境验证: 自动升级 SDK、自动迁移。我们会在编译阶段帮助业务自动升级和更改 pom 文件来完成 SDK 的升级,并在测试环境部署和验证,如果升级失败会通知用户并提示。3.线上验证: 第一步线上发布,但不接线上流量,然后通过自动化测试验证,验证通过后接入线上流量。4.线上 KVM 与容器混部署:保险起见,线上的容器和 KVM 会同时在线一段时间,等验证期过后再逐步下线 KVM。5.线上全量发布: 确认服务没问题后,下线 KVM。6.观察: 观察一段时间,如果没有问题则回收 KVM。5.4 容器和虚拟机的区别1、容器主机必须有OS环境2、容器没有虚拟化软件3、容器应用镜像来自公共、私有、社区HUB4、容器引擎直接安装镜像---运行实例5、容器无需安装OS、无需做任何配置容器和虚拟机的优势对比1、容器占用空间是MB级别,虚拟机是GB级别2、容器的运行速度是秒级,虚拟机是分钟级3、容器的安全性不如计算虚拟化4、容器创建数量无上限,虚拟机受限于hypervisior容器的最大价值(CCI+CCE)1、无服务器架构2、预装好具备容器编排能力的平台5.5 K8s和vpc组网关系      Kubernetes本身并不负责网络通信,Kubernetes提供了容器网络接口CNI,具体的网络通信交给CNI插件来负责,开源的CNI插件非常多,像Flannel、Calico等,华为云CCE也专门为Kubernetes定制了CNI插件,使得Kubernetes可以使用华为云VPC网络。通过ELB中转一次连K8s-MasterElb不能直接连master节点,而elb连Service又必须得带selector。那就只能额外部署一个proxy容器,使用selector先到这个proxy容器,再转到Master5.6 什么业务适合做容器化1.轻量级的应用系统、丢失数据不敏感业务适合上容器化平台。几类应用比较适合容器化部署:一是功能单一的应用,即微服务(这也是为什么现在大家一谈到微服务就会谈到容器,一谈到容器就会谈到微服务的原因);二是无状态的应用,容器的一个最大的优点就是可以快速创建(秒级),对于无状态的应用,可以通过快速横向扩容来提升并发处理能力;三是变更频繁的应用,容器是基于镜像创建的,对于变更频繁的应用,只要能保证镜像在测试环境测试没有问题,那么在生产环境上线由于环境差异导致出问题的概率就会少的多;四是对于需要在一个站点快速部署的应用组,对于需要在一个新站点快速部署的应用组,使用容器技术能够结合容器平台自身的特性,快速创建一个新的站点。2.重量级的中间件、oracle数据库、对数据持久化有强需求的应用、传统行业核心应用不适合容器化。使用容器部署应用,建议的上容器顺序如图所示:
  • [技术干货] 三大存储业务的不同点及适用场景
    SAN存储提供给应用的是一个LUN或者是一个卷,LUN和卷是面向磁盘空间的一种组织方式,上层应用要通过FC或者ISCSI协议访问SAN。SAN存储处理的是管理磁盘的问题,适用于实时读写场景;NAS存储提供给应用的是一个文件系统或者是一个文件夹,上层应用通过NFS和CIFS协议进行访问,利用FTP+TFTP协议进行上传下载,此外,文件系统要维护一个目录树,适用于企业组织内部共享场景,提升办公效率和存储空间利用率(减少同类型数据复存)对象存储更加适合web类应用,基于URL访问地址提供一个海量的桶存储空间,能够存储各种类型的文件对象,对象存储是一个扁平架构,无需维护复杂的文件目录。无需考虑存储空间的限制,一个桶支持近乎无限大的存储空间。(适用于离线、冷数据、归档数据、作为后端存储为客户打造的离线存储系统,性价比高…)维度对象存储服务云硬盘弹性文件服务概念提供海量、安全、高可靠、低成本的数据存储能力,可供用户存储任意类型和大小的数据。可以为云服务器提供高可靠、高性能、规格丰富并且可弹性扩展的块存储服务,可满足不同场景的业务需求。云硬盘就类似PC中的硬盘。提供按需扩展的高性能文件存储,可为云上多个云服务器提供共享访问。弹性文件服务就类似Windows或Linux中的远程目录。存储数据的逻辑存放的是对象,可以直接存放文件,文件会自动产生对应的系统元数据,用户也可以自定义文件的元数据。存放的是二进制数据,无法直接存放文件,如果需要存放文件,需要先格式化文件系统后使用。存放的是文件,会以文件和文件夹的层次结构来整理和呈现数据。访问方式可以通过互联网或专线访问。需要指定桶地址进行访问,使用的是HTTP和HTTPS等传输协议。只能在ECS/BMS中挂载使用,不能被操作系统应用直接访问,需要格式化成文件系统进行访问。在ECS/BMS中通过网络协议挂载使用,支持NFS和CIFS的网络协议。需要指定网络地址进行访问,也可以将网络地址映射为本地目录后进行访问。使用场景如大数据分析、静态网站托管、在线视频点播、基因测序和智能视频监控等。如高性能计算、企业核心集群应用、企业应用系统和开发测试等。如高性能计算、媒体处理、文件共享和内容管理和Web服务等。容量EB级别TB级别PB级别时延10ms亚毫秒级3~10msIOPS/TPS千万级单盘 128K单文件系统 10K带宽TB/s级别MB/s级别GB/s级别是否支持数据共享是是是是否支持远程访问是否是是否支持在线编辑否是是是否能单独使用是否是
  • [技术干货] OpenFlow是什么?
    OpenFlow是一种网络通信协议,应用于SDN架构中控制器和转发器之间的通信。软件定义网络SDN的一个核心思想就是“转发、控制分离”,要实现转、控分离,就需要在控制器与转发器之间建立一个通信接口标准,允许控制器直接访问和控制转发器的转发平面。OpenFlow引入了“流表”的概念,转发器通过流表来指导数据包的转发。控制器正是通过OpenFlow提供的接口在转发器上部署相应的流表,从而实现对转发平面的控制。OpenFlow的起源与发展OpenFlow起源于斯坦福大学的Clean Slate项目,该项目的目标是要“重塑互联网”,旨在改变设计已略显不合时宜,且难以进化发展的现有网络基础架构。在2006年,斯坦福的学生Martin Casado领导了一个关于网络安全与管理的项目,试图通过一个集中式的控制器,让网络管理员方便地定义基于网络流的安全控制策略,并将这些安全策略应用到各种网络设备中,从而实现对整个网络通讯的安全控制。受此项目启发,Clean Slate项目的负责人Nick McKeown教授及其团队发现,如果将传统网络设备的数据转发和路由控制两个功能模块相分离,通过集中式的控制器(Controller)以标准化的接口对各种网络设备进行管理和配置,那么这将为网络资源的设计、管理和使用提供更多的可能性,从而更容易推动网络的革新与发展。于是,他们便提出了OpenFlow的概念,并且于2008年发表了题为《OpenFlow: Enabling Innovation in Campus Networks》的论文,首次详细地介绍了OpenFlow的原理和应用场景。2009年,基于OpenFlow,该研究团队进一步提出了SDN(Software Defined Network,软件定义网络)的概念,引起了行业的广泛关注和重视。2011年,由Google、Facebook、微软等公司共同发起成立了一个对SDN影响深远的组织ONF(Open Networking Foundation),致力于发展SDN。ONF将OpenFlow定义为SDN架构的控制层和转发层之间的第一个南向标准通信接口,并加大OpenFlow的标准化力度。自2009年底发布第一个正式版本v1.0以来,OpenFlow协议已经经历了1.1、1.2、1.3以及最新发布的1.5等版本的演进过程。目前使用和支持最多的是OpenFlow1.0和OpenFlow1.3版本。OpenFlow的工作原理整个OpenFlow协议架构由控制器(Controller)、OpenFlow交换机(OpenFlow Switch)、以及安全通道(Secure Channel)组成。控制器对网络进行集中控制,实现控制层的功能;OpenFlow交换机负责数据层的转发,与控制器之间通过安全通道进行消息交互,实现表项下发、状态上报等功能。OpenFlow控制器OpenFlow控制器位于SDN架构中的控制层,是SDN的“大脑”,通过OpenFlow协议指导设备的转发。目前主流的OpenFlow控制器分为两大类:开源控制器和厂商开发的商用控制器。常见的开源控制器例如NOX/POX、OpenDaylight等。厂商的商用控制器有Huawei的iMaster NCE等。OpenFlow安全通道安全通道就是连接OpenFlow交换机与控制器的信道,负责在OpenFlow交换机和控制器之间建立安全链接。控制器通过这个通道来控制和管理交换机,同时接收来自交换机的反馈。通过OpenFlow安全通道的信息交互必须按照OpenFlow协议规定的格式来执行,通常采用TLS(Transport Layer Security)加密,在一些OpenFlow版本中(1.1及以上),有时也会通过TCP明文来实现。通道中传输的OpenFlow消息类型包括以下三种:Controller-to-Switch消息:由控制器发出、OpenFlow交换机接收并处理的消息,主要用来管理或获取OpenFlow交换机状态。Asynchronous消息:由OpenFlow交换机发给控制器,用来将网络事件或者交换机状态变化更新到控制器。Symmetric消息:可由OpenFlow交换机发出也可由控制器发出,也不必通过请求建立,主要用来建立连接、检测对方是否在线等。OpenFlow交换机OpenFlow交换机是整个OpenFlow网络的核心部件,主要负责数据层的转发。OpenFlow交换机可以是物理的交换机/路由器,也可以是虚拟化的交换机/路由器。按照对OpenFlow的支持程度,OpenFlow交换机可以分为两类:OpenFlow专用交换机:一个标准的OpenFlow设备,仅支持OpenFlow转发。他不支持现有的商用交换机上的正常处理流程,所有经过该交换机的数据都按照OpenFlow的模式进行转发。OpenFlow兼容型交换机:既支持OpenFlow转发,也支持正常二三层转发。这是在商业交换机的基础上添加流表、安全通道和OpenFlow协议来获得了OpenFlow特性的交换机。OpenFlow交换机在实际转发过程中,依赖于流表(Flow Table)。流表是OpenFlow交换机进行数据转发的策略表项集合,指示交换机如何处理流量,所有进入交换机的报文都按照流表进行转发。流表本身的生成、维护、下发完全由控制器来实现。流表项的组成在传统网络设备中,交换机/路由器的数据转发需要依赖设备中保存的二层MAC地址转发表、三层IP地址路由表以及传输层的端口号等。OpenFlow交换机中使用的“流表”也是如此,不过他的表项并非是指普通的IP五元组,而是整合了网络中各个层次的网络配置信息,由一些关键字和执行动作组成的灵活规则。OpenFlow流表的每个流表项都由匹配域(Match Fields)、处理指令(Instructions)等部分组成。流表项中最为重要的部分就是匹配域和指令,当OpenFlow交换机收到一个数据包,将包头解析后与流表中流表项的匹配域进行匹配,匹配成功则执行指令。流表项的结构随着OpenFlow版本的演进不断丰富,不同协议版本的流表项结构如下。多级流表与流水线处理OpenFlow v1.0采用单流表匹配模式,这种模式虽然简单,但是当网络需求越来越复杂时,各种策略放在同一张表中显得十分臃肿。这使得控制平面的管理变得十分困难,而且随着流表长度与数目的增加,对硬件性能要求也越来越高。从OpenFlow v1.1开始引入了多级流表和流水线处理机制,当报文进入交换机后,从序号最小的流表开始依次匹配,报文通过跳转指令跳转至后续某一流表继续进行匹配,这样就构成了一条流水线。多级流表的出现一方面能够实现对数据包的复杂处理,另一方面又能有效降低单张流表的长度,提高查表效率。流表下发方式OpenFlow流表的下发分可以是主动(Proactive)的,也可以是被动(Reactive)的:主动模式下,控制器将自己收集的流表信息主动下发给OpenFlow交换机,随后交换机可以直接根据流表进行转发。被动模式下,OpenFlow交换机收到一个报文而查流表失败时,会发送消息询问控制器,由控制器进行决策该如何转发,并计算、下发相应的流表。被动模式的好处是交换机无需维护全部的流表,只有当实际的流量产生时才向控制器获取流表记录并存储,当老化定时器超时后可以删除相应的流表,因此可以大大节省交换机芯片空间。OpenFlow的应用场景随着OpenFlow概念的发展和推广,其研究和应用领域也得到了不断拓展,主要包括网络虚拟化、安全和访问控制、负载均衡等方面。下面以几个典型的场景来展示OpenFlow的应用:OpenFlow在校园网络中的应用科研院校网络是OpenFlow的发源地,也是OpenFlow被广泛应用的网络环境。学生或研究人员在进行网络创新性研究时,可能会有全新设计的网络控制协议和数据转发技术需要验证,他们希望有一个平台能帮助他们把网络的控制、转发独立出来,以便能在平台上自由验证他们的研究工作。基于OpenFlow的网络正好可以提供这样一个试验平台,不仅更接近真实网络的复杂度,实验效果好,而且可以节约实验费用。OpenFlow在数据中心网络中的应用云数据中心是OpenFlow得以发扬光大的地方。云数据中心部署时存在多租户资源动态创建、流量隔离以及虚拟机动态迁移等虚拟化需求,OpenFlow交换机可以配合云管理平台实现网络资源的动态分配和网络流量的按需传输,实现云服务的网络虚拟化需求并可以改善网络性能。其次,在数据中心的流量很大,如果不能合理分配传输路径很容易造成数据拥塞,从而影响数据中心的高效运行。如果在数据中心中部署OpenFlow,可以动态获取各链路的流量传输情况,动态下发OpenFlow流表规则进行均衡调度,实现路径优化以及负载均衡。OpenFlow在园区网络中的应用在园区网络中可以使用OpenFlow对接入层设备进行有效的管控。接入层设备的特点是量大、故障率高,但设备功能和流量策略相对简单。如果使用OpenFlow,可以在控制器上集中统一对接入设备进行流表下发、网络监控等维护工作。在要求用户身份认证的场合,可以把认证流量引导到控制器上,在验证用户身份合法后再下发准入规则到用户连接的交换机端口上。在控制器检测到特定网络端口或特定用户流量异常时,可以通过下发规则关停设备端口或限制特定流量,快速恢复网络故障,提高网络可靠性和安全性。
  • [技术干货] 从NETCONF/YANG看网络配置自动化
    本文转载自SNDLAB,作者:贾彦民阅读冗长的NETCONF/YANG的RFC文档是相当乏味枯燥的,结合开发实践,本文试图删其繁,撮其要,给出NETCONF/YANG的轮廓和要点。引子NETCONF和YANG的目的是以可编程的方式实现网络配置的自动化,从而简化和加快网络设备和服务的部署,为网络运营商和企业用户节约成本。NETCONF和YANG对应的RFC文档分别是RFC6241和RFC6020,而RFC6244描述了一个实现NETCONF/YANG的参考架构。按照RFC6241的定义,NETCONF是安装、编辑和删除网络设备配置的标准协议。RFC6020指出,YANG是一种数据模型语言(Data Modeling Language),用来描述NETCONF相关的网络配置和网络状态的数据模型,包括NETCONF支持的RPC(Remote Procedure Call)消息和异步通知(Notification)。请注意,YANG本身不是数据模型,而是定义数据模型的语言。YANG和NETCONF是相伴而生的,虽然,原则上YANG也能够用于其他的协议和不同的领域,但基本上可以认为YANG就是为NETCONF量身定做的。2002年,IAB(Internet Architecture Board)召集了一次关于网络管理的专题工作会议(Workshop),最终形成了RFC3535。在这份文档中,针对当时网络管理中存在的问题,提出了14项需求,我们不妨列出其中关键的几项:简单好用。这何须说?!严格区分网络可配置的数据和运行时的状态数据。可配置的数据如静态IP地址和VLAN,用来改变设备的行为;状态数据如接收、丢弃、转发的数据包的计数统计,用来监控设备的行为。PicOS的Cli就有Operational模式和Configure模式,分别用于输出系统状态和改变系统配置。可以将整个网络作为配置的对象,而不仅仅是单独的设备。所谓SDN的集中式管理不就是这样吗?很多SDN的Controller平台如OpenDaylight本身也是基于整个网络视图的开发平台。支持多个网络设备配置的transaction机制。比如,给定一个网络,利用Dijkstra算法得到两个主机之间的最短路径,将正确路由配置到这一路径上的每个交换设备。若某个交换设备配置失败,那么所有的交换设备都应该恢复到原来状态。这个说起来简单,做起来恐怕并不容易。网络设备可保留多份配置拷贝,不同配置之间可以自由切换,以适配不同的应用场景。这样,交换机就可以切换到特殊的配置来应对流量高峰期的到来。另外,更为重要的是,是否支持可编程配置的API不是问题,问题是以怎样的方式来支持。这也是自动化配置的基础。显然,已有的网络管理协议SNMP和上述的需求比较起来就大大的力所不逮了:尽管具有一些配置的功能,但SNMP本身并不是面向配置的协议,也不适合开发用于配置的客户端应用,更谈不到Transaction机制的支持。要满足这些需求,设计新的替代的网络管理协议就不可避免了。于是NETCONF和YANG的1.0版本分别于2006年和2010年正式发布。总的来说,NETCONF/YANG并不规范配置的内容,支持NETCONF/YANG的设备供应商可保留自己的特有的配置内容,但需要转换成用YANG定义的数据模型。然后,NETCONF通过定义标准的操作接口,必须用统一的方法来安装、编辑、删除配置内容,获取设备运行的状态数据。也就是说,数据内容可以不同,但定义数据(YANG)和操作数据(NETCONF)的方法必须一致统一。相对来讲,NETCONF和YANG都不是很新的东西。SDN(Software Defined Network)在学术界和工业界的发展和影响赋予了这两项技术老树吐新芽,迎来第二春的机会。大家都知道,SDN不能仅仅停留在抽象的概念层面上,必须找到应用的切入点, 并向更广泛的领域逐渐展开,才会具有真正的生命力。目前来看,虚拟网络和自动化配置是SDN应用的两个重要支柱。自动化配置让人们重新发现了NETCONF和YANG的价值。NETCONF和YANG相互交织缠绕在一起,剪不断,理还乱,很难把它们分开来一一描述清楚。所以本文从自动化网络设备配置的功能为切入点,用实际的用例,来说明NETCONF/YANG是如何相互配合完成这些功能的。组成和交互NETCONF的自动化配置系统采用Client/Server架构。Client和Server之间由面向连接的传输协议建立会话。SSH(Secure Shell)是NETCONF强制支持的传输协议,其他的传输协议如TLS和SOAP也能满足NETCONF的要求。Client和Server通信的内容是NETCONF定义的双向的XML格式的RPC(Remote Procedure Call)消息,包括从Client发送到Server的请求消息,以及Server的响应消息。这样,Client就可以获取并修改Server的配置数据(configuration datastore)。下图描述了NETCONF配置系统的结构。NETCONF Server是要配置的网络设备,除了硬件之外,NETCONF引擎是和NETCONF Client建立会话的软件模块,当然,Server上面还会运行自身设备的软件系统。配置数据由NETCONF引擎维护并传递给Server的软件系统,最终应用到硬件的芯片。正如上文所述,配置数据的语法结构是用YANG语言定义的数据模型来描述的,包括数据类型和数据结构。这和XML的Schema与对应的应用域数据的关系完全类似。YANG分层的树状结构非常适用于网络设备的配置数据的定义。YANG的另外一个优点是没有晦涩的内容,简单易懂。用户拿到YANG的数据模型文件,即可明白如何写NETCONF Client程序来配置网络设备。YANG语言的数据模型可以无信息丢失的转换为XML的格式,称为YIN(YANG Independent Notation),主要是为了利用随手可得的标准的XML解析器。开源的NETCONF工具库libnetconf提供了转换的工具lnctool。NETCONF引擎和Client程序用YIN检查配置数据的合法性。下文将用一个简单的例子来说明YANG是如何定义配置数据的数据模型。一般地,Client和Server经过如下的步骤来完成配置的获取和改变:Client和Server建立面向连接的传输协议的会话;通过Hello消息协商彼此支持的功能(Capability),如都支持的NETCONF的最高级版本,从而避免解析时的歧义;Client向Server发送的请求;Server接收并解析请求;通过YANG数据模型的定义来验证RPC请求的合法性;执行RPC的请求;执行结果作为响应消息返回给Client;Client接收并解析响应消息。由此可见,用户能够以任何编程语言实现远端网络设备的定制化配置的需求,所做的无非是与Server建立会话连接,封装发送请求消息,接收解析消息。重要的是,用户可以通过这种简单的交互模式,实现自己的业务逻辑,比如,可根据网络的负载和设备的状态,应用不同的配置。这也许就是可编程的自动化配置的内涵,也是YANG和NETCONF设计的目标。模型和数据METCONF Server上面的配置叫做配置存储。配置存储是设备完整的合法的一份配置数据拷贝,使能某个配置存储可以把设备从缺省的初始状态转换到特定的运行状态。在同一个设备上,NETCONF可支持三种配置存储,包括:运行时配置(running configuration datastore)是设备当前激活状态的运行中的配置,和运行的状态完全一致。重启时配置(startup configuration datastore)是系统下次重启时的配置,可以和运行时配置不一样。可选配置(candidate configuration datastore)是没有生效的候选配置,可使用commit命令将可选配置应用到设备,从而,可选配置变为当前的运行时配置。无论是运行时配置,重启时配置还是可选配置的数据,都是用YANG定义的数据模型来描述的。下面给出一个关于网络设备接口的极度简化的例子。YANG语言是非常直观的模型语言,理解了上面代码中YANG语言的一些关键词,如module,container,list,leaf等,就基本可以清楚的知道代码的含义了。解释如下:module定义了一种分层的配置树结构,一个module是自包含的(self-contained),可重用的。它可以使能NETCONF的所有功能,如配置操作(operation),RPC和异步通知(notification)。开发者可根据配置数据的语义来定义不同的module。(1)namespace用于唯一的标识module,等同于xml文件中的namespace。(2)container节点把相关的子节点组织在一起。(3)list节点可以有多个实例,每个实例都有一个key唯一标识。(4)(5)leaf是叶子节点,具有数据类型和值,如叶子结点name的数据类型(type)是string,它唯一的表示list节点interface。(6)(7)另一个布尔类型的叶子节点,缺省值是true。(8)(9)配置和操作上文已说明,NETCONF Client和NETCONF Server通过RPC交互完成网络设备的配置。下面给一个具体的例子,NETCONF Client向NETCONF Server发送一个xml编码的请求(1),在Server的运行时配置(2)上通过操作(operation)create新建一个网络接口(3)。如果操作成功,NETCONF Server将返回。异步通知(notification)通知类似于SNMP的trap机制,当NETCONF Client订阅(subcribe)通知时,通知所对应的事件发生之后,NETCONF Client就可以得到事件的信息。如下面的例子,NETCONF Client从NETCONF Server那里得到一个网络接口的link-up事件。参考文献Network Configuration Protocol (NETCONF)https://tools.ietf.org/html/rfc6241YANG - A Data Modeling Language for the Network Configuration Protocolhttps://tools.ietf.org/html/rfc6020An Architecture for Network Management Using NETCONF and YANGhttps://tools.ietf.org/html/rfc6244Network Configuration Management with NETCONF and YANGhttps://www.ietf.org/edu/documents/2012-ietf-84-netconf-yang.pdfNETCONF toolset Netopeerhttps://github.com/cesnet/netopeerOverview of the 2002 IAB Network Management Workshophttp://www.rfc-base.org/txt/rfc-3535.txt
  • [行业资讯] IOTOS:IoT物联网弱电子系统常见品牌型号以及接口协议(楼宇、园区、工业等)
    IOTOS物联中台(官网:www.aiotos.net)的驱动配置中提到数据点属性配置,前提是创建数据点。这部分工作通常由驱动开发人员完整提供,或者提供创建配置规则交由实施人员根据实际情况来创建和配置,具体分如下情况:接口转换系统的集成接入,通常是通过指定的API、SDK,并不涉及标准协议或规范。这类接入通常驱动和配置点表固定对应,由驱动开发人员提供,实施人员只需进行驱动通信配置,以及可能的数据点参数配置,无需主动创建驱动对应的数据点表(模板)。协议解析工业设备、传感等硬件接入,通常有标准协议规范比如电力103/104规约、水务SL651规约、OPC、MODBUS等,相应的驱动开发和数据点表可完全分离。开发人员只提供驱动包及配置说明,实施人员根据实际设备事情情况(寄存器地址定义等)配置通信参数,以及主动创建和配置数据点表。驱动库部分清单,以及其他常见品牌型号如下:产品类别                品牌常规灯具                飞利浦、松下、索恩、三雄极光、欧普、TCL、佛山照明智能照明灯具         ABB、施耐德(莫顿)、立维腾、邦奇、爱瑟菲、南京天溯、合广测控普通路灯灯具          燎原、三乐、华体、高力特电梯                        通力、迅达、华升富士达、日立消防火灾监控           中电、派诺、华力特、上海零线、华宿、赋安安全、福建俊豪、施耐德、斯沃楼宇自控                 西门子、施耐德、霍尼韦尔、杰夫瑞尔停车场管理系统       红门、捷顺、博思高、创通智能能耗监测                 中电、派诺、南京天溯、海亿达空调末端                 特灵、爱科、麦克维尔、开利、约克、广州国灵、天加、申菱、五洲、欧科、美的、西屋康达、清华同方分体空调                格力、美的、海尔、TCL视频会议系统          华为、中兴门禁系统                霍尼韦尔、爱克信、DDS、HID、博世、英格索兰、达实、汉军、科松、披克、速力思电气火灾监控         中电、派诺、华力特、上海零线、华宿、赋安安全、福建俊豪、施耐德、斯沃电力监控                ABB、海亿达、华力特、中电、派诺、康必达防盗报警                霍尼韦尔、博世、艾礼富、PARADOX会议系统               博世、TAIDEN、科达、ITC、华为-----【附】------类别品牌能耗方泰智联大连海峰阿迪克麦米特GE速通电气建大仁科亚禾智通零零智能电瓦特定位环境华瑞阿尔泰德明电子精华隆消防铭控拓宝海湾安防乐橙大华海康博西尼中安易科工业有人BACnetOPC康耐德西门子施耐德Inovance欧姆龙三菱LSis基恩士松下罗克韦尔倍福永宏富士信捷横河台达cnc捷杰其他星纵ID CardCISCO四信科技机器人Robot机器人传感器大类传感器型号品牌接入方式安防门磁E905S零零智能NBIOT智能门锁/猫眼V6智能门锁乐橙乐橙云网关SDK/APIV2智能猫眼智能门锁(V8)门禁出入系统门禁出入系统博西尼WEB API停车出入系统停车出入系统博西尼WEB API智能门锁QY-1701H中安易科WEB APIQY-1701F能耗智能插座定制方泰智联NBIOT智能空调控制器RS-LTC-NO1空调红外控制器建大仁科RS485冷量表TDS 100大连海峰Modbus RTU单相点表DDS155(NB-IOT)阿迪克国标智能远传水表DN15麦米特科技国标通用电气SRTP、SRTP ServerGEModbus RTU各类传统电表DD971电力103/104规约DT862DX97lDDSY97l国标水表淮微科技V1.0(DLT6451997规约)淮微科技水气表下行通信规约188-V1.0国标电表DTS866华邦电表协议645-1997协议空调管理系统空调管理系统亚禾智通WEB API电表DDZY208NBIOT和DLT645-2007规约定位环境水压表MD-S270L铭控LORAWAN有害气体监测SP-2102Plus华瑞RS485FGM-2002温度传感器DAM3601阿尔泰Modbus RTU隧道裂缝仪裂缝仪器Modbus TCP隧道应变仪应变仪器Modbus TCP水质监测仪器IDM-700/4G-DTU德明电子Modbus RTU水质监测仪器4G DTU Full -Netcom YeeCOM Q560-cYeeCOMModbus RTU消防独立式光电感烟火灾探测报警器JTY-GD-TCN1010/2020拓宝NBIOT可燃气体报警器JT-TCN拓宝NBIOT视频大华摄像头DH-ASI8214Y-V3大华官网SDKU9000人脸报警服务器海康摄像头DS-IPC-B12H-I海康海康SDK门禁机网关LORAWAN网关UG65星纵LORAWAN空开STB1-125/R 空开STB1-125/R 空开速通电气RS485工业有人集中器GPRS 4G DTU有人Modbus RTULG220USR W600(WIFI)Loar DTU 模块BACnet操作员工作站BACnet操作员工作站BACnetBACnetBACnet楼宇控制器BACnet楼宇控制器BACnet高级应用控制器BACnet高级应用控制器BACnet专用控制器BACnet专用控制器BACnet智能执行器BACnet智能执行器BACnet智能传感器BACnet智能传感器OPC  UA /DA 设备S7-1200/1500OPCOPC  UA /DAS7-1200以及TIA低版本AB SLC -5 04信号采集器C2000康耐得硬件西门子 PLCSiemensPLCS.S1200西门子profinrt/Modbus TCPSiemensPLCS.S300SiemensPLCS.S400SiemensPLCS.S1500SiemensPLCS.S200fetch/WritePPIPPI OverTcps7 Virtual ServerFetch Write ServerSiemens DTUMPI施耐德 PLCSiemensPLCS.S200SmartZB2-BE101C施耐德Modbus TCPZB2-BW061CZB2-BWB41CZB2-BJ2CZB2-BW35CDL1-CE130XAL-J01CZB2-BE102CZB2-BZ105CXB2-BS542CXB2-EA142XB2-BS542CXB2-EA142XB2-BS542CInovance PLCInovanceAMTcpInovanceModbusInovanceAMSerialInovanceH3UTcpInovanceH3USerialInovanceH5UTcpInovanceH5USerial欧姆龙 PLCFins Tcp欧姆龙Fins  /linkFins UdpEtherNet/lP(ClP)Connected CIPHostLink [串口]HostLink  overtcpHostLink C-ModeC-Mode OverTcpFins Virtual ServerUdp Servers三菱 PLCEthernET/IP三菱三菱MELSEC通信协议A-1E(BINARY)A-1E(ASCII)MC(BINARY)MCUDP(BINARY)MC(ASCII)MCUDP(ASCII)MC-R (Binary)Fx Serial [编程口]Fx Serial OverTcpFx Links (485)Fx Links OverTcpA-3C (format1)A-3C OverTcpMc Virtual ServerMc Udp ServerLSis PlcFast EnetiLSisModbus RTUXGB CnetXGB Cnet OverTcpXGK CnetXGK Fast EnetLSis Virtual Server基恩士MC-3E (Binary)基恩士Modbus RTUMC-3E (ASCII)Nano (ASCII)Nano OverTcpNano ServerSR2000 [读码]松下MC-3E (Binary)松下Modbus RTUMewtocolMewtocol OverTcp罗克韦尔EtherNet/lP(ClP)罗克韦尔Modbus TCPMicroCip(Micro800)CIP BrowserCIP Virtual ServerSLC NetDF1倍福Ads Net倍福Modbus Tcp/Modbus RTU永宏program 编程口永宏Modbus RTUprogram overTcp富士 PLCsbp 编程口富士Modbus RTUsbp OverTcpsbp Serversph netaph server信捷 PLCXinJE XC Serial信捷Modbus RTU /ASCII横河 PLClink Tcp横河Modbus RTU /ASCIILink Server台达dvp serial台达Modbus RTU /ASCIIDvp Serial AsciiDvp Tcp Net控制机床Fanuc 0i [Test]cncModbus RTU震动传感器Vibration捷杰Modbus RTU水务/水文/水利/环保电子水尺珠水委《水文监测数据通信规约SL651-2014》河道水质监测设备碧兴分散水处理设施监测设备重点排水户监测设备污水厂入口监测设备河道流量计航征河道水位计管网流量计清环《环保国标HJ212-2017》管网水位计其他BarCode[扫码]SickInstrument [仪器仪表]DLT645 [电力规约]Modbus RTUDLT645 OverTcpToledo [托利多].TOL Serial [串口通讯]Modbus RTUTOL Tcp Server [网口服务]Special [特殊协议]Open ProtocolOpen Protocol南京自动化DCSmodbus TCPKnxKnxRobot机器人EFORT NewModbus RTUEFORT PreEFORT PreKukaKukaTcpYRC1000ABB WebABB ABB Web ServerFanucFanuc ServerHyundaiYamahaRCXID CardSAM SerialModbusSAM Tcp四信科技F8L10T-Loar只是网关模块,还差传感设备F8916-L_LoAR_CELLULAR  IP  MODEF2A16FG100智能网关CISCOCatalust OSCISCOsnampIOS华为os港湾设备extrememe模拟数据传输方式,暂无设备暂无暂无CoAPJT808协议规约的车载终端暂无暂无以太网通采引擎Modbus TCP模拟设备Modbus TCP<子系统品牌接入方式接入产品门禁博西尼WEB API门禁出入系统乐橙乐橙云网关SDK/APIV6智能门锁V2智能猫眼智能门锁(V8)零零智能NBIOTE905S门磁中安易科WEB APIQY-1701H智能门锁QY-1701F智能门锁可视对讲停车系统博西尼WEB API停车出入系统楼宇梯控视频监控大华官网SDKDH-ASI8214Y-V3U9000人脸报警服务器海康海康SDKDS-IPC-B12H-I门禁机海康海康SDKDS-2CD2T26DWD-I3海康海康SDKDS-2CD2325(D)-I消防设备拓宝NBIOTJTY-GD-TCN1010/2020拓宝NBIOTJT-TCN海湾RS485NH3200周界报警精华隆TCPEP8100、H-DBG、H-DCS、CMS、IOXS能源管理亚禾智通WEB API空调管理系统方泰智联NBIOT定制智能插座建大仁科RS485RS-LTC-NO1空调红外控制器大连海峰Modbus RTUTDS 100阿迪克国标DDS155(NB-IOT)麦米特科技国标DN15GEModbus RTUSRTP、SRTP Server淮微科技水气表下行通信规约188-V1.0淮微科技V1.0(DLT6451997规约)华邦电表协议645-1997协议DTS866电力103/104规约DD971、DT862、DX97l、DDSY97l等各类传统电表BA设备亚禾智通API空调智能电表智能水表麦米特科技国标DN15智能远传水表访客机环测设备铭控LORAWANMD-S270L华瑞RS485SP-2102PlusFGM-2002阿尔泰Modbus RTUDAM3601隧道裂缝仪Modbus TCP隧道裂缝仪隧道应变仪Modbus TCP隧道应变仪携稳智能WEB API扬尘监测浙江新爱WEB API门禁欧感TCP环境污染监测物业巡更照明路灯空气开关沃航智能mqtt空开控制器防火门监控海湾RS485NH3200消防电源监控海湾RS485NH3200应急照明海湾RS485NH3200火灾报警海湾RS485NH3200智能中控得实中控tcp中央控制品工业控制器opc uaopcPLC西门子s7 net/modbus tcpSiemensPLCS.S1200、SiemensPLCS.S300、SiemensPLCS.S400、SiemensPLCS.S1500、SiemensPLCS.S200Smart       原文标题 : 涨知识:楼宇园区工业常见接口协议及弱电子系统品牌型号
  • [技术干货] SNMP相关知识了解
    SNMP(简单网络管理协议)是广泛应用于TCP/IP网络的网络管理标准协议,该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。SNMP采用轮询机制,提供最基本的功能集,适合小型、快速、低价格的环境使用,而且SNMP以用户数据报协议(UDP)报文为承载,因而受到绝大多数设备的支持,同时保证管理信息在任意两点传送,便于管理员在网络上的任何节点检索信息,进行故障排查。  SNMP简介  SNMP是管理进程(NMS)和代理进程(Agent)之间的通信协议,它规定了在网络环境中对设备进行监视和管理的标准化管理框架、通信的公共语言、相应的安全和访问控制机制。网络管理员使用SNMP功能可以查询设备信息、修改设备的参数值、监控设备状态、自动发现网络故障、生成报告等。SNMP位于OSI的第三层网络,具有简单、易操作、独立性的特点(不依赖于具体的计算机、网关和网络传输协议)。  SNMP特点    SNMP四类管理操作    常见的网络管理协议    智能云网  智能云网社区是华为专为开发者打造的“学习、开发、验证、交流”一站式支持与服务平台,该平台涵盖多领域知识。目前承载了云园区网络,云广域网络,数通网络开放可编程,超融合数据中心网络,数通网络设备开放社区共五个场景。为了响应广大开发者需求,还提供了开发者交流、API 体验中心、多媒体课件、SDK工具包、开发者工具以及远程实验室共六大工具,让开发者轻松开发。欢迎各位前来体验。>>戳我了解更多<<
  • [技术干货] 基于TCP/IP协议的物联网安卓应用开发基础教程(Android Studio开发)
    ​ 第0章 简介(文末下载工程)    大家好,在上上上期发布的教程中,教大家如何利用Android Studio开发出一款接入华为云物联网平台并调用相关API完成设备属性查询、设备命令下发等功能,那个是采用的MQTT协议借助华为云物联网平台完成数据收发,本次教程带大家完成一款基于TCP/IP协议的物联网安卓应用开发,实现TCP连接与数据收发,下一期将在此APP上进行修改,并配置ESP8266接入APP完成内网控制物联网设备、查看设备属性信息等功能,首先还是给大家先看一下APP的最终效果:第1章 提前准备一、Android Studio IDE(※确保模拟器网络功能正常或使用真机※)二、 网络调试助手(下载地址https://www.pcsoft.com.cn/soft/194484.html)第2章 详细步骤一、 新建工程二、 TCP服务1、 新建TCP服务2、 TCP服务功能代码补充(1) 导入可能需要的类:import android.app.Service; import android.content.Intent; import android.os.IBinder; ​import android.os.Looper; import java.io.IOException; import java.io.InputStream ;import java.io.PrintStream; import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketAddress;(2) 修改服务代码(可左右滑动)public class TCPService extends Service { public static Socket socket; public static PrintStream output; boolean conn = false; String ip="192.168.1.15"; String port="8087"; public TCPService() { } @Override public IBinder onBind(Intent intent) { // TODO: Return the communication channel to the service. throw new UnsupportedOperationException("Not yet implemented"); } @Override public int onStartCommand(Intent intent, int flags, int startId) { MyThread myThread = new MyThread(); new Thread(myThread).start(); //********在最终应用时取消注释下行,用于动态改变的IP和端口的连接******** //ip=intent.getStringExtra("ipaddress"); //port=intent.getStringExtra("port"); //System.out.println("新的TCP连接,新的IP:"+intent.getStringExtra("ipaddress")+"新的端口号:"+intent.getStringExtra("port")); //********可在其他activity中设置IP和端口号通过上面的方式进行获取******** return super.onStartCommand(intent, flags, startId); return super.onStartCommand(intent, flags, startId); } //socket连接线程 class MyThread implements Runnable{ @Override public void run(){ try { socket = new Socket(); SocketAddress socAddress = new InetSocketAddress(ip ,Integer.valueOf(port)); try{ socket.connect(socAddress, 5000); } catch (Exception e) { e.printStackTrace(); System.out.println("连接失败"); } if(socket.isConnected())System.out.println("连接成功"); InputStream inputstream = socket.getInputStream(); /* 获取输出流 */ output = new PrintStream(socket.getOutputStream(), true, "utf-8"); conn = true; byte buffer[] = new byte[100];//接收数组的长度 int len2 ; String receiveData; //非阻塞式连接 while(conn){ //接收网络数据 if( (len2 = inputstream.read(buffer)) != -1){ receiveData = new String(buffer, 0, len2); Intent CMDintent = new Intent(); CMDintent.setAction("com.example.communication.data"); CMDintent.putExtra("data", buffer);//buffer为数组,receivedata为文本 sendBroadcast(CMDintent); }else{ break; } } output.close(); socket.close(); Looper.loop(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); // Looper.prepare(); } } }; //发送方法((可以把参数改成Byte[]): public static void send(final byte[] arr) { new Thread(new Runnable() { public void run() { if (socket.isConnected()) { try { output.write(arr); } catch (IOException e) { e.printStackTrace(); } } } }).start(); }3、 MainActivity中启动服务(1) 导入可能需要的类  import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.Toast;(2) 启动服务Intent intent=new Intent(this,TCPService.class); startService(intent);(3) 加入联网权限    在AndroidMainfest.xml文件中加入下面这句:<uses-permission android:name="android.permission.INTERNET" />4、 打开TCP Service    打开网络调试助手(1) 协议类型:“TCP Server”(2) 本机地址:不做修改,并且在APP的TCPService中的IP地址要与此一致(3) 端口选择:根据需要选择合适的端口,同样在APP的TCPService中的端口号要与此一致基本补充(4)点击打开5、 运行APP此时我们可以看到APP已经连接上了网络调试助手三、 界面配置​四、 手动输入IP与端口号进行连接 1.实现过程    为登陆按钮的ImageButton添加事件,获取IP地址和端口号输入框的值后启动连接,相比较于上一步的初始化连接测试,这次的IP地址和端口号是变化的,我们这使用putExtra方式将ip和端口号发送出去,在TCPService中接收  2.修改启动服务语句    此处我们将一开始测试的程序语句Intent intent=new Intent(this,TCPService.class); startService(intent);    改为Intent intent = new Intent(this, TCPService.class); intent.putExtra("ipaddress", ip); intent.putExtra("port", port); startService(intent);  3.添加到登陆按钮的事件代码中4.在TCPService.java中接收IP和端口号,并启动新的连接五、 数据的收发1. 数据的接收(1) 广播接收器我们通过广播接收器进行数据接收,首先在MainActivity中新建一个接收器:private class cmdReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { byte[] receive=intent.getByteArrayExtra("data"); System.out.println("接收到数据:"+recieveData); } }(2)注册接收器public cmdReceiver cmdReceiver; cmdReceiver =new cmdReceiver(); IntentFilter intentFilter=new IntentFilter(); intentFilter.addAction("com.example.communication.data"); registerReceiver(cmdReceiver,intentFilter);(3)网络调试助手进行数据发送由于我们在TCPService中定义了接收数据格式为100字节,大家根据自己需要进行调整。​(4)接收处理我们在广播接收器中读取接收的数据并显示:​2.数据发送    发送的时候我们可以调用TCPService.send(buff);方法,其中buff为字节数组,例如://发送十六进制数据 byte[] buff = {0x00,0x01,0x02,0x03}; TCPService.send(buff); //发送字符串 String str=”FUNIOT is very fun”; byte[] buffstr = str.getBytes(); TCPService.send(buffstr);五、 结语接下来我们就可以连接我们的设备,使用APP进行通信,完成数据上报或命令控制等其功能,关键代码已经在文章中给出,相信大家已经能够实现全部的功能,如果需要上述文章Android  Studio的工程文件,在公众号“IOT趣制作”回复关键字“TCP基础应用”即可。​   
  • [问题求助] 【SDC摄像头M6741】【onvif协议】SDC9.0.0。onvif客户端如何监听到“区域入侵检测”的事件?
    【功能模块】onvif协议监听智能事件,并获得事件详情【操作步骤&问题现象】1、通过onvif协议连接摄像头2、摄像头web页面中启用摄像头“移动侦测”和“区域入侵检测”,并在告警输入中启用onvif的通知3、onvif客户端通过pullpoint_service和PullMessages监听事件4、结果是能监听到“移动侦测”的事件,不能监听到“区域入侵检测”【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [交流吐槽] 物联网七大通信协议
    物联网七大通信协议一、REST/HTTP( 松耦合服务调用)REST 即表述性状态传递,是基于 HTTP 协议开发的一种通信风格。适用范围:REST/HTTP 主要为了简化互联网中的系统架构,快速实现客户端和服务器之间交互的松耦合,降低了客户端和服务器之间的交互延迟。因此适合在物联网的应用层面,通过 REST 开放物联网中资源,实现服务被其他应用所调用。特点:REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。客户端和服务器之间的交互在请求之间是无状态的。在服务器端,应用程序状态和功能可以分为各种资源,它向客户端公开,每个资源都使用 URI 得到一个唯一的地址。所有资源都共享统一的界面,以便在客户端和服务器之间传输状态。使用的是标准的 HTTP 方法,比如:GET、PUT、POST 和 DELETE。二、CoAP 协议CoAP (Constrained Application Protocol),受限应用协议,应用于无线传感网中协议。适用范围:CoAP 是简化了 HTTP 协议的 RESTful API,CoAP 是 6LowPAN 协议栈中的应用层协议,它适用于在资源受限的通信的 IP 网络。三、MQTT 协议( 低带宽)MQTT (Message Queuing Telemetry Transport ),消息队列遥测传输,由 IBM开发的即时通讯协议,相比来说比较适合物联网场景的通讯协议。MQTT 协议采用发布/订阅模式,所有的物联网终端都通过 TCP 连接到云端,云端通过主题的方式管理各个设备关注的通讯内容,负责将设备与设备之间消息的转发。适用范围:在低带宽、不可靠的网络下提供基于云平台的远程设备的数据传输和监控。四、DDS 协议( 高可靠性、实时)DDS(Data Distribution Service for Real-Time Systems),面向实时系统的数据分布服务。适用范围:分布式高可靠性、实时传输设备数据通信。目前 DDS 已经广泛应用于国防、民航、工业控制等领域。五、AMQP 协议( 互操作性)AMQP(Advanced Message Queuing Protocol),先进消息队列协议,用于业务系统例如 PLM,ERP,MES 等进行数据交换。适用范围:最早应用于金融系统之间的交易消息传递,在物联网应用中,主要适用于移动手持设备与后台数据中心的通信和分析。六、XMPP 协议( 即时通信)XMPP(Extensible Messaging and Presence Protocol)可扩展通讯和表示协议,一个开源形式组织产生的网络即时通信协议。适用范围:即时通信的应用程序,还能用在网络管理、游戏、远端系统监控等。七、JMSJMS (Java Message Service),即消息服务,这是 JAVA 平台中著名的消息队列协议。Java 消息服务应用程序接口,是一个 Java 平台中关于面向消息中间件(MOM)的 API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java 消息服务是一个与具体平台无关的 API,绝大多数 MOM 提供商都对 JMS提供支持