SNAT和DNAT
- 一、SNAT策略及应用
- 1.1SNAT策略概述
- 1.2开启SNAT的命令
- 1.2.1 临时打开
- 1.2.2永久打开
- 1.3SNAT转换1:固定的公网IP地址
- 1.4SNAT转换2:非固定的公网IP地址(共享动态IP地址)
- 1.5SNAT案例
- 1.5.1实验准备
- 1.5.2配置网关服务器(12.0.0.1)的配置网关
- 1.5.3配置内置网服务器(192.168.11.11)相关配置
- 1.5.4配置外网服务器(12.0.0.10)的相关配置
- 1.5.5开启SNAT
- 二、DNAT策略与应用
- 2.1DNAT应用环境
- 2.2DNAT原理
- 2.3DNAT转换前提条件
- 三、tcpdump--Linux抓包
一、SNAT策略及应用
1.1SNAT策略概述
-
SNAT原理
- 源地址转换
- 修改数据包的源地址
-
SNAT转换前提条件
1.局域网各主机已正确设置ip地址,子网掩码,默认网关地址
2.Linux网关开启ip路由转发
1.2开启SNAT的命令
1.2.1 临时打开
1.echo 1>/proc/sys/net/IPv4/ip_forward
2.sysctl -w net.ipv4.ip forward=1
1.2.2永久打开
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 #将此行写入配置文件
sysctl -p # 读取修改后的配置
1.3SNAT转换1:固定的公网IP地址
#配置SNAT策略,实现snat功能,将所有192.168.100.0这个网段的ip的源ip改为10.0.0.1
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j SNAT --to 10.0.0.1
可换成单独IP 出站外网网卡 外网IP
或
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j SNAT --to-source 10.0.0.1-10.0.0.10
内网IP 出站外网网卡 外网IP或地址池
1.4SNAT转换2:非固定的公网IP地址(共享动态IP地址)
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
1.5SNAT案例
1.5.1实验准备
- web服务器ip:192.168.11.11(nat1)、关闭防火墙和selinux、开启http服务
- 网关服务器内网ip:192.168.11.12(nat1);外网ip:12.0.0.1(nat2)、关闭防火墙和selinux,开启http服务
- win7客户端ip:12.0.0.10(nat2)
- vmware的虚拟网络编辑器中默认nat模式网段:192.168.11.0,nat2模式网段:12.0.0.0
1.5.2配置网关服务器(12.0.0.1)的配置网关
1.添加一块虚拟网卡,并自定义
2.复制并修改ens36网卡
#切换至网卡配置文件所在目录
[root@localhost network-scripts]#cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]#cp ifcfg-ens33 ifcfg-ens38
3.修改ens36网卡
4.重启网卡并看下是否重启成功
5.ping12.0.0.1是否能ping通
6.网关开启ip路由转发
1.5.3配置内置网服务器(192.168.11.11)相关配置
1.修改ens33网卡
2.重启网络服务
3.ping网关测试
1.5.4配置外网服务器(12.0.0.10)的相关配置
1.修改 ens33网卡模式为仅主机模式
3.修改ens33网卡(临时)
4.ping网关测试
1.5.5开启SNAT
1.此时主机2,ping不通主机3IP地址12.0.0.10
2.查看网关服务器的iptables规则并清除
2.添加SNAT转换:固定的公网IP地址
3.再去主机2,ping主机3IP地址12.0.0.10
二、DNAT策略与应用
2.1DNAT应用环境
在internet中发布位于局域网内的服务器
2.2DNAT原理
修改数据包的目的地址
2.3DNAT转换前提条件
1.局域网的服务器能够访问internet
2.网关的外网地址有正确的DNS解析记录
3.Linux网关开启IP路由转发
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysct1 -p
1.在主机2发布内网web服务
2.在主机3上curl 12.0.0.1
3.在主机1上curl192.168.11.12
4.添加DNAT转换
5.此时在主机3上curl 12.0.0.1
三、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)分析