• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦 > 學習電腦 > 網絡知識 > 路由器 > 路由器基礎 > 什么是路由器架設

    什么是路由器架設

    時間: 若木635 分享

    什么是路由器架設

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

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

      什么是路由器與 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"

      ONBOOT="yes"

      BOOTPROTO="none"

      IPADDR=192.168.100.254

      NETMASK=255.255.255.0

      # 3. 啟動 IP 轉遞,真的來實作成功才行!

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

      net.ipv4.ip_forward = 1

      # 找到上述的設定值,將預設值 0 改為上述的 1 即可!儲存后離開去!

      [root@www ~]# sysctl -p

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

      1 <==這就是重點!要是 1 才可以呦!

      # 4. 重新啟動網路,并且觀察路由與 ping Router A

      [root@www ~]# /etc/init.d/network restart

      [root@www ~]# route -n

      Kernel IP routing table

      Destination Gateway Genmask Flags Metric Ref Use Iface

      192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

      192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

      0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0

      # 上面的重點在于最后面那個路由器的設定是否正確喲!

      [root@www ~]# ping -c 2 192.168.1.254

      PING 192.168.1.254 (192.168.1.254) 56(84) bytes of data.

      64 bytes from 192.168.1.254: icmp_seq=1 ttl=64 time=0.294 ms

      64 bytes from 192.168.1.254: icmp_seq=2 ttl=64 time=0.119 ms <==有回應即可

      # 5. 暫時關閉防火墻!這一步也很重要喔!

      [root@www ~]# /etc/init.d/iptables stop

      有夠簡單吧!而且透過最后的 ping 我們也知道 Linux Router 可以連上 Router A 啰!這樣你的 Linux Router 就 OK 了吶!此外,CentOS 6.x 預設的防火墻規則會將來自不同網卡的溝通封包剔除,所以還得要暫時關閉防火墻才行。 接下來則是要設定 clientlinux 這個被保護的內部主機網路咯。

      受保護的網域,以 clientlinux 為例

      不論你的 clientlinux 是哪一種作業系統,你的環境都應該是這樣的:

      IP: 192.168.100.10

      netmask: 255.255.255.0

      gateway: 192.168.100.254

      hostname: clientlinux.centos.vbird

      DNS: 168.95.1.1

      以 Linux 作業系統為例,并且 clientlinux 僅有 eth0 一張網卡時,他的設定是這樣的:

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

      DEVICE="eth0"

      NM_CONTROLLED="no"

      ONBOOT="yes"

      BOOTPROTO=none

      IPADDR=192.168.100.10

      NETMASK=255.255.255.0

      GATEWAY=192.168.100.254 <==這個設定最重要啦!

      DNS1=168.95.1.1 <==有這個就不用自己改 /etc/resolv.conf

      [root@clientlinux ~]# /etc/init.d/network restart

      [root@clientlinux ~]# route -n

      Kernel IP routing table

      Destination Gateway Genmask Flags Metric Ref Use Iface

      192.168.100.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0

      169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0

      0.0.0.0 192.168.100.254 0.0.0.0 UG 0 0 0 eth0

      [root@clientlinux ~]# ping -c 2 192.168.100.254 <==ping自己的gateway(會成功)

      [root@clientlinux ~]# ping -c 2 192.168.1.254 <==ping外部的gateway(會失敗)

      最后一個動作有問題喲!怎么會連 ping 都沒有辦法 ping 到 Router A 的 IP 呢?如果連 ping 都沒有辦法給予回應的話, 那么表示我們的連線是有問題的!再從剛剛的回應連線需求流程來看一下吧!

      發起連線:clientlinux --> Linux Router (OK) --> Router A (OK)

      回應連線:Router A (此時 router A 要回應的目標是 192.168.100.10),Router A 僅有 public 與 192.168.1.0/24 的路由,所以該封包會由 public 介面再傳出去,因此封包就回不來了...

      發現了嗎?網路是雙向的,此時封包出的去,但是非常可憐的,封包回不來~那怎辦呢?只好告知 Router A 當路由規則碰到 192.168.100.0/24 時,要將該封包傳 192.168.1.100 就是了!所以你要這樣進行。

      特別的路由規則: Router A 所需路由

      假設我的 Router A 對外的網卡為 eth1 ,而內部的 192.168.1.254 則是設定在 eth0 上頭。 那怎么在 Router A 增加一條路由規則呢?很簡單啊!直接使用 route add 去增加即可!如下所示的情況:

      [root@routera ~]# route add -net 192.168.100.0 netmask 255.255.255.0

      > gw 192.168.1.100

      不過這個規則并不會寫入到設定檔,因此下次重新開機這個規則就不見了!所以,你應該要建立一個路由設定檔。 由于這個路由是依附在 eth0 網卡上的,所以設定檔的檔名應該要是 route-eth0 喔!這個設定檔的內容當中,我們要設定 192.168.100.0/24 這個網域的 gateway 是 192.168.1.100,且是透過 eth0 ,那么寫法就會變成:

      [root@routera ~]# vim /etc/sysconfig/network-scripts/route-eth0

      192.168.100.0/24 via 192.168.1.100 dev eth0

      目標網域 透過的gateway 裝置

      [root@routera ~]# route -n

      Destination Gateway Genmask Flags Metric Ref Use Iface

      120.114.142.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

      192.168.100.0 192.168.1.100 255.255.255.0 UG 0 0 0 eth0

      192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

      169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1

      0.0.0.0 120.114.142.254 0.0.0.0 UG 0 0 0 eth1

      上述觀察的重點在于有沒有出現 192.168.100.0 那行路由!如果有的話,請 ping 192.168.100.10 看看能不能有回應? 然后再到 clientlinux 上面去 ping 192.168.1.254 看看有沒有回應,你就知道設定成功咯!好了,既然內部保護網路已經可以連上 Internet 了,那么是否代表 clientlinux 可以直接與一般員工的網域,例如 workstation 進行連線呢?我們依舊透過路由規則來探討一下,當 clientlinux 要直接連線到 workstation 時,他的連線方向是這樣的 (參考圖 8.2-1):

      連線發起: clientlinux --> Linux Router (OK) --> workstation (OK)

      回應連線: workstation (連線目標為 192.168.100.10,因為并沒有該路由規則,因此連線丟給 default gateway,亦即是 Router A) --> Router A (OK) --> Linux Router (OK) --> clientlinux

      有沒有發現一個很可愛的傳輸流程?連線發起是沒有問題啦,不過呢,回應連線竟然會偷偷透過 Router A 來幫忙呦! 這是因為 workstation 與當初的 Router A 一樣,并不知道 192.168.100.0/24 在 192.168.1.100 里面啦!不過,反正 Router A 已經知道了該網域在 Linux Router 內,所以,該封包還是可以順利的回到 clientlinux 就是了。

      讓 workstation 與 clientlinux 不透過 Router A 的溝通方式

      如果你不想要讓 workstation 得要透過 Router A 才能夠連線到 clientlinux 的話,那么就得要與 Router A 相同,增加那一條路由規則咯!如果是 Linux 的系統,那么如同 Router A 一樣的設定如下:

      [root@workstation ~]# vim /etc/sysconfig/network-scripts/route-eth0

      192.168.100.0/24 via 192.168.1.100 dev eth0

      [root@workstation ~]# /etc/init.d/network restart

      [root@www ~]# route -n

      Kernel IP routing table

      Destination Gateway Genmask Flags Metric Ref Use Iface

      192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

      192.168.100.0 192.168.1.100 255.255.255.0 UG 0 0 0 eth0

      169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0

      0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0

      最后只要 clientlinux 使用 ping 可以連到 workstation,同樣的,workstation 也可以 ping 到 clientlinux 的話,就表示你的設定是 OK 的啦!搞定!而透過這樣的設定方式,你也可以發現到一件事,那就是:『路由是雙向的,你必須要了解出去的路由與回來時的規則』。 舉例來說,在預設的情況下 (Router A 與 workstation 都沒有額外的路由設定時),其實封包是可以由 clientlinux 連線到 workstation 的,但是 workstation 卻沒有相關的路由可以回應到 clientlinux ~所以上頭才會要你在 Router A 或者是 workstation 上面設定額外的路由規則啊!這樣說,了解了吧? ^_^

      用 Linux 作一個靜態路由的 Router 很簡單吧!以上面的案例來說,你在 Linux Router 上面幾乎沒有作什么額外的工作,只要將網路 IP 與網路介面對應好啟動,然后加上 IP Forward 的功能, 讓你的 Linux 核心支援封包轉遞,然后其他的工作咱們的 Linux kernel 就主動幫你搞定了!真是好簡單!

      不過這里必須要提醒的是,如果你的 Linux Router 有設定防火墻的話, 而且還有設定類似 NAT 主機的 IP 偽裝技術,那可得特別留意,因為還可能會造成路由誤判的問題~

    122808 主站蜘蛛池模板: 欧美日韩精品久久久久| 99免费在线观看视频| 老师小sao货水好多真紧h视频| 日本特黄特色aaa大片免费| 国产精品91在线播放| 亚洲一卡二卡三卡四卡无卡麻豆| 在线国产你懂的| 最近高清中文在线国语字幕 | 热99在线视频| 天堂在线免费观看| 亚洲精品动漫免费二区| 999福利视频| 欧美日韩精品一区二区在线观看 | 亚洲国产精品自产在线播放| 7777精品久久久大香线蕉| 欧美日本高清在线不卡区| 国产精品夜色一区二区三区| 亚洲www视频| 韩国精品福利一区二区三区| 日本三级吃奶乳视频在线播放| 四虎永久免费地址ww1515| 三级中文字幕永久在线视频| 看国产一级毛片| 国内女人喷潮完整视频| 亚洲一级毛片免费看| 青青青青青免精品视频| 成年人网站黄色| 人妻精品久久久久中文字幕一冢本| 99re最新地址精品视频| 欧美zoozzooz性欧美| 国产国产精品人在线观看| 中文字幕日本在线观看| 精品久久久久久久中文字幕| 国自产拍在线天天更新91| 亚洲av综合色区| 色综合视频一区二区三区| 婷婷久久综合九色综合绿巨人| 亚洲激情电影在线| 99自拍视频在线观看| 成年网址网站在线观看| 人人色在线视频播放|