SNAT和DNAT原理及应用
目錄
一、SNAT原理及應用
1:定義:
1.1;SNAT的典型應用環境:
1.2:SNAT策略的原理
2:SNAT策略的配置
2.1:SNAT轉換前提條件
2.2:Linux網關開啟IP路由轉發
3:示例
3.1:SNAT轉換1:固定的公網IP地址
3.2:SNAT轉換2:非固定的公網IP地址(共享動態IP地址)
3.3:小知識擴展:
二、DNAT原理及應用
1:定義:
1.1:DNAT策略的應用環境:
?1.2:DNAT策略的原理
2:DNAT策略的配置
2.1:DNAT轉換前提條件
2.2:DNAT轉換1:發布內網的Web服務
三、防火墻規則的備份和還原
1:規則的自動備份和加載
2:手動備份和還原
2.1:導出(備份)所有表的規則
2.2:導入(還原)規則
3:tcpdump—Linux抓包
四、總結
一、SNAT原理及應用
1:定義:
1.1;SNAT的典型應用環境:
局域網主機共享單個公網IP地址接入Internet。(私有IP不能在Internet中正常路由)
1.2:SNAT策略的原理
修改數據包的源地址
2:SNAT策略的配置
2.1:SNAT轉換前提條件
?
2.2:Linux網關開啟IP路由轉發
1、臨時開啟:
?echo 1 > /proc/sys/net/ipv4/ip_forward
?或
?sysctl -w net.ipv4.ip_forward=1
2、永久開啟:
?vim /etc/sysctl.conf
?net.ipv4.ip_forward=1 ? ?#將此行寫入配置文件 ??
?sysctl -p ? ? #讀取修改后的配置
3:示例
3.1:SNAT轉換1:固定的公網IP地址
#配置SNAT策略,實現SNAT功能,將所有192.168.72.0這個網段內的ip的源地址改為12.0.0.2 ?iptables -t nat -A POSTROUTING -s 192.168.72.0/24 -o ens33 -j SNAT --to 12.0.0.2 ?
?或
?iptables -t nat -A POSTROUTING -s 192.168.72.0/24 -o ens33 -j SNAT --to-source 12.0.0.2-12.0.0.10 ?
? ?#-A POSTROUTING 指定POSTROUTING鏈
?#-s 192.168.72.0/24 源地址所處的網段(內網IP)
?#-o ens33 出站網卡
?#-j SNAT
#--to 12.0.0.2 ? 外網IP
?#--to-source 12.0.0.2-12.0.0.10 ? 外網地址池
3.2:SNAT轉換2:非固定的公網IP地址(共享動態IP地址)
?iptables -t nat -A POSTROUTING -s 192.168.72.0/24 -o ens33 -j MASQUERADE
3.3:小知識擴展:
一個IP地址做SNAT轉換,一般可以讓內網100到200臺主機實現上網
二、DNAT原理及應用
1:定義:
1.1:DNAT策略的應用環境:
在Internet中發布位于企業局域網內的服務器
?1.2:DNAT策略的原理
修改數據包的目標地址
2:DNAT策略的配置
2.1:DNAT轉換前提條件
vim /etc/sysctl.conf
?net.ipv4.ip_forward=1 ? ?#將此行寫入配置文件 ?
? sysctl -p ? ? #讀取修改后的配置
2.2:DNAT轉換1:發布內網的Web服務
?#把從ens33進來的要訪問web服務的數據包目的地址轉換為 192.168.72.10 ?iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.254 -p tcp --dport 80 -j DNAT --to 192.168.72.102
?或
?iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.254 -p tcp --dport 80 -j DNAT --to 192.168.72.10-192.168.72.20 ??
?#-A PREROUTING ? ? ? //修改目標地址的鏈?
#-i ens33 ? ? ? ? ?//入站網卡
?#-d 12.0.0.254 ? ? ? //數據包的目的地址
?#-p tcp --dport 80 ? //數據包的目的端口 ?
#-j DNAT ? ? ? ? ? ? //使用DNAT功能
?#--to 192.168.109.11 //內網服務器IP
三、防火墻規則的備份和還原
1:規則的自動備份和加載
iptables有一個默認備份文件 /etc/sysconfig/iptables ,iptables服務在每次重啟后會自動加載該文件。
?#將iptables規則文件保存在 /etc/sysconfig/iptables,iptables服務啟動時會自動還原規則。 ?iptables-save > /etc/sysconfig/iptables ?
systemctl stop iptables ? #停止iptables服務會清空掉所有表的規則
?systemctl start iptables ?#啟動iptables服務會自動還原/etc/sysconfig/iptables中的規則
2:手動備份和還原
自動備份并加載,只能還原最新的防火墻規則。
如果手動備份,例如每天生成一個以日期為名稱的備份文件,那么在還原時可以有選擇地進行還原。比如選擇上個月某一天的規則文件進行導入還原。
2.1:導出(備份)所有表的規則
?iptables-save > /opt/ipt.txt
2.2:導入(還原)規則
?iptables-restore < /opt/ipt.txt
3:tcpdump—Linux抓包
wireshark 抓包工具只在windows中使用。
tcpdump 可以在Linux系統中使用。
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)分析。
四、總結
SNAT源地址轉換過程(針對客戶端)
DNAT源地址轉換過程(針對服務器)
總結
以上是生活随笔為你收集整理的SNAT和DNAT原理及应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PyCharm如何修改配置大内存
- 下一篇: MP1584电源IC和BUCK电路分析