999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

百萬級并發連接的NAT關鍵技術研究

2016-06-30 03:28:39楊懷江李向龍
東北師大學報(自然科學版) 2016年2期

王 石,楊懷江,董 琰,李向龍

(1.中國科學院長春光學精密機械與物理研究所,吉林 長春 130033;2.中國科學院大學,北京 100039;3.東北師范大學信息化管理與規劃辦公室,吉林 長春 130024)

百萬級并發連接的NAT關鍵技術研究

王石1,2,3,楊懷江1,董琰3,李向龍3

(1.中國科學院長春光學精密機械與物理研究所,吉林 長春 130033;2.中國科學院大學,北京 100039;3.東北師范大學信息化管理與規劃辦公室,吉林 長春 130024)

[摘要]利用Linux服務器iptables工具實現了NAT功能.通過對Linux內核參數的修改使NAT形成百萬級并發連接,利用bonding技術聚合塊網卡提升了數據的轉發能力.啟用路由功能后,將服務器應用到某高校校園網出口,可以作為邊界設備代替路由器,而且運行穩定.

[關鍵詞]NAT;Linux bonding;Linux內核參數優化

2011年2月,全球互聯網地址分配機構IANA宣布IPv4地址已經分配完畢,這意味著新入網用戶將使用網絡地址轉換技術(NAT)實現互聯網接入.NAT技術采用多對一的動態映射方式實現了園區網可重用本地地址的功能,在IPv4地址資源有限的情況下無限拓展了其適用范圍,因而得到了廣泛應用.目前,對NAT技術的研究主要在NAT-PT及NAT穿越等方面.利用有限資源構建大容量NAT服務的實際應用研究很少,本文利用Linux服務器iptables工具使NAT實現了功能級.通過對Linux內核參數的修改使NAT的并發連接達到百萬級;利用bonding技術聚合塊網卡提升數據轉發能力;啟用路由功能后,將服務器應用到某高校校園網出口,在不限制具體網絡應用的前提下,可以作為邊界設備代替路由器,而且運行穩定.

1NAT的工作原理

NAT英文全稱Network Address Translation,即網絡地址轉換.于1994年在RFC1631中[1]首次被提出,是目前為解決IPv4地址枯竭和放大應用問題最廣泛的解決方案[2],優點是不需要更改主機和路由器而進行增量安裝.IP地址按使用范圍可分為本地地址和全局地址[3].本地地址即可重用地址,包括10.0.0.0/8、172.16.0.0/12和192.168.0.0/16;全局地址即全球唯一地址.一個地址要么是本地地址,要么是全局地址,沒有重疊.NAT的類型可以分為多種形式,本文選取應用廣泛的NAPT類型[4-5],也稱為“多對一”的NAT,NAPT英文全稱Network Address Port Translation,即網絡端口地址轉換,是一種動態轉換,可以完成多個本地地址轉換成同一全局地址,使用不同的端口號來區分不同的主機、不同的進程.NAT的基本原理是改變IP包頭,使目的地址、原地址或2個地址在包頭中被不同地址替換.

NAT的基本操作過程[6]如圖1所示.當PC 1(10.10.10.3)希望發送數據包到Internet節點(61.138.177.1)時,數據包經過Switch(網關)轉發至NAT SERVER, NAT SERVER檢查數據包的IP包頭,得到數據包的IP源地址、源端口,從NAT POOL中選取一個全局地址61.138.177.3分配給PC 1,將10.10.10.3和61.138.177.3的映射關系及相應端口信息存儲于內存的NAT映射表中,同時將數據包上的本地地址10.10.10.3 替換成全局地址61.138.177.3.此時PC 1的數據包以源地址61.138.177.3與Internet節點61.138.177.1進行通信.61.138.177.1的回應數據包查找NAT SERVER映射表及IP地址的替換過程并發送到PC 1,從而完成數據通信.映射表中的映射信息會有一定的生命周期,以防止映射表過大,超過生命周期相應的映射信息會被自動刪除.PC 1在生命周期內發送數據包至Internet節點時,會使用之前分配的全局地址61.138.177.3,超過生命周期時NAT SERVER會分配新的全局地址,形成新的映射信息.

圖1 NAT的基本操作過程

2bonding技術實現

實際使用NAT SERVER作為邊界設備布置于某高校校園網出口,出口聯通帶寬為2 GB/s.而啟用NAT服務的Linux服務器一般為千兆網卡,這就需要進行網卡捆綁操作配合交換機的端口聚合以倍增數據轉發能力.本文利用了Linux bonding驅動提供一個把多個網絡接口設備捆綁為單個的網絡接口的功能,實現了網絡負載均衡[7].Linux服務器需要配置4塊物理網卡eth0、eth1、eth2和eth3,其中eth0和eth1綁定后的虛擬口是bond0,物理線路上聯是聯通2G出口;eth2和eth3綁定后的虛擬口是bond0,物理線路下聯是交換機聚合端口.當NAT POOL中地址數量超過物理網卡數量,需使用虛擬網卡技術[8].實現步驟如下(以圖1為例):

(1)綁定物理網卡eth0、eth1至虛擬口bond0.

編輯/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=bond0

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

編輯/etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=bond0

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

(2)配置虛擬口bond0,并設置一網卡多地址.

編輯/etc/sysconfig/network-scripts/ifcfg-bond0:3

DEVICE=bond0:3

BOOTPROTO=static

ONBOOT=yes

IPADDR=61.138.177.3

NETMASK=255.255.255.224

編輯/etc/sysconfig/network-scripts/ifcfg-bond0:30

DEVICE=bond0:30

BOOTPROTO=static

ONBOOT=yes

IPADDR=61.138.177.30

NETMASK=255.255.255.224

(3)綁定物理網卡eth2、eth3至虛擬口bond1.

步驟與綁定物理網卡eth0、eth1類似.

(4)配置網關.

編輯/etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=Nat.localdomain

GATEWAY=61.138.177.1

(5)配置bonding功能.

編輯/etc/modprobe/bonding.conf

alias bond0 bonding

alias bond1 bonding

options bonding max_bonds=2 miimon=200 mode=0

其中:miimon=200表示監視網絡連接的頻度,單位是ms;mode=0表示提供負載均衡功能,按順序輪流把數據包發送給包含在bonding口內物理網卡.

3百萬級并發連接的NAT技術實現

Linux下NAT功能是通過netfilter網絡架構下NAT模塊實現的[9].netfilter是Linux 2.4.x引入的一個子系統,它作為一個通用的、抽象的框架,提供一整套的hook函數的管理機制,為內核模塊參與IP層數據包處理提供了很大的方便,內核的防火墻模塊(ip_tables)正是通過把自己所編寫的一些鉤子函數注冊到netfilter所監控的5個關鍵點中,以這種方式介入到對數據包的處理.鉤子函數按功能可分為連接跟蹤、數據包過濾、網絡地址轉換(NAT)和數據包的修改.在Netfilter下conntrack模塊維護連接狀態信息代表了NAT轉換能力.為了更充分地利用netfilter下NAT模塊功能,需要對ip_conntrack_max和hashsize等參數進行優化.ip_conntrack_max代表netfilter模塊能夠同時處理最大conntrack條目.hashsize 代表存儲conntrack條目的hash表大小.查看/proc/net/ip_conntrack里的conntrack記錄,這些記錄表示當前被跟蹤的連接,如:

tcp6117SYN_SENTsrc=61.138.177.3dst=61.138.177.1sport=32 775 dport=22[UNREPLIED]src=61.138.177.1dst=61.138.177.3sport=22 dport=32 775 use=2.

這個例子體現了conntrack模塊維護的某個連接狀態.其中使用協議tcp,文中6表示協議類型代碼,177代表生存時間,然后是源地址、源端口、目的地址、目的端口等.

參數修改依據以下理論:以圖1為例,NAT POOL中包含25個IP地址,內網主機訪問外網服務器,每次訪問經過NAT做地址轉換,以NAPT方式實現,分配的IP:Port必須各不相同,此時NAT轉換的上限次數為NAT POOL中IP地址數乘以可以轉換的端口數,即:25×(65 536-1 024)=1 612 800.需要NAT SERVER的轉換能力在1.6×106以上.而對超過1 GB RAM的系統,默認conntrack_max值不超過65 536,實驗環境下未進行參數調優前,NAT轉換條目也確實無法超過65 536.為實現大容量并發的NAT功能,需要對linux內核的一些參數進行修改,主要涉及3個默認的參數為ip_conntrack_max、hashsize和tcp_timeout_established.

在i386架構下的conntrack_max的計算方法為conntrack_max=(x/32)×RAM容量(單位為B)/16 384,x表示處理器位數.Hashsize=conntrack_max/8.以64位CPU和16 GB內存為例:

ip_contrack_max=(64/32)×16×1 024^3/16 384=2 097 152;

Hashsize=ip_contrack_max/8=262 144.

查看內核文件net/ipv4/netfilter/ip_conntrack_proto_tcp.c,可知系統默認設置tcp_timeout_established是5 d,其數值過大將占用大量內存,導致系統死機,故改為300 s.同時調整內核所允許的最大路由條目為

route.max_size=2 097 152.

通過以上調整,Linux SERVER理論上可以完成2×106并發連接的NAT轉換,并具備相應的數據轉發能力.

4仿真實驗

實驗環境為某高校校園網,部署NAT SERVER于網絡邊界以替代路由器.NAT SERVER配置64位4核CPU 2個、16 GB內存、4塊PCI-E千兆獨立網卡,操作系統為CentOS6.4,內核版本為2.6.32,網絡拓撲如圖1.操作步驟如下:

(1)配置NAT,回指路由,hashsize參數優化.

編輯/root/nat

IPPOOL=61.138.177.3-61.138.177.30

iptables-t nat-F

iptables-t nat-A POSTROUTING-s 10.10.10.0/24-o bond0-j SNAT —to $IPPOOL

iptables-save-c >/etc/sysconfig/iptables

route add-add-net 10.10.10.0/24 gw 10.10.10.1

echo“2097152”> /sys/module/nf_conntrack/parameters/hashsize

sysctl-p.

(2)使/root/nat開機自動執行.

編輯/etc/rc.local

/root/nat.

(3)使能ip轉發功能、參數優化.

編輯/etc/sysctl.conf

net.ipv4.ip_forward = 1

net.netfilter.nf_conntrack_max = 2 097 152

net.netfilter.nf_conntrack_tcp_timeout_established = 300

net.ipv4.route.max_size = 2 097 152.

(4)依據第2節bonding技術實現配置網卡.

校園網聯通、電信出口分別架設一臺NAT SERVER,聯通出口帶寬1.4 GB/s,電信出口帶寬1 GB/s,校園網用網高峰同時在線10 000人,單臺NAT SERVER最高并發連接數達到1.7×106.發現NAT SERVER運行穩定,校園網整體狀況未見明顯異常,滿足使用需求.

5結束語

Linux系統自帶的NAT功能強大,但是系統默認的參數配置并沒有完全發揮其使用能力.本文通過對Linux系統NAT相關參數的優化大大擴充了NAT轉換能力,同時應用bonding技術解決了常用NAT SERVER數據轉發能力存在瓶頸的問題.通過實際網絡環境的驗證,證明了NAT SERVER的有效性和實用性.值得注意的是NAT SERVER最好與流控設備互相配合使用,這樣可以使基于應用層的網絡管理更加智能與靈活.另外,由于校園網在線人數多,出口帶寬高,數據量大,選用的獨立網卡的質量和工作能力決定整個NAT SERVER的性能,針對網卡的參數優化和選取標準將是今后的研究內容.

[參考文獻]

[1]EGEVANG K,FRANCIS P.The IP Network Address Translator(NAT)[S].IETF RFC 1631,May 1994[2015-03-01].http://www.rfc-editor.org/rfc/rfc1631.txt.

[2]孫中廷.NAT技術解決IP地址短缺問題的實現[J].辦公自動化,2013,14:42-44.

[3]EDWARDS W,PADJEN R,SKANDIERT.CCNP四合一:學習指南(中文版)[M].張波,謝琳,譯.北京:電子工業出版社,2005:58-77.

[4]王秀欣,戚宇林,王鼎.基于目前NAPT的一種改進算法[J].微型電腦應用,2008,9:18-20.

[5]SRISURESH P,EGEVANG K.Traditional IP network address translator[S].IETF RFC 3022,January 2001[2015-03-01].http://www.rfc-editor.org/rfc/rfc3022.txt.

[6]包亮,潘金貴.網絡地址翻譯系統的原理和應用[J].計算機科學,2001,28(7):36-41.

[7]李騫,彭海云.基于bonding技術的負載均衡研究[J].計算機與數字工程,2011,12:151-153,170.

[8]魏華,鄒鵬.虛擬網卡及設備別名的配置[J].數字技術與應用,2013,12:216.

[9]馮富霞,李森貴.基于Netfilter改善網絡性能的研究與實現[J].安徽工程科技學院學報(自然科學版),2008,23(3):61-64.

(責任編輯:石紹慶)

Research on the key technologies for million concurrent connections of NAT

WANG Shi1,2,3,YANG Huai-jiang1,DONG Yan3,LI Xiang-long3

(1.Changchun Institute of Optics,Fine Mechanics and Physics,Chinese Academy of Sciences,Changchun 130033,China;2.University of Chinese Academy of Sciences,Beijing 100039,China;3.Office of Information Management and Planning,Northeast Normal University,Changchun 130024,China)

Abstract:NAT technology has been widely applied for alleviating the shortage of IPv4 address.In this paper,the NAT function is achieved by using the Linux server iptables tools.Million concurrent connections of NAT are reached via modifing Linux kernel parameters.The bonding technology of polymerization NIC is used in order to improve data forwarding capability.The NAT server is applied to the campus network as boundary router and stable after enabling routing function.

Keywords:NAT;Linux bonding;Linux kernel parameters optimization

[文章編號]1000-1832(2016)02-0089-04

[收稿日期]2015-03-08

[基金項目]吉林省自然科學基金資助項目(20140101189JC,20140101190JC);吉林省教育廳“十二五”社會科學研究項目(2014B053).

[作者簡介]王石(1979—),男,工程師,主要從事信息安全研究.

[中圖分類號]TP 393[學科代碼]520·3040

[文獻標志碼]A

[DOI]10.16163/j.cnki.22-1123/n.2016.02.019

主站蜘蛛池模板: 国内精品久久人妻无码大片高| 人妻中文字幕无码久久一区| 久久青草免费91观看| 久久毛片网| 国产精品嫩草影院av| 国产第四页| 午夜在线不卡| 久久免费精品琪琪| 88av在线看| 亚洲国产中文在线二区三区免| 国产成人高清精品免费软件| 美女高潮全身流白浆福利区| 久久这里只有精品23| 激情视频综合网| 国产永久无码观看在线| 亚洲无码高清视频在线观看| 五月天综合婷婷| 波多野结衣二区| 三上悠亚一区二区| 91成人免费观看| 欧美yw精品日本国产精品| 日韩亚洲综合在线| 亚洲三级a| 欧美国产日本高清不卡| 最新国产在线| 丰满少妇αⅴ无码区| 怡春院欧美一区二区三区免费| 国产白浆在线| 国产主播福利在线观看| 久热中文字幕在线观看| 成人中文在线| 日韩欧美亚洲国产成人综合| 大香伊人久久| 亚洲第一福利视频导航| 欧美日韩亚洲国产主播第一区| 亚洲精品无码AⅤ片青青在线观看| 激情视频综合网| 99尹人香蕉国产免费天天拍| 亚洲高清免费在线观看| 一本大道AV人久久综合| 欧美午夜精品| 国产手机在线ΑⅤ片无码观看| 午夜丁香婷婷| 国产小视频免费观看| 亚洲国产精品日韩av专区| 亚洲男人天堂久久| 午夜精品久久久久久久2023| 国产精品无码在线看| 欧美www在线观看| 国产精品.com| 亚洲无线国产观看| 国产亚洲美日韩AV中文字幕无码成人| 久久久久无码国产精品不卡| 日韩精品一区二区三区大桥未久| 色综合婷婷| 乱系列中文字幕在线视频| 特级做a爰片毛片免费69| 一本一本大道香蕉久在线播放| 草草线在成年免费视频2| 国产福利微拍精品一区二区| 特级欧美视频aaaaaa| 青青草国产一区二区三区| 激情无码字幕综合| 国产精品视频第一专区| 欧美一区二区福利视频| 日韩无码黄色| 国产精品网曝门免费视频| 搞黄网站免费观看| 久操线在视频在线观看| 在线国产毛片| 国产白浆一区二区三区视频在线| 成人亚洲视频| 国产欧美视频在线观看| av在线无码浏览| 亚洲国产高清精品线久久| www精品久久| 2021国产精品自拍| 中文无码日韩精品| 国产欧美日本在线观看| 色亚洲激情综合精品无码视频| 亚洲免费播放| 野花国产精品入口|