2016年9月20日 星期二

路由器

兩片網路卡
最簡單的路由器是一部電腦插兩片網路卡,可以銜接兩個不同網址的網路,隔離兩個網路內部流量與對外流量,不致互相干擾。目前個人電腦 CPU 處理能力快,網路卡也快,IO 處理能力強,1500 byte 的流量大概每秒可以處理 3~40 Mbits,64 byte 處理能力大致會照比例下降。用個人電腦作 router 有些缺點,第一速度不夠快,表現不穩,路由通信協定不足,個人電腦有硬碟,使用一般通用作業系統,故障率比較高,ethernet 之外其它種類界面支援不足。速路由器 CPU 用的不多,大多在介面上直接處理以加快速度。


轉遞網路封包
既然主機想要將資料傳送到不同的網域時得透過路由器的幫忙,所以啦,路由器的主要功能就是:『轉遞網路封包』囉!也就是說,路由器會分析來源端封包的 IP 表頭,在表頭內找出要送達的目標 IP 後,透過路由器本身的路由表 (routing table) 來將這個封包向下一個目標 (next hop) 傳送。這就是路由器的功能。 那麼路由器的功能可以如何達成呢?目前有兩種方法可以達成:

硬體功能:例如 Cisco, TP-Link, D-Link 等公司都有生產硬體路由器, 這些路由器內有嵌入式的作業系統,可以負責不同網域間的封包轉譯與轉遞等功能;

軟體功能:例如 Linux 這個作業系統的核心就有提供封包轉遞的能力。
高階的路由器可以連結不同的硬體設備,並且可以轉譯很多不同的封包格式,通常...價格也不便宜啊! 在這個章節裡面,我們並沒有要探討這麼高階的咚咚,僅討論在乙太網路裡頭最簡單的路由器功能: 連接兩個不同的網域。嘿嘿!這個功能 Linux 個人電腦就可以達成了!那怎麼達成呢?

NAT
瞭解了路由器之後,接下來你可能需要瞭解到什麼是 NAT (Network Address Translation, 網路位址轉譯) 伺服器, NAT 是啥?其實 IP 分享器就是最簡單的 NAT 伺服器啦!嘿嘿,瞭解了嗎?沒錯, NAT 可以達成 IP 分享的功能, 而 NAT 本身就是一個路由器,只是 NAT 比路由器多了一個『 IP 轉換』的功能。怎麼說呢?

一般來說,路由器會有兩個網路介面,透過路由器本身的 IP 轉遞功能讓兩個網域可以互相溝通網路封包。 那如果兩個介面一邊是公共 IP (public IP) 但一邊是私有 IP (private IP) 呢? 由於私有 IP 不能直接與公共 IP 溝通其路由資訊,此時就得要額外的『 IP 轉譯』功能了;

Linux 的 NAT 伺服器可以透過修改封包的 IP 表頭資料之來源或目標 IP ,讓來自私有 IP 的封包可以轉成 NAT 伺服器的公共 IP ,就可以連上 Internet !


路由器與交換機的差別
路由器與交換機的差別,路由器是屬於OSI第三層的產品,交換機是OSI第二層的產品。第二層的產品功能在於,將網路上各個電腦的MAC位址記在MAC位 址表中,當區域網路中的電腦要經過交換機去交換傳遞資料時,就查詢交換機上的MAC位址表中的資訊,將封包傳送給指定的電腦,而不會像第一層的產品(如集 線器)每台在網路中的電腦都發送。而路由器除了有交換機的功能外,更擁有路由表作為傳送封包時的依據,在有多種選擇的路徑中選擇最佳的路徑。此外,並可以 連接兩個以上不同網段的網路,而交換機只能連接兩個。並具有IP分享的功能,如:區分哪些封包是要傳送至WAN。路由表儲存了去往某一網路的最佳路徑,該 路徑的「路由度量值」以及下一跳路由器。參考條目路由獲得這個過程的詳細描述。