2013年3月21日 星期四

[轉] 寬頻網絡部署IPv6探討


  雖然IETF的IPv6工作開始於1990年,但截至目前為止IPv6還是很少被用於個人業務上。雖然各國政府/機構一直在推動采用服務提供商部署IPv6,但是沒有真正的商業上的驅動力,一方面沒有新的應用需要IPv6,另一方面普遍認為IPv6的引入成本太高。上述原因導致了服務提供商很少關註在住宅寬帶網絡中引入IPv6。但是,隨著公網IPv4地址的枯竭,智能手機和M2M設備的迅速普及,越來越多的人認識到需要通過引入IPv6來維持業務增長並為客戶提供完善的服務。
  從技術角度看IPv6與IPv4是不兼容的,並且IPv6中的一些新概念會改變寬帶網絡的運作模式:
  IPv6的尋址方式:單播:LLA(鏈路本地地址),GUA(全球單播地址)和ULA(本地唯一地址),組播尋址,廣播尋址的取消
  IPv6報頭的變化:例如下一個報頭,等
  SLAAC:無狀態地址自動配置,不需要使用DHCPServer
  缺省路由器支持使用路由器通告(RA)
  DHCPPD:通過DHCP的前綴委派為家庭網絡分配前綴地址
  鄰居發現(ND),MLD(組播偵聽發現)等通過ICMP支持
  盡管這些改變都有很好的理由,但是這些概念會影響IPv6如何在住宅用戶網絡部署,網絡中各個網元對IPv6的支持程度也不盡相同。
  2終端設備硬件/操作系統
  PC:MACOS,Linux,WindowsVista/Windows 7具有良好的IPv6支持,而Windows XP可工作在雙棧模式,Windows 98不支持IPv6
  手機終端對IPv6的支持剛剛開始(Symbian,iPhone,Android等)
  VoIP系統對IPv6的支持較較差
  IPTV系統/機頂盒對IPv6的支持較差
  CPE/家庭網關
  在新的xDSL/GPON/以太網設備上開始支持IPv6
  接入節點
  DSL/GPON/以太網設備:大多數廠商開始支持IPv6。
  匯聚/邊緣/核心網絡設備
  大多數設備很早就開始支持IPv6,有些已經部署了一段時間。
  固定移動業務邊緣節點(BNG/ BRAS,媒體網關GGSN/ PGW)
  BNG/BRAS:大多數廠商支持基於IPv6的PPPoX,IPoE(DHCPv6/ DHCPv6 PD)和LNS
  GGSN/PGW:大多數廠商都支持3GPPR8和R7的IPv6架構
  應用
  最終用戶應用程序:是否能在合適的操作系統上運行,是否能夠運行IPv6API從而支持IPv6網絡連接
  網站:是否支持IPv6尋址和連接
  CDN:是否支持IPv6尋址和連接
  上述因素對引入IPv6的影響取決於運營商所選擇的網絡設計。接下來會具體分析在在固定/移動網絡中的引入IPv6的場景,因為大多數組播IPTV平臺還沒有準備好向IPv6遷移而大多數IPTV方案不需要使用公網IPv4地址,所以分析將集中在建立單播IPv6連接上。
  PPPoE網絡中引入IPv6
  在使用PPPoE的電信網絡環境中如何支持IPv6在寬帶論壇的TR–187中有明確定義。在PPPoE/L2TP網絡中引入IPv6不會對接入和匯聚網元產生任何影響。IPv6PPP會話認證方式與IPv4一樣使用PAP/CHAP或option82,並且IPv4和IPv6會話的認證可以在同一個認證階段同時進行。由於PPPoXIPv6CP只定義鏈路本地地址,全球IPv6地址通常由DHCP或SLAAC分配。在使用IPv6路由型家庭網關的情況下,在家庭網關和BNG/BRAS之間需要下列機制確保IPv6連接。
  PPPoEIPv6CP用於鏈路本地地址分配(LLA)
  DHCPv6的前綴委派(IA- PD)用於獲取局域網地址前綴
  無狀態DHCPv6用於獲取其他配置參數
  當部署numberedRG模型時,有狀態的DHCPv6(IA-NA)用於獲取家庭網關的IPv6地址。而部署unnumbered RG模型時,則不是必需的
  使用路由器通告分配默認網關
  采用路由型家庭網關PPP模型時,建立IPv6連接的典型流程如下圖所示:
圖1IPv6PPPoE接入– 路由型RG:DHCPv6 PD
圖1IPv6PPPoE接入– 路由型RG:DHCPv6 PD
  另一種用於提供IPv6PPPoE連接的方法是使用橋接型家庭網關,也稱為主機模型。為確保在這個模型下的IPv6連接,在終端設備(通常是個人電腦)和BNG/BRAS之間需要執行下列機制。
  PPPoEIPv6CP用於鏈路本地地址分配(LLA)
  SLAAC用於為主機獲得全球單播IPv6地址
  無狀態DHCP用於獲取其他的配置參數
  使用路由器通告分配默認網關
  采用橋接型家庭網關PPP模型時,建立IPv6連接的典型流程如下圖所示:
  
圖1IPv6PPPoE接入– 路由型RG:DHCPv6 PD
圖2IPv6PPPoE接入– 橋接型RG:SLAAC
  提供PPPoE業務時,使用N:1VLAN或1:1VLAN的結構對於部署IPv6還是IPv4沒有區別。在采用PPPoE的寬帶網絡中引入IPv6只對BNG和CPE/RG產生影響,對CPE/RG具體影響取決於家庭網絡使用橋接模式還是路由模式。采用RADIUS進行認證/計費/COA時,還需要RADIUS支持一些新的屬性。
  IPoE網絡中引入IPv6
  在電信網絡中支持IPv6IPoE在寬帶論壇中的TR–177中有詳細定義。引入IPv6IPoE對網絡的影響主要取決於部署的VLAN模型是1:1模型還是N:1模型,以及家庭網絡選擇橋接型還是路由型部署模式。
  當采用1:1VLAN模型時,可以從VLANID判斷家庭身份。因此引入IPv6時,只要現有的設備支持基本的IPv6轉發機制,無論是接入網絡還是匯聚網絡都不需要有任何變化。而采用N:1VLAN模型時,接入節點至少要支持LDRA(輕量級的DHCPv6中繼代理),以確保BNG/BRAS知道收到的DHCP請求是從哪個用戶發出的。同時,接入節點最好能夠支持anti-spoofing。
  使用IPv6路由型家庭網關部署DHCPv6,在家庭網關和BNG/BRAS之間需要執行下列機制以確保IPv6連接。
  DHCPv6的前綴委派(IA-PD):為家庭網關分配唯一的IPv6前綴在家庭網絡中使用。
  如果使用numberedRG模型,為家庭網關分配DHCPv6廣域網地址
  從BNG收到有效路由器通告後,設定BNG鏈路本地地址作為下一跳缺省路由
  采用路由型家庭網關IPoE模型時,建立IPv6連接的典型流程如下圖所示:
圖1IPv6PPPoE接入– 路由型RG:DHCPv6 PD
圖3IPv6IPoE接入(xDSL/FTTx接入)-路由型RG:DHCPv6 PD
  當部署橋接家庭網關模型來支持IPv6IPoE時,對網絡的影響取決於是采用DHCP還是SLAAC為終端設備分配地址。采用DHCP時,橋接型家庭網關IPoE模型與路由型家庭網關IPoE模型的主要區別是只對主機分配一個IA地址而不需要DHCPPD地址。值得關註的是要確保家庭網絡中的IPv6設備之間的通信在本地完成的,不通過BNG。
  而采用SLAAC則會帶來一系列新的問題。在N:1的VLAN部署模型中,BNG不知道路由器請求消息是從哪個用戶發來的,因此BNG不知道在路由器通告消息發送哪個前綴。為了解決這個問題,接入節點需要在路由器請求消息中增加一個線路標識選項,就像對DHCPv6所做的一樣。與此同時,BNG/BRAS需要確保對應的路由器通告消息可以被接入節點轉發到正確的用戶處。
  由於接入網絡的split-horizon的轉發行為,重復地址檢測(DAD)消息不會被送給鄰近的用戶,BNG需要支持DAD代理功能幫助確保DAD功能正常工作。因為這些問題仍在IETF討論,因此目前很少有BNG/接入設備支持這種場景。
  移動網絡中引入IPv6
  移動網絡中的IPv6連接場景在3GPPR7/R8等規範中定義得很清楚。建立IPv6連接所涉及的主要網元是UE和GGSN/PGW。
  在移動網絡中提供IPv6連接,在UE和GGSN/PGW之間需要運行下列機制:
  SLAAC(路由器請求/路由器通告)使用/64地址提供IPv6連接
  在創建的PDP響應中的PCO選項中提供DNS信息
  從GGSN/PGW收到有效路由器通告後,設定GGSN/PGW的鏈路本地地址作為下一跳缺省路由
  3GPP從R8開始定義了一種機制,在單一的PDP/BearerContext上使用PDPtype(IPv4IPv6)同時分配IPv4和IPv6地址。有了這一機制,引入IPv6時不需要額外創建PDP Context。然而,在R8之前,每種PDN類型(IPv4和IPv6)都需要一個PDP Context,這會降低GGSN的可擴展性。
  
圖1IPv6PPPoE接入– 路由型RG:DHCPv6 PD
圖4移動網絡引入IPv6
  在解決IPv4公網地址耗盡的問題和逐步引入IPv6的過程中有很多可能性,也會有很多部署的實際問題,阿爾卡特朗訊一直使用ISOCORE第三方獨立實驗室驗證在各種IPv6部署場景下的部署細節。阿爾卡特朗訊將會通過細致的技術驗證工作幫助固定和移動運營商在從IPv4向IPv6遷移的過程中做出正確的選擇,並從技術和業務上解決多種緯度的問題。

2013年3月20日 星期三

APIPA(Automatic Private IP Addressing)

APIPA 是 Windows 作業系統所具有的一種特性。對於公司企業的網路環境,一般而言都會有 DHCP(Dynamic Host Configuration Protocol) 伺服器來支援用戶端電腦 IP 位址、子網路遮罩(subnet mask) 與相關DHCP選項的自動設定。但是對不具有 DHCP 伺服器的網路環境而言,如果用戶端電腦一開機找不到 DHCP 伺服器,就會自動啟動 APIPA 機制,將自己的 IP 位址設定為 169.254.0.1 到 169.254.255.254 的範圍,而子網路遮罩則是 255.255.0.0。之後用戶端的 APIPA服務會持續每5分鐘一次,週期的檢查 DHCP 伺服器是否出現,如果偵測到 DHCP 伺服器,APIPA 便會停止,原先的IP 相關設定轉為向 DHCP 伺服器要求。

由於 APIPA 是自我指定 IP 位址,因此就有可能產生相同 IP 位址的問題,要避免 IP 衝突的問題,APIPA 用戶端會送出 gratuitous ARP(Address Resolution Protocol)封包,以便宣告我要使用某個 169.254.x.x的 IP 位址,若有其他 APIPA用戶端剛好要用到同樣 IP 位址時,先前佔用此 IP 的用戶便會告訴後者這個 IP 位址已被採用,後者就只好重新配一個 IP 位置,若配到的 IP 位址也被用掉了,就再重覆配置的動作,總共有十次的配置的機會。

APIPA 對於小型不作路由的網路環境很實用,不需作任何設定,電腦之間就能透過網路連線,而且從 Windows 98 之後的 Windows 作業系統都有支援 APIPA。

2013年3月1日 星期五

Resetting a USB Stick, for Windows


To uninstall Tails from a USB stick, and use it for something else, you have to reset it.
The content of the USB stick will be lost in the operation, but an attacker might still be able to tell that Tails was installed on the USB stick using data recovery techniques unless you securely clean all the available disk space afterwards.
The following instructions do not work on Windows XP.
The version of Diskpart does not list removable disks.

Using Diskpart

You might overwrite any hard drive on the computer.
If at some point you are not sure about the disk number, stop proceeding.
  1. Make sure that the USB stick that you want to reset is unplugged.
  2. Click on the Start button, and choose All Programs ▸ Accessories ▸ Command Prompt, to open the Command Prompt,
    More help on how to start the Command Prompt
  3. Execute the diskpart command, to start Diskpart.
  4. Execute the list disk command to obtain information about each disk in the computer.
    For example:
    Diskpart> list disk
    
      Disk ###  Status      Size     Free     Dyn  Gpt
      --------  ----------  -------  -------  ---  ---
      Disk 0    Online        80 GB      0 B
    
  5. Plug the USB stick that you want to reset. Run the list disk command again.
    A new disk, which corresponds to the USB stick, appears in the list.
    For example:
     Diskpart> list disk
    
       Disk ###  Status      Size     Free     Dyn  Gpt
       --------  ----------  -------  -------  ---  ---
       Disk 0    Online        80 GB      0 B
       Disk 1    Online         4 GB      0 B
    
    Make sure that its size corresponds to the size of the USB that you want to reset. Note down the disk number assigned by Diskpart to the USB stick.
  6. To select the USB stick, execute the following command: select disk=number. Replace number by the disk number of the USB stick that you want to reset.
  7. Execute the clean command to remove all partitioning structures from the USB stick.
  8. Execute the convert mbr command to give the USB stick a partition table.
  9. Execute the create partition primary command to create a new primary partition on the stick.

How to use simple speedtest in RaspberryPi CLI

  pi@ChunchaiRPI2:/tmp $  wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py --2023-06-26 10:4...