虛擬 IP 與 NAT 技術
當你已經學會使用 ipchains 這一個 Linux 的功能來實現 IP 偽裝和為網路建立簡單的防范之後(這個功能等一下就會提到了)
你就可以利用 Linux 來為您做更多的事情﹕其中有一個非常好的功能叫 NAT (Network Address Translating)
使用 NAT有什麼好處呢﹖
首先﹐如果您當初架設的網路使用了私有位址(就是虛擬 IP)
而現在又想連上 internet
雖然您可以對您的網路重新分配 IP 地址﹐但這樣做是非常費心和隱藏的問題多多
這時候﹐ NAT 就可以幫到您了﹕您只需用一台 Linux 主機安裝兩片網路卡﹐一張使用合法 IP 地址來擔當對外地連線﹐另外一張使用私有 IP 負責和內部網路溝通
然後﹐您為那張對外連線的網卡建立多個 IP alias ﹐當收到傳給那些 IP alias 的請求的時候﹐可以把這些請求通過 NAT 轉送給內部真正負責網路服務的伺服器﹐而那些伺服器根本無需更改 IP 地址﹐依舊使用原來的私有 IP 就可以
使用 NAT 還有一個好處是﹐可以分流網路負擔 (load balancing) ﹐也就是說﹐您可以將同一個 IP alias 的請求分別導向好幾台執行相同服務的伺服器
這樣對於處理大量數據的服務是非常好用的
安裝第二塊網路卡
好了
由『區域網路的架構』及上面提到的『NAT主機的設定』都可以知道
由於我們需要提供區域內的虛擬網路系統(區域網路
LAN)
所以在你的 Linux 主機中應該要安裝兩塊網路卡才是
不過
對於第二塊網路卡的安裝
在這裡有些建議
基本上
第二張網路卡最好不用使用與第一張相同晶片的卡
例如你第一張卡使用 RTL
那第二張卡最好使用別的卡
因為鳥哥曾經發現
在鳥哥的 RedHat
英文版中
安裝兩塊相同的(同公司出的) RTL
結果竟然兩張卡的輸出輸入都是經由第一張!也就是說
第二張卡根本就沒有用處!並且
也很容易發生 eth
與 eth
捉錯的情況!所以
請記得
『第二張網路卡不要使用與第一張網路卡相同晶片的卡!』
好了!假設你已經安裝了第一塊網路卡
而且也已經由『連上 Internet』的方法連上網際網路了
那接下來就是要開始安裝第二塊網路卡了
如何安裝第二張網路卡呢?依序以下列的步驟安裝就可以完成啰!
關機
硬體安裝
這個不用再提了吧!
先關機
然後拆開外殼
插入PCI網路卡即可
開機
硬體掃瞄
然後再開機
而於開機的過程中
你的 Linux 會主動去找到這一張網路卡(如果這張卡是有被 Linux 支援的!)
果真如此的話
那在這一步驟中
Linux 會要求你輸入 IP 與 GateWay 等等的 IP 位址
由於這一張網路卡是定義在內部網路使用的介面
因此你可以輸入
而 子遮罩網路為
DNS與Gateway都寫成自己
即可!
安裝網路卡驅動程式
如果在上一步驟中
你的網路卡並不能被捉到
哪就比較傷腦筋!請到前一個頁面參考特殊的網路卡的驅動程式安裝方法
檢視設定 /etc/sysconfig/network
scripts/ifcfg
eth
在安裝完了網路卡的驅動程式之後
在 /etc/sysconfig/network
scripts/ 中
應該會有 ifcfg
eth
這一個檔案
這一個檔案可以設定如下(當然
你也可以依自己的喜好設定)
[root@tsai network
scripts]# more ifcfg
eth
DEVICE=eth
BOOTPROTO=static BROADCAST=
IPADDR=
NETMASK=
NETWORK=
ONBOOT=yes
上面的設定中
就變成了
eth
為對外的連接介面
eth
為對內的連接介面!
啟動第二張網路卡
使用『ifup eth
』 來啟動之
區域網路與 Internet 連線示意圖
基本上
我們連線區域網路的連線方法有如下面所示
透過具有 NAT 功能的 Linux 主機來達成內部網路與外部網路的溝通!詳細的說明可以到『區域網路的架構』來看看
架設 NAT
好了
說了這麼多
終於要實地的演練 NAT 機器了!如何設定呢?這裡要再提醒一下
· 第一張網路卡 eth
為對外的連線介面
具有實體 IP
· 第二張網路卡 eth
為對內的連線介面
為虛擬 IP
基本上
你要做的事情其實真的很簡單
只要
確定第一張網路卡可以連上網際網路
關於對外的連線上網際網路方法請參考『連上 Internet 』的說明
這裡就不多說了
確定第二張網路卡可以正常的啟動
這是一張具有虛擬 IP 的網路卡
請確定他可以被啟動
另外
這裡的設定是這樣的
o IP為
o 子遮罩網路為
o gateway 為
o 慣用的 DNS server 為
開啟 IPV
確定 /etc/sysconfig/network 這個檔案中
有下列這一行
FORWARD_IPV
=yes
這是開啟傳送 IP 服務的一個設定
如果沒有的話
請將這一行加入 network 這個檔案中
然後執行
# /etc/rc
d/init
d/network reload
確定 ipchains 已經編譯進核心
這個比較麻煩
不過
如果你是用這個網頁提供的方法進行安裝 Linux 的話
這個程式已經被編譯進核心了
所以不用理他沒關系!
設定
這一個網段的 IP 可進行 NAT 服務
接下來就是直接設定了
只要依序執行底下的咚咚
/sbin/ipchains
P forward DENY /sbin/ipchains
A forward
j MASQ
s
/
d
/
/sbin/depmod
a /sbin/modprobe ip_masq_ftp /sbin/modprobe ip_masq_raudio /sbin/modprobe ip_masq_irc /sbin/modprobe ip_masq_autofw /sbin/modprobe ip_masq_cuseeme /sbin/modprobe ip_masq_portfw /sbin/modprobe ip_masq_quake /sbin/modprobe ip_masq_vdolive /sbin/modprobe ip_masq_user /sbin/modprobe ip_masq_mfw
這樣就可以了!如果你覺得這樣很麻煩的話
這裡鳥哥已經有一個寫好的批次檔
與說明檔
你可以下載使用
使用的方法就更簡單了
# mkdir /usr/driver # mkdir /usr/driver/nat <== 建立一個 nat 的子目錄 # mv nat.sh /usr/driver/nat <== 將檔案移動到 nat 這個目錄下 # cd /usr/driver/nat # chmod 744 nat.sh <== 修改 nat 成為可執行的檔案 # ./nat.sh all <== 開始執行
7. 加上一個參數 all 是讓兩個網域可以連上這部 NAT 主機!
不要懷疑,這樣就已經作好 NAT 主機的基本設定了!如果你還要設定更精細的防火牆的話,你可以去找一些比較高深的 HOWTO 的文件去鑽研,我這裡就只介紹你可以作為 NAT 的基本設定喔!
8. 將上面的咚咚寫入開機自動執行檔:由於每次開機都要進行一次 NAT 的設定是很煩的一件事,因此我們可以將上面的一大串字全部寫在 /etc/rc.d/rc.local 這個開機自動執行檔案的最底下,如此一來,每次開機就會自動將 NAT 的設定載入你的主機中了!
9. 設定 Windows 的網路設定:好了,主機的部分設定完了,接下來就是各個 Windows 個人電腦的設定了,以 Windows 98 為例,
o 你可以在『開始』->『設定』->『控制台』->『網路』開啟網路相關設定,或者是在『網路上的芳鄰』按右鍵,選內容,也可以進入網路設定內容;
o 在網路的內容中,察看你所需要的通訊協定是否存在了,主要是有 NetBEUI 、IPX/SPX 、及TCP/IP 這幾個設定,如果不存在的話,請按『新增』->『通訊協定』
>選『MicroSoft』便可選擇相關的通訊協定了
o 進入 TCP/IP 中
在 IP 項目
填入
xxx
然後子遮罩網路填選
在通訊閘(最重要)的部分填入 NAT 主機的虛擬 IP(這裡是用
)
然後再到 DNS 填入慣用的 DNS 主機(可以是
或者是
)
o 重新開機後
就可以連上 Internet 啰!(以上相關的設定請參考小弟寫的一篇咚咚)
設定完成!
本章問題討論
Q
何謂『虛擬 IP 』
與『實體 IP 』或者『固定 IP 』『動態 IP 』有啥不同?
A
『實體 IP 』
在網路的世界裡
為了要辨識每一部電腦的位置
因此有了電腦 IP 位址的定義
一個 IP 就好似一個門牌!例如
你要去微軟的網站的話
就要去『
』這個 IP 位置!這些可以直接在網際網路上溝通的 IP 就被稱為『實體 IP 』了
『虛擬 IP 』
不過
眾所皆知的
IP 位址僅為 xxx
xxx
xxx
xxx 的資料型態
其中
xxx 為
間的整數
由於近來電腦的成長速度太快
實體的 IP 已經有點不足了
好在早在規劃 IP 時就已經預留了三個網段的 IP 做為內部網域的虛擬 IP 之用
這三個預留的 IP 分別為
不過
由於是虛擬 IP
所以當您使用這些地址的時候﹐當然是有所限制的
限制如下
私有位址的路由資訊不能對外散播
使用私有位址作為來源或目的地址的封包﹐不能透過Internet來轉送
關於私有位址的參考紀錄(如DNS)﹐只能限於內部網路使用
這給我們架設IP網路做成很大的方便﹐比如﹕即使您目前的公司還沒有連上Internet﹐但不保證將來不會啊
如果使用公共IP的話﹐如果沒經過注冊﹐等到以後真正要連上網路的時候﹐就很可能和別人沖突了
也正如前面所分析的﹐到時候再重新規劃IP的話﹐將是件非常頭痛的問題
這時候﹐我們可以先利用私有位址來架設網路﹐等到真要連上intetnet的時候﹐我們可以使用IP轉換協定﹐如NAT (Network Addresss Translat
From:http://tw.wingwit.com/Article/program/Oracle/201311/17316.html