成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

運用FreeBSD替代路由器實現(xiàn)網(wǎng)絡地址轉(zhuǎn)換

第28卷 第6期 2008年12月桂林電子科技大學學報Journal of G uilin University of Electronic Technology Vo l . 28, N o . 6

第28卷 第6期 2008年12月

桂林電子科技大學學報

Journal of G uilin University of Electronic Technology Vo l . 28, N o . 6Dec. 2008 

運用FreeBSD 替代路由器實現(xiàn)網(wǎng)絡地址轉(zhuǎn)換

韋程馨, 潘家英

(廣西中醫(yī)學院信息網(wǎng)絡中心, 廣西南寧 530001)

摘 要:校園網(wǎng)事實上就是校園內(nèi)部的Intr anet, 一般通過交換設備組網(wǎng), 再通過路由器接入CERN ET 主干線路。對校園網(wǎng)使用效果影響較大的因素就是網(wǎng)絡出口問題。校園網(wǎng)的特殊性要求必須使用NA T (網(wǎng)絡地址轉(zhuǎn)換) , 這就需要出口的核心設備應具有較強的地址轉(zhuǎn)換能力, 通常這是由路由器來完成的, 然而路由器有限的CPU 處理能力限制了處理的效率。利用Fr eeBSD 的高性能和高可靠性, 通過對內(nèi)核的編譯, 啟用基本系統(tǒng)內(nèi)建網(wǎng)絡服務功能k I P-FI REWA L L , 配合當今廉價而高速的P C 硬件, 進行網(wǎng)絡地址轉(zhuǎn)換(N AT ) 和數(shù)據(jù)包過濾, 替代路由器實現(xiàn)高效、穩(wěn)定、安全的網(wǎng)絡傳輸。

關鍵詞:Fr eeBSD ; IP FIR EW A L L ; N AT ; 內(nèi)核; 路由器

中圖分類號:T P 393. 06    文獻標識碼:A     文章編號:1673-808X (2008) 06-0511-05

Using freeBSD to replace router to make network address translation

W EI Cheng -x in , P A N J ia -y ing

(Informat ion Net work Center , Guangx i T ra ditional Chi nese Medical University , Nanning 530001, China )

Abstract :A campus netw or k is a n intr anet on cam pus connected to the CERN ET by Sw it ch Net wo rking and the Ro uter. A significant impacting facto r of the campus netw or k effect is net wo rk o ut put pro blem. Ca mpus net wo rk must use N AT (net wo rk addr ess tra nslatio n) and r equires t he cor e equipm ent o f output to switch the Netw o rk Ad-dr ess po wer fully. T his par t of w or k is usually car ried o ut by the Ro uter. Ho wev er , the Ro uter is inefficient han-dling with CPU and thus limits the efficiency o f Net wo rk A ddr ess Co nv ersio n . In v iew of the efficiency and r elia-bility of Fr eeBSD , com piling the ker nel , using the netw or k serv ice functio n in the basic sy stem ——I PF IRE-WA L L , and coo per ating the cheap but hig h speed PC har dw ar e , o ne can achieve the netw o rk addr ess conver sio n (NA T ) and packet filter ing , then finally r eplace the R outer t o make efficient , st able and secur e netw or k t ransmis-sion.

Key words :Fr eeBSD ; IP FI REWA L L ; N A T ; kernel; r outer

  隨著校園網(wǎng)的高速發(fā)展, 學校上網(wǎng)用戶也隨之增多, 校園網(wǎng)用戶數(shù)量的增加使核心路由器負擔也隨之加重。許多學校建網(wǎng)初期購買的核心路由器已經(jīng)不能滿足目前校園網(wǎng)成倍增長的數(shù)據(jù)流量處理。筆者所在的學校2003年網(wǎng)絡用戶數(shù)是400個, 教科網(wǎng)出口的核心路由器是cisco 2600, 2008年校園網(wǎng)用戶達到了3000個, 此時核心路由器cisco 2600已經(jīng)不堪重負, 經(jīng)常出現(xiàn)用戶訪問教科網(wǎng)時掉包、連接速度慢甚至短

暫中斷等現(xiàn)象, 路由器的cpu 和內(nèi)存使用率都在80~95左右。為了保證校園網(wǎng)能穩(wěn)定順暢地運行, 筆者考慮到采用FreeBSD 實現(xiàn)cisco2600的網(wǎng)絡地址轉(zhuǎn)換等功能。

FreeBSD 是非常優(yōu)秀的操作系統(tǒng), 是由BSD 、386BSD 和4. 4BSD 發(fā)展而來的Unix 的一個重要分支, 是理想的Internet 和Intr anet 服務器[1]。即使是在

超負載狀態(tài)下, 它仍然能夠有效地使用內(nèi)存, 為同時

收稿日期:2008-11-20

) , , ,

,

                     桂林電子科技大學學報                2008年12月512

運行的數(shù)以千計的用戶進程提供良好的響應時間。Fr eeBSD 源于BSD ——美國加州大學伯克利分校開發(fā)U NIX®版本, 它由來自世界各地的志愿者開發(fā)和維護。FreeBSD 為不同架構的計算機系統(tǒng)提供了不同程度的支持。由于在性能和穩(wěn)定性方面的突出表現(xiàn), 使得它被廣泛應用為服務器操作系統(tǒng)。

[2]

IPFW 緊密集成, 而ALTQ 則需要配合PF 使用。

IPFILTER 對于流量整形可以使用IPFILTER 的NAT 和過濾功能以及IPFW 和dummy net 配合, 或者使用PF 跟ALTQ 的組合。IPFW, 以及PF 都是用規(guī)則來控制是否允許數(shù)據(jù)包出入您的系統(tǒng), 雖然它們采取了不同的實現(xiàn)方法和規(guī)則語法。筆者傾向于使用IPFILTER, 因為它使用了傳統(tǒng)的無狀態(tài)規(guī)則和規(guī)則編寫方式, 達到簡單狀態(tài)邏輯所期望的目標。

IPFIREW ALL (IPFW) 是一個由FreeBSD 發(fā)起的防火墻應用軟件, 它由FreeBSD 的志愿者成員編寫和維護。它使用了傳統(tǒng)的無狀態(tài)規(guī)則和規(guī)則編寫方式, 以期達到簡單狀態(tài)邏輯所期望的目標。IPFW 由七個部分組成, 其主要組件是內(nèi)核的防火墻過濾規(guī)則處理器, 及其集成的數(shù)據(jù)包記帳工具、日志工具、用以觸發(fā)NAT 工具的“(轉(zhuǎn)發(fā)) 規(guī)則、高級特殊用div ert ”途工具、dum my net 流量整形機制, “fw d rule ”轉(zhuǎn)發(fā)工具, 橋接工具, 以及ipstealth 工具[3]。

內(nèi)核編譯:內(nèi)核是FreeBSD 操作系統(tǒng)的核心。它負責管理內(nèi)存、執(zhí)行安全控制、網(wǎng)絡、磁盤訪問等等。盡管FreeBSD 可以動態(tài)修改的現(xiàn)在已經(jīng)越來越多, 但還是需要重新配置和編譯內(nèi)核。

(1) 創(chuàng)建新內(nèi)核并進行編譯

root#cd /usr/sr c/sys/i386/conf  //FreeBSD 內(nèi)核核心程序放置目錄

root#ls

 GENERIC LINT  //GENERIC 系統(tǒng)自帶的默認內(nèi)核配置文件LINT 內(nèi)核配置文件的解釋

root#cp GENERIC M YCRENET  //復制默認內(nèi)核將副本命名為M YCRENET

對MYCRENET 進行編譯修改root#ee M YCRENET

對新內(nèi)核M YCRENET 進行如下編譯

 #cpu I386_CPU  //根據(jù)服務配置選定使用的CPU 類型, 本文根據(jù)實際選擇I686_CPU

 #cpu I 486_CPU  //禁用 #cpu I586_CPU  //禁用 cpu I686_CPU

 ident M YCRENET  //當前重新編譯的新內(nèi)核名MYCRENET

 #options INET6 //禁用ipv6 #options NFS  //從安全考慮禁用NFS [2]

[2]

1 連接教科網(wǎng)的網(wǎng)絡拓撲圖

下面以筆者所在學校教科網(wǎng)連接作為案例, 運用Fr eeBSD 內(nèi)建網(wǎng)絡服務功能——IPFIREWALL 實現(xiàn)網(wǎng)絡地址轉(zhuǎn)換轉(zhuǎn)換功能, 網(wǎng)絡的拓撲結構如圖1所示。

圖1中, 曙光服務器配置:CPU 2*P4XEON2. 4硬盤36G 、內(nèi)存1G 、網(wǎng)卡2*3com 千兆G 、

外網(wǎng)口bg e 0:210. 36. 6. x

內(nèi)網(wǎng)口bg e1:192. 168. 1.

1

圖1 教科網(wǎng)連接拓撲圖

2 FreeBSD 內(nèi)核編譯

在曙光服務器上安裝最新版FreeBSD 7. 0-RE-LEASE , 以root 身份登陸使用ee 文本編輯器進行編譯并且在內(nèi)核中加入IPFIREWALL.

Fr eeBSD 的基本系統(tǒng)內(nèi)建了三種不同的防火墻軟件包。它們是IPILT ER(也被稱作IPF) 、IPFIRE-WALL (也被稱作IPFW) , 以及OpenBSD 的Packet-Filter (也被稱為PF ) 。FreeBSD 也提供了兩個內(nèi)建的、用于流量整形(基本上是控制帶寬占用) 的軟件包:.

,

第6期             韋程馨等:運用F reeBSD 替代路由器實現(xiàn)網(wǎng)絡地址轉(zhuǎn)換             513

 #o ptions M SDOSFS  //禁用ms -dos 文件系統(tǒng)

 #options UCONSOLE

 #optio ns U SERCON FIG  //禁用開機選擇啟用編譯器

 #options KT RACE  //禁用debug 功能 添加支持多CPU 和超線程 o ptions SM P //添加支持多CPU  o ptions APIC _IO

 o ptions HTT  //添加支持超線程 將IPFIERWALL 加入新內(nèi)核啟動

 optio ns IPFIERWALL //將IPFW 作為內(nèi)核的一部分來啟用

 optio ns IPFIERWALL _VERBOSE  //啟動日志

 options IPFIERWALL _VERBOSE _LIMT =50 //限制通過sy slog d 記錄相同包個數(shù)

 options IPFIERWALL _IPDIVERT  //啟用NAT 功能

 完成保存退出

 (2) 對新內(nèi)核M YCRENET 進行檢測 r oot #/usr /sbin /config M YCRENET  (3) 編譯和安裝新內(nèi)核

 r oot#cd /usr /sr c/sys/i386/conf

 r oot #cd . . /../com pile /M YCRENET

 ro ot #make depend ; m ake ; m ake install ; re-bo ot  //編譯安裝新內(nèi)核, 重啟

功能通過

 firew all _ty pe =" OPEN "  //允許所有數(shù)據(jù) firew all _quitet="YES"

 firew all _script ="/etc /r c . firewall "  tcp _ex tensions="YES"  //支持擴展T CP  natd _interface="bge0"  //指定nat 網(wǎng)卡 natd _enable="YES"  //開機自動啟用nat  static _routes=“net1”//添加靜態(tài)路由 ro ute _net 1=“-net 192. 168. 0. 0/16192. 168. 1. 2”

3. 2 編寫IPFIERWALL 訪問控制規(guī)則腳本

 ro ot #ee /etc /rc . firew all  在rc. firew all 中添加如下內(nèi)容 ipbnat="ipfw -q add"  pia =" bg e 0"  pib="bge1"  #skip =" skipto 800"  ipfw -q -f flus

 本案例中防火墻上已經(jīng)配置了相應的安全策略。為了減輕防火墻壓力, 在FreeBSD 上添加訪問控制規(guī)則只允許校園網(wǎng)用戶訪問教科網(wǎng)免費站點。

 $ipbnat 10allow ip fro m any to any via $pib

 $ipbnat 20allo w ip fr om any to any via lo 0 $ipbnat 30div er t natd ip from any to 58. 18. 0. 0/15out via $pia

 $ipbnat 30div er t natd ip from any to 58. 20. 0. 0/16out via $pia

 $ipbnat 30div ert natd ip fr om any to 212. 187. 169. 0/24out via $pia

 $ipbnat 30div ert natd ip fr om any to 210. 32. 0. 0/12o ut v ia $pia

 $ipbnat 30divert natd ip from any to 63. 211. 66. 0/24out via $pia

 $ipbnat 30div er t natd ip from any to 59. 32. 0. 0/12out via $pia

  .

  . 添加允許訪問教科網(wǎng)免費站點的規(guī)則  .

3 實現(xiàn)網(wǎng)絡地址轉(zhuǎn)換(NA T) 和訪問控制

3. 1 配置FreeBSD 的相關網(wǎng)絡信息

兩張3COM 千兆網(wǎng)卡在Fr eeBSD 系統(tǒng)下被標明為:bg e 0(外網(wǎng)口) 和bg e 1(內(nèi)網(wǎng)口)

 設置IP 地址

 r oot#ee /etc/rc. co nf  在rc . conf 中添加如下內(nèi)容

 ifconfig _bge 0=" inet 210. 36. 6. x netm ask 255. 255. 255. 240"

 ifconfig _bge1=" inet 192. 168. 1. 1netm ask 255. 255. 255. 0"

 defaultr outer="210. 36. 6. x " //網(wǎng)關 g atew ay _enable="YES"

,

                     桂林電子科技大學學報                2008年12月514

in via $pia

 $ipbnat 800allo w ip from any to any via $pia

 $ipbnat 801deny ip from any to any  IPFIREWALL 是按照規(guī)則號從小到大順序執(zhí)行, 如果匹配一條, 那么它就不再執(zhí)行下面所有的規(guī)則[3]。比如, 把allow ip from any to any 放置在最前面, 那么后面所有的規(guī)則將都不會被執(zhí)行。3. 3 啟用日志記錄

 在新內(nèi)核中加入了記錄日志功能, 需要對sys-log . conf 進行編輯

  ro ot #ee /etc /sy slo g . conf

   在sy slog. co nf 中添加如下內(nèi)容 *. notice; kern. debug; lpr. info; mail. crit; new s . er r /v ar /log /messages

   lpr. info /var/lo g/lpd-errs    cro n. */var/cron/log     ! ipfw

   *. */v ar /log /security   //記錄NAT 日志記錄到的文件名

3. 4 編寫設置FreeBSD 的域名解釋服務器

如果沒有正確的設置域名解釋服務器即使編譯了內(nèi)核和配置IPFIREWALL , 校園網(wǎng)用戶也無法實現(xiàn)正常訪問教科網(wǎng)。

  添加域名解析服務器  ro ot #ee /etc /resolv . conf

  在resolv. conf 中添加域名服務器IP 地址   nam eser ver 210. 36. x. x    nam eser ver 202. 103. 224. 68保存退出。

 net . inet . tcp . r ecvspace =65536 //最大的接受T CP 緩沖區(qū)空間

 net . inet . udp . sendspace =65535 //最大的接受U DP 緩沖區(qū)大小

 net . inet . udp . m axdgram =65535 //最大的發(fā)送U DP 數(shù)據(jù)緩沖區(qū)大小

 net . local . stream . sendspace =65535 //本地套接字連接的數(shù)據(jù)發(fā)送空間

 net. inet. tcp. rfc1323=1 //加快網(wǎng)絡性能的協(xié)議

 net. inet. tcp. rfc1644=1 net . inet . tcp . rfc 3042=1 net. inet. tcp. rfc3390=1 net . inet . ip . fw . verbose =1 net. inet. ip. fw. verbose _lim it=5

 kern. ipc. max so ckbuf=2097152 //最大的套接字緩沖區(qū)

 kern . max files =65536 //系統(tǒng)中允許的最多文件數(shù)量

 kern . max filesper proc =32768 //每個進程能夠同時打開的最大文件數(shù)量

 net . inet . icmp . dro p _redirect =1 //屏蔽ICM P 重定向功能

 net . inet . icmp . log _redirect =1 net. inet. ip. redirect=0

 net. inet. icmp. bmcastecho =0 //防止ICM P 廣播風暴

 net . inet . icmp . maskrepl =0

 net. inet. icm p. icmplim =100 //限制系統(tǒng)發(fā)送ICMP 速率

 net. inet. tcp. alw ays _keepalive =1 //設置為1會幫助系統(tǒng)清除沒有正常斷開的TCP 連接

 net. inet. tcp. msl=7500 //防止DOS 攻擊, 默認為30000

 net. inet. tcp. inflight. enable =1 //為網(wǎng)絡數(shù)據(jù)連接時提供緩沖

 ker n. ipc. somax conn =32768 //并發(fā)連接數(shù), 數(shù)字越大占用內(nèi)存也越大

 kern. secur elevel=0 //設置kernel 安全級別

 net. inet. tcp. lo g _in _vain=1 //記錄下任4 系統(tǒng)性能優(yōu)化及測試

4. 1 系統(tǒng)性能優(yōu)化

由于啟用了IPFIREW ALL 的網(wǎng)絡地址轉(zhuǎn)換功能必須對FreeBSD 進行網(wǎng)絡性能優(yōu)化, 提高系統(tǒng)的安全性和數(shù)據(jù)的處理能力。

   root #ee /etc /sysctl . conf    在sy sctl. conf 中添加如下內(nèi)容

 net. inet. tcp. sendspace=65536 //最大的待T

,

第6期             韋程馨等:運用F reeBSD 替代路由器實現(xiàn)網(wǎng)絡地址轉(zhuǎn)換             515

 net . inet . udp . lo g _in _vain =1 //記錄下任何UDP 連接

 net. inet. udp. checksum =1 //防止不正確的udp 包的攻擊

 kern. ipc. shm _use _phys=1 //僅為線程提供物理內(nèi)存支持, 需要256兆以上內(nèi)存

 kern . ipc . shm max =67108864 //線程可使用的最大共享內(nèi)存

 kern. ipc. shmall=32768 //最大線程數(shù)量 net . local . stream . recv space =65536 //lo 本地數(shù)據(jù)流接收和發(fā)送空間

 net. local. dg ram. max dg ram=16384 net. local. dg ram. recv space=65536

 net . inet . tcp . inflight _enable =1 //為網(wǎng)絡數(shù)據(jù)連接時提供緩沖

 net. inet. raw. m ax dgram =65536 //本地數(shù)據(jù)最大數(shù)量

 net. inet. raw. recvspace =65536 //本地數(shù)據(jù)流接收空間

 net . inet . ip . fw . dy n _max =65535 //ipfw 防火墻動態(tài)規(guī)則數(shù)量, 默認為4096, 增大該值可以防止某些病毒發(fā)送大量TCP 連接, 導致不能建立正常連接

 net . inet . ipf . fr _tcpidletim eo ut =864000 //設置ipf 防火墻TCP 連接空閑保留時間, 默認8640000(120小時)

編輯完成, 將結果保存后退出并重新啟動。4. 2 測試

在校園網(wǎng)內(nèi)使用tr acert 命令測試tracert w w w. edu. cn

1<1m s <1ms <1ms 192. 168. 8. 25421ms <1ms <1ms 192. 168. 1. 131ms 1ms 3m s 210. 36. 6. x

參考文獻:

. . .

1012m s 14ms  

 

 

7ms  

galax y. net. edu. cn [202. 112. 0. 36]

  使用tracert 命令進行路由跟蹤, 結果顯示數(shù)據(jù)包通過210. 36. 6. x 轉(zhuǎn)發(fā), 說明NAT 成功啟動運行,

數(shù)據(jù)傳輸正確。

5 結束語

標簽: