【笔记】虚拟机添加双网卡实现SNAT和DNAT

本文介绍了SNAT和DNAT在网络地址转换中的应用,通过实验展示了如何利用双网卡主机进行地址转换,实现不同网段主机间的通信。SNAT在POSTROUTING链中进行源地址转换,使内部主机能通过公网访问外部;DNAT则在PREROUTING链中进行目的地址转换,允许外部主机访问内部网络。实验包括SNAT的配置步骤、DNAT的设置方法以及相应的实验结果验证。
摘要由CSDN通过智能技术生成

一、实验环境

实验环境
真实主机 :ip为172.25.254.250
双网卡主机westosa(虚拟机):ip1为172.25.42.100,ip2为172.25.254.100
单网卡主机westosb(虚拟机):ip为172.25.42.200

双网卡主机westosa
在这里插入图片描述
单网卡主机westosb
在这里插入图片描述

二、实验原理

流程图
在这里插入图片描述

SNAT:用的是POSTROUTING,在路由之后做,参数用-o表示出口
DNAT:用的是PREROUTING,在路由之前做,参数用-i表示进入口
prerouting 和postrouting 也经常用于NAT配置网关机进行网络地址转换使用,这时候有一下规律:
POSTROUTING是源地址转换(SNAT),要把你内部网络上受防火墙保护的ip地址转换成你本地的公网地址才能让它们上网。
PREROUTING是目的地址转换(DNAT),要把别人的公网IP换成你们内部的IP,才让访问到你们内部受防火墙保护的服务器。

三、SNAT源地址转换

(1)、基本原理

想要实现单网卡主机(172.25.42.200)和真实主机172.25.254.250的互通,可以用双网卡主机的内核做地址转换(地址伪装)。用双网卡主机的172.25.42.100的ens3网卡接收对来自于单网卡主机172.25.42.200的数据包,然后双网卡主机ens3网卡将数据经过内核转换给172.25.254.200的ens8网卡,并将数据的源地址更改为双网卡的172.25.254.200地址。

因为SNAT源地址转换是在路由之后POSTROUTING链中进行的,即我们需要双网卡的nat表的POSTROUTING链中添加策略

(2)、实现过程

1、进行双网卡主机westosa设定
因为是路由之后,所以更改双网卡主机的数据包的ens8网卡,将传递给真机的数据包更改源地址为ens8
POSTROUTING,在路由之后做,参数用-o表示出口

iptables -t nat -A POSTROUTING -o ens8 -j SNAT --to-source 172.25.254.100       路由后操作POSTROUTING,将en3网卡输出的ip都伪装为172.25.254.100
sysctl -a |grep ip_forward                                                      图1、查看路由功能是否开启
vim /etc/sysctl.conf                                                            图2、打开路由功能 
sysctl -p                                                                       使得内核路由功能生效
iptables -t nat -nL                                                             图3、查看当前的SNAT

图1
在这里插入图片描述
图2
在这里插入图片描述
图3
在这里插入图片描述

2、单网卡主机westosb设定
将单网卡的网关设置为双网卡主机ens8网卡的ip172.25.42.100,这样可以使得数据可以与双网卡主机的ens3网卡进行通信。

3、实验结果
实验结果1:单网卡主机(172.25.42.200)能与不同网段的主机(172.25.254.250)通过双网卡主机路由直接ping通
在这里插入图片描述
实验结果2:单网卡主机(172.25.42.200)能与不同网段的主机(172.25.254.250)通过双网卡主机路由进行ssh连接,w -i 可以查看到,当前的ssh连接是通过172.25.42.100路由转发的。
在这里插入图片描述

实验结果3:此时我们的真机不能访问到westosb,因为数据的流向是单向的,只能从westosb到真机。要实现在这个的话也可以用DANT去做
在这里插入图片描述

三、DNAT目的地地址转换

(1)、实验原理

可以实现真实主机访问地址的转换

DNAT目的地地址转换是在路由之前PREROUTING链中进行的,即我们需要在nat表的PREROUTING链中添加策略,指定对所有从ens8接口输入的数据用DNAT转换其目的地地址为westosb为172.25.42.200
DNAT:用的是PREROUTING,在路由之前做,参数用-i表示进入口

(2)、实验过程

1、在双网卡主机中进行操作
更改DNAT

iptables -F                 
iptables -t nat -F
iptables -t nat -A PREROUTING -i ens8 -j DNAT --to-dest 172.25.42.200

在这里插入图片描述

2、实验结果
实验结果发现虽然连接的是westosa(172.25.254.100),但是访问到的是westosb(172.25.42.200)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值