Linux之路由轉(zhuǎn)發(fā)和SNAT的應(yīng)用方式
1.SNAT的介紹
SNAT又稱源地址轉(zhuǎn)換。源地址轉(zhuǎn)換是內(nèi)網(wǎng)地址向外訪問時(shí),發(fā)起訪問的內(nèi)網(wǎng)ip地址轉(zhuǎn)換為指定的ip地址(可指定具體的服務(wù)以及相應(yīng)的端口或端口范圍),這可以使內(nèi)網(wǎng)中使用保留ip地址的主機(jī)訪問外部網(wǎng)絡(luò),即內(nèi)網(wǎng)的多部主機(jī)可以通過一個(gè)有效的公網(wǎng)ip地址訪問外部網(wǎng)絡(luò)。
真實(shí)環(huán)境運(yùn)用中私網(wǎng)可以通過路由轉(zhuǎn)發(fā),將數(shù)據(jù)包傳送給公網(wǎng)IP地址的服務(wù)器,而公網(wǎng)地址無法將相應(yīng)的數(shù)據(jù)包回還給私網(wǎng)地址的用戶。
此時(shí)二者之間需要一個(gè)媒介,就是一個(gè)建立在私網(wǎng)和公網(wǎng)之間的網(wǎng)關(guān)服務(wù)器,對其之間的數(shù)據(jù)包進(jìn)行相應(yīng)的處理。來完成私網(wǎng)IP與公網(wǎng)IP之間的建立聯(lián)系
SNAT源地址轉(zhuǎn)換過程:
- 數(shù)據(jù)包從內(nèi)網(wǎng)發(fā)送到公網(wǎng)時(shí),SNAT會把數(shù)據(jù)包的源地址由私網(wǎng)IP轉(zhuǎn)換成公網(wǎng)IP。
- 當(dāng)相應(yīng)的數(shù)據(jù)包從公網(wǎng)發(fā)送到內(nèi)網(wǎng)時(shí),會把數(shù)據(jù)包的目的地址由公網(wǎng)IP轉(zhuǎn)換為私網(wǎng)IP。
- 當(dāng)內(nèi)網(wǎng)有多臺主機(jī)訪問外網(wǎng)時(shí),SNAT在轉(zhuǎn)換時(shí)會自動(dòng)分配端口,不同內(nèi)網(wǎng)主機(jī)會通過端口號進(jìn)行區(qū)分。
2.SNAT實(shí)驗(yàn)的部署設(shè)計(jì)
運(yùn)用SNAT策略將局域網(wǎng)中的客戶機(jī)IP封裝為網(wǎng)關(guān)服務(wù)器的外網(wǎng)IP,訪問web服務(wù)器的http服務(wù)
3.具體實(shí)驗(yàn)步驟
第一步:做好實(shí)驗(yàn)前的虛擬機(jī)設(shè)置
在這里我準(zhǔn)備了三臺虛擬機(jī)依次將它們當(dāng)作客戶機(jī),web服務(wù)器和網(wǎng)關(guān)服務(wù)器來使用
1. 網(wǎng)關(guān)服務(wù)器的設(shè)置
- 1.1 添加網(wǎng)卡,修改vmnet
- 1.2 修改ens33 為網(wǎng)關(guān)服務(wù)器的內(nèi)網(wǎng)網(wǎng)卡
- 1.3 修改新加網(wǎng)卡ens36(這里添加的網(wǎng)卡是什么就用什么)
yum install -y httpd systemctl restart httpd
以上操作結(jié)束后,重啟網(wǎng)卡
2. 客戶機(jī)設(shè)置模擬
3. web服務(wù)器設(shè)置
- 3.1 配置網(wǎng)卡
- 3.2 下載http服務(wù)并且開啟
yum install -y httpd systemctl restart httpd
第二步:網(wǎng)關(guān)服務(wù)器設(shè)置同意路由轉(zhuǎn)發(fā)
#永久啟用 vim /etc/sysctl.conf net.ipv4.ip_forward=1 sysctl -p #臨時(shí)開啟 echo 1 > /proc/sys/net/ipv4/ip_forward 或 sysctl -w net.ipv4.ip_forward=1
第三步:關(guān)閉防火墻和syslinux,客戶機(jī)初步訪問web服務(wù)器httpd服務(wù)
運(yùn)用Linux的火狐瀏覽器,直接通過IP進(jìn)行訪問:
查看web服務(wù)器的http訪問日志:
#追蹤更新訪問者訪問httpd服務(wù)的日志 tail -f /var/log/httpd/acces_log
這是由虛擬機(jī)模擬的內(nèi)網(wǎng)外網(wǎng)環(huán)境,與真實(shí)環(huán)境有一些出入,如果在真實(shí)環(huán)境中,私網(wǎng)IP是不會在公網(wǎng)服務(wù)器上留下訪問痕跡。
同時(shí):并沒有達(dá)到實(shí)驗(yàn)最終目的,還需要進(jìn)一步的SNAT源地址轉(zhuǎn)換
第四步 :SNAT源地址轉(zhuǎn)換
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.73.0/24 -o ens36 -j SNAT --to 12.0.0.254
第五步:再次訪問,且查看web服務(wù)器日志
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
LNMP下安裝Pureftpd開啟FTP服務(wù)以及修改FTP端口的方法
這篇文章主要介紹了LNMP下安裝Pureftpd開啟FTP服務(wù)以及修改FTP端口的方法,需要的朋友可以參考下2016-09-09Linux服務(wù)器如何修改默認(rèn)的遠(yuǎn)程連接端口
這篇文章主要介紹了Linux服務(wù)器如何修改默認(rèn)的遠(yuǎn)程連接端口問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Centos7.0安裝ceph(JEWEL)及以上版本的實(shí)例解析
這篇文章主要介紹了Centos7.0安裝ceph(JEWEL)及以上版本的實(shí)例解析,需要的朋友可以參考下2018-02-02Linux系統(tǒng)利用cp命令實(shí)現(xiàn)強(qiáng)制覆蓋功能的方法
cp命令是我日常學(xué)習(xí)中經(jīng)常會遇到的一個(gè)命令,下面這篇文章主要給大家介紹了關(guān)于Linux系統(tǒng)利用cp命令實(shí)現(xiàn)強(qiáng)制覆蓋功能的方法,并且給大家簡單的介紹了cp命令的基礎(chǔ)知識,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11在CentOS7上搭建Jenkins+Maven+Git持續(xù)集成環(huán)境的方法
這篇文章主要介紹了在CentOS7上搭建Jenkins+Maven+Git持續(xù)集成環(huán)境的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01