pablo cesar aimar 巴勃羅·塞薩爾·艾瑪爾

          “窗寒西嶺千秋雪,門思東霧萬里床!”

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            16 Posts :: 3 Stories :: 6 Comments :: 0 Trackbacks

          2006年1月16日 #

          隨著各行業信息化建設的發展,使人們對網絡服務器的處理能力、高可用性提出了更高的要求。尤其是高度信息化的企業中,關鍵性網絡服務已經成為企業生成過程中的重要環節,服務的中斷意味著生產的中斷,機會的喪失。
              負載平衡不但可以有效地解決單服務器的性能限制,而且可以實現故障的快速轉移,保證服務的高可用性以及靈活的擴展性。于是,負載平衡幾乎是每個網絡管理員的必修課。本文章主要講述windows2003在網絡負載平衡(Network Load Balancing )方面的應用。
              Windows的負載平衡主要是依靠組建網絡負載平衡群集來實現的,支持WEB、FTP、Proxy、VPN、Windows Media、Telnet等服務器的負載平衡。
              負載平衡的原理
              NLB其實就是提供相同服務的一系列服務器同時監聽服務請求,并允許在同一時間運行多個應用程序實例。NLB的核心是位于網絡適配器驅動和網絡層之間的WLBS.SYS的篩選器驅動。NLB把每個IP數據包分發到所有群集節點,并根據數據包的源地址、目標地址、傳輸層協議、端口、群集的配置參數以及算法做出由某個節點處理而其他節點丟棄此數據包的統一決定。
          負載平衡的概念
              配置負載平衡之前,需要理解幾個重點概念。
              群集IP 地址和子網掩碼:群集的虛擬IP地址,是表現在客戶面前的"外部"地址。
              專用IP 配置和子網掩碼:群集各節點的本地IP地址,唯一標識群集的各節點。
              完整Internet名:能夠訪問此群集的DNS名稱,比如cluster.it.com.cn。
              群集操作模式:在方案的選擇中詳細講述。
              端口規則:windows2003中新加的功能,細化了控制微粒,可以阻止某節點特定應用程序的流量,而在windows2000中這是不能實現的。
              優先級(單一主機標識符):范圍在1-32之間(32是一個群集的最大節點數)。此值決定如何處理沒有包含在任何為群集定義的端口規則中的傳入網絡通訊。具有最高優先級的主機(優先值最小)將處理所有這種通訊。
          負載平衡的要求
              操作系統的要求 在windows2003的所有版本系統中,NLB都是可用的。群集可以兼容以前的windows服務器操作系統(比如2000,NT4.0)。
              網絡結構的要求
              NLB可以在連接到FDDI(光纖分布式數據接口),以太網,吉比特以太網的服務器上運行,但不能在Token Ring(令牌環)網絡上運行。
              網卡的要求
              所有的網絡適配器必須在Windows2003的硬件兼容列表中。一般情況下,服務器的網卡都會符合要求。
              交換機和路由器的要求
              當計劃使用VLAN來防止交換數據洪水時,必須確保交換機支持VLAN設置;當使用多播時,部分路由器不支持把單播IP地址映射為一個多播MAC地址,需要手工設置。
              通訊協議的要求
              綁定到群集的網絡適配器只能安裝TCP/IP協議,可以必須靜態分配,不支持DHCP。
              應用程序的要求
              首先必須是TCP或UDP通訊,而且確定當前應用程序或服務必須支持NLB。
          負載平衡的設計
              由于網絡負載平衡不能根據CPU和內存利用率來分配流量,而且性能并不是隨著節點數量的增加而線性變化的(因為隨著規模的增大,由此產生的網絡開銷,CPU開銷也隨著增大),,所以正確的設計和規劃負載平衡是至關重要的。
              群集的實現需要群集內部的通訊(比如心跳信息和聚合通訊)以及管理和內容復制的數據傳輸。這部分通訊占用了網絡的可用帶寬。為了克服單網卡的局限性,可以使用雙網卡,一個用于負載客戶端的通訊,另一個用于傳輸內部通訊,管理和內容的數據。
              群集操作模式的選擇是設計的重要一步。單播模式是指各節點的網絡適配器被重新指定了一個虛擬MAC(由02-bf和群集IP地址組成確保此MAC的唯一性)。由于所有綁定群集的網絡適配器的MAC都相同,所以在單網卡的情況下,各節點之間是不能通訊的,這也是推薦雙網卡配置的原因之一。為了避免交換機的數據洪水,應該結合VLAN使用。
              多播模式下,網絡適配器在保留原有的MAC地址不變的同時,還分配了一個各節點共享的多播MAC地址。所以,即使單網卡的節點之間也可以正常通訊。但單網卡的帶寬占用、競爭網絡適配器等缺點仍然存在。
              此外,部分路由器(特別是Cisco產品)還不支持單播IP地址和多播MAC的ARP映射的自動創建,需要手工配置。IGMP多播(只有在選中多播時,才可以選擇此項),在繼承多播的優點之外,NLB每隔60秒發送一次IGMP信息,使多播數據包只能發送到這個正確的交換機端口,避免了交換機數據洪水的產生。
              端口規則是windows2003的新特性。NLB提供3種篩選模式,可以針對端口規則采取禁止、多主機負載平衡和單主機的特殊處理。其中,多主機篩選模式提供了真正意義上的負載平衡,并且可以根據節點的實際處理能力進行負載量的分配。
              單個群集的最大節點數為32,如果還不能滿足需要,可以使用Round-Robin Domain Name Service把請求映射到多個群集上(但也因此引入了單點故障DNS,除非DNS冗余)。
          負載平衡的安裝與配置
              Windows2003引入了網絡負載平衡管理器(控制面板->管理工具),使負載平衡的安裝和配置更加簡單。管理器可以容易的實現群集的建立、刪除,節點的添加、 刪除、修改以及故障的檢測。
              運行網絡負載平衡管理器,選擇 群集 -> 新建 ,彈出"群集參數"對話框,按需要配置。如下:


          下一步,系統會提示添加附加群集IP,如果不需要可直接按下一步進行端口配置。以web群集配置為例,其典型端口配置如下圖所示:如果會話狀態不保存在該群集上,則相似性選擇無,否則選擇單一或者類C。

          之后,指定一臺主機連接,并選擇一個可用的網絡接口,進行主機參數的設置:

          點擊完成,管理器會自動連接到主機上進行相關配置來創建一個新的群集。可以雙擊日志項目,了解NLB管理器都進行了什么配置。

              雖然,使用NLB管理器是一個微軟推薦的方法,但使用NLB.EXE命令行仍然有它獨特的優點:反應快,便于批處理。因此,掌握NLB命令也是快速部署的需要。

          負載平衡的安全考慮

              群集的遠程管理特性允許管理員在遠程計算機上使用NLB.EXE管理群集。但啟用此功能后,會帶來安全風險,比如密碼泄露和DOS (拒絕服務攻擊)。如果啟用,請確保密碼足夠復雜,并且根據需要在防火墻上進行訪問策略的配置(比如封鎖UDP端口17172504)。

              總結

              負載平衡負載平衡是一項綜合的技術,在實施過程中往往伴隨著其他技術的應用。比如網絡負載平衡群集和服務器群集的結合,甚至與存儲區域網絡或網絡附加存儲相關聯都是一個不錯的主意。

          posted @ 2006-02-17 11:39 pablo cesar aimar 閱讀(413) | 評論 (0)編輯 收藏

          import java.io.*;

          public class Test {
              public static void main(String[] args) {
                  try {
                      Process process = Runtime.getRuntime().exec("ipconfig /all");
                      InputStreamReader ir = new InputStreamReader(process
                              .getInputStream());
                      LineNumberReader input = new LineNumberReader(ir);
                      String line;
                      while ((line = input.readLine()) != null)
                          if (line.indexOf("Physical Address") > 0) {
                              String MACAddr = line.substring(line.indexOf("-") - 2);
                              System.out.println("MAC address = [" + MACAddr + "]");
                          }
                  } catch (java.io.IOException e) {
                      System.err.println("IOException " + e.getMessage());
                  }
              }
          }
          posted @ 2006-01-21 10:20 pablo cesar aimar 閱讀(732) | 評論 (0)編輯 收藏

           
           
           
                 近來在網上經常見有人問起Mac地址的問題,那么究竟Mac地址是什么?在現行的網絡中,扮演什么角色呢?下面我們就一同來探討一下關于Mac地址的知識。
                 什么是Mac地址?

            Mac地址就是在媒體接入層上使用的地址,通俗點說就是網卡的物理地址,現在的Mac地址一般都采用6字節48bit(在早期還有2字節16bit的Mac地址)

            前24位由是生產廠家向IEEE申請的廠商地址(這可是要花錢的哦!據說1000美元才能買一個地址塊)。后24位就由生產廠家自行定以了。(早期的2字節的卻不用申請)

            IP地址和Mac地址有什么聯系和區別

            大家都知道,現在有很多計算機都是通過先組建局域網,然后通過交換機和Internet連接的(大學里的校園網就是這樣)。然后給每個用戶分配固定的IP地址,由管理中心統一管理,這樣為了管理方便就需要使用Mac地址來標志用戶,防止發生混亂,明確責任(比如網絡犯罪)。另外IP地址和Mac地址是有區別的,雖然他們在局域網中是一一對應的關系。IP地址是跟據現在的IPv4標準指定的,不受硬件限制比較容易記憶的地址,而Mac地址卻是用網卡的物理地址,多少與硬件有關系,比較難于記憶。

            如何知道自己的Mac地址

            方法比較多,也比較得簡單,在這里介紹兩種常用的方法,在Win9x 可用:WinIPcfg獲得,在2000、XP可用IPconfig -all獲得。如果你已經給自己的網卡分配了IP還可以用 nbtstat -A 自己的IP 如下圖,后者只能在2000/XP下使用。

          如何獲得別人的Mac

            其實上面已經涉及到了,如果是2000/XP用戶可以用 nbtstat -A IP地址(還可以獲得別的東東啊,可別學壞啊)。另外同一局域網內的,你可以用ping IP 或者ping 主機名,然后用arp -a 來獲得。

            如何修改自己的Mac地址

            Mac地址是保存在網卡的EPROM里面,通過網卡生產廠家提供的修改程序可以更改存儲器里的地址,即使網卡沒有這樣的設置我們也可以通過間接的方法修改,一般網卡發出的包的源Mac地址并不是網卡本身寫上去的,而是應用程序提供的,只是在通常的實現中,應用程序先從網卡上得到Mac地址,每次發送的時候都用這個Mac做為源Mac而已,Windows中,網卡的Mac保存在注冊表中,實際使用也是從注冊表中提取的,所以只要修改注冊表就可以簡單的改變Mac

            Win9x中修改:

            打開注冊表編輯器,在HKEY_LOCAL_MacHINE\SYSTEM\CurrentControlSet\Service\Class\Net\下的0000,0001,0002 Win2000/XP中的修改:同樣打開注冊表編輯器,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\4D36E970-E325-11CE-BFC1-08002BE10318 中的0000,0001,0002中的DriverDesc,如果在0000找到,就在0000下面添加字符串變量,命名為"NetworkAddress",值為要設置的Mac地址,例如:000102030405
          完成上述操作后重啟就好了。

            Linux下的修改:

            1.必須關閉網卡設備,否則會報告系統忙,無法更改。

            命令是:"ifconfig eth0 down"

            2.修改Mac地址,這一步較Windows中的修改要簡單。

            命令是:"ifconfig eth0 hw ether 00AABBCCDDEE"

            3.重新啟用網卡

            "ifconfig eth0 up"網卡的Mac地址更改就完成了。

            現在還有很多軟件提供了修改Mac地址的功能,如:Mac2001

            那么既然IP和Mac地址都可以改,那么怎么防御呢?通過簡單的交換機端口綁定(端口的Mac表使用靜態表項),可以在每個交換機端口只連接一臺主機的情況下防止修改Mac地址的盜用,如果是三層設備還可以提供:交換機端口-IP-Mac 三者的綁定,防止修改Mac的IP盜用,這種方法更有效!還有些方法如配置交換機的VLAN,使用用戶認證等,都略顯復雜,再次不多浪費筆墨。
          posted @ 2006-01-16 14:17 pablo cesar aimar 閱讀(507) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 兴山县| 抚顺市| 象山县| 贵定县| 汕头市| 云和县| 平南县| 三明市| 白河县| 平潭县| 胶州市| 大田县| 金湖县| 瓦房店市| 施甸县| 裕民县| 乌苏市| 凤山市| 榆林市| 铅山县| 东乌珠穆沁旗| 宜城市| 灵丘县| 波密县| 通山县| 综艺| 文昌市| 南汇区| 北京市| 鄢陵县| 萨迦县| 顺平县| 潢川县| 盐源县| 松桃| 浮山县| 彭泽县| 通山县| 广东省| 江安县| 巴中市|