计算机网络:基于iptalbes的SANT和DNAT|docker的服务发布项目

 

1.实验环境

我们需要准备三台linux系统,一台作为路由器机route,其它为客户机client-1client-2

计算机网络:基于iptalbes的SANT和DNAT|docker的服务发布项目

 主机改名

hostnamectl set-hostname 主机名

 

 

 

2.网络拓扑图

计算机网络:基于iptalbes的SANT和DNAT|docker的服务发布项目

 

 

 3.三台机器的IP地址配置

进入centos7的网卡配置文件目录

cd /etc/sysconfig/network-scripts/

 

route机IP地址配置

ens33:

计算机网络:基于iptalbes的SANT和DNAT|docker的服务发布项目

 ens37:

计算机网络:基于iptalbes的SANT和DNAT|docker的服务发布项目

 

client-1IP地址配置

ens33:

计算机网络:基于iptalbes的SANT和DNAT|docker的服务发布项目

 

client-2IP地址配置

ens33:

计算机网络:基于iptalbes的SANT和DNAT|docker的服务发布项目

 

 centos7的网卡重载命令

ifup 网卡名
ifup ens33

配置完后客户机ping网卡成功我们配置完成

ping 192.168.17.254

 

4.连接到xshell方便操作

用管理员身份打开cmd

计算机网络:基于iptalbes的SANT和DNAT|docker的服务发布项目

 

 添加路由表

route add 192.168.17.0/24 192.168.0.100
        前者为目标网段    后者为下一跳地址,即路由器机的IP地址       

 

4.开启route机的路由功能

关闭三台机器的firewall和selinux服务(皆为临时修改,建议永久修改)

systemctl stop firewalld
setenforce 0

开启路由功能

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

 

5.实现SANT策略(局域网主机共享单个公网ip地址接入Internet)

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

#SNAT策略
#第一种
iptables -t nat -A POSTROUTING  -s 192.168.17.0/24 -o ens33 -j SNAT --to-source 192.168.0.100
#第二种
iptables -t nat -A POSTROUTING -s 192.168.17.0/24 -o ens33 -j MASQUERADE

到这一步我们发现客户机可以ping通Internet

 

6.为docker的服务发布建立环境

打开docker服务(linux裸机没有安装这个docker,需自行安装)

systemctl start docker

下载镜像创建容器并运行它

#客户机1
#我运行了nginx和mysql的容器

docker run --name sc-nginx-1 -d -p 80:80 nginx

#注意需关闭占用客户机3306端口的数据库服务,否则会冲突
docker run --name sc-mysql-1 -e MYSQL_ROOT_PASSWORD=123 -d -p 3306:3306  mysql:5.7.35
#客户机2
#这台机器我们只起mysql的容器

#注意这台机器把客户机3307端口映射到容器的3306端口 docker run
--name sc-mysql-2 -e MYSQL_ROOT_PASSWORD=123 -d -p 3307:3306 mysql:5.7.35

7,实现DNAT策略(将内网的服务器发布到Internet)

#DNAT策略
#dnat web
iptables -t nat -A PREROUTING -i ens33 -d 192.168.0.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.17.1:80

#dnat mysql 192.168.17.1
iptables -t nat -A PREROUTING -i ens33 -d 192.168.0.100 -p tcp --dport 3306 -j DNAT --to-destination 192.168.17.1:3306

#dnat mysql 192.168.17.2
iptables -t nat -A PREROUTING -i ens33 -d 192.168.0.100 -p tcp --dport 3307 -j DNAT --to-destination 192.168.17.2:3306

8,在其他的机器上测试发布的web和MySQL服务,使用curl和chrome,SQLyog的测试工具进行测试

 

计算机网络:基于iptalbes的SANT和DNAT|docker的服务发布项目

上一篇:command_execution


下一篇:unit13——大逃杀,section two