阿里雲ECS上搭建coredns實現內網域名解析


前言

已經在一台阿里雲ecs上搭建好openvpn, 彈性公網IP綁定這台ECS,剩下所有ecs都在華北二區,一個vpc內,沒有公網IP。通過購買阿里雲 雲解析DNS 服務,使用PrivateZone,搭建雲上內網DNS服務。本地PC掛上vpn后,連接vpn成功,ping vpc內的 ecs服務器能ping通,ping 內網域名不通,咨詢阿里雲技術,沒有解決,推銷讓購買他們自己的vpn。最終刪掉 阿里雲 雲解析DNS 服務,自己在 openvpn 那台ecs上搭建coredns,實現本地PC掛上vpn后,能ping通 阿里雲ecs 內網域名。

搭建coredns

[root@openvpn ~]# wget https://github.com/coredns/coredns/releases/download/v1.8.7/coredns_1.8.7_linux_amd64.tgz
[root@openvpn ~]# tar zxf coredns_1.8.7_linux_amd64.tgz
You have new mail in /var/spool/mail/root
[root@openvpn ~]# ll
total 60968
-rwxr-xr-x 1   33 tape 48738304 Jan 14 22:11 coredns
-rw-r--r-- 1 root root 13675360 Feb  8 15:40 coredns_1.8.7_linux_amd64.tgz
-rw-r--r-- 1 root root     1724 Jan 26 17:09 openvpn.sh
-rw-r--r-- 1 root root      919 Feb  4 22:59 send-mail.py
-rw-r--r-- 1 root root      111 Jan 26 13:22 test.sh
-rw-r--r-- 1 root root     1289 Feb  7 09:42 useraddvpn.sh
[root@openvpn ~]# mv coredns /usr/bin/
[root@openvpn ~]# useradd coredns -s /sbin/nologin
[root@openvpn ~]# mkdir /etc/coredns
[root@openvpn ~]# cat /etc/coredns/Corefile
[root@openvpn coredns]# cat /etc/coredns/Corefile
.:53 {
  # 綁定內網dns的 ip
  bind 172.16.0.40 
  # 先走本機的hosts
  # https://coredns.io/plugins/hosts/
  hosts {
    # 需要解析的域名少我們這里直接用hosts插件即可完成需求
    172.16.0.39    harbor.xxx.com  #每台ECS自定義的內網域名和對應的內網ip,按行添加即可
    172.16.0.42    dev.xxx.com
    172.16.0.56    build-agent.xxx.com
    
    # ttl
    ttl 60
    # 重載hosts配置
    reload 1m
    # 繼續執行
    fallthrough
  }
  # file enables serving zone data from an RFC 1035-style master file.
  # https://coredns.io/plugins/file/
  # file service.signed service
  # 最后所有的都轉發到系統配置的上游dns服務器去解析
  forward . /etc/resolv.conf
  # 緩存時間ttl,
  cache 10
  # 自動加載配置文件的間隔時間,建議降低時間,生效快
  reload 2s
  # 輸出日志
  log 
  # 輸出錯誤
  errors
}


[root@openvpn coredns]# 

[root@openvpn ~]# cat /usr/lib/systemd/system/coredns.service
[Unit]
Description=CoreDNS DNS server
Documentation=https://coredns.io
After=network.target

[Service]
PermissionsStartOnly=true
LimitNOFILE=1048576
LimitNPROC=512
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
User=coredns
ExecStart=/usr/bin/coredns -conf=/etc/coredns/Corefile
ExecReload=/bin/kill -SIGUSR1 $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target

[root@openvpn ~]# systemctl enable coredns
Created symlink from /etc/systemd/system/multi-user.target.wants/coredns.service to /usr/lib/systemd/system/coredns.service.
[root@openvpn ~]# systemctl restart coredns

每台ECS修改/etc/resolv.conf

剩下內網的ecs修改/etc/resolv.conf,添加 dns服務器的ip地址

[root@harbor ~]# cat /etc/resolv.conf 
#options timeout:2 attempts:3 rotate single-request-reopen
#; generated by /usr/sbin/dhclient-script
#nameserver 100.100.2.136
#nameserver 100.100.2.138
nameserver 172.16.0.40
[root@harbor ~]# 

 

本地測試域名解析

本地PC掛上vpn后,測試,ping 阿里雲 vpc內地 私網域名,正常。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM