• 【VPC实战】云下IDC专线+云上SNAT代理上网
    需求场景:客户IDC与华为云通过专线连通,希望借助华为云来实现对公网的访问。相比IDC直接出公网,华为云提供不同计费模式,客户可以灵活的按需调整带宽策略。方案描述:配置要点: 由于访问公网需要默认路由,所以IDC侧需要配置默认路由走专线。(如果是访问公网的指定网段,则只需要配置相应的路由策略)在云上申请NATGW,依据访问量确定规格。配置SNAT规则,使用场景选择“云专线”,子网配置时,添加IDC侧的子网范围。注意事项:IDC机房配置路由后,需要考虑是否影响客户正常业务,如机房是否还存在其他上网行为IDC的网段与云上VPC中的子网网段不重叠(与子网网段有关,与VPC的CIDR无关),否则无法通信云上除VPC和NATGW外,无需申请计算资源。
  • [网络] 云小课 | “VPC连接”知多少
    “同Region的两个VPC怎么连通?”“跨Region的两个VPC又怎么连通?”“VPC内的ECS搭建了一个应用,需要访问Internet,怎么弄?”“某客户的业务一部分在香港,一部分在大陆,怎么经济可靠的连接起来?”“某客户既有本地的数据中心,又想把一部分业务放到云上,怎么玩?”   ……   ……   网络域大家族提供了丰富的云产品,满足大家的各种网络互连需要。既有适用简单场景的单兵作战利器,也有适用复杂场景的组合拳。来来来,我们一起来看看^_^连接InternetVPC内的云资源连接公网(Internet),可以通过如下云产品实现。知识扩展:使用EIP连接公网使用SNAT连接公网使用DNAT面向公网提供服务弹性负载均衡介绍连接VPCVPC与VPC之间要建立连接,可以通过如下云产品实现。知识扩展:创建同一帐户下的对等连接创建不同帐户下的对等连接跨区域VPC互连通过VPN连接VPC连接IDC对于自建本地数据中心(IDC)的用户,由于利旧和平滑演进的原因,并非所有的业务都能放置在云上,这个时候就可以通过如下产品构建混合云,实现云上VPC与云下IDC之间的互连。知识扩展:通过VPN连接VPC跨区域IDC互连多数据中心与多区域VPC互通使用一条云专线访问多个VPC随堂小测验您会在什么场景下使用云连接服务?线索1:了解云连接。线索2:【限时7折】您和云连接只差一张优惠券,欢迎体验。奖励规则:1、通过直接回帖的方式回答小测,我们会根据回答正确答案的先后顺序打分:2、回答正确的前十名朋友可以获得分数,即:第一个回答正确得10分,第二个回答正确得9分……以此类推;3、每五次随堂小测一汇总,得分最高的朋友将得到实物奖励(荣耀手环一个);希望大家踊跃回答,更多奖励等你来拿哦~~~~【以文会友,以友辅仁】华为云帮助中心正式开源啦。文档协同编辑,共建优质帮助体系!VPC资料开源地址:虚拟私有云帮助文档开源地址更多资料开源地址:华为云帮助文档开源地址单击了解:如何编辑开源文档?【往期回顾】【第一课】我该怎么选择云主机的规格?【第二课】云小课带你了解镜像家族!【第三课】云小课带你学习购买云硬盘,快速读懂云存储。【第四课】云服务器网络怎么选?安全组怎么配?云小课为你支招!【第五课】云小课带您大话安全组【第六课】你了解云服务器的远程登录吗?小课教你自助排查MSTSC远程登录问题!【第七课】 云小课带你快速实现主机的上云迁移【第八课】 云小课教你轻松切换操作系统【第九课】如何通过镜像实现跨可用区的业务迁移?
  • [问题求助] 跨VPC建立对等连接之后,无法访问对端VPC内的ES服务是为啥呢?
    最常见的原因是VPC的掩码的位数和子网掩码的位数一样,比如,如下截图,两个位数都是24,此时会导致添加路由失败,这里就需要将子网的掩码位数修改,比如16,然后可以在本端VPC的ECS节点访问对端的VPC内的ES集群。
  • 请教下,华为云连接产品是如何实现跨区域多VPC互通呢?而且是路由动态学习的方式
    如题,求教
  • [介绍/入门] AOS编排语言系列教程(三):创建子网Subnet
    【摘要】 上一章我们学习了如何创建VPC,VPC范围比较大,我们可以在VPC中定义一个子网,子网是为了在VPC内部做进一步的网络划分。子网是VPC的IP地址范围内的一个区段,模板中用requirements定义子网与vpc的依赖关系。接下来我们基于上个模板看看如何在创建的VPC中定义一个子网。经过前面的学习,你已经对node_templates有了一定的了解。不过到目前为止,我们都只是用node_templates来定义vpc,只有一个元素的模板也太简单了吧?没错,你的追求应该更高一点。其实node_templates还可以定义很多其他的元素。上一章我们学习了如何创建VPC,VPC范围比较大,我们可以在VPC中定义一个子网,子网是为了在VPC内部做进一步的网络划分。子网是VPC的IP地址范围内的一个区段,模板中用requirements定义子网与vpc的依赖关系。接下来我们基于上个模板看看如何在创建的VPC中定义一个子网:tosca_definitions_version: huaweicloud_tosca_version_1_0node_templates:  myvpc:    type: HuaweiCloud.VPC.VPC    properties:      name: my-vpc      cidr: '192.168.0.0/16'  mysubnet:    type: HuaweiCloud.VPC.Subnet    properties:      name: my-subnet      cidr: '192.168.1.0/24'      gateway: 192.168.1.1      vpcId:        get_reference: myvpc      dhcpEnable: true    requirements:      - vpcId:          node: myvpc模板中mysubnet的属性cidr为子网内可使用的地址范围,gateway为子网的网关,dhcpEnable表示是否为该VPC的子网开启DHCP功能。子网创建成功:
  • [介绍/入门] AOS编排语言系列教程(二):初识AOS编排语言,创建你的第一个AOS模板
    【摘要】 本文介绍了如何用AOS编程语言来编写一个简单的模板,用于创建虚拟私有云。通过AOS部署应用上云流程非常简单,您只需要编写好模板,并基于该模板创建堆栈。如何在AOS服务上创建模板呢?有如下几种方法:1.选择公共模板:AOS提供了多个公共模板,您可以基于公共模板来快速创建堆栈。2.使用设计器创建模板:自定义编写模板比较难以上手,通过设计器可以简化模板的撰写和编辑工作,并可以直接可视化查看各资源的关系。建议您通过使用设计器了解设计器的使用方法。3.自定义编写模板:您可以使用YAML格式来写作模板。独立编写模板前,建议您先通过模板参考来初步学习一下。自定义编写模板有两种方式,一种是直接在界面手动输入;另一种是在本地编辑,编辑完之后通过上传文件传到系统中。AOS编程语言是基于yaml的,使用YAML格式的好处是可以使用#注释功能,便于在模板中增加模板编写者意图的描述。YAML语法不支持使用Tab键,层次关系需要使用空格来对齐(空格个数为2的整数倍,如2、4、6、8等)。初次使用时,经常会遇到此类错误,请注意。下面我们用AOS编程语言来编写一个简单的模板,用于创建虚拟私有云:tosca_definitions_version: huaweicloud_tosca_version_1_0node_templates:  myvpc:    type: HuaweiCloud.VPC.VPC    properties:      name: my-vpc      cidr: '192.168.0.0/16'tosca_definitions_version是模板中的必填项,用于标识模板的版本信息。当前AOS支持的版本为huaweicloud_tosca_version_1_0。node_templates也是必填项,用于定义该模板中编排的元素对象集合,其中所有对象均为元素(可以是一个应用、一个云服务资源),这里我们使用了node_template定义了一个虚拟私有云myvpc,它是HuaweiCloud.VPC.VPC类型的,具有两个属性name和cidr,分别表示虚拟私有云名称和虚拟私有云下可用子网范围。接下来保存刚编写的模板为vpc.yaml文件,用该模板创建虚拟私有云,需要登录AOS控制台,选择 “创建模板”,上传本地文件vpc.yaml。然后选择“我的模板”,在模板列表中可查看到保存成功的模板,单击该模板后的“部署堆栈”即可创建堆栈。系统会自动跳转到堆栈详情页面,等待1分钟左右的时间,堆栈就创建成功了。
  • 详解如何实现在线聊天系统中的实时消息获取
    序言传统web浏览器应用采用客户端主动请求方式,只有在收到浏览器请求时服务端才返回消息,这种模式已经不能满足日益多样化的web应用需求,例如:在线聊天系统:需要实时获取聊天消息。实时监控系统:需要实时获取监控对象状态。如仪表读数、告警信息等。随着html技术演进,发展出了多种服务器推送技术,用于服务器向浏览器客户端推送消息。Ajax轮询采用ajax定时向服务端发送请求检查有无消息更新。网页定时向服务器发送请求,若服务器有消息推送,则返回消息,否则返回空消息,如下图所示:这种轮询方式需要发送大量无效请求,大大消耗了服务器资源,且推送消息的实时性较低。Ajax长轮询ajax长轮询对前面的ajax轮询方式做了改进,服务端收到请求后,不再立即返回,而是等待有消息推送时返回。网页收到服务端返回的消息后,立即发起一个新的请求,等待下一个推送消息。采用这种方式的服务端实现比前者复杂,需要维护一个客户端建立的连接列表,当产生对某个客户端的推送消息后找到对应的连接并发送。优势是减少了轮询消耗,发送事件的实时性得到增强。Server-Send EventServer-Send Event是html5标准新增的技术,它延用了Ajax长轮询的思路,并对其进行了一些规范。Server-Send Event让服务端可以向客户端流式发送文本消息,并在发送完一个消息后保持请求不结束,连接始终保持。如下图所示:网页调用EventSource接口向服务器发送请求var source = new EventSource('http://localhost:8080');source.addEventListener('message', function(e) { console.log(e.data); }, false);服务器返回的Content-Type头必须为text/event-stream,且返回完一个消息后不关闭请求,后续消息仍然使用同一个请求返回。浏览器会自动以换行符识别每个消息。响应头Content-Type: text/event-streamX-Accel-Buffering: no响应体event: userlogindata: {"username": "John123"}event: messagedata: 123如果服务端返回的消息通过nginx等代理服务器返回给客户端时,可能受到nginx缓存机制的影响。某些情况下,nginx会将服务端返回体缓存起来,等待所有返回接受完毕后再统一返回给客户端,在server-send event情况下将导致客户端无法及时接收到消息。需要在返回头中添加X-Accel-Buffering: no,以防止nginx做缓存。使用华为API gateway提供Server-Send Event类型的API服务建立后端服务登录华为云https://console.huaweicloud.com/,创建弹性云服务器    输入apt install nodejs安装nodejs,使用nodejs创建服务器,并输入下列示例代码。var http = require("http"); http.createServer(function (req, res) {    if (req.url === "/stream") {        res.writeHead(200, {            "Content-Type":"text/event-stream",            "X-Accel-Buffering":"no",        });        res.write("data: " + (new Date()) + "\n\n");        interval = setInterval(function () {            res.write("data: " + (new Date()) + "\n\n");        }, 1000);        req.connection.addListener("close", function () {            clearInterval(interval);        }, false);    }}).listen(8080);上面代码是服务器每秒向客户端发送时间的示例。将上面的代码保存为server.js,然后执行nodejs server.js &就启动了监听在8080端口的服务器。添加安全组将8080端口添加到安全组规则,使得外部可以访问云服务器的8080端口。   创建APIAPI网关提供从内网访问云服务器的能力,不需要申请公网弹性IP,就可以通过VPC通道开放API。登录华为云https://console.huaweicloud.com/apig/ ,首先创建VPC通道,端口为8080       将弹性云服务器添加到VPC通道:    创建API,认证类型选择APP“请求Path”填“/stream”,“开启跨域”选项选择开启“VPC通道”选择刚刚创建的VPC通道,“后端请求Path”填“/stream”创建API完成后,发布API到RELEASE环境。创建APP并绑定API在应用管理界面创建一个APP,并绑定刚刚创建的API。创建OPTIONS方法的APIOPTIONS方法的API是提供给浏览器发送跨域请求的预请求使用,同样选择开启跨域(CORS),并将后端配置为Mock。点完成创建API后,发布API到RELEASE环境。创建网页,访问API1.要访问APP认证方式的API,需要通过APP的key和secret生成签名,才能校验通过。生成签名使用下面链接下载的javascript SDKhttps://console.huaweicloud.com/apig/?agencyId=c65a0db86e514fe298cdc57c6273411a&region=cn-south-1&locale=zh-cn#/apig/manager/useapi/sdk2.由于IE浏览器不支持Server Sent Event,需要从https://github.com/Yaffle/EventSource/下载浏览器兼容的Server Sent Event实现。搜索并删除下面四行代码:if (url.slice(0, 5) !== "data:" &&    url.slice(0, 5) !== "blob:") {    requestURL = url + (url.indexOf("?", 0) === -1 ? "?" : "&") + "lastEventId=" + encodeURIComponent(lastEventId);}3.创建index.html,内容如下:<html><head>    <title>SSE APP test</title></head><body>SSE APP test<div id="a"></div><script src="js/eventsource.js"></script><script src="js/moment.min.js"></script><script src="js/moment-timezone-with-data.min.js"></script><script src="signer.js"></script><script>    var req = new signer.HttpRequest()    req.method = "GET"    req.host = "d3da6a917a844df3bd02896496b1b75b.apigw.cn-south-1.huaweicloud.com"    req.uri = "/stream"    var sig = new signer.Signer();    sig.AppKey = "<your app key>"    sig.AppSecret = "<your app secret>"    var opts = sig.Sign(req);    var source = new EventSourcePolyfill("http://d3da6a917a844df3bd02896496b1b75b.apigw.cn-south-1.huaweicloud.com" + req.uri, {        headers: opts.headers    });    source.onmessage = function (event) {        document.getElementById("a").innerHTML = event.data;    };</script></body></html>将刚刚创建的APP的AppKey和AppSecret填入上面指定位置。在本地用浏览器打开此页面,可以看到页面上显示的时间每秒刷新一次。欢迎扫码查看更多精彩:
  • [大咖交流] 在模板中玩转conditions和mappings语法,看完你是否get到了
    最近在和解决方案部的兄弟交流时,有个兄弟提出来一个非常合理有趣的问题:解决方案部署的第一个阶段要创建ECS主机,但创建ECS主机各用户的实际情况不一样,有些用户的VPC和Subnet已经规划好了,他需要选择现有的VPC和Subnet来部署;但另外一些用户还一穷二白,需要再申请ECS主机时,一并把VPC和Subnet给建了,请问AOS能否处理这种场景。 一看到这问题,心里没底,本着负责的态度,我就写个模板自己验证验证看。1,首先拿来一一个 ecs-cloudserver 的示例模板,直接基于其来修改,比较方便,先增加要回一个input和相应的conditions条件:inputs:....  vpc-deploy:    description: '是否新建VPC和Subnet##Is new VPC and subnet'    type: booleanconditions:  cond-vpc-deploy:    cond_eq:      - get_input: vpc-deploy      - true2,接下来就是使用conditions来判断某些node是否需要执行的地方了:my-vpc:    condition: cond-vpc-deploy    type: HuaweiCloud.VPC.VPC    properties:      cidr: 192.168.0.0/16    metadata:      Designer:        id: 64e23915-16f7-4b4b-8dd1-d6bf1ba60b9a  my-subnet:    condition: cond-vpc-deploy    type: HuaweiCloud.VPC.Subnet    properties:      availabilityZone:        get_input: az      cidr: 192.168.1.0/24      dnsList:        - 114.114.114.115        - 114.114.114.114....3, 最后关键的地方是:在创建ECS时,当新建VPC和Subnet时要使该新创建的VPC和Subnet,否则要选择使用已有的VPC和Subnet:mycloudserver:    metadata:      Designer:        id: 5bf8fe92-fd43-4377-9efd-d12169db751b    properties:      availabilityZone:        get_input: az....      name:        get_input: ecs-name      nics:        - subnetId:            cond_if:              - cond-vpc-deploy              - get_reference: my-subnet              - get_input: subnet-id....      vpcId:        cond_if:          - cond-vpc-deploy          - get_reference: my-vpc          - get_input: vpc-id....学习使用了conditions语法,顺便看了下 mappings 函数的用法,mapping函数的用户较为简单,首先是定义一个mappings对象:mappings:  regionMap:    cn-north-1:      image_id: 42f34d95-a538-4d17-be48-e690b48c1643      flavor: c1.medium    cn-south-1:      image_id: a3934478-bfeb-4a02-b257-9089779f0380      flavor: c1.medium    cn-east-2:      image_id: f2003c7b-99c4-4616-be19-334beaca81b1      flavor: c1.medium    ap-southeast-1:      image_id: 04b5d02a-127b-423f-ac77-b4ddbafe1ddb      flavor: c3.2xlarge.2接下来就是使用 get_in_map 提取mapping对象的值了:mycloudserver:    metadata:      Designer:        id: 5bf8fe92-fd43-4377-9efd-d12169db751b    properties:      availabilityZone:        get_input: az      flavor:        get_in_map:          - regionMap          - get_input: HuaweiCloud.Region          - flavor      imageId:        get_in_map:          - regionMap          - get_input: HuaweiCloud.Region          - image_id一路使用下来,还是非常顺畅的,看来这半年来,AOS从编排语法和设计器确实进度巨大啊。当然,使用过程中也发现了几个问题:设计器对conditions相关函数支持的还不友好,导致在设计器中编辑还是有些小问题的;创建堆栈时,当inputs输入参数用于构造conditions条件时,有一部分inputs参数的填写情况应该是要随该条件来切换的,但目前Portal尚不支持:
  • [问题求助] CCI如何连接用户VPC下的RDS实例?
    如题
  • 【干货】Memcached客户端连接合集
    Memcached客户端支持多种语言。这里收集Memcached各种客户端安装、配置、连接的示例。后续会继续收集,请持续关注。华为云Memcached(点击这里进入)客户端连接示例:Telnet客户端Java客户端Python客户端C++客户端PHP客户端特别说明:安装客户端的服务器与Memcached实例之间必须保持网络畅通。这里需要保证两点:(1).两者在同一个虚拟私有云VPC内。(2).两者的安全组规则相同。跨VPC访问的配置可参考Redis实例是否支持跨VPC访问?安全组规则配置可参考安全组配置。目前,华为云DCS Redis有免费使用活动,小伙伴们可以来试试:进一步了解Redis相关内容,请联系中间件小哥。
  • [大咖交流] 【示例模板】【vpc-subnet】部署展示及详解
    使用示例模板网络和子网设计 (vpc-subnet)创建堆栈,可以快速创建部署云服务器所需的网络,包括了VPC和子网络的设计与创建。【部署结果展示】【部署流程详解】1.使用vpc-subnet示例模板创建堆栈。2.填写堆栈名称与描述。3.填写输入参数    (1).子网参数配置:子网的CIDR,子网的网关地址,子网的名称   (2).虚拟私有云的参数配置:所组建网络的CIDR,所组建网络的名称4.点击下一步,审核配置信息,查看计费信息,点击创建堆栈。5.等待创建成功。6.创建成功后,点击资源名称中的"vpc-123"可以跳转到vpc页面,查看刚刚创建的虚拟私有云情况。
  • [教程] 【设计器使用技巧】资源复制
    [size=4] 不知道有没有细心的童鞋注意到,右键点击设计器画布上的元素,弹出菜单里面有一个复制(Duplicate)按钮。那么这个按钮有什么作用呢?[/size] [size=4]举个例子:[/size] [size=4] [size=3]我要创建一个全新的集群,并使用新的虚拟网络。那么我需要创建一个虚拟专有网络(VPC),并创建子网(Subnet)。然后定义集群(Cluster)以及节点信息(NodePool),并关联到新建的VPC和Subnet上。[/size][/size] [size=3] 问题来了,如果现在想同时创建多个集群怎么办,集群配置又大同小异。[/size] [size=4]逐个添加新的Cluster定义,这样肯定没问题,就是麻烦了一些。[size=4]另一种方式就是通过复制功能来快速创建:[size=4][attach]19576[/attach][size=4]复制功能会把当前元素以及子元素的属性和出口关系同步带到新的元素中,大大提高了模板的编写效率。[/size][/size][/size][/size] [size=3]喜欢的话,记得为设计器打call哦~[/size]
  • 【使用指导】VPC子网中DNS server配置建议
    [b]一、背景[/b] 体验华为云过程中,发现使用域名访问子网的DNS时,耗时会比较多,表现为NTP解析时间长或者其他需访问DNS服务的进程启动时卡顿一分多钟。 [b]二、原因[/b] 经过咨询研发,原因是原先华为未提供内网DNS服务,缺省配置是电信的DNS地址:114.114.114.114或者114.114.115.115。这样虽然是内网访问,但是实际上会绕道公网访问电信DNS服务,进行一次DNS解析,然后才能获取到正确的IP地址,导致处理耗时比较长,影响体验。 [b]三、配置建议[/b] 1、新创建的子网,建议按照默认的配置项配置 【配置过程】申请VPC-->子网配置-->高级(选择默认) 2、已经创建的子网,如果有需要可以参考如下方式修改 【配置过程】网络控制台-->虚拟私有云-->子网-->DNS服务器地址-->修改(参考默认值选择华为内网DNS服务器地址) 试过了,可以解决问题。
  • 同一VPC下两个suse虚拟机的第二张网卡互相ping不通
    [i=s] 本帖最后由 SAP_Solution_Tester 于 2018-5-14 14:35 编辑 [/i] 原因是虚拟机添加了第二张网卡要添加策略路由 背景:同一VPC 同一安全组 suse12sp1forsap的两台虚拟机各带两张网卡,并且所属网段各不相同 虚拟机1的网卡:10.0.1.15 10.0.100.13 ping 10.0.199.11不通 虚拟机2的网卡:10.0.0.18 10.0.199.11 ping 10.0.100.13不通 解决步骤: 1.在虚拟机1里执行 ip route add 10.0.1.0/24 dev eth0 src 10.0.1.15 table 10 [align=left] ip route add default via 10.0.1.1 dev eth0 table 10[/align][align=left] ip rule add from 10.0.1.15/32 table 10[/align][align=left] ip route add 10.0.100.0/24 dev eth1 src 10.0.100.13 table 20 [/align][align=left] ip route add default via 10.0.100.1 dev eth1 table 20[/align][align=left] ip rule add from 10.0.100.13/32 table 20[/align][align=left] 在虚拟机1里执行ip r s table 10 和ip r s table 20查看添加的路由表[/align][align=left] 之后在虚拟机2里ping 10.0.199.11[/align][align=left] 如果可以ping通说明策略路由添加成功[/align][align=left] 设置开机自启动:vi /etc/rc.d/after.local(只有suse在这个表里添加)[/align][align=left] 把 ip route add 10.0.1.0/24 dev eth0 src 10.0.1.15 table 10 [/align][align=left] ip route add default via 10.0.1.1 dev eth0 table 10[/align][align=left] ip rule add from 10.0.1.15/32 table 10[/align][align=left] ip route add 10.0.100.0/24 dev eth1 src 10.0.100.13 table 20 [/align][align=left] ip route add default via 10.0.100.1 dev eth1 table 20[/align][align=left] ip rule add from 10.0.100.13/32 table 20[/align][align=left] 添加到文件末尾,保存并退出[/align][align=left] 在另一台虚拟机做类似操作就可以互相ping通了 [/align]
  • 官网VPC产品介绍说21线BGP,都是哪些运营商接入?
    官网VPC产品介绍说21线BGP,都是哪些运营商接入?
总条数:98 到第
上滑加载中