俠諾 Qno 防火牆無法下載 Gmail 附件

都是垃圾

最近被找去某社處理網路的問題。去之前就被告知有好幾個大問題困擾他們很久了,其中之一就是總部辦公室用 Gmail 網頁版無法下載或是上傳附件,但是用 Outlook、Airmail 等等的郵件軟體又沒問題。偏偏總部的 email 是用 Google Apps,同事也都習慣用 web 介面收發信了。於是可以說根本是哀鴻遍野啊…

雖然我用 Airmail 收發信,但是進公司以後測試起來的確是常常遇到按下上傳附件,或是點選附件連結要下載以後就不動了,大約要等一分鐘才會好。但是直接接上中華電信的設備撥 PPPoE 又不會遇到這問題…

等等,到這邊是不是有幾個巧合?

  1. 一分鐘
  2. 只有 Gmail 有問題
  3. 直接接中華設備撥 PPPoE 出去不會有問題

這時候就聯想到會不會跟 Google 的新協定 QUIC 有關?前面的 IT 主管用的這設備(Qno QVF8201)是不是有問題,把這些封包當作 DoS 檔掉一分鐘了?

(幹,其實在這之前我根本沒聽過這牌子,我真是白混了)

這樣的猜測大概已經有 90% 的把握了,所以就開始請款採購 Juniper SRX240。

中間還有以前的廠商打電話來跟我說他們之前測了很久,還是 Qno 比較穩,Juniper 和 Cisco 可能都不行這種垃圾

結果接下來的某一天忘記為什麼去開到俠諾 Qno 的首頁,好死不死給我看到這一篇公告

qno

居然自己承認有問題了

但是問題是…

我一開始覺得是這個問題的時候就把防火牆關掉了啊…問題完全不會解決

而且…

靠盃啊,防火牆建議人家關閉防火牆是哪一招?這是什麼超級 workaround…?

然後又讓我看到這一篇 FAQ

qno2

差點沒嘔出幾十斤鮮血…

會不會根本就是關掉防火牆以後要重開機才會生效啊?拜託各位大哥,辦公室用的有辦法想什麼時候重開就重開嗎…

算了,沒時間跟你胡鬧,直接放棄俠諾 Qno 的設備。

換上 Juniper SRX240 以後,辦公室同事再也沒遇到奇怪的問題,而且其他奇奇怪怪的網路問題,像是掉封包、DHCP 發不出來或是亂發一通都沒了。

我現在每天工作的重心就是把原本整個建在俠諾 Qno QVF8201 上,前人建的亂七八糟的網路架構拆到 SRX 240 上面用正規的架構重新搭起來。不過 SRX 設定起來就不是隨便網頁介面勾一勾選項就可以了事的了。

等我拆完真希望可以把 QVF8201 從六樓辦公室丟下去

所以假設有同樣遇到這問題,在 Google 解法的朋友抱歉了,我沒有解法。

我倒是建議你把俠諾 Qno 的設備丟掉,換一個正常一點、遇到問題找的到社群可以問問題的設備(如 Cisco ASA、Juniper SRX)

Linode 從 Fremont, CA 搬家到 Tokyo, JP

因為之前看到有人說雖然 Linode 東京 Datacenter 現在是大客滿的狀態,但是沒事上去點點看有機會會有意外的驚喜。所以我沒事就會上去點點看。結果今天還真的給我點出了一個 Tokyo, JP 的空位 XDDDDD

當然點出來之後毫不猶豫的馬上把原本在 Fremont, CA 的 VPS 搬到 Tokyo, JP,過程大概花了半小時到一小時吧。就完全無痛的搬好了。

下圖是搬家前後從 Hinet 光世代 ping 那台 VPS 的 domain name 的記錄。可以看到搬家前後 ping 的差異。

smokeping
]2 smokeping

爽度大大大提升啊

Debian 上安裝 MariaDB Galera Cluster

以前玩過 Percona XtraDB Cluster過了,這次用 MariaDB Galera Cluster build 自己的測試環境就順便記錄一下吧

  • IP address:192.168.1.201、192.168.1.202

安裝 mariadb-galera-server-10.0

  • 先把 MariaDB repo 加進系統

    sudo apt-get install python-software-properties
    sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
    sudo add-apt-repository 'deb http://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/repo/10.0/debian wheezy main'
    
  • 用 apt-get 安裝

    sudo apt-get update
    sudo apt-get install mariadb-galera-server-10.0
    
  • 兩台都先進去 mysql 設定帳號

    mysql -uroot -p
    
    mysql> GRANT USAGE ON *.* TO cluster@'%' IDENTIFIED BY 'abcdefg';
    mysql> GRANT ALL PRIVILEGES ON *.* TO cluster@'%';
    mysql> GRANT USAGE ON *.* TO cluster@'localhost' IDENTIFIED BY 'abcdefg';
    mysql> GRANT ALL PRIVILEGES ON *.* TO cluster@'localhost';
    mysql> FLUSH ALL PRIVILEGES;
    
  • 然後先設定 192.168.1.202

    • 編輯 /etc/mysql/conf.d/wsrep.cnf

      [MYSQLD]
      wsrep_provider=/usr/lib/galera/libgalera_smm.so
      binlog_format="row"
      wsrep_cluster_name="MYCLUSTER"
      wsrep_node_address="192.168.1.202"
      wsrep_node_name="db2"
      wsrep_cluster_address="gcomm://"
      wsrep_sst_method=rsync
      wsrep_sst_auth=cluster:abcdefg
      
    • 重跑 192.168.1.202 的MariaDB

      sudo service mysql restart
      
  • 然後設定 192.168.1.201

    • 編輯 /etc/mysql.conf.d/wsrep.cnf

      [MYSQLD]
      wsrep_provider=/usr/lib/galera/libgalera_smm.so
      binlog_format="row"
      wsrep_cluster_name="MYCLUSTER"
      wsrep_node_address="192.168.1.201"
      wsrep_node_name="db1"
      wsrep_cluster_address="gcomm://192.168.1.202"
      wsrep_sst_method=rsync
      wsrep_sst_auth=cluster:1234
      
    • 重跑 192.168.1.201 的MariaDB

  • 如果兩台的 MariaDB 都有成功跑起來的話,這時候可以下:

    mysql -uroot -p -e "SHOW STATUS LIKE 'wsrep%';"
    

    如果看到

MariaDB-1
]1 MariaDB-1

就是 OK 了

每日新聞關鍵字

近來在玩 Python,所以寫了好幾個小玩意當練習。不過前幾個都因為題材不好說,所以自己玩一玩就算了。上禮拜花了一點時間寫了個抓出每日新聞關鍵字,顯示為文字雲的小程式:

每日新聞關鍵字

螢幕快照 2014-12-31 下午2.47.30

工作原理大概是:

  1. 定時去 Google News Feeds 撈新聞資料,把他暫存進一個表裡(以後可能還可以拿這些資料做什麼,所以就先存下來了)

  2. 定時用 jeiba 這個中文斷詞引擎,把關鍵詞抓出來,再存進一個表裡。jeiba 斷出來的詞基本上還不錯,但是還是有些亂七八糟奇奇怪怪的關鍵詞需要自己手動調整一下。

  3. 一個簡單的 API,從關鍵詞資料庫中撈出特定詞性的關鍵詞以及出現次數,輸出成 JSON,讓前端來拿。

  4. 前端用 wordcloud2.js ,根據出現次數來計算關鍵詞要顯示的大小。如果是出現次數最多的關鍵詞,每個字就顯示為螢幕寬度的 15%,其他的詞就再按照出現次數,依比率縮小。然後畫在 HTML5 canvas 上面,畫出來是一張圖片可以另存新檔。

  5. 然後每天 4:00 會重置關鍵字資料表,這時間應該也沒什麼新聞產出量了。改為即時更新,每次連線都會取出前 24 小時 的資料。

從這上面可以很容易看出來當天新聞的趨勢,在測試的過程中也發現了好幾個根本平常不會注意的新聞主題XDD另外這些算出來的關鍵詞未來應該也還可以拿出來做一些事情,看看之後有沒有好點子。

好用的 IRC Client – weechat

IRC(Internet Relay Chat)是網路上一種很古老的聊天服務了。而他主要是以 Client/Server 架構來運作的。所以要開始用 IRC 聊天,你需要:

  • 知道你要使用哪一個 IRC 伺服器
  • 安裝一個 IRC 用戶端程式

IRC Server – freenode

伺服器除非自己架設,通常都是會使用 chat.freenode.net 這個最大的公用 IRC 伺服器。你可以在上面自由的建立頻道(Channel)。頻道名稱會以「#」開始,例如 #irchelp。

IRC Client – weechat

我的喜好是會先用 mosh 連到一台不會關機/斷線的 server 之後,打開 tmux,然後再用 IRC client 連線。這樣的好處是不怕斷線。就算換一台電腦,只要再用 mosh 連上那台 server,把 tmux attach 回來,就可以回到原本的 session

至於 IRC client,以前我用 irssi,最近發現 weechat 很好用(幹,不是微信那種髒東西),他有幾個地方很強大:

  1. 模組化,可支援 plugin
  2. 可擴充
  3. 文件完整
  4. 免費
  5. 仍在維護中

weechat 按照我的簡單設定會長這樣:

閱讀全文