iptables DNAT vs xdp(ebpf)DNAT

場(chǎng)景描述

image.png
  • 如上圖悲立,一共有三臺(tái)服務(wù)器播赁,從client訪問nat服務(wù)器上的8889端口蕊肥,實(shí)際上通過NAT服務(wù)器里的邏輯
    做DNAT之后休吠,轉(zhuǎn)發(fā)到了server服務(wù)器扳埂,最后訪問server上的15006端口。
  • NAT服務(wù)器有很多種方法可以做到DNAT蛛碌, 其中可以通過iptables規(guī)則配置聂喇,也可以通過XDP ebpf程序來做到DNAT

iptables DNAT

閱讀以下流程需要先了解iptables是如何使用的

配置規(guī)則

1.清除iptables中的其他干擾記錄

$ iptables -F
$ iptables -t nat -F
$ iptables -X

2.配置iptables的DNAT規(guī)則

$ iptables -t nat -A PREROUTING -i eth0 -d 192.xxx.xx.114 -p tcp --dport 8889 -j DNAT --to 192.xxx.xx.113:15006

該條規(guī)則的意思是,在PREROUTING鏈中加一條規(guī)則,作用于eth0網(wǎng)卡希太,劫持IP為192.xxx.xx.114克饶,端口號(hào)為8889的的流量,重定向到192.xxx.xx.113的15006端口

3.配置SNAT規(guī)則

$ iptables -t nat -A POSTROUTING -d 192.xxx.xx.113 -p tcp --dport 15006 -j SNAT --to-source 192.xxx.xx.114
  • 該條規(guī)則的作用是誊辉,為了讓client跟server能正常連接
  • 因?yàn)閏lent是直接與NAT服務(wù)器矾湃,所以client并不認(rèn)識(shí)server服務(wù),需要把來自server(192.xxx.xx.113:15006端口)的流量堕澄,源地址改成nat(192.xxx.xx.114), 這樣client就能認(rèn)識(shí)并且正常通信了

具體可以參考文章
how-to-do-the-port-forwarding-from-one-ip-to-another-ip-in-same-network

xdp DNAT

閱讀以下流程需要先了解一下什么是XDP邀跃,以及什么是ebpf/bpf

源碼

https://github.com/Netronome/bpf-samples/blob/master/nat/nat_kern.c

編譯代碼

$make

$ ls
demo  Makefile  nat  nat_common.h  nat_kern.c  nat_kern.ll  nat_kern.o  nat_user.c  README.rst

會(huì)發(fā)現(xiàn)生成了nat_kern.o文件以及nat可執(zhí)行程序

規(guī)則配置

$ ./nat -i eth0 -S load nat_prog&
$ ./nat mapfill nat_prog key_daddr 192.xxx.xx.114 key_dport 8889 val_saddr 192.xxx.xx.114 val_daddr 192.xxx.xx.113 val_dport 15006 val_dmac 52:xx:xx:xx:xx:3c aggressive_reap 0

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蛙紫,隨后出現(xiàn)的幾起案子拍屑,更是在濱河造成了極大的恐慌,老刑警劉巖坑傅,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件僵驰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡唁毒,警方通過查閱死者的電腦和手機(jī)蒜茴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浆西,“玉大人粉私,你說我怎么就攤上這事〗悖” “怎么了诺核?”我有些...
    開封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)秒赤。 經(jīng)常有香客問我猪瞬,道長(zhǎng),這世上最難降的妖魔是什么入篮? 我笑而不...
    開封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任陈瘦,我火速辦了婚禮,結(jié)果婚禮上潮售,老公的妹妹穿的比我還像新娘痊项。我一直安慰自己,他們只是感情好酥诽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開白布鞍泉。 她就那樣靜靜地躺著,像睡著了一般肮帐。 火紅的嫁衣襯著肌膚如雪咖驮。 梳的紋絲不亂的頭發(fā)上边器,一...
    開封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音托修,去河邊找鬼忘巧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛睦刃,可吹牛的內(nèi)容都是我干的砚嘴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼涩拙,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼际长!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起兴泥,我...
    開封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤工育,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后搓彻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翅娶,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年好唯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片燥翅。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡骑篙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出森书,到底是詐尸還是另有隱情靶端,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布凛膏,位于F島的核電站杨名,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏猖毫。R本人自食惡果不足惜台谍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吁断。 院中可真熱鬧趁蕊,春花似錦、人聲如沸仔役。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽又兵。三九已至任柜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宙地。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工摔认, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绸栅。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓级野,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親粹胯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蓖柔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容