資訊管理

[4G] 建立與 FortiGate 的 IPSec 連線


先前文章

[RouterOS] 建立與 FortiGate 的 IPSec 連線

是使用 RouterOS 的硬體來處理。

公司一直有使用國內廠商永洋科技的工業級 4G Router,剛好這台有 IPSec 功能,就用來測測看,測試的主機是太陽能案場建築物改建拆回,待改建完成後裝回去的設備,目前該型號已經過舊停產,要買只有新型號,就不把這台型號放上來,因為已經買不到了,永洋的設備網頁畫面幾乎一樣,應該其他型號這部分功能雷同。

這台預設會擋 ICMP 封包,設定前不知道,測試不過才知道,所以設定上要放行,但即使放行,ICMP 封包不會轉到 LAN ,所以只能對 Router 做測試。

關閉阻擋 ICMP 封包

這台支援雙 WAN ,WAN1 我讓他走光纖上網,WAN2 可以兩張 SIM 卡互相備援,一邊不通可以用另一邊,這台預設 WAN1 優先。

所以在建立 IPSec 連線時,須分別對 WAN1 跟 WAN 2 建立通道,分別取名為 toIDC 跟 toIDC4G ,連線時,因為有優先權問題,所以當 WAN1 通的時候,只有 WAN1 會建立連線,WAN2 會處於連接中的持續偵測。

最多可建立 16 條 IPSec 連線

WAN1 跟 WAN2 設定一樣,所以只列一個,FortiGate 的 IPSec 參數請參考前篇這邊只列設備參數,因為設備網頁設計為彈跳式視窗,使用 Div 標籤來做一個小畫面,不利於截圖,所以我是利用瀏覽器列印選擇範圍印出來,跟 FortiGate 呼應的變數用紅框圈起來。

設備呼應 FortiGate IPSec 的參數

連線成功就可以從狀態看到連線的情況,還滿好設定的,一次就上手。

設備狀態展示網頁

透過系統 log 可以看到我插拔 WAN1 網路線時,WAN2 會自動建立 IPSec 連線。

[日期馬賽克] 16:01:32 syslog: 04[IKE] sending DPD request 
[日期馬賽克] 16:01:32 syslog: 04[ENC] generating INFORMATIONAL_V1 request 388906204 [ HASH N(DPD) ] 
[日期馬賽克] 16:01:32 syslog: 04[NET] sending packet: from 172.16.60.239[4500] to [遠端IP馬賽克][4500] (92 bytes) 
[日期馬賽克] 16:01:32 syslog: 15[NET] received packet: from [遠端IP馬賽克][4500] to 172.16.60.239[4500] (92 bytes) 
[日期馬賽克] 16:01:32 syslog: 15[ENC] parsed INFORMATIONAL_V1 request 2283433188 [ HASH N(DPD_ACK) ] 
[日期馬賽克] 16:01:32 syslog: 03[IKE] sending retransmit 3 of request message ID 0, seq 1 
[日期馬賽克] 16:01:32 syslog: 03[NET] sending packet: from 100.120.69.136[500] to [遠端IP馬賽克][500] (409 bytes) 
[日期馬賽克] 16:01:51 syslog: 15[IKE] sending keep alive to [遠端IP馬賽克][4500] 
[日期馬賽克] 16:01:55 syslog: 05[IKE] sending retransmit 4 of request message ID 0, seq 1 
[日期馬賽克] 16:01:55 syslog: 05[NET] sending packet: from 100.120.69.136[500] to [遠端IP馬賽克][500] (409 bytes) 

我約每分鐘快速插拔 WAN1 網路線中,大部分情況都可以完成自動切換,但有發生超過 5 分鐘卡在 4G 建立 IPSec 連線沒有中斷,導致 WAN1 無法建立連線,造成雖然可以上到網際網路,但無法連接到 IPSec VPN 網段內。設備能手動中斷 IPSec 連線,讓設備自動重新建立連線,但找不到有 watch dog 或排程可以處理這塊。

Client 端對 Server 端通聯正常,ICMP 封包跟 http 封包都正常。

Client 連接 Server 的服務

Server 端對 Client 端通聯中,ICMP 封包到 Router 正常,到 Client 裝置會被擋,可能是裝置預設會擋 ICMP 封包 (這邊有確認過 Windows Client 會回應 ICMP 封包),http 封包都正常,連接的網頁是我在 NB 備份的個人網頁。

Server 連接 Client 的服務

這台設備大體上可用,因為實況上不會碰到 WAN1 經常性斷線、恢復連線,所以不太有機會碰上卡住的情形,由於這台已經停產,官方網站也沒有韌體更新,所以不確定是不是可被修復的 bug 。

Categories: 資訊管理, 工作點滴, 技術分享 | 標籤: | 發表留言

[RouterOS] 偵測 IPSec 無法連接


先前介紹

[RouterOS] 雙 WAN 備援線路

是為了替

[RouterOS] 建立與 FortiGate 的 IPSec 連線

建立備援線路,當光纖中斷時,自動改用 4G 上網,再觸發 IPSec 重新撥號。

理想很美好,現實很骨感。

我大概每分鐘將光纖網路插入、拔除的連續測試下,大部分情形,從光纖切換到 4G 約 2 秒,IPSec 重新撥號約 3 秒,從 4G 切回光纖,約 12 秒,IPSec 重新撥號約 3 秒。

如果一直穩定都是這樣,基本上是可以接受的,但麻煩就發生在有時 4G 切回光纖時,IPSec 超過 3 分鐘並未觸發重新撥號,導致 LAN 到 WAN 沒問題,但是透過 IPSec VPN 到機房異常。我是判斷可能是 4G 備援線路並未中斷,只是優先緒比光纖差,所以設備認為還連得上線,不算中斷。

首先查了資料,可以使用內建的 netwatch 去偵測網路,可以觸發斷線、恢復連線、測試等三種事件,官方說明如下:

Manual:Tools/Netwatch

Netwatch

我測試了幾個 IP ,分別用不同的方法:

netwatch 清單
1. VPN 內網的總 Gateway (10.0.0.1)

想法很簡單,不論走光纖還是 4G ,只要連不到 VPN 的 Gateway ,砍掉 IPSec ,讓系統自己連線。

但是 netwatch 不能指定從哪個介面 (Interface) 出去,所以造成 netwatch 本身就連不到 IPSec ,直接胎死腹中。

2. ISP 業者的 DNS (168.95.1.1)

想法是能上網,總能連線到 ISP 業者的 DNS 吧?結果不管是走光纖還是走 4G ,都能順利連線,退而求其次,改連線測試目標為光纖出去後第一台 ISP 業者的 Gateway ,測試結果仍是走光纖還是走 4G ,都能順利連線。所以也沒用了。

3. 光纖區網的上層 Gateway (172.16.60.1)

這個倒是滿順利的,我插、拔網路線都會引起對應事件,但這邊有個問題是,要是我 Router 沒事,出事的是光纖數據機或是 ISP 業者機房迴路,對 netwatch 來說,我這個偵測根本沒用,RouterOS 的硬體多半是工業級,可以耐溫到 70 度,但光纖數據機是商用級,只能耐溫到 40 度,經常斷網也是光纖數據機當機造成的,所以效用不大。

system log

從上述 log 可以看出,網孔1 的網路線拔除後,連不上 172.16.60.1 ,就把 IPSec 連線砍掉 (確保改由 4G 連線),系統自動連接後,把網孔1 的網路線插回,又能連上 172.16.60.1 ,仍把 IPSec 連線砍掉 (確保改由光纖連線)。

既然有 netwatch 做思路,我乾脆自己寫 script 來解決偵測問題,也是一種方案。一樣,翻出官方文件來:

Manual:Scripting

我寫兩個公用函數,一個主要功能是在指定介面下呼叫 ping 進行連線測試,一個主要功能是偵測連接不上 VPN 的 Gateway 時,把 IPSec 連線砍掉。

:global CheckConnectHost do={
   :if ( [/ping $Host interface=$Interface count=5 interval=100ms]=0)  do={
      :log warning "[自訂log識別字串]: $Interface connect $Host fail. ";
      :return false;
   } else={
#      :log info "[自訂log識別字串]: $Interface connect $Host success. ";
      :return true;
   }
}

:global CheckIPSecConnectHost do={
   :global CheckConnectHost;
   :if ( [$CheckConnectHost Host=$VpnHost Interface=$Interface]=false ) do={
      :foreach i in=[/ip/ipsec/active-peers find remote-address=$RemoteHost] do={
        :log info "[自訂log識別字串]: IPSec Active-Peers $RemoteHost STATE is $[/ip/ipsec/active-peers get (i) state]. ";
         /ip/ipsec/active-peers kill-connections;
}
      :log warning "[自訂log識別字串]: IPSec down, kill IPSec connection.";
   }
}

公用函數每次重開機需要載入記憶體,所以用開機排程執行:

開機執行排程載入 ScriptCommon

再利用排程指定從介面 BridgeLan (區域網路) 連接 IPSec VPN Gateway:

利用排程檢查遠端 VPN Gateway 是否正常連線

內建 ping 功能可以指定網孔或是 Bridge 的介面來進行連線測試,若有必要,也可以指定用網孔進行 DNS 連線測試,會比 netwatch 好用,但最終還是要看 IPSec 能不能連線,所以我沒做複雜的邏輯分別測試不同的 WAN ,直接測試 IPSec 能否正常連線,不能就砍掉讓系統自動重建。

原則上,在光纖斷網,會自動移轉到 4G ,然後自動重新撥號,我這段只是針對自動變化行為不正常時,強制斷線重連,沒有這段在一般狀況下不會有感覺,我是想,是不是因為我持續插拔網孔,讓系統的 timeout 還沒滿足,就被我當成異常… 但我不希望 IPSec 斷太久,所以超過 90 秒還連不上,我也強制中斷讓他自動重新建立連線了。

Categories: 資訊管理, 工作點滴, 技術分享 | 標籤: | 發表留言

[RouterOS] 雙 WAN 備援線路


先前介紹

[RouterOS] 多孔上行設定

的本質是一個 WAN ,但避免網路線路出問題,所以透過 Bond 將多網孔綁成一孔來上行,得到備援線路機制。

這次介紹的是在已經有 WAN 的情況下,再加一路 WAN 來進行不同網路間的備援,一般情況會選用不同的 ISP 業者,避免單一業者出問題後,備援網路也不通,這次是以 4G 網路做備援,要哪家業者,接哪家的 SIM 卡即可。

開始之前,可以先看一下原廠的文件:

高可用度解決方案 High Availability Solutions

網路架構大概是這樣:

網路分類BridgeGateway
光纖網路WANBridgeWan172.16.60.1/24
行動網路WANBridgeLTE172.22.0.1/24
區域網路LANBridgeLan10.1.*.1/24

行動網路我選擇一台工業級的 4G Router ,其他設備參閱上面連結的文章,網路設備我用停用的庫存備品 RB450 來測試,RouterOS 版本為 v7.7 。

在一般範例通常不用 Bridge 而用網孔,用 Bridge 的好處是可以多孔設定,屆時網孔故障後可以快速換孔,必要時可以做 Bond 來多條網路線共用,所以我習慣用 Bridge ,當然用了 Bridge 效能會慢一點。

這篇主要介紹新增第二外網,所以只有一個外網的基礎設定就不再介紹,請參考相關前文。若有需要,可以依流程繼續新增更多的外網。

首先新增一個 Bridge,取名為 BridgeLTE ,其他使用預設值不用動。

新增一個預設的 Bridge

指定網孔加入 BridgeLTE,這邊是測試,就只加入一個網孔,如果網路線只有室內配線通常可以不考慮多孔,也就是一般辦公室環境。工業級設備通常會跨到好幾個不同接地的區塊,就要考慮因浪湧造成直接連接的網孔被擊穿故障,所以就會考慮多孔備援的情形。

網孔2 加入 BridgeLTE

在 Interface List 中,將 BridgeLTE 加到 WAN 。

Interface List

設定 BridgeLTE 在 4G Router 下的 LAN IP,這樣如果有多個網孔,隨便插一孔,也會用 BridgeLTE 的 IP 上網。

LAN IP 設定

在 Route 加入外部 IP 的 Gateway 。優先順序是靠距離 (Distance) 調整。如果是要走負載平衡,也就是同時生效的時候,通常會跟 BridgeWan 相同,在 RouterOS 預設為 1 ,這邊希望 BridgeLTE 是備援架構,BridgeWan 若正常為優先通道,所以 Distance 設定為 2 ,優先順序可以依照此原則調整。

加入 Route 的 Gateway

基本上到這裡就設定完畢,可以透過網路線插拔後,執行 traceroute (內建工具) 或在 Windows 下執行 tracert 來觀測 RouterOS 經過不同網路連接到目的地。

Categories: 資訊管理, 工作點滴, 技術分享 | 標籤: | 1 則迴響

[Office] Outlook 365/2016/2019 變更預設收件匣


在 Outlook 2007 以前,Outlook 在使用 POP3 收信時,預設會將信件收到 Outlook.pst (個人資料夾) 裡面的收件匣。

在 Outlook 2010/2013 的時候,預設依照電子郵件信箱建立對應的 .pst 來收信,但是在建立電子郵件信箱時,可以很輕鬆地選擇 .pst 讓它仍然將信件收取到 Outlook.pst\收件匣。

隨著電子郵件普遍化,一般使用者多半有多個信箱,但通常搞不懂如何透過 Outlook 設定收件方式,所以 Outlook 365/2016/2019 新版將設定收件方式加以簡化,反而導致部分舊功能因為畫面精簡後不能在一開始建立電子郵件信箱時執行。

對於大多數人來說,不同的電子郵件信箱歸類到同一個 .pst 是很自然的事,所以不太會有需求變更預設收件匣,但 Outlook 在收發郵件時,若因為當機、收發郵件過長(執行緒鎖定) ,非常常容易造成 .pst 損壞,所以我在家裡的電腦習慣用舊的方式收信,先收到 Outlook.pst\收件匣,再用郵件規則分信,這樣發生問題時,通常只有 Outlook.pst 受損,由於信件收進來就自動使用規則分到不同 .pst 後,Outlook.pst 內本身沒甚麼信件,修復起來快,也不容易造成信件遺失。

當然,也有其他特殊需求需要變更到不同的 .pst 內收信,下面就直接說明步驟了。

1. 左上角選單:檔案 > 資訊 > 帳戶設定 > 帳戶設定

帳戶設定
帳戶設定

2. 在 電子郵件頁籤 下方,針對每個電子郵件帳戶點選 [變更資料夾],例如將原先的收件匣改變更到 Outlook\收件匣。

選擇收件匣
選擇收件匣

若有需要新增 .pst 或子目錄,在上面畫面右側有按鈕可點選。

這樣就完成設定了。

若須將信件設定到既存的 .pst ,例如從舊電腦拷貝過來的 .pst ,就點選資料檔頁籤進行管理。

資料檔頁籤
資料檔頁籤

我個人習慣將 .pst 都放到 D 槽,這樣若是 Windows 要重灌或是帳號受損,我的 .pst 都能安好無缺,而且也便於備份管理。我個人習慣將 .pst 依照功能性區分,我同學有人會依照年份區分,依照年份區分的好處是可以每年固定燒錄 .pst ,就可以確保當 .pst 受損時,可以從光碟的備份還原。

最後來看一下這個畫面擷圖對應的 Office 版本。

Office 帳戶
Office 帳戶

點選 關於 Outlook

關於 Outlook
關於 Outlook

這是公司的 Office 365 ,若是要跟家裡個人的 Office 365 連結,例如使用家裡的 OneDrive ,就在左邊點選新增服務。若要更換帳號,可以參考前篇:

[Office] Office 365 企業授權更換

Categories: 資訊管理, Office, 工作點滴, 技術分享 | 標籤: | 3 則迴響

[IE11] 不能執行 Java 應用程式?


話說,我把 Win7 x64 升級到 IE11 了。但是 IE11 的選單會在畫面上產生鬼影,即使關閉 IE11 後仍然存在,只能登出重新登入。

好吧,到 nVidia 去更新顯卡驅動程式看看會不會改善。

我到 nVidia 跑自動偵測 GPU 的功能,nVidia 說我 Java 沒裝,不能跑:  http://www.geforce.com.tw/drivers

?原先 IE10 有裝可跑。

改到 java 跑驗證說有裝:  http://www.java.com/zh_TW/download/installed.jsp

一直搞不定,重裝 java nVidia 還是說我沒裝,上網搜尋,有人提出

網際網路選項 > 進階 > 啟用加強的受保護模式  要關閉

我原先就是關的,所以只好啟用測試,關閉再測試,還是卡在那,我問同事的 IE11@Win8.1 也會被當成沒裝。

是 nVidia 的偵測太爛,還是我的 IE11 跑有問題?  因為 Java 網站有跳出 Java 應用程式執行確認視窗,從這角度來看,應該是裝好的,我懷疑是 IE11 的 User-Agent 變更後,很多網站沒跟著改… 造成把 IE11 當成其他瀏覽器~

按下 F12 跑相容模式到 IE10 … nVidia 就可以跑自動偵測 GPU 了。

這應該是 IE11 起,在 User-Agent 中拿掉 MSIE 這個關鍵字,我在寫網頁偵測瀏覽器的時候,很幹 IE … 但設定相容模式時,User-Agent 又會有 MSIE ,所以可能是 nVidia 還沒針對 IE11 的識別字串調整網頁系統。

Categories: 自用整理, 資訊管理, 工作點滴 | 1 則迴響

[ERP] 伺服器搜尋的連線字串


拿 Windows Server 當檔案伺服器,檔案一多,就會需要在伺服器上找檔案,當然可以簡單用檔案總管搜尋,也可以用 Windows Server 內建的 Index Service 或是另外安裝的 Windows Search 搜尋。

Index Service 在 Windows Server 2008 預設不安裝, 相信未來的版本也沒有了,這邊列參考文件及範例,我在 Win2003 測過可用:

快速參考文件:http://support.microsoft.com/kb/820105

連線字串:Provider=MSIDXS.1;Data Source=System;

查詢範例:

SELECT Directory,Filename,Path, Size

FROM SCOPE()

WHERE FREETEXT(‘關鍵字’) AND Directory LIKE ‘e:\路徑\%’ AND Filename LIKE ‘%.doc’

完整參考文件:http://msdn.microsoft.com/en-us/library/ee805985.aspx

我目前採用 Windows Search :

完整參考文件:http://msdn.microsoft.com/en-us/library/windows/desktop/ff628790.aspx

連線字串:Provider=Search.CollatorDSO;Extended Properties='"Application=Windows"‘;

查詢範例:

SELECT TOP 200    System.ItemFolderPathDisplay, System.ItemName, System.Size, System.DateModified, System.ItemType, System.KindText

FROM SYSTEMINDEX

WHERE SCOPE=’file:E:/路徑/’ AND CONTAINS(‘關鍵字’) AND FREETEXT(‘模糊查詢關鍵字’)

兩個搜尋的欄名請在相關參考文件查詢,因為裡面有非顯示欄名,所以必須明確指明欄名,不能使用 SELECT * 來取代。

Windows Search 變更索引路徑,可從 [控制台] > [索引選項] 進行變更,並不是所有的檔案內容都可以進行搜尋,若要搜尋 .pdf 文字內容,在微軟下載中心有 Filters 可安裝。

因為本篇的主題是 連線字串 ,就用 VS2010 伺服器總管來測試:

用個簡單的網頁選項來測試:

對於嫻熟的開發者來說,只要知道連線字串,剩下來直接套用既有程式碼即可,如果不熟的話,可以直接參查 ADO.NET 關於 OleDB 類別的用法,微軟的線上手冊,網路上的資源都很多,就不在這重複了。

Categories: 資訊管理, 資料庫, 工作點滴, 技術分享 | 1 則迴響

與發信蠕蟲對決經驗分享


話說前幾天,接近中午吃飯的時候有同事反映說不能寄信,就跑去他電腦幫忙看。

按照我除錯的習慣:

telnet 公司MailServer 25 、telnet msa.hinet.net 25

都是能連線,但是螢幕上沒有登入的回應。

接下來打開 Outlook ,依照這篇「[Outlook]啟用紀錄 追蹤收發郵件的問題」啟用追蹤功能來看,連線紀錄看起來是正常連到 Server ,但是卻被 Server 拒絕連線,接著公司的老大也反映無法寄信,就先回去測試我自己,的確我也沒辦法寄信,首先猜想會不會像前次一樣,有人中毒了,然後猛發封包造成上傳封包滿載,一看,果然有兩個問題 IP 上傳封包很大,有一個問題 IP 連線數過高,先把這三個 IP 封鎖 5 分鐘測測看,仍然不能連線,就先跟著大夥出去吃飯了。

吃完飯回來以後,其他網路服務都正常,但仍然不能寄信,用 telnet msa.hinet.net 25 變成完全不能連線,接著我測了多家網域的 port 25 ,由於標準 SMTP 是走 port 25 溝通,所以測了幾台 Mail Server 都不通時 (例如考選部寄發通知信的 telnet mail.moex.gov.tw 25),我判定應該是網路連線被擋,確認路由防火牆內沒有被加入規則後,重開路由再試看看,當然仍然完全不能連線。

我印象中我以前忘了不知道幫哪個單位處理不能寄信問題時,曾經碰上被 HiNet 斷網的,所以我就打 0800080412 去問,那個接電話的實在很菜,我已經跟他說我用 telnet 測,就直接連不上了,他還一直問我是哪個 Outlook 版本… 只好換個方法問,我說:「我記得 HiNet 有個網址,可以看哪個 IP 因為廣告信被停權,這個網址在哪?我想要確認一下。」

http://spam.web.hinet.net/black_list_fixed.html

果然,公司的 eMail 被擋,然後我就問了一下原因跟復權的申請步驟。HiNet 說在 10 月底已經有發信通知,說有被檢舉發廣告信,然後周一有發通知信說會被停權,申請復權要跟 Spam 小組聯絡,給了我一支電話。這可糗了,HiNet 說發的 eMail 信箱完全沒人知道帳號密碼,是申請 HiNet 附贈的 eMail ,但是公司有另外租用信箱服務,所以根本沒人用,也沒人知道這個信箱,要到這個網址去重設新的密碼:

http://msweb.hinet.net/USER/forget_password.htm

又糗了,這邊需要輸入連線密碼,連線上網密碼卡也沒人留下來,也沒交接,連附掛電話是幾號都不知道,HiNet 說這樣要去臨櫃辦理,要帶負責人印章、公司章及最近的繳費收據作為證明…

山不轉路轉,路不轉人轉,我就只好去路由主機偷連線密碼出來。熟 dhtml 的都知道怎樣偷密碼,這邊就不教壞菜鳥群了~

連入 HiNet WebMail 後,看了兩封信,第一封10月底的信件是說有人檢舉發送主題為「Hello」的郵件,請我們內部檢查。第二封是說上周仍然觀查到持續發送廣告郵件,將於這天開始停權到12月上旬。由於 WebMail 上面這兩封郵件都有迴紋針標記,但是讀不到附件,所以先跟 Spam 小組聯絡,請對方將問題郵件寄過來,這樣我可以依據信頭來追是哪台發的,此外登記一個我最近才申請的列入職務交接公司信箱做為聯絡之用,Spam 小組要求要先排除問題才能解除封鎖,在等 Spam 小組發信過來之前,先把每台電腦的 IP 及電腦名登記起來。找到目標電腦後,祭出這篇「iThome 電腦報 306 期」提到的微軟免費工具,TcpView 及 Process Explorer,首先先用 TcpView 找出是哪些程式在連網路,發現是 updates.exe 這隻程式嫌疑很大,再用 Process Explorer 找出這隻程式的實體路徑跟命令列看看,這隻程式放在 %AppData%\亂數目錄\updates.exe 下,顯然不是正常程式的位置,之後搜尋註冊資訊檔,清掉相關資料後,把相關程式砍掉,這台有裝某家一年免費的防毒程式,看起來到期很久了,之後上網搜尋,看起來應該是 2010/9/10 改版的這隻會發 eMail:

http://www.eranger.com.tw/virus.php?v_id=818

http://about-threats.trendmicro.com/Malware.aspx?language=tw&name=WORM_MEYLME.B , http://www.trendmicro.com.tw/solutionbank/2/details.asp?id=36459

另外有一台用 TcpView 檢查是 Skype 一直在發送封包,但是把 Skype 關掉後,變成是 System 發送封包,怕是 RootKit 等級的… 但是那台電腦急著用,只好先放行,還有一台電腦是另一位主管的,連線數過高,但不確定是不是因為不能寄信時,他一直重寄造成,所以列入觀察名單。

HiNet 解除封鎖後,還是一直不能寄信,打電話去 0800080412 問,對方說要把小烏龜關掉重開… 擋的時候都不需要關機重開,為啥解鎖要關機重開?只好乖乖的關小烏龜重開,重開完就正常了。

Categories: 資訊管理, 技術分享 | 發表留言

在WordPress.com寫網誌.