SNAT实验

本文详细说明了centos7环境下SNAT实验的步骤。

SNAT是Linux系统的概念
SNAT策略的原理:

源地址转换,Source Network Address Translation
在用户的角度出发,用户发出数据时修改数据包的源IP地址,私网转公网;回来时经过NAT转换表公网转私网。

实验准备:

1台客户机(内网),客户机配置一张网卡;
1台机器作为网关路由器,配置2张网卡。

内网的虚拟机网卡模式可以是hostonly或者nat或者桥接。
linux网关路由器的LAN口需使用和内网的虚拟机网卡模式一样。

本次实验,内网的虚拟机网卡使用hostonly模式

1.1 在linux客户机上配置ip地址

查看系统版本:

[root@lb-1 ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)

配置IP:

[root@lb-1 ~]# cd /etc/sysconfig/network-scripts/
[root@lb-1 network-scripts]# vim ifcfg-ens33 
BOOTPROTO="none"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR1=192.168.99.8
PREFIX=24
DNS1=114.114.114.114
GATEWAY1=192.168.99.254

刷新网络服务:

[root@lb-1 network-scripts]# service network restart
Restarting network (via systemctl):                        [  确定  ]

测试能否和网关通信:

[root@lb-1 ~]# ping 192.168.99.254

能ping通则说明客户机搭建成功。

1.2 linux网关服务器的配置

配置LAN口的ip地址和子网掩码,不配置网关和dns服务器地址,我们会在WAN口上配置。

[root@scrouter ~]# cd /etc/sysconfig/network-scripts/
[root@scrouter network-scripts]# vim ifcfg-ens33 
BOOTPROTO="none"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.99.254
PREFIX=24

刷新服务:

[root@scrouter network-scripts]# service network restart  
Restarting network (via systemctl):                        [  确定  ]

配置WAN口的ip地址、子网掩码、网关和dns服务器地址
因为新添加的网卡,默认在系统里没有配置文件,我们需要根据ens33的网卡配置文件,创建一个文件,注意名字要和网卡的名字对应(ip add命令可查看2张网卡的名字)

本文的WAN口网卡是ens36

[root@scrouter network-scripts]# cp ifcfg-ens33 ifcfg-ens36
[root@scrouter network-scripts]# vim ifcfg-ens36
BOOTPROTO="none"
NAME="ens36"
DEVICE="ens36"
ONBOOT="yes"
IPADDR=192.168.1.88
PREFIX=24
GATEWAY=192.168.1.1
DNS1=114.114.114.114

刷新网络服务

[root@scrouter network-scripts]# service network restart
Restarting network (via systemctl):                        [  确定  ]

查看路由表

[root@scrouter network-scripts]# ip route
default via 192.168.1.1 dev ens36 proto static metric 101 
192.168.1.0/24 dev ens36 proto kernel scope link src 192.168.1.88 metric 101 
192.168.99.0/24 dev ens33 proto kernel scope link src 192.168.99.254 metric 100 

查看dns服务器地址

[root@scrouter network-scripts]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 114.114.114.114

测试linux网关服务器能否上网

[root@scrouter network-scripts]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=54 time=16.9 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=2 ttl=54 time=19.1 ms

1.3 在linux网关服务器上

1.开启网关主机的路由转发功能

临时开启:

root@scrouter ~]# cat /proc/sys/net/ipv4/ip_forward
0
[root@scrouter ~]# echo 1 >/proc/sys/net/ipv4/ip_forward
[root@scrouter ~]# cat /proc/sys/net/ipv4/ip_forward
1

永久开启路由功能,修改内核参数文件/etc/sysctl.conf

[root@scrouter ~]# vim /etc/sysctl.conf 
net.ipv4.ip_forward = 1
[root@scrouter ~]# sysctl -p   #让linux系统的内核读取新的配置,开启路由功能
net.ipv4.ip_forward = 1

2.添加使用SNAT策略的防火墙规则

iptables -t nat -A POSTROUTING -s 192.168.1.0/24  -o ens36 -j SNAT --to-source 218.29.30.31

-t nat 表示在nat表里进行操作 table
-A POSTROUTING 表示在POSTROUTING 位置追加一条规则 append
-s 192.168.1.0/24 指定源ip地址是来自那个网段 source
-o ens33 指定数据从那个接口出去 out interface
-j SNAT 采取SNAT动作,修改ip包里的源ip地址
–to-source 218.29.30.31 指定修改ip包里的ip地址为 218.29.30.31是WAN口的ip地址

或者编写snat策略的脚本:

[root@scrouter ~]# vim snat.sh
[root@scrouter ~]# cat snat.sh 
#!/bin/bash

#清除filter和nat表里的防火墙规则
iptables  -t filter  -F
iptables  -t nat  -F

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

#添加SNAT策略
iptables  -t  nat  -A POSTROUTING  -s  192.168.99.0/24 -o ens36 -j SNAT --to-source 192.168.1.88
[root@scrouter ~]# bash snat.sh  #执行脚本
[root@scrouter ~]# iptables -t nat -L -n  #查看nat表里的规则

在客户机上验证是否可以访问百度,可以一步步ping过去,检查问题所在

ping www.baidu.com

如果能ping通说明客户机(内网)可以通过我们配置的网关路由器去上网,自此实验成功!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值