萬盛學電腦網

 萬盛學電腦網 >> 路由器知識 >> 路由器基礎 >> 什麼是路由器架設

什麼是路由器架設

  本文是小編帶來什麼是路由器架設,歡迎大家閱讀

  我們知道在區域網路裡面的主機可以透過廣播的方式來進行網路封包的傳送,但在不同網段內的主機想要互相連線時,就得要透過路由器了。 那麼什麼是路由器?他的主要功能是什麼?下面我們就來學習啦!

  什麼是路由器與 IP 分享器

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

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

  * 軟體功能:例如 Linux 這個作業系統的核心就有提供封包轉遞的能力。

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

  打開核心的封包轉遞 (IP forward) 功能

  就如同路由表是由 Linux 的核心功能所提供的,這個轉遞封包的能力也是 Linux 核心所提供, 那如何觀察核心是否已經有啟動封包轉遞呢?很簡單啊,觀察核心功能的顯示檔案即可,如下所示:

  [root@www ~]# cat /proc/sys/net/ipv4/ip_forward

  0 <== 0 代表沒有啟動, 1 代表啟動了

  要讓該檔案的內容變成啟動值 1 最簡單的方是就是使用:『echo 1 > /proc/sys/net/ipv4/ip_forward』即可。 不過,這個設定結果在下次重新開機後就會失效。因此,鳥哥建議您直接修改系統設定檔的內容,那就是 /etc/sysctl.conf 來達成開機啟動封包轉遞的功能喔。

  [root@www ~]# vim /etc/sysctl.conf

  # 將底下這個設定值修改正確即可! (本來值為 0 ,將它改為 1 即可)

  net.ipv4.ip_forward = 1

  [root@www ~]# sysctl -p <==立刻讓該設定生效

  sysctl 這個指令是在核心工作時用來直接修改核心參數的一個指令,更多的功能可以參考 man sysctl 查詢。 不要懷疑!只要這個動作,你的 Linux 就具有最簡單的路由器功能了。而由於 Linux 路由器的路由表設定方法的不同,通常路由器規劃其路由的方式就有兩種:

  * 靜態路由:直接以類似 route 這個指令來直接設定路由表到核心功能當中,設定值只要與網域環境相符即可。 不過,當你的網域有變化時,路由器就得要重新設定;

  * 動態路由:透過類似 Quagga 或 zebra 軟體的功能,這些軟體可以安裝在 Linux 路由器上, 而這些軟體可以動態的偵測網域的變化,並直接修改 Linux 核心的路由表資訊, 你無須手動以 route 來修改你的路由表資訊喔!

  了解了路由器之後,接下來你可能需要了解到什麼是 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 !

  所以說,當路由器兩端的網域分別是 Public 與 Private IP 時,才需要 NAT 的功能! NAT 功能我們會在下一章防火牆時談及, 這個章節僅談論一下路由器而已啊! ^_^

  何時需要路由器

  一般來說,電腦數量小於數十部的小型企業是無須路由器的,只需要利用 hub/switch 串接各部電腦, 然後透過單一線路連接到 Internet 上即可。不過,如果是超過數百部電腦的大型企業環境, 由於他們的環境通常需要考慮如下的狀況,因此才需要路由器的架設:

  * 實體線路之布線及效能的考量:

  在一棟大樓的不同樓層要串接所有的電腦可能有點難度,那可以透過每個樓層架設一部路由器, 並將每個樓層路由器相連接,就能夠簡單的管理各樓層的網路; 此外,如果各樓層不想架設路由器,而是直接以網路線串接各樓層的 hub/switch 時, 那由於同一網域的資料是透過廣播來傳遞的,那當整個大樓的某一部電腦在廣播時, 所有的電腦將會予以回應,哇!會造成大樓內網路效能的問題;所以架設路由器將實體線路分隔, 就有助於這方面的網路效能。

  * 部門獨立與保護資料的考量:

  在閱讀過網路基礎後,你就會曉得, 只要實體線路是連接在一起的,那麼當資料透過廣播時,你就可以透過類似 tcpdump 的指令來監聽封包資料, 並且予以竊取~所以,如果你的部門之間的資料可能需要獨立, 或者是某些重要的資料必須要在公司內部也予以保護時,可以將那些重要的電腦放到一個獨立的實體網域, 並額外加設防火牆、路由器等連接上公司內部的網域。

  路由器就只是一個設備,要如何使用端看你的網路環境的規劃!上面僅是舉出一些應用案例。 底下我們先就架設一個靜態路由的路由器來玩一玩吧!

  靜態路由之路由器

  假設在貴公司的網路環境當中,除了一般職員的工作用電腦是直接連接到對外的路由器來連結網際網路, 在內部其實還有一個部門需要較安全的獨立環境,因此這部份的網路規劃可能是這樣的情況 :

靜態路由之路由器架構示意圖

  靜態路由之路由器架構示意圖

  以上圖的架構來說,這家公司主要有兩個 class C 的網段,分別是:

  一般區網(192.168.1.0/24) :包括 Router A, workstation 以及 Linux Router 三部主機所構成;

  保護內網(192.168.100.0/24):包括 Linux Router, clientlinux, winxp, win7 等主機所構成。

  其中 192.168.1.0/24 是用來做為一般員工連接網際網路用的,至於 192.168.100.0/24 則是給特殊的部門用的。workstation 代表的是一般員工的電腦,clientlinux 及 winxp, win7 則是特殊部門的工作用電腦, Linux Router 則是這個特殊部門用來連接到公司內部網域的路由器。在這樣的架構下, 該特殊部門的封包就能夠與公司其他部門作實體的分隔了。

  由上圖你也不難發現,只要是具有路由器功能的設備 (Router A, Linux Router) 都會具有兩個以上的介面, 分別用來溝通不同的網域,同時該路由器也都會具有一個預設路由啊! ^_^! 另外,你還可以加上一些防火牆的軟體在 Linux Router 上,以保護 clientlinux, winxp, win7 呢!

  那我們先來探討一下連線的機制好了,先從 clientlinux 這部電腦談起。如果 clientlinux 想要連上 Internet,那麼他的連線情況會是如何?

  發起連線需求:clientlinux --> Linux Router --> Router A --> Internet

  回應連線需求:Internet --> Router A --> Linux Router --> clientlinux

  觀察一下兩部 Router 的設定,要達到上述功能,則 Router A 必須要有兩個介面,一個是對外的 Public IP 一個則是對內的 Private IP ,因為 IP 的類別不同,因此 Router A 還需要額外增加 NAT 這個機制才行,這個機制我們在後續章節會繼續談到。 除此之外,Router A 並不需要什麼額外的設定。至於 Linux Router 就更簡單了!什麼事都不用作,將兩個網路介面卡設定兩個 IP , 並且啟動核心的封包轉遞功能,立刻就架設完畢了!非常簡單!我們就來談一談這幾個機器的設定吧!

  Linux Router

  在這部主機內需要有兩張網卡,鳥哥在這裡將他定義為 (假設你已經將剛剛實作的 eth0:0 取消掉了):

  eth0: 192.168.1.100/24

  eth1: 192.168.100.254/24

  # 1. 再看看 eth0 的設定吧:

  [root@www ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

  DEVICE="eth0"

  HWADDR="08:00:27:71:85:BD"

  NM_CONTROLLED="no"

  ONBOOT="yes"

  BOOTPROTO=none

  IPADDR=192.168.1.100

  NETMASK=255.255.255.0

  GATEWAY=192.168.1.254 <==最重要的設定啊!透過這部主機連出去的!

  # 2. 再處理 eth1 這張之前一直都沒有驅動的網路卡吧!

  [root@www ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1

  DEVICE="eth1"

  HWADDR="08:00:27:2A:30:14"

  NM_CONTROLLED="no"

  ONB

copyright © 萬盛學電腦網 all rights reserved