SNAT與DNAT的原理與應用

2022-09-09 10:15:17 字數 2518 閱讀 7423

區域網主機共享單個公網ip位址接入internet (私有ip不能在internet中正常路由)

修改資料報的源位址

echo 1 >/proc/sys/net/ipv4/ip_forward

或sysctl -w net.ipv4.ip forward=1

vim/etc/ sysctl. conf

net.ipv4.ip_forward = 1 #將此行寫入配置檔案

sysctl -p #讀取修改後的配置

iptables -t nat -a postrouting -s 192.168.229.0/24 -o ens36 j snat --to 12.0.0.1

或iptables -t nat -a postrouting -s 192.168.229.0/24 -o ens36 -j snat --to-source 12.0.0.1-12.0.0.10

-s 內網ip

-o 出站外網網絡卡

source 外網ip或位址池

iptables -t nat -a postrouting -s 192.168.80.0/24 -o ens33 -j masquerade

區域網的伺服器能夠訪問internet

閘道器的外網位址有正確的dns解析記錄

linux閘道器開啟ip路由**

vim/etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p

#把從ens33進來的要訪問web服務的資料報目的位址轉換為 192.168.80.11iptables -t nat -a prerouting -i ens33 -d 12.0.0.1 -p tcp--dport 80 -j dnat --to 192.168.80.11

iptables -t nat -a prerouting -i ens33 -d 12.0.0.1 -p tcp--dport 80-j dnat --to-destination 192.168.80.11

入站|外網網絡卡 | 外網                  內網伺服器ip

iptables -t nat -a prerouting -i ens33 -p tcp --dport 80-j dnat --to 192.168.80.11-192.168.80.20

#發布區域網內部的openssh伺服器, 外網主機需使用250埠進行連線

iptables-t nat -a prerouting -i ens33 -d 12.0.0.1 -p tcp--dport 250-jdnat --to 192.168.80.11:22

#在外網環境中使用ssh測試

ssh -p 250 [email protected]

yum -yinstall net-tools

#若沒有ifconfig 命令可提前使用yum 進行安裝

ifconfig ens33

注意:使用dnat時,同時還有配合snat使用,才能實現響應資料報的正確返回

小知識擴充套件:

• 主機型防火牆主要使用input、output鏈,設定規則時一-般要詳細的指定到埠

• 網路型防火牆主要使用forward鏈,設定規則時很少去指定到埠,一般指定到ip位址或者到網段即可

iptables-s**e >/opt/ipt.txt

iptables-restore 

opt/ipt.txt

systemctl stop iptables    #停止iptables服務會清空掉所有表的規則                

systemctl start iptables

tcpdump tcp-i ens33 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap

(1)tcp∶ ip icmp arp rarp 和 tcp、udp、icmp這些選項等都要放到第乙個引數的位置,用來過濾資料報的型別

(2)-i ens33 ∶只抓經過介面ens33的包

(3)-t ∶不顯示時間戳

(4)-s 0 ∶ 抓取資料報時預設抓取長度為68位元組。加上-s 0 後可以抓到完整的資料報

(5)-c 100 ∶只抓取100個資料報

(6)dst port ! 22 ∶不抓取目標埠是22的資料報

(7)src net 192.168.1.0/24 ∶資料報的源網路位址為192.168.1.0/24。net:網段,host:主機

(8)-w ./target.cap ∶ 儲存成cap檔案,方便用ethereal (即wireshark)分析

NAT中SNAT與DNAT的區別與應用

nat net address trancelate 是將區域網裡的內部位址 如192.168.0.x 轉換成公網 internet 上合法的ip位址 如202.202.12.11 以使內部位址能像有公網位址的主機一樣上網。這個優於 伺服器,能做直接訪問外部ip位址,但nat往往會過濾掉部分udp資...

SNAT和DNAT的區別

從定義來講它們乙個是源位址轉換,乙個是目標位址轉換。都是位址轉換的功能,將私有位址轉換為公網位址。要區分這兩個功能可以簡單的由連線發起者是誰來區分 snat 內部位址要訪問公網上的服務時 如web訪問 內部位址會主動發起連線,由路由器或者防火牆上的閘道器對內部位址做個位址轉換,將內部位址的私有ip轉...

volatile的應用與原理

背景 多執行緒開發中,不少見 volatile,其很典型的標記就是可見性,接下來一起了解一下其原理吧 定義volatile 是輕量級的 synchronized,它在多處理器開發中保證了共享變數的 可見性 可見性的意思是乙個執行緒修改乙個共享變數時,另外乙個執行緒能讀到這個修改的值 volatile...