星期四, 12月 29, 2011

unbound 在多個 IP address 的環境下需要另外設定確保 DNS reply 是正確的

unbound 當 DNS resolver 算是還不錯的選擇,不需要設太多複雜的功能。不過這兩天又踩到雷,記錄下來以免之後又爆炸...

遇到的問題是,在 unbounad server 上同一個網路卡上設兩個 IP (這邊舉例為 10.1.1.1 與 10.2.1.1 好了),然後 interface 的部份設 0.0.0.0,不能保證發給 10.2.1.1 的 DNS 查詢會使用 10.2.1.1 的 IP 回答。

unbound.conf.sample 內有提到:

# enable this feature to copy the source address of queries to reply.
# Socket options are not supported on all platforms. experimental.
# interface-automatic: no

實驗性質?XD 還是得開啊...

星期三, 12月 28, 2011

FreeBSD awk 不夠亂...

FreeBSDawk 產生出來每次都是一樣的數字,結果中招...

可以執行下面這段 code測試:

repeat 10 awk 'BEGIN{srand(); print rand();}'
目前沒想到好方法解決,用 openssl rand 產生亂數似乎是個方法...

Cisco ASA 的 site-to-site VPN 的 acl 必須對稱

Cisco ASA 的 site-to-site VPN 必須設定對稱的 access-list (acl),不然就會出現「[Technical] - “Flow is denied by configured rule” message with ASA packet-tracer and traffic being dropped at the VPN phase.」這篇提到的問題。

拜這個問題所賜,ASA 上的 packet-tracercapture 這兩個指令用的比較熟了 \_/

星期一, 12月 26, 2011

FreeBSD 的 /etc/rc.conf...

之前我都是把 ports 安裝軟體的啟動設定 (也就是 XXX_enable="YES"XXX_flags="..." 這些設定) 用 pkg-install 與 pkg-deinstall 去 /etc/rc.conf.local 處理裡面的設定 (就是 ports-mgmt/portconf 對於 /etc/make.conf 的方法)。

星期天下午無意間看 /etc/rc.subr 時看到 /etc/rc.conf.d/"{$_name}" 的設計,看起來之後可以放到 /etc/rc.conf.d/ 下面,直接用 pkg-plist 處理掉就好,整個架構會再簡化一些...

7.4-RELEASE 與 8.2-RELEASE 的 /etc/rc.subr 都有包括這段 code,不確定其他的版本如何...

星期三, 7月 27, 2011

把開發環境升級到 Cassandra 0.8.2...

然後就中獎了...

桌機有 8GB RAM,結果 Cassandra 很開心的吃了 4GB RAM,再加上本來的視窗環境、Google Chrome 之類的東西,就吃掉 80% 左右的記憶體... 接下來跑 VirtualBox 把 XP (2GB RAM) 跑起來,就瞬間 swap 到爆炸 XD

問了一下同事 Gasol,發現要改 /etc/cassandra/cassandra-env.sh 這個檔案,把本來自動計算的部份改成手動設定:
#MAX_HEAP_SIZE="4G"
#HEAP_NEWSIZE="800M"
MAX_HEAP_SIZE="1G"
HEAP_NEWSIZE="200M"
這樣就可以了...

星期一, 6月 06, 2011

Mixpanel 的 track_links

最近開始試著用 Mixpanel,結果中了兩次雷 XD

在「Javascript Integration」裡面有追蹤 link 的功能 (mpmetrics.track_links),以目前提供的功能來說,一定要指定 a 元素讓他處理,不然會有問題...

有時候沒注意到,直接對整個 div 下 mpmetrics.track_links,過沒多久就有人抱怨 Google Chrome 沒辦法點裡面的 link... :o

星期三, 5月 25, 2011

AWS Route53 與 ELB 功能的改進

剛剛看到 AWS 丟出來 Route 53ELB 的新功能,每個都還蠻重要的...

首先是 Route 53 與 ELB 整合,於是 root domain 可以直接用 Route 53 指到 ELB 上面,不用再自己惡搞了。

然後是在「ELB 的 IP 信任問題...」提到的 IP 信任問題,這次提出的 ELB security group 解決了。

最後是 IPv6 的部份,ELB 先支援 IPv6 only 或是 Dual Stack (當然原來的 IPv4 only 還是存在),於是可以提供 IPv6 服務... 不過 X-Forwarded-For 不知道會長什麼樣子。

星期二, 5月 24, 2011

無名 API 中的 Base64 上傳功能...

前幾天去無名 API 說明會,技術面中其中一個比較「有趣」的功能是「Base64 上傳」,在「無名小站 API 文件 - Version 1.2」這邊可以看到 API 文件關於 Base64 的部份。

剛好今天寫 code 的時候回去重新讀 OAuth Core 1.0a,把之前一堆環節串起來,才知道為什麼無名會設計 Base64 上傳...

OAuth Core 1.0a 內提到有三種方式可以傳遞 OAuth Protocol Parameter,而且是有優先順序的,從最優先開始分別是:
  • In the HTTP Authorization header as defined in OAuth HTTP Authorization Scheme.
  • As the HTTP POST request body with a content-type of application/x-www-form-urlencoded.
  • Added to the URLs in the query part (as defined by [RFC3986] section 3).
其中第一種方式沒辦法傳 extra parameter,第二種方式在上傳檔案時會變成 multipart。於是,上傳時要用第三種方式,把所有 parameter (OAuth Protocol 與 Extra) 在簽完後塞到 query string 裡面,而檔案用 POST (multipart) 送出...

由於檔案上傳的部份沒簽到,所以可以在傳輸過程中間被換掉 (整個 request 看起來仍然合法),所以一般會加上一個 extra parameter 傳 POST 資料的 Secure Hash。

但之前 Manic 就跟我抱怨 PHP 上面的 OAuth Library 都遺忘了檔案上傳這塊,他得自己建立 POST body 丟出去 XDDD

於是我就瞬間理解為什麼要用 Base64 上傳了... XD

PS:這是一種可能性,也有可能是 Y! policy 覺得要用 OAuth 直接簽進去才安全,這只有當初定 API spec 的人才知道了...

星期六, 5月 21, 2011

ELB 的 IP 信任問題...

AWS ELBAmazon Web Services 提供的 Load balancing 方案,這個系統設計成 HA 架構,所以不需要自己煩惱要如何用 EC2 做到一樣的事情。而且也因為不需要自己架 server 起來弄,在機器成本上會比較便宜,不過他要照頻寬計費,會依照情況不同而有不同的費用...

他不是 DSR (Direct Server Return) 類型的架構,而是一般 proxy 的架構,也就是 server 會看到 ELB 的 IP,而非使用者的 IP address。這個問題 Amazon Web Services 提供的解法還蠻一般的:將使用者的 IP 加到 X-Forwarded-For header 裡面。到這邊都沒什麼問題...

但是,我沒辦法知道我沒辦法知道 ELB 會從哪些 IP address 連進來,所以我沒辦法設定 trusted IP list。另外一條路是找看看 EC2 的 security group 有沒有支援 ELB,但也找不到... 於是就變成無解的問題了... :o

不過在「ELB and Security Groups」這邊有些討論,像是:
What if all ELBs were members of a special security group, and you could then lock down your webservers by allowing only traffic from that security group? Note: this would be one giant security group that contains the ELBs from all AWS users, not just your security group. Would that suffice? or do you need the security group to be specific to only your loadbalancer?
然後 4 月的時候有 private beta 可以測,到 4 月 28 號的時候收起來,所以這陣子應該有機會看到了...

PIXNET 徵人:PHP 程式設計師多名

要徵:
  • PHP 程式設計師:
    • 工作內容:現有 PHP 程式維護及新功能開發。
    • 工作時間:一般為 10:00-19:00 (一~五)。
    • 就職日:可馬上就職,或 2011 年八月前到職即可。
    • 地點:台北市中山區 (捷運行天宮站旁)。
    • 需求:需熟 PHP 與資料庫操作。
    • 薪資:約 40k/month,其他技能面議另談。
請寄到 gslin at pixnet.tw 與 ieon at pixnet.tw。