MySQL

VMWare ESXi導入遊記(六)RouterOS的選擇

之前在(四)我家的網路架構提到過,我打算選用pfSense來當防火牆作業系統,但是實際上線了之後,卻又發生了一些很麻煩的小問題。

pfSense的分隔線 —

我們之前在辦公室裝了一台PPTP Server,方便我們人在家裡的時候連回去辦公室的SVN Server同步檔案。原本這個方法在正式導入pfSense之前都用得好好的,但是在我把pfSense設定為IP分享器了之後,問題就突然跑出來了:「我在裡面連不到辦公室的PPTP

我本來以為是pfSense的防火牆擋住還是怎樣的,設定改了好幾次,直到後來把整個設定reset重來,才成功連上去了。但是在我把所有的設定通通都設定回去了之後,又連不上了。經過幾次reset反覆測試了之後,我發現問題是在如果把pfSense裝成PPTP Server的話,位於裡面的機器就連不到遠端的PPTP。查了一下討論區,發現的確有不少人有回報這樣的問題,唯一的解似乎是用兩個public IP。(但是我沒有那麼多IP,所以沒辦法)

m0n0wall的分隔線 —

於是我就想說,那試試看用m0n0wall好了,他也可以輕鬆設定PPTP Server的樣子。我千千萬萬沒有想到,m0n0wall居然不支援NAT Loopback的功能。也就是說,我在區網裡面,打http://applepig.idv.tw/會連不進這一頁,一定要在/etc/hosts或DNS額外把這個host轉成內部IP才可以。

BrazilFW的分隔線 —

別提了,我看不懂葡萄牙文,英文的支援訊息又少的可憐。連安裝過程似乎每一版都還不一樣,我根本沒有辦法讓成功的讓他成為正常的NAT…

IPCOP的分隔線 —

接著我試了相當老牌的IPCOP,一開始跟他相安無事,想說既然功能都齊全,就先用他試試看吧。結果不到第三天,我就發現網路會一直莫名的瞬斷,而且eMule忙起來的時候斷的特別兇。

…這就是傳說中的drop packet嗎(抖

pfSense的分隔線 —

於是最後還是回到pfSense這邊來,只是把PPTP Server關掉,乖乖改用ssh tunnel連回來。雖然真的很麻煩,而且很慢,但是這似乎是目前最好的解決方法了…

題外話
在這一篇跟上一篇之間,我家的MySQL server突然爬不起來了。更新了版本之後還是爬不起來,最後把my.cnf跟default設定檔作比較,一句一句改掉,最後發現兇手是thread_concurrency = 8這一句。至於為什麼本來可以的,突然變成不行了,我也實在很好奇…

另外是手動翻閱htaccess.log時,發現了一個user-agent是有帶”Foxy/1″的人,會一口氣發出30個request,害MySQL會瞬間很忙,所以我就在.htaccess把他們直接ban掉了:

SetEnvIf User-Agent Foxy spam
deny from env=spam

VMWare ESXi導入遊記(四)我家的網路架構

我家的網路架構


圖一:Before

原來是中華電信的ATU-R進來了之後,接在FreeBSD上。FreeBSD上面插了兩張網路卡,一張對外,一張對內。這台機器現在是負責NAT, www, mail以及其他各種服務。

區域網路內則是用了兩台Gigabit Switch跟兩台Wifi AP,把家裡所有的網路裝置接起來。

導入ESXi之後的網路架構


圖二:After

預計導入ESXi之後,要把原來FreeBSD負責的服務,分散給不同台VM。預定要裝的VM分別是:

  • pfSense:NAT、DHCP、VPN等等
  • FreeBSD:主要留做www, mysql等等,把NAT相關服務移到pfsense
  • FreeNAS:檔案伺服器,驗證完成之後,預定要移出來到實體機器
  • Windows:各式P2P服務,把檔案存到FreeNAS上
  • Gmail for your domain:不是VM,但是要把mail交給google託管。現在改叫Google Apps for Domain,還是有提供免費版就是了

專門做NAT的作業系統的選擇還蠻多的,像是m0n0wall, BrazilFW, IPCOP等等,我最後選pfsense的原因是功能多、介面好看之外,他剛好也是FreeBSD based…

參考資料:4大免費路由器軟體效能大揭密 – Network01.net

NAS OS的話,常見的好像也只有FreeNAS跟Openfiler,另外就是有點微妙的Windows Home Server。我選FreeNAS是看了這一篇之後,發現Openfiler似乎不能讀NTFS硬碟,所以還是選FreeBSD based的FreeNAS…

也就是,上面會有三台VM是FreeBSD耶~☆

題外話,我一邊畫架構圖,一篇在想,是什麼樣的笨蛋,會把家裡的網路搞得這麼複雜的…

現狀:導入ESXi到一半的架構


圖三:Reality

這是目前的現狀。跟圖一的改變是PS3改成走Wifi,然後網路線留給ESXi了。

各位可以看到,原來要取代FreeBSD的整組ESXi,目前放在圖片的最下方,上面跑的各種服務都要從原本的FreeBSD穿過才進得去。像DNS這種原先沒有的,或是SSH這種比較容易指定port的,這都還好處理。但是www就很複雜,要設vhost之後,用proxy pass到裡面的機器,簡直就是複雜啊~

大概是這樣:

<virtualhost 211.23.16.105>
    ServerName applepig.info
    ServerAlias www.applepig.info
    ProxyPass / http://192.168.0.101/
</virtualhost>

那至於pfsense碰到的問題,就等一下再說吧~

升級到FreeBSD 6.2、MySQL 4.1及WordPress 2.3.1

這實在不是我願意這麼爽快的升級我家的FreeBSD的啊啊啊啊!!

事實上是前幾天,我要試著把PHP 5.2.0升級到5.2.5的時候,發現怎麼安裝都會失敗。查了一下,有人說是Ports可能沒有抓完,所以當我要更新FreeBSD的ports的時候,又發現4.11是已經停止支援的版本,建議更新到現行版本。

但是呢,雖然php 5.2.5的本體安裝不過,php5 extension卻成功的過關了。不過呢,我之前有一些php4 extension還留在package tree裡面,所以就變成同一個程式,在新增移除程式的地方同時顯示了三個不同版本。

於是我就手動把多的那兩個刪除掉了。

他就順便幫我把要用的那一份刪除掉了。

刪除掉了。

啊啊啊啊啊,我的網站他爆炸了啊啊啊啊啊啊!~~

所以我只好把伺服器整台抱到樓上來,拿出FreeBSD 6.2的光碟片,開始安裝。首先我先試了用Upgrade,但是升級完後,在第二次開機的時候就無法登入了,出現的錯誤訊息大概是說pam.conf的設定有錯誤,所以系統爆炸了。

忙到早上六點左右,總算再某一次的完整安裝之後,他成功的活過來了。但是make world又花了我N個小時,更新所有的ports又花了N個小時,似乎活過來了…

但是,Sendmail默默的不動了,pop3跟smtp也都不動了…後來花了N個小時,改裝qmail才順利的讓他動起來,於是spamassassin就此不會動了…

升級MySQL 4.1的時候,由於之前安裝的時候有設default-charset=utf-8,所以其實還蠻順利的。但是在升級Wordpress 2.3.1的時候,就真的碰到很多問題,像是K2需要做巨大的更新、還有很多外掛需要更新版本,外加有一些函數的改變,所以介面要重新設定,至於css就不提了……