NAT实验:桥接模式下使用SNAT策略连通客户机

Posted 文不丁儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NAT实验:桥接模式下使用SNAT策略连通客户机相关的知识,希望对你有一定的参考价值。

一、前言:什么是SNAT?

SNAT用于局域网访问互联网,局域网的主机A想访问互联网上的主机C,首先要将数据包发送到防火墙所在的主机B,B收到后修改数据包的源地址为B机的公网IP,然后再发送到互联网。

C机收到后将回应包经互联网发送给B,B收到回应包之后修改回应包的目的地址为A,然后将数据包转发给A。

至此就是SNAT的完整过程,在这个过程中,修改了请求报文的源地址,叫做SNAT(source NAT POSTROUTING),用于局域网访问互联网。

而DNAT(destination NAT POSTROUTING),修改了请求报文的目标地址,用于互联网访问局域网。

二、 实验规划

本次实验需要两台虚拟机,一台做客户机,一台做服务器,都是CentOS系统,版本为CentOS Linux release 8.3.2011。

各个虚拟机的IP设置如上图所示,配置时要遵循以下四点:

  1. 客户机的网关要和服务器的输入网卡(图中为ens37)一致(192.168.81.254)
  2. 客户机的IP地址的网络位要和服务器的输入网卡的网络位保持一致(192.168.81.XXX)
  3. 服务器的输出网卡的网络位要和路由器的网络位保持一致(192.168.2.XXX)
  4. 服务器的输入网卡(ens37)不要设置网关

不同网络路由器的IP地址不同,可以通过以下步骤来获取自己网络的路由器IP地址

修改IP地址的具体流程见下一步,新建网卡需要关闭虚拟机,在"编辑虚拟机设置"中添加"网络适配器",注意所有的网卡都要设置为桥接模式,不要勾选"复制物理网络连接状态",下图为例:

全部配置好之后,通过ping百度来测试,服务器可以上网,客户机不能上网。

服务器

客户机

三、修改IP地址

第一步,进入网卡配置文件目录==/etc/sysconfig/network-scripts/==

cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33

第二步,修改你的网卡配置文件,例如"ifcfg-ens33"

“ens33” 是具体接口的名字(注意不要打错,打错的地方不会报错但是会失效)

BOOTPROTO="static" #指定是用静态配置还是动态配置,none为静态
NAME="ens33" #网卡的名字
DEVICE="ens33"
ONBOOT="yes" #yes表示开机的时候激活这个网络连接
IPADDR=192.168.2.1 #IP地址
NATMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.2.1 #设置网关,这个网关必须跟虚拟机NAT设置里的网关一样,要不然就上不了网,如果不知道可删去,会自动配置
DNS1=114.114.114.114 #首选DNS服务器
DNS2=8.8.8.8 #备选DNS服务器

第三步,重新启动服务

1.centos8里(不能一次重启两个网卡,只能一个一个来)

ifup ens33

2.centos7里

service  network  restart

(结尾附有两台虚拟机的网卡设置文件的具体内容)

三、开启服务器的路由功能

临时开启路由功能(重启失效)

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

永久开启路由功能

cat /etc/sysctl.conf
sysctl -p

四、关闭服务器的Selinux和防火墙

关闭selinux

临时关闭

setenforce 0

永久关闭

vim /etc/sysconfig/selinux
>>
SELINUX=disabled

关闭防火墙

临时关闭

service firewalld stop

永久关闭

systemctl disable firewalld

五、使用Iptables实现SNAT策略

在服务器上新建snat.sh脚本

#!/bin/bash

#临时开启路由功能
echo 1 >/proc/sys/net/ipv4/ip_forward

#临时关闭selinux
setenforce 0

#清除filter表和nat表里的防火墙规则
iptables -F
iptables -t nat -F
#关闭firewalld服务
service firewalld stop

#snat策略,将进入的LAN口网段(192.168.81.0)包装成出去的WAN口网段(192.168.2.15)
iptables -t nat -A POSTROUTING -s 192.168.81.0/24 -o ens33 -j SNAT --to-source 192.168.2.15

运行该脚本

. snat.sh

六、实验完成,测试客户机

附:两台虚拟机网卡的具体配置文件

1、服务器的ens33输出网卡

BOOTPROTO="static"
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR="192.168.2.15"
NETMASK="255.255.255.0"
GATEWAY="192.168.2.1"
DNS1="114.114.114.114"
DNS2="8.8.8.8"

2、服务器的ens37输入网卡

BOOTPROTO=static
NAME=ens37
DEVICE=ens37
ONBOOT=yes
PREFIX=24
IPADDR=192.168.81.254

3、客户机的ens33输出网卡

BOOTPROTO="static"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.81.1"
NATMASK="255.255.255.0"
GATEWAY="192.168.81.254"
DNS1="114.114.114.114"
DNS2="8.8.8.8"

以上是关于NAT实验:桥接模式下使用SNAT策略连通客户机的主要内容,如果未能解决你的问题,请参考以下文章

解决Linux虚拟机与真实机的连通性

基础防火墙策略

NAT的两种模式SNAT和DNAT介绍

VMWare(虚拟机) 网络配置模式 :桥接模式nat模式主机模式

VMWare虚拟机提供的桥接nat和主机模式的区别

桥接模式和NAT模式差别