2016年11月15日 星期二

在PowerDNS 4.x設置fake domain

情境:需要在某個正式運行的網域做測試,但又不能直接在上頭修改,雖然可以用ISC BIND去做這些事,但是又需要在網域頂層(apex domain,例如example.org)設置CNAME,而RFC又不允許…。

解:使用PowerDNS 4.x

PowerDNS 4之後開始支援Alias,可以在網域頂層設置類似CNAME的Alias。在文件中提到,要使用Alias需要在pdns.conf中設置recursor這項,指定遞迴查詢的名稱伺服器, 但是這會有個副作用,假設PowerDNS有一筆紀錄是
aaa.example.org. IN CNAME bbb.example.org.
但是在正式運作的網域裡頭,有設置一筆A record
aaa.example.org. IN A xxx.xxx.xxx.xxx
用DNS查詢工具去查詢PowerDNS有關aaa.example.org的紀錄時,只會得到A record而不會出現CNAME。要解決這個問題,需要安裝PowerDNS Recursor。詳細設定如下:

pdns.conf(PowerDNS的設定檔)
recursor=127.0.0.1:5300 #指定查詢的DNS為本機上安裝的PowerDNS Recursor。

recursor.conf(PowerDNS Recursor的設定檔)
local-address=[::1] 127.0.0.1 #如果沒用到IPv6可以把[::1]拿掉
local-port=5300 #預設是53,會跟已安裝的PowerDNS衝突
forward-zones=example.org=127.0.0.1 #轉送查詢的網域與伺服器,格式是 網域=伺服器ip,多個網域以逗點分隔
要使用forward-zones而不是forward-zones-recurse,如同字面上的意思forward-zones-recurse會進行遞迴查詢而導致迴圈。

2016年5月25日 星期三

ConoHa VPS

因為要玩龍族教義Online所以到ConoHa租了一台最小的VPS架VPN服務,剛開始的表現還不錯,不過最近發現可用頻寬變得非常小,在尖峰時間可用的頻寬被鎖在一個很低的值,很糟糕。雖然沒有流量上限,但是可用頻寬不足就沒意義了。
可能要試試OneProviderVultr

2016年4月28日 星期四

雙重授權軟體的問題

前陣子Wyliodrin把他們的開發環境給開源了,因為想要修改程式碼,加上自訂的block。修改過的程式有可能用在商業用途,便找了他們的使用授權,上面這樣寫著:

License

This software is available under several licenses, depending of the use.
Non-commercial & educational - GPLv3 Please contact us at office@wyliodrin.com for a commercial license.
如果看到上面的描述你會怎麼想呢?『只能用在非商業及教育用途?商業使用需要額外取得授權!?』我原本以為這是禁止非商業使用,但這樣就跟GPL授權相牴觸。

其實上面的描述不夠精確,正確的說法是如果要進行商業使用,但又不想釋出修改過的原始碼(GPL授權的要求),可以聯繫Wyliodrin取得授權。當然在遵守GPLv3的情況下進行商業使用,自然沒有任何問題。

另外一個軟體過去也曾碰到相同的問題引起使用者的疑惑,最後他們把授權聲明寫的更明確才解決。

2016年4月8日 星期五

Cloudflare有台灣的出口了

真是後知後覺...
https://twitter.com/codetengu/status/718331771713163264

然後測試應該是在國內沒錯,不確定在哪個機房。
linux-gap3 (0.0.0.0)                                              Fri Apr  8 15:41:28 2016
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                                  Packets               Pings
 Host                                           Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 192.168.2.249                                0.0%    12    0.2   0.2   0.1   0.3   0.0
 2. 125-227-128-254.HINET-IP.hinet.net           0.0%    12    6.4   6.2   5.7   7.0   0.0
 3. tpdt-3307.hinet.net                          0.0%    11    6.5  10.4   5.6  37.5   9.5
 4. 220-128-2-22.HINET-IP.hinet.net              0.0%    11   11.6  13.5   9.8  18.6   2.9
 5. r4102-s2.tp.hinet.net                        0.0%    11    6.4   6.5   5.7   6.9   0.0
 6. Customer.WAN-Port.AR.HiNet.NET               0.0%    11    7.3   7.3   6.4   8.4   0.3
 7. 104.27.134.206                               0.0%    11    7.2   6.8   6.2   8.3   0.5


不過走IPv6就會繞到國外去
                                  My traceroute  [v0.86]
linux-gap3 (::)                                                   Fri Apr  8 15:41:43 2016
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                                  Packets               Pings
 Host                                           Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 2001:b030:1005:100::1                        0.0%     2    0.3   0.3   0.3   0.3   0.0
 2. 2001:b030:1005:ff1d::ffff                    0.0%     2    7.0   6.8   6.5   7.0   0.0
 3. 2001:b000:a0:5:22:2631:141:2                 0.0%     2    8.1   7.4   6.7   8.1   1.0
 4. 2001:b000:80:4:3012:3308:2:2                 0.0%     2   14.8  13.2  11.6  14.8   2.2
 5. 2001:b000:80:4:3012:4103:7:b                 0.0%     2    6.0   6.4   6.0   6.7   0.0
 6. 2001:b000:80:4:13:27:1:1                     0.0%     2    6.4   8.0   6.4   9.5   2.0
 7. 2001:b000:80:7:211:72:233:41                 0.0%     1   50.5  50.5  50.5  50.5   0.0
 8. ae-4.r22.osakjp02.jp.bb.gin.ntt.net          0.0%     1   50.0  50.0  50.0  50.0   0.0
 9. ae-5.r30.tokyjp05.jp.bb.gin.ntt.net          0.0%     1   53.9  53.9  53.9  53.9   0.0
10. ae-5.r02.tokyjp03.jp.bb.gin.ntt.net          0.0%     1   55.4  55.4  55.4  55.4   0.0
11. 2001:218:2000:5000::3a2                      0.0%     1  165.7 165.7 165.7 165.7   0.0
12. 2001:cb0:104:1:19::1                         0.0%     1  166.7 166.7 166.7 166.7   0.0
13. 2001:cb0:104:1:1b::2                         0.0%     1  166.3 166.3 166.3 166.3   0.0
14. 2001:cb0:105:1:17::2                         0.0%     1  165.1 165.1 165.1 165.1   0.0
15. 2001:cb0:105:2:10::2                         0.0%     1  170.1 170.1 170.1 170.1   0.0
16. 2400:cb00:2048:1::681b:86ce                  0.0%     1  166.6 166.6 166.6 166.6   0.0

2016年1月11日 星期一

Django在Python2/3的環境下,上傳檔案的差異

在Python 2的情況,取用request.POST裡的檔案,其型態會是str,不需要額外處理就能使用。

但是在Python 3的情況,request.POST的檔案變成bytes,不轉換成str就沒辦法處理,所以我是用以下的方式:
f = TextIOWrapper(request.FILES['file1'].file, encoding=request.encoding)
來源參考這一篇:
http://stackoverflow.com/questions/26724453/django-uploaded-file-is-binary-is-it-possible-to-change-to-utf-so-readline