2017年4月17日 星期一

Hub(集線器)、Bridge(橋接器)、Switch(交換器)與Router(路由器)

1.Hub(集線器)
在星狀拓樸網路(star topology)中,扮演連接或重新建立訊號的角色,可擴大類比或者是數位訊號。在區域網
路(LAN)中,電腦與電腦利用網路連接時,如果用Hub 連接,即使有任何一段線路出問題,只會有一台電腦無
法運作,不會影響網路中其他電腦的作業。
在接收封包(Packet)進來之後,會將這個封包送到其它所有的電腦(即廣播,每一台電腦都會收到該封包),不
管誰才是應該收到該封包的電腦。

2.Bridge(橋接器)
Bridge是一個用來連接不同的網路區段(segment)的設備,例如﹐可以用一個 bridge 來連接兩個 Ethernet
 segment、或連接一個 Token Ring segment 到一個 Ethernet segment。其主要功能在於決定是否讓
資料訊框(Frame)通過Bridge 到另一端網路上,當Bridge 接收到訊框後,會將訊框目的地的MAC 位址與
Bridge 的table 做比對,如果table 中能找到符合的位址,則進一步確認封包與目的地電腦是否為同一區段網
路,若是的話,目的地電腦不需透過Bridge 就能收到資料(發揮filter功能);如果不是的話,Bridge 就會把訊
框傳至目的地的電腦所在區段網路(發揮forward功能)。
P.S:雖然Bridge被用來分割網路,但是它們並不會隔離廣播或多點傳播的封包。
3.Switch(交換器)
Switch 的作用是在區域網路中,將網路作連接的動作。Switch 有一個table,記錄著每一台電腦的MAC 位址
,當封包進來之後,Switch 會去檢查該封包的目的地的是哪一個MAC 位址的電腦,只將這個封包送給該台電
腦,其他電腦則不會收到封包。
Switch的傳輸方式
(1). Cut Through:接收到目的地址後即轉發出去。延時小,但壞的資料一樣轉發。
(2). Store-and-Forward:接收到完整的資料包後,校驗好壞,好的轉發,壞的丟棄重發。傳輸可靠,但延
時較長。
(3). Fragment free:接收到資料包後,大於64bytes的轉發,小於64bytes的丟棄。好壞介於上述兩種方
式之間。
4.Layer 3 Switch(第三層交換器)

Layer 3 Switch 又稱為IP Switch 或Switch Router, 意即其工作於第三層網路層的通信協定(如IP),並藉
由解析第三層表頭(Header)將封包傳至目的地,有別於傳統的路由器以軟體的方式來執行路由運算與傳送,
Layer 3 Switch是以硬體的方式(通常由專屬ASIC構成)來加速路由運算與封包傳送率並結合Layer 2 的彈性
設定,因此其效能通常可達每秒數百萬封包(Million packet per second)的傳送率,並具備數十個至上百個
以上的高速乙太網路(Fast Ethernet)連接埠,或數個至數十個超高速乙太網路(Gigabit Ethernet)連接埠之
容量。
由於Layer 2 的Switch 並無法有效的阻絕廣播域,如ARP及windows 95/98廣泛使用的NetBEUI協定,因
此就算Layer 2 Switch 以VLAN 的方式將經常要通訊的群組構成一廣播域來試圖降低影響,但仍無法完全避
免廣播風暴問題(同一個VLAN間仍會產生廣播風暴),再加上現今網路(尤其是Campus內部間流量及對外的
Internet/Intranet流量)已不是80/20規則(80%流量在本地,20%是外地),而是漸漸成為20/80規則,
且加上Client/Server 及Distributor Server之運用,因此單靠Layer 2 Switch或傳統Router路由器便無
法符合對效能及Intranet上對安全顧忌(對因廣播而使資訊傳送被盜取的安全疑慮)之要求,因此Layer 3
Switch便大量興起,初期只運用Core端,現在的趨勢已漸漸走向桌面(Layer 3 down to desktop)。

如同Router,Layer 3 Switch的每一個port都是一個Subnet,而一個子網路就單獨是一個廣播域,因此每
一個port的廣播封包並不會流竄到另一個port,其僅負責傳送要跨越子網路的封包(Routing Forward),並
以目的地的IP位址(目的地子網路的網路號碼)來決定封包要轉送至哪一個port,並以Routing Protocol(如
RIP或OSPF)來交換Routing Table並學習網路拓蹼,其通常存放於Layer 3 Switch的Routing Forward
 Data-Base(FDB),並以硬體及Route Cache的方式來加速IP table lookup並予以定址與更新(目前大多
以ASICIC來執行),因此才得以提昇運算效能達成Wiring Speed Forward之目的。

Layer 3 Switch通常提供較大頻寬的交換核心(Switch Fabric)以提供較大的容量(Port Capacity)與較高的
交換效能,近來各廠家並不斷附以Layer 3 Switch更強大的支援能力,如Class of Service(服務等級優先權)
,Quality of Service(服務品質保證),Policy Management(策略分級品質與頻寬管制與管理),Multicast
 Routing(群組廣播路由傳送)等功能,以符合網路環境的快速變化與應用。

P.S:雖然Layer3 Switch也跟Router一樣有路由的功能,但仍無法當作Router使用,因為現在的Layer 3
Switch 因尚缺安全管理、與WAN的連接、優先權管理、支援多種協定封包等功能
5.Router(路由器)
路由器是用來將網路的資訊, 使用在電腦之間傳送的基本設備, 路由器的工作在於 OSI 模式第三層(網路層),
用來決定資料傳遞路徑的設備. 我們使用的IP協定就是藉由路由器將不同的IP位址連接在一起. 網路上的資料
分成一段一段的封包packet, 而這些封包要指向何處便是由路由器來決定的, 路由器會根據資料的目的地, 指
示正確的方向, 計算評估最便捷有效率的路徑來傳輸資料, 也就是說路由器要為封包做最佳化的工作, 找出最
適當的路徑. 路由器通常最少會有兩個介面, 而這兩個介面分別區隔不同的IP網段. 例如IP分享器有WAN和
LAN兩種介面, 區隔WAN的實際IP與LAN的虛擬IP網段.
Router 與Bridge 的另一個不同點在於:
Bridge 只是單純做為一個決定是否讓封包通過的橋樑,Router 則會執行選徑功能(OSPF,EIGRP,...etc.)。
   
HubBridgeSwitchRouter
分割碰撞網域
(Collision domain)
  無   有   有   有
分割廣播網域
(Broadcast doman)
  無   無   無   有

2015年10月29日 星期四

IPSec VPN 

IPSec是一個IETF的標準(公開的標準),他有以下三個特點:
1. 可驗證每一個IP封包 --> 確認真的是某一使用者所傳過來的
2. 可確認每一個封包在傳遞的過程是否有被修改過 --> 
3. 可確保資料的隱密性 --> Hash: MD5 or SHA
在Microsoft用PPTP或是L2TP
IPSec用三種Protocols來做security的架構:
IKE (Internet Key Exchange): 用於協商安全性的參數和建立authentication key
ESP (Encapsulatint Security Paypload): 一種header(檔頭),提供一個encrypting, authenticating, and securing of data 的架構。
AH (Authentication Header): 提供一個authenticating and securing of data 的架構
當Internet的兩端要互相溝通的時候會有兩個Phases:
<-------------------------------------IKE Phase 1 (ISAKMP Phase)----------------------------------------->
Authentication: PSK (Pre-Shared Key)(是由兩方事先先決定好的一個KEY, RSA Signature
Key Exchange: DH(Diffie-Hellman) Group 1,2, or 5
--> Diffie–Hellman密鑰交換(Diffie–Hellman key exchange,簡稱「D–H」)是一種安全協定。它可以讓雙方在完全沒有對方任何預先資訊的條件下透過 不安全信道建立起一個密鑰。這個密鑰可以在後續的通訊中作為對稱密鑰加密通訊內容。
Security Negociation: Encryption (加密) --> DES, 3DES, or AES
Hash --> MD5 or SHA
*當兩方完成協商後會有兩份SA (Service Agreement),這份SA中包含兩方協商過那一些資訊;
這份資料會由我們來設定是由Time Life or 多少Data Size被傳輸後這份SA就會過期。

<-------------------------------------IKE Phase 2 (IPSec Phase)-------------------------------------------->
Encryption (加密):DES3DES, or AES
Hash:MD5 or SHA 
Headers: ESP or AH
Modes: Tunnel or Transport Mode

圖片1.jpg  

由以上的圖,我們可以看到Transfer Mode 和 Tunnel Mode封包的差別:
1. Transport Mode:在舊IP (灰色IP格)後會加上一個ESP/AH的Header,但是這不能在Internet上流動,因為Router會看不懂Private IP(灰色IP格),所以,如果公司內要用Transport Mode一定要內部的設備也是用Public IP才可以通。
2. Tunnel Mode:在ESP/AH Header前面我們會加一個New IP,所以當一個設備收到這個封包,會知道這往那送,因為New IP是個Public IP,當在把NEW IP拿掉後,Gateway Router就可以知道Private IP是屬於其內部的那一台設備。
**還有一點要注意的是如果是Tunnel Mode,從公司內部出去的話會要轉PAT的話會Fail(NAT不會,因為不用看port number),因為ESP header裡的Layer 4的port info被加密了。所以我們要在ESP Header前加一個UDP Header (UDP 4500),這也就是要在Router上啟用NAT Traversal的功能。
當然,ESP和AH用的Port號也要注意,不要被Firewall擋掉了:ESP IP protocol = 50;AH IP Protocol = 51
話不多說,來點實作吧:
1. ISAKMP policy
crypto isakmp policy 10
encr 3des
hash md5
authentication pre-share
group 2
Authentication: pre-share or RA Signature
Pre-Share Key: crypto isakmp key PASSWORD address 100.140.4.2
DH group --> group #
Lifetime --> crypto ipsec security-association lifetime kilo 1048576 (1024 x 1024 k)
2. IPSec transform-set
crypto ipsec transform-set ESP_AES ah-sha-hmac esp-aes 256
3. Access-List
access-list 100 permit ip 192.168.103.0 0.0.0.255 192.168.104.0 0.0.0.255
4. MAP
crypto map S0/0_VPN_MAP 10 ipsec-isakmp
set peer 100.140.4.2
set transform-set ESP_AES
match address (ACL) 100

5. Apply to the interface
int s 0/0 
crypto map S0/0_VPN_MAP
---------------------------------------------------------------------
sh runn....

crypto isakmp policy 10
 encr 3des
 hash md5
 authentication pre-share
 group 2
!
crypto isakmp policy 20
 encr aes
 authentication pre-share
 group 5
 lifetime 3600
!
crypto isakmp policy 30
 encr aes 256
 hash md5
 authentication pre-share
 group 2
crypto isakmp key MYCISCO address 100.140.4.2
crypto isakmp key Cisco address 100.140.1.2
crypto isakmp key CCNP address 100.140.2.2
!
crypto ipsec security-association lifetime kilobytes 1048576
!
crypto ipsec transform-set ESP_SHA ah-sha-hmac esp-aes 256
crypto ipsec transform-set ESP_AES_AH ah-sha-hmac esp-aes 256
crypto ipsec transform-set ESP_AH esp-aes 256 esp-sha-hmac
!
crypto map S0/0_VPN_MAP 10 ipsec-isakmp
 set peer 100.140.4.2
 set transform-set ESP_SHA
 match address 100
crypto map S0/0_VPN_MAP 20 ipsec-isakmp
 set peer 100.140.1.2
 set transform-set ESP_AES_AH
 match address 110
crypto map S0/0_VPN_MAP 30 ipsec-isakmp
 set peer 100.140.2.2
 set transform-set ESP_AH
 match address 130
!
crypto map TU10_VPN_MAP 10 ipsec-isakmp
 set peer 100.140.2.2
 set transform-set ESP_AH
 match address 130
!
!
!
!
interface Loopback100
 ip address 3.3.3.3 255.255.255.0
!
interface Tunnel10
 ip address 100.23.23.2 255.255.255.0
 tunnel source Serial0/0
 tunnel destination 100.140.2.2
 crypto map TU10_VPN_MAP
!
interface FastEthernet0/0
 no ip address
 shutdown
 duplex auto
 speed auto
!
interface Serial0/0
 ip address 100.140.3.2 255.255.255.0
 crypto map S0/0_VPN_MAP
!
interface FastEthernet0/1
 ip address 192.168.103.254 255.255.255.0
 duplex auto
 speed auto
!
interface Serial0/1
 no ip address
 shutdown
!
router ospf 1
 log-adjacency-changes
 network 3.3.3.3 0.0.0.0 area 0
 network 100.23.23.2 0.0.0.0 area 0
!
ip forward-protocol nd
ip route 0.0.0.0 0.0.0.0 Serial0/0
ip route 192.168.102.0 255.255.255.0 Tunnel10
!
!
no ip http server
no ip http secure-server
!
access-list 100 permit ip 192.168.103.0 0.0.0.255 192.168.104.0 0.0.0.255
access-list 110 permit ip 192.168.103.0 0.0.0.255 192.168.101.0 0.0.0.255
access-list 130 permit gre host 100.140.3.2 host 100.140.2.2
!



轉錄:http://gitapl8r.pixnet.net/blog/post/71916513-ipsec-vpn

2014年10月6日 星期一

主動式與被動式 FTP 比較

主動式與被動式 FTP 比較

FTP 是所有通訊協定裡最特殊的,其他的通訊協定例如 HTTP、SMTP、POP3...都只需要一條連線、一個通訊埠,然而 FTP 卻需要兩條連線、兩個通訊埠。FTP的連線包括兩種不同用途,一個是傳遞客戶端與伺服器之間的Command的,也就是一般我們在設定的FTP通訊埠(預設21)。另一個是資料傳送的連線,FTP資料傳送的模式又分二種:PORT、PASV。兩者主要分別在於它們會向FTP伺服器發出不同的FTP Command。
為了釐清者兩者的差別,以及其工作原理,特別撰寫這篇文章加以說明。
以下的文章,將由 FTP 的工作原理開始介紹,希望能清楚的描述兩者的差別以及正確的設定方式。文章中,我們也將透過實際連線,了解不同模式所傳遞的訊息,這將有助於您未來的故障排除能力。

基本原理 
FTP 是屬於 TCP 服務的一種, FTP 是所有通訊協定裡最特殊的,其他的通訊協定例如 HTTP、SMTP、POP3...都只需要一個通訊埠,然而 FTP 卻需要兩個通訊埠,一個用來傳遞客戶端與伺服器之間的命令,一般設在 port 21,稱之為命令通訊埠(Command Port);另一個是真正用來傳遞資料的,一般都設在 port 20,稱之為資料通訊埠(Data Port)。
而問題就出在 Data Port !
因為初期定義 FTP 通訊定的時候,並沒有考慮到後來防火牆的發展,使得傳統的 FTP 的工作原理無法完全適用在網際網路環境,因此就發展出了另外一種替代模式的 FTP 連線方式,在這種模式底下,Data Port 不再只是 20,也因此造成很多讀到舊資料的人,認為只要將 20, 21 兩個通訊埠打開,FTP Server 就能正常運作這樣的錯誤觀念。 以下就由傳統模式開始介紹。
主動式 FTP
傳統式 FTP 連線方式是採用主動模式,由用戶端隨機使用一個大於 1023 (也就是1024以上)的通訊埠(為了方便說明我們以 port N 來代表),與 FTP 伺服器的命令通訊埠(port 21) 建立連線,同時用戶端自己開啟一個 N+1 的通訊埠等待伺服器連線。伺服器接到用戶端的命令之後,便使用資料通訊埠(port 20)主動與用戶端的 port N+1 建立資料連線。
這樣的模式有點像我們開車去加油的溝通方式,駕駛打開窗戶(port N)對著服務人員(port 21)要求加油命令,同時打開油箱蓋、露出加油孔(port N+1),服務人員及拿著油槍(port 20)對著加油孔(port N+1)加油。
所謂的主動式,是以伺服器的觀點來看。要完成一個主動式連線,伺服器必須提供以下幾個溝通管道:
FTP 伺服器開啟 port 21 接受來自外部任意通訊埠的連線(由用戶端要求建立連線) FTP 伺服器使用 port 21 連線到外部任一大於 1023 的通訊埠(回應用戶端的命令埠) FTP 伺服器使用 port 20 連線到外部任一大於 1023 的通訊埠(伺服器主動建立資料連線) FTP 伺服器開啟 port 20 接受來自外部任一大於 1023 的通訊埠連線 (用戶端回覆伺服器資料連線) 
以下我們利用一張圖來做說明:

ActiveFtp2.jpg
步驟一、用戶端使用 port 1024 與伺服器建立連線,並提供 port 1025 的資訊給伺服器。
步驟二、伺服器回應用戶端的連線。
步驟三、伺服器主動與用戶端的 port 1025 建立連線。
步驟四、用戶端回覆伺服器。
由以上的說明可以理解,主動式連線的真正問題不在於伺服器,而是在於用戶端的防火牆。由於用戶端程式並不是自行建立資料連線,而是自己開啟一個通訊埠,要求伺服器連線進來,這對用戶端的防火牆來說是一個危險的安全警訊,大部分的網路環境,都不允許防火牆外部的系統連線到內部的用戶端電腦。 
以下為實際的主動式 FTP 連線範例,我們以Rainbow FTP Server 與 ezFTP 用戶端程式為例,觀察其連線的訊息。

ActiveFtp4.jpg

圖中出現的 PORT 192,168,1,100,6,160 代表用戶端 IP 192.168.1.100, 通訊埠 256*6 + 160,也就是有用戶端只定通訊埠。這和後面要介紹的被動模式完全不同。
被動式 FTP (PASV)
為了解決由伺服器連線到用戶端所產生的安全疑慮,因此發展出了另一種不同的連線模式,稱之為被動模式(Passive Mode, PASV)。讓用戶端程式可以在連線的時候,通知伺服器使用動模式連線。 

使用被動模式 FTP ,不論命令連線或是資料連線都是由用戶端建立,以解決防火牆以及相關資安問題。當用戶端開啟 FTP 連線時,用戶端程式先在本機開兩個大於1023的通訊埠(N, N+1),利用 port N 與伺服器的 port 21 建立連線。不同於主動模式的連線方式,用戶端這次不再提供 N+1 port  與 IP 位址給伺服器,而是送出 PASV 的命令。伺服器收到 PASV 的命令之後,即開啟一個大於 1023 的通訊埠(P),並將這個通訊埠連同伺服器 IP 回覆給用戶端,被動等待用戶端連線,用戶端即利用 port N+1與伺服器所提供的 port P 建立資料連線。
以伺服器的觀點來看,要完成一個被動式連線,伺服器必須提供以下幾個溝通管道:
  • FTP 伺服器開啟 port 21 接受來自外部任意通訊埠的連線(由用戶端要求建立連線) 
  • FTP 伺服器使用 port 21 連線到外部任一大於 1023 的通訊埠(回應用戶端的命令埠) 
  • FTP 伺服器開啟一個大於 1023 的通訊埠,接受來自外部任一大於 1023 的通訊埠連線 (用戶端與伺服器建立資料連線) 
  • FTP 伺服器使用一個大於 1023 的通訊埠,連線到外部任一大於 1023 的通訊埠(伺服器回復資料給用戶端) 
以下我們利用一張圖來做說明:
passiveftp.jpg

步驟一、用戶端使用 port 1024 與伺服器建立連線,並發出 PASV 的要求。步驟二、伺服器回應用戶端的連線,並通知用戶端,伺服器已開啟 port 1120 等待資料連線。步驟三、用戶端使用 port 1025 與伺服器的 port 1120 建立資料連線。步驟四、伺服器回覆用戶端。
使用被動模式雖然解決了用戶端的問題,卻也為伺服器帶來了一些問題,最大的問題在於伺服器必須開啟一定範圍的通訊埠供用戶端連線,好在目前絕大部分的 FTP 伺服器軟體,皆可以由管理者決定開啟哪些範圍的通訊埠。

另一個問題則是部分作業系統提供的的FTP命令列,不支援被動模式,因此必須使用其他的用戶端程式。 

以下為實際的被動式 FTP 連線範例,我們以Rainbow FTP Server 與 ezFTP 用戶端程式為例,觀察其連線的訊息。
passiveftp4.jpg

請注意紅色箭頭標式的部份,前一行用戶端程式發出 PASV 的命令,伺服器則回應 210,202,94,228,8,0,也就是由伺服器開啟 256*8 +0 這個通訊埠,等待用戶端連線。
以下做個簡單的總結:
主動式 FTP :
    命令連線: 用戶端 port N    --> 伺服器 port 21
    資料連線: 伺服器 port 20   --> 用戶端 N+1
被動式 FTP :
    命令連線: 用戶端 port N     --> 伺服器 port 21
    資料連線: 用戶端 port N+1 --> 伺服器 port P
其中 N、P 都必須大於 1023

兩種模式各有優缺點,主動模式對伺服器來說比較安全,但對用戶端來說卻是可能帶來危險,因此很可能被用戶端的防火牆所阻擋了。使用被動模式雖然解決了用戶端的問題,但相對的伺服器必須開啟一定範圍的通訊埠供用戶端連線,好在目前絕大部分的 FTP 伺服器軟體,皆可以由管理者決定開啟哪些範圍的通訊埠。
特別注意的是,要使用那種模式連線是由用戶端決定(發出 PORT 或是 PASV 命令),但是伺服器卻可決定要不要支援這種模式的連線。



文章轉至:http://phorum.com.tw/ShowPost/5609.aspx

Hub(集線器)、Bridge(橋接器)、Switch(交換器)與Router(路由器)

1.Hub(集線器) 在星狀拓樸網路(star topology)中,扮演連接或重新建立訊號的角色,可擴大類比或者是數位訊號。在區域網 路(LAN)中,電腦與電腦利用網路連接時,如果用Hub 連接,即使有任何一段線路出問題,只會有一台電腦無 法運作,不會影響網路中其...