標籤: dns
linux hostname lookup
主機名稱很重要, hostname , 我們公司有台老鼎新tiptop erp主機 安裝的是 redhat enterprise 4 .
tiptop的架構我簡單的敘述, client端連線到這台 server , 這台server會辨識client 端ip , 再將資料以xml方式, 反向傳回去client端的接收程式, 該接收程式(genero desktop client , gdc )會把xml資料轉成UI介面 , 方便讓使用者使用.
可是呢, 每次使用者執行程式, 都必須進行license檢驗, 以及進行 host name lookup 查詢資料庫的ip在哪, 我說的是每次執行程式哦, 都要進行資料庫主機在哪的查訪動作, 實在是有夠怪的設計 , 這10多年來我困擾很久, 終於有點了解了
為何要了解這個, 因為使用者執行程式, 常常導致跑一隻程式, 光是等待程式冒出來就要等2分鐘... 我們早就知道是lookup的問題, 但找不出真正的解法, 以下是lookup的解決切入點
nsswitch 可以指定優先查 /etc/hosts 或是 dns 或是 winbind
但這款老舊版本有個怪怪的bug, 設定了相關的lookup , 總是沒用, 就是會查詢失敗導致時間過久使用者憤怒, 我無意間看到有人寫了可以這樣檢查
getent hosts 資料庫主機名稱 或是 strace getent hosts 資料庫主機名稱
我發現ap主機查詢很快, 但是查詢db主機超慢, 於是加上strace檢查問題 , 我加上去之後看不懂, 於是就多看了幾次,
這指令居然神奇的自己解決查詢過久的問題, 多執行幾次就變快了.... @@ 傻眼
口罩2.0收不到信
DNS的spf產生器
dns代管的建議事項
申請網域之後, 接下來就是思考如何設定dns, 以下是幾點建議:
- TW網域, 請到申請的網域公司設定成cloudflare代管,功能非常多,而且免費,還能作為CDN網站分流呢!
為何不使用網域公司提供的功能呢? 因為國內網域公司提供的dns很陽春, 萬年功能就是A, TXT, PTR, MX,NS之類, 很不思進步, 台灣的能耐大概也就只能這樣. Hinet甚至還出現額外功能還要收費的情形. - 其他網域若能使用google domain代管最好了, 直接提供超強的dns功能, 若網域不是向google domain購買,則無法請google domain代管, 請轉成cloudflare.
另外若網域向GoDaddy申請, 您一定知道申請者資料保護還要另外收費,真是傻眼,趕快移轉到別地方吧, 偶認為GoDaddy是個很不優質的網域服務商, 但有些網域倒是不得不拜託GoDaddy 如 DE 德國的網域. - 自架設PowerDNS-Admin , 本站爬一下文, pdns非常實用, 還支援DDNS功能, 若要突破大陸封鎖google的網路, 請務必準備好自架的DNS server.
2019年2月1日是 DNS flag day
長期以來很多自行架的dns伺服器, 並沒有支援Extension mechanisms for DNS (EDNS) , 造成google等公眾dns服務器(8.8.8.8, 1.1.1.1)效能低落, 常常要重複存取這些舊版的dns服務器,浪費資源.
因此, 這些公眾服務器廠商發表聲明, 將於2019年2月1日, 不再支援沒有EDNS功能dns伺服器.
若您因台灣爛到爆的dns代管功能太差, 失望之餘而自行架設dns服務器, 應該立即使用以下網址中的檢測工具, 查詢您的網域是否能通過檢測.
ps. 國外dns代管功能非常棒,除了.com.tw, org.tw , idv.tw 等等網域申請外跑不掉外, 請儘量不要在國內申請任網域.
老毛子Padavan 韌體, 如何透過PowerDNS-Admin更新DDNS
之前介紹過小米路由器mini可以刷老毛子padavan韌體, 不只功能強,還可以啟用shadowsocks功能, 但是有些路由器上網ip是動態的, 因此需要用到DDNS來綁定動態ip, 目前最穩定的DDNS大概就是google domain了, 他支援dyndns 2.
有些人若要綁定自己的網域, 可以安裝PowerDNS-Admin , 這個軟體也支援dyndns 2.
但是問題來了, padavan 與自行建立的PowerDNS-Admin 並不相容, 偶研究了很久, 終於用迂迴的方式搞定.
1. 建立正確的ddns設定文件
vi /etc/storage/script/inadyn.conf
background verbose 1 checkip-url ip.3322.net / startup-delay 15 period 600 forced-update 864000 cache-dir /tmp/inadyn exec /sbin/ddns_updated system custom@http_srv_basic_auth username <帳號> password <密碼> server-name : server-url //nic/update?hostname=<想改的網域主機名字>&myip= append-myip alias <想改的網域主機名字>
2. 找出padavan啟動後執行的腳本, 於最後一行加上
#!/bin/sh pid=`ps | grep inadyn | awk 'NR==1{print $1}' | cut -d' ' -f1` name=`ps | grep inadyn | awk 'NR==1{print $5}' | cut -d' ' -f1` if [[ "$name" == "/bin/inadyn" ]]; then if [[ -z "$pid" ]] /bin/kill $pid then echo "kill $pid" fi fi /bin/cp /etc/storage/script/inadyn.conf /etc/ /bin/rm -r /tmp/inadyn /bin/inadyn --config /etc/inadyn.conf
當然做這些動作之前,padavan要設定啟用DDNS功能, 基本上這樣重開機之後, 會將正確的conf複製到系統目錄上,再重新執行就可以了,
另外設定檔裡面的 ip.3322.net 是可以透過padavan預設的ddns功能修改的.
ubuntu系統如何更新DDNS
一樣不囉唆, 寫成文件, 請到以下連結觀看, svn server更新至VisualSVN 3.9.2已經不能使用匿名讀取, 請輸入 guest/guest 才能檢視!
https://docs.kafeiou.pw/iammis/技術文章/HowTo/10027_(Ubuntu)如何使用ddclient更新DDNS.txt
CentOS 7使用docker安裝超強的power dns 域名服務器
台灣提供網域代管服務廠商實在是很糟糕, 如hinet , seednet 等龍頭都只願意提供基本功能.
進階功能如 CAA等功能大家根本不敢奢望, 因此只能靠自己安裝dns網域伺服器, 做得好的話還能達到fail-over功能,壞了自動由別台替代呢.
請參考

我也不是很懂libvirtd, 只知道會帶出dnsmasq,然後霸佔dns port(53)
每次要安裝power dns , 最傷腦筋的就是dns port被霸佔, 原本以為是dnsmasq本身的服務, 就systemctl disable dnsmasq , 後來發現還是被佔用, 原來是libvirtd , 只要停用這個服務就好了, systemctl disable libvirtd .