上云无忧 > 文档中心 > 百度智能云智能云解析DNS实战教程2 - 使用Terraform快速搭建私有域名解析服务
智能云解析DNS
百度智能云智能云解析DNS实战教程2 - 使用Terraform快速搭建私有域名解析服务

文档简介:
概览: 本文介绍了使用百度智能云内网DNS功能,实现私有域名映射到资源的IP地址,并通过Terraform实现内网DNS的快速创建、部署和管理。 需求场景: 当内网资源较为复杂时,通过IP地址来管理过于繁琐,这时可以通过域名去进行管理,将私有域名的解析记录映射到资源的IP地址。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

概览

本文介绍了使用百度智能云内网DNS功能,实现私有域名映射到资源的IP地址,并通过Terraform实现内网DNS的快速创建、部署和管理。

需求场景

当内网资源较为复杂时,通过IP地址来管理过于繁琐,这时可以通过域名去进行管理,将私有域名的解析记录映射到资源的IP地址。同时,内部的域名不能暴露在公网上,内网的环境要和公网隔离。此时可以使用内网DNS服务来进行实现。

方案概述

内网DNS服务基于百度智能云私有网络环境,支持私有域名解析和管理服务。可以在自定义的一个或多个私有网络中快速构建DNS系统,实现私有域名映射到资源IP地址。通过内网DNS服务,您可以方便地使用私有域名记录来管理VPC中的BCC、BLB等百度智能云资源,而这些私有域名在VPC之外将无法访问。

服务搭建完成后,用户可在关联了VPC的私有域中,通过添加解析记录,实现私有域名到资源IP地址的映射。(如下图中云服务器A和云服务器B通信)的需求场景,这样方便运维管理。 

配置步骤

1、环境准备

  • Terraform:是一种安全有效地构建、更改和版本控制基础设施的工具。它以配置文件为驱动,您在文件中定义各种组件,Terraform会基于该文件完成所有组件的创建、变更和管理。目前百度智能云已与 Terraform集成,您可通过Terraform来创建、管理CFC、BOS、VPC、BCC等多种百度智能云资源,具体请参考Terraform BaiduCloud Provider。
  • 私有网络VPC:私有网络VPC(Virtual private Cloud)是一个用户能够自定义的虚拟网络,灵活设置网络地址空间,实现私有网络隔离,多个虚拟网络之间(同城、跨城)稳定高速对等互通。具体信息请参考私有网络VPC。

2、部署过程

  1. 登录Terraform官网下载适用于您的操作系统的程序包。
  2. 配置terraform baidu provider信息,配置文件可参考如下的代码,在当前文件夹内保存为version.tf。
terraform {
      required_providers {
        baiducloud = {
          source = "baidubce/baiducloud"
          version = "1.14.5" #版本号 可去官网查询版本更新信息
        }
      }
    }
  1. 执行命令terraform init,Terraform会根据当前文件夹内的version.tf文件初始化工作空间。
  2. 编辑Terraform配置文件。新建文件main.tf,在文件中指定VPC、私有域、解析记录的元信息。参考配置和步骤如下:

    更多参数信息可参考baidu provider官方文档

  • 创建VPC
resource "baiducloud_vpc" "test-vpc" {
          name        = "test_vpc"          # VPC名称
          description = "test_description"  # 描述
          cidr        = "192.168.0.0/16"    # cidr信息
     }
  • 创建私有域
resource "baiducloud_localdns_privatezone" "my-private-zone" {
          zone_name = "terrraform.com"     # 私有域名称
    }
  • 绑定私有域和VPC
resource "baiducloud_localdns_vpc" "bind-zone-vpc" {
      # 私有域id 这里使用了上一步创建出来的私有域 也可以直接填入私有域id
      zone_id = "${baiducloud_localdns_privatezone.my-private-zone.id}"
      # 资源区域
      region  = "bj"
      # 需要绑定的VPCs 一个私有域可绑定多个VPC
      vpc_ids = [
        "${baiducloud_vpc.default-vpc.id}"
      ]
    }
  • 在私有域内创建解析记录
resource "baiducloud_localdns_record" "local-dns-test" {
      # 私有域id 这里使用了上一步创建出来的私有域 也可以直接填入私有域id
      zone_id     = "${baiducloud_localdns_privatezone.my-private-zone.id}"
      # 主机记录,不能与已有记录重复,记录值和zone的name长度加在一起不能超过255
      rr          = "www"
      # 解析记录值
      value       = "1.1.1.1"
      # 解析记录类型 目前支持A, AAAA,CNAME, TXT, MX, PTR, SRV
      type        = "A"
      # 解析记录的生存时间
      ttl         = "3000"
      # 解析记录优先级 只有MX类型的解析记录有优先级 其余类型应为0
      priority    = 0
      # 解析记录描述
      description = "terraform_test"
      # 解析记录状态 应为 enable 或者 pause
      status      = "enable"
    }

完整的配置文件信息可参考如下代码:

provider "baiducloud" {
      access_key = "<YOUR_BAIDUCLOUD_ACCESS_KEY>"
      secret_key = "<YOUR_BAIDUCLOUD_SECRET_KEY>"
      region = "bj"
    }
    # 1.创建VPC
    resource "baiducloud_vpc" "test-vpc" {
      name        = "test_vpc"
      description = "test_description"
      cidr        = "192.168.0.0/16"
      tags        = {
        "testKey"  = "testValue"
        "testKey2" = "testValue2"
      }
    }
    # 2.创建私有域
    resource "baiducloud_localdns_privatezone" "my-private-zone" {
      zone_name = "terrraform.com"
    }
    # 3.私有域和VPC绑定
    resource "baiducloud_localdns_vpc" "bind-zone-vpc" {
      zone_id = "${baiducloud_localdns_privatezone.my-private-zone.id}"
      region  = "bj"
      vpc_ids = [
        "${baiducloud_vpc.test-vpc.id}"
      ]
    }
    # 4.创建解析记录
    resource "baiducloud_localdns_record" "local-dns-test" {
      zone_id     = "${baiducloud_localdns_privatezone.my-private-zone.id}"
      rr          = "www"
      value       = "1.1.1.1"
      type        = "A"
      ttl         = "3000"
      priority    = 0
      description = "terraform_test"
      status      = "enable"
    }
  1. 执行命令terraform plan,Terraform会根据当前配置文件中的信息列出资源变更计划。
  2. 执行命令terraform apply,根据提示输入yes,即自动执行资源创建。

3、查询云上资源详细信息

可使用Terraform的datasource进行云上资源详细信息的查询,并且支持关键字过滤,步骤如下:

  1. 编写配置文件
  • VPC列表查询
data "baiducloud_vpcs" "default" {
      vpc_id = "id"  # id非必填 不填时查询所有
      # 可根据提供的字段值的正则表达在结果中过滤 以下示例为查询 name = tf-test-acc* 的VPCs
      filter {
        name = "name"
        values = ["tf-test-acc*"]
      }
    }
  • 私有域信息查询
data "baiducloud_localdns_privatezones" "default" {
          # 非必填
          filter {
            name = "name"
            values = ["tf-test-zone*"]
          }
    }
  • 查询私有域绑定的VPC列表
data "baiducloud_localdns_vpcs" "default" {
        zone_id = "id" #私有域id 必填
    }
  • 私有域内解析记录详细信息查询
data "baiducloud_localdns_records" "local-dns-data" {
      zone_id = "id" #私有域id 必填
      # 非必填
      filter {
        name = "description"
        values = ["terraform_test"]
      }
    }
  1. 执行terraform apply。
  2. 输入命令terraform show查看结果。

4、资源删除

可使用如下命令进行资源的删除:

#命令默认会释放当前main.tf中的所有资源
    terraform destroy 
    #可以通过 -target 选项销毁特定的资源,格式为:-target=<资源类型>.<资源名称>,例如:
    terraform destroy -target baiducloud_vpc.test-vpc

5、测试验证

在完成全部配置后,可在VPC内创建两台BCC,去测试是否能够通过内网DNS解析记录去获得正确的IP地址。参考思路如下:

  1. 通过步骤2的部署过程搭建出内网DNS服务。
  2. 在VPC内创建两台BCC。
  3. 添加一条解析记录指向其中的一台BCC。
  4. 在另一台BCC内通过Ping命令,查看是否能够通过域名解析获得IP地址。

至此,成功通过Terraform建立私有域名解析服务。

总结

借助Terraform,您可以一键搭建私有域名解析服务,快速配置VPC、私有域、解析记录等多种资源,实现内网DNS解析服务的的快速建立。

相关产品

云服务器BCC、私有网络VPC、智能云解析DNS

相似文档
  • 协议生效时间:2021年09月01日。 本服务等级协议(Service Level Agreement,以下简称 "SLA")规定了百度智能云向客户提供的公网DNS服务(Domain Name System,简称"DNS")服务可用性等级指标及赔偿方案。百度智能云公网DNS服务免费版不适用本服务等级协议。
  • 协议生效时间:2021年09月01日。 本服务等级协议(Service Level Agreement,以下简称 "SLA")规定了百度智能云向客户提供的内网DNS服务(Local DNS,简称"LD")服务可用性等级指标及赔偿方案。
  • Q:DNS高防是什么? A:DNS攻击主要有以下手段: query flood 通过不断的发DNS请求报文来耗尽目的DNS资源,形成拒绝服务。具体分类包括源IP是否随机以及目的域名是否随机等。
  • 百度智能流量管理(ITM),基于对域名的监控和用户设定的自定义策略,对接入的域名流量提供自动调度服务。帮助用户科学地自动止损、策略化分配流量、高效利用带宽资源,且能满足大规模部署情况下复杂的流量管理需求,实现智能的优化网络性能和可用性。
  • 2018-12: 添加EIP绑定、 显示HTTP下的状态码、 支持自动推荐调度策略、 策略树优化。 2018-11: 对控制台中策略配置的引导、步骤、预览图进行优化、 支持用户在控制台的端点配置中添加EIP绑定。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部