AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 392534
Accepted
Matt Votsikas McLean
Matt Votsikas McLean
Asked: 2012-05-25 23:22:29 +0800 CST2012-05-25 23:22:29 +0800 CST 2012-05-25 23:22:29 +0800 CST

如何设置动态 cname 记录?

  • 772

我正在从事的项目要求我们用自己的子域屏蔽 AWS EC2 主机名。


例如:

ec2-176-34-163-40.eu-west-1.compute.amazonaws.com 将映射到 gf53ef.domain.com

和

ec2-123-31-124-60.eu-west-1.compute.amazonaws.com 将映射到 sdfrh5.domain.com


总会有可用的列表来存储域之间的关系。

此列表一直在变化。这意味着在一分钟内我们可以启动 100 多个新的 ec2 实例,接下来所有实例都可能终止。

我想知道如何设置我们的 Ubuntu 服务器来处理这种情况。

谢谢

domain-name-system amazon-ec2 cname-record dynamic
  • 2 2 个回答
  • 6559 Views

2 个回答

  • Voted
  1. Tom
    2012-05-26T03:45:34+08:002012-05-26T03:45:34+08:00

    我在 openstack 云上做一些类似的事情,例如 DNS 名称更新(可能不像您的要求那样动态;-),基本上我们有一个named接受动态更新的绑定实例。

    我使用 webmin 配置使用 RNDC 的远程控制,以及基本的绑定配置。

    在此处输入图像描述

    然后生成远程访问的密钥,分发给你的控制节点;

    dnssec-keygen -a hmac-md5 -b 128 -n HOST remote-key  
    

    区域文件最终是这样的;

    zone "mydomain.com" {
      type master;
      file "master/mydomain.com";
      allow-update { key "remote-key"; };
    };
    

    allow-update提供更新master区的权限allow-notify,相当于slave区。

    然后你可以做这样的事情(nsupdate来自 bind-utils)来更新来自客户端的记录,我没有测试 CNAME 更新,但它应该看起来像这样;

    cat <<EOF | nsupdate -d -k "$KEY"
    server ns1.mynameserver.com
    zone domain.com
    update delete gf53ef.domain.com.
    update add gf53ef.domain.com.   IN  CNAME   ec2-176-34-163-40.eu-west-1.compute.amazonaws.com.
    send
    EOF
    

    (您可能需要仔细检查 CNAME 示例的格式...)

    这似乎是 的配置参考文档named;
    http://www.zytrax.com/books/dns/ch7/xfer.html

    可以从这些教程中获得示例;

    http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-bind-rndc.html
    http://dag.wieers.com/howto/bits/bind-ddns.php
    http: //linux.yyz.us/nsupdate/
    http://www.semicomplete.com/articles/dynamic-dns-with-dhcp/

    • 3
  2. Best Answer
    Matt Votsikas McLean
    2012-05-28T05:46:50+08:002012-05-28T05:46:50+08:00

    感谢@CS3

    我们的解决方案目前是 Route53。

    下面是我们如何设置它 (PHP)。我们使用了这个库:http ://www.orderingdisorder.com/aws/route-53/

    private function getDomain() {
        $sub = "e-".substr(md5($this->instance->dnsName), 2, 4);
        $domain = $sub.".domain.com";
    
        $dnsRecords = $this->route53->listResourceRecordSets('/hostedzone/123');
    
        $exists = false;
        foreach($dnsRecords["ResourceRecordSets"] as $dnsRecord) {
            if($dnsRecord["Name"] == $domain."." 
                AND $dnsRecord["Type"] == "CNAME") {
                    $exists = true;
                    break;
                }
        }
    
        if(!$exists) {
            $change = $this->route53->prepareChange('CREATE', $domain.".", 'CNAME', 300, $this->instance->dnsName);
            $this->route53->changeResourceRecordSets('/hostedzone/123', $change);
        }
    
        return $domain;
    }
    
    private function removeDomain() {
        $change = $this->route53->prepareChange('DELETE', $this->domain.".", 'CNAME', 300, $this->instance->dnsName);
        $this->route53->changeResourceRecordSets('/hostedzone/123', $change);
        $this->domain = null;
    }
    
    • 1

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve