计算机网络 day9 DNAT实验

这篇具有很好参考价值的文章主要介绍了计算机网络 day9 DNAT实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

DNAT

DNAT策略的典型应用环境

DNAT策略的原理

在网关中使用DNAT策略发布内网服务器

DNAT实验:

实验环境:

DNAT网络规划拓扑图:

步骤:

1、创建linux客户端Web网站(go语言),实现Web服务器

1.1、下载go语言Web端代码

1.2、下载代码后传输到你的linux客户机上去

1.3、解压apiserver.tar.gz文件,并执行Web程序

1.4、测试Web服务器的效果(通过网关服务器来进行)

​编辑2、配置DNAT策略

2.1、准备工作

2.2、修改firewall网关服务器的姓名:

2.3、写DNS脚本

2.4、执行脚本

3、测试效果

4、使用dokcer上的nginx服务替代go语言程序

4.1、docker安装下载,制作docker镜像:(120条消息) docker容器的介绍和安装 - 镜像安装_docket容器_Claylpf的博客-CSDN博客

4.1、访问nginx镜像

如何当我们访问firewall网关服务器的其他端口(假设是80端口)也能映射访问到我们的linux客户机的8000端口


DNAT

DNAT(Destination Network Address Translation)是一种NAT的实现方式,也被称为目的地址转换(Destination NAT)。它在传输层对IP数据包进行修改,将目的IP地址改为内部网络中的设备IP地址,从而实现外部网络可以通过公共IP地址访问内部网络中的设备。DNAT通常用于实现服务器对外提供服务的功能,例如将公共IP地址映射到内部网络中的Web服务器上,从而外部用户可以通过公共IP地址访问Web服务器。

DNAT策略的典型应用环境

在Internet中发布位于企业局域网内的服务器

DNAT策略的原理

目标地址转换,Destination Network Address Translation

修改数据包的目标IP地址

计算机网络 day9 DNAT实验,计算机网络,服务器,网络

在网关中使用DNAT策略发布内网服务器

计算机网络 day9 DNAT实验,计算机网络,服务器,网络

DNAT实验:

实验环境:

        准备2台集群:一台做局域网里的客户机(Web服务器)(1个网卡),一台做firewall网关服务器(路由器)

        所有的虚拟机的网卡模式选择桥接模式(客户机可以选择仅主机模式)

DNAT网络规划拓扑图:

计算机网络 day9 DNAT实验,计算机网络,服务器,网络

步骤:

1、创建linux客户端Web网站(go语言),实现Web服务器

1.1、下载go语言Web端代码

go语言网站代码提取:

链接:https://pan.baidu.com/s/1QSulTw3P_lrp7RCHbHjhow?pwd=byp5 
提取码:byp5

1.2、下载代码后传输到你的linux客户机上去

方式一(假设你的linux服务器没有联网,但是你的firewall网关服务器联网了)

先传输到网关服务器上去,再在网关服务器上使用scp命令传输给linux客户机

[root@nginx-lb1 ~]# scp apiserver.tar.gz 192.168.80.1:/root
The authenticity of host '192.168.80.1 (192.168.80.1)' can't be established.
ECDSA key fingerprint is SHA256:qFVcuGn/dPQWyNfiYIe376RJ2CZIyFnKFobW/2VQljo.
ECDSA key fingerprint is MD5:59:df:c1:dd:8d:c0:0a:a8:50:e5:15:b0:9f:2a:16:ff.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.80.1' (ECDSA) to the list of known hosts.
root@192.168.80.1's password: 
apiserver.tar.gz                                                                                                                                           100% 5121KB  73.9MB/s   00:00    
[root@nginx-lb1 ~]# 

方式二(联网的情况下)

使用xftp上传apiserver.tar.gz到linux服务器里 或者 使用lrzsz传输

yum  install lrzsz  -y

rz : 接收从windows机器里上传文件到linux机器  receive
sz: 接收从linux系统里发送文件到windows  sent/send

[root@goweb ~]# rz     
然后选择需要上传的文件的路径
1.3、解压apiserver.tar.gz文件,并执行Web程序
[root@goweb ~]# mkdir /myweb
[root@goweb ~]# mv apiserver.tar.gz /myweb/
[root@goweb ~]# cd /myweb/
[root@goweb myweb]# ls
apiserver.tar.gz
[root@goweb myweb]# 
[root@goweb myweb]# tar xf  apiserver.tar.gz  解压
[root@goweb myweb]# ls
apiserver  apiserver.tar.gz
[root@goweb myweb]# cd apiserver 进入解压后的文件夹
[root@goweb apiserver]# ls
go.mod  go.sum  handler  main.go  router  scweb
[root@goweb apiserver]# 

#scweb 是使用go语言编写的简单的web服务器软件

[root@goweb apiserver]# ./scweb   执行scweb二进制程序
vim-go
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:	export GIN_MODE=release
 - using code:	gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /                         --> apiserver/router.home (3 handlers)
[GIN-debug] GET    /sd/health                --> apiserver/handler/sd.HealthCheck (3 handlers)
[GIN-debug] GET    /sd/disk                  --> apiserver/handler/sd.DiskCheck (3 handlers)
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
[GIN-debug] Listening and serving HTTP on 0.0.0.0:8000

scweb服务器会监听8000端口
1.4、测试Web服务器的效果(通过网关服务器来进行)
[root@nginx-lb1 ~]# curl 192.168.80.1:8000
hello,三创人 nice 2022[root@nginx-lb1 ~]# 

#curl  是linux系统里的字符界面的浏览器
#也可以使用其他图形界面的浏览器去访问

计算机网络 day9 DNAT实验,计算机网络,服务器,网络
2、配置DNAT策略

2.1、准备工作

1、局域网的Web服务器正确设置了IP地址/子网掩码/DNS服务器

2、局域网的Web服务器正确设置了默认网关地址

3、创建Web框架,并确保Web服务已经在Web服务器上运行了

在linux网关服务器(防火墙)上操作

2.2、修改firewall网关服务器的姓名:
[root@prom-server ~]# hostnamectl  set-hostname  router
[root@prom-server ~]# su - root
su - root
上一次登录:一 7月 17 11:53:14 CST 2023从 192.168.2.134pts/0 上
[root@router ~]# 
2.3、写DNS脚本
[root@nginx-lb1 nat]# cat snat_dnat.sh 
#!/bin/bash

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

#清除防火墙规则
iptables -F
iptables -F -t nat

#添加SNAT策略的防火墙规则
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j SNAT --to-source 192.168.2.77

#添加DNAT策略的防火墙规则
iptables -t nat  -A PREROUTING   -d 192.168.2.77 -i ens33  -p tcp  --dport 8000  -j DNAT  --to-destination 192.168.80.1
[root@nginx-lb1 nat]# 
2.4、执行脚本
[root@router nat]# bash snat_dnat.sh 
Redirecting to /bin/systemctl stop firewalld.service
[root@router nat]# 

查看iptables是否生效

[root@nginx-lb1 nat]# iptables -L -t nat -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            192.168.2.77         tcp dpt:8000 to:192.168.80.1

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  192.168.80.0/24      0.0.0.0/0            to:192.168.2.77
[root@nginx-lb1 nat]# 

3、测试效果

使用浏览器访问linux网关服务器wan口的地址和8000端口
    http://192.168.2.77:8000

计算机网络 day9 DNAT实验,计算机网络,服务器,网络

4、使用dokcer上的nginx服务替代go语言程序

4.1、docker安装下载,制作docker镜像:(120条消息) docker容器的介绍和安装 - 镜像安装_docket容器_Claylpf的博客-CSDN博客
[root@claylpf apiserver]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
faef57eae888: Pull complete 
76579e9ed380: Pull complete 
cf707e233955: Pull complete 
91bb7937700d: Pull complete 
4b962717ba55: Pull complete 
f46d7b05649a: Pull complete 
103501419a0a: Pull complete 
Digest: sha256:08bc36ad52474e528cc1ea3426b5e3f4bad8a130318e3140d6cfe29c8892c7ef
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[root@claylpf apiserver]# dokcer images
bash: dokcer: command not found...
Similar command is: 'docker'
[root@claylpf apiserver]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    021283c8eb95   12 days ago   187MB
[root@claylpf apiserver]# docker run -d -p 8000:80 --name cly-nginx nginx
a3e47da286fd588c51297374480ee842942781e4752e488e2626e69143db4d92
[root@claylpf apiserver]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                                   NAMES
a3e47da286fd   nginx     "/docker-entrypoint.…"   6 seconds ago   Up 5 seconds   0.0.0.0:8000->80/tcp, :::8000->80/tcp   cly-nginx
[root@claylpf apiserver]# 
4.1、访问nginx镜像

计算机网络 day9 DNAT实验,计算机网络,服务器,网络

如何当我们访问firewall网关服务器的其他端口(假设是80端口)也能映射访问到我们的linux客户机的8000端口

如下拓扑图就很生动的展示了我们的IP包通过firewall网关服务器的时候,IP包内的目的地址发生了改变,还有TCP段的端口也发生了改变。

计算机网络 day9 DNAT实验,计算机网络,服务器,网络

#通过访问192.168.1.254:8000端口 访问到 192.168.2.80的8000端口
iptables -t nat  -A PREROUTING   -d 192.168.1.254 -i ens33  -p tcp  --dport 8000  -j DNAT  --to-destination 192.168.2.80


#通过访问192.168.1.254的80端口 访问到 192.168.2.80的8000端口
iptables -t nat  -A PREROUTING   -d 192.168.1.254 -i ens33  -p tcp  --dport 80  -j DNAT  --to-destination 192.168.2.80:8000

可以浅显的理解为:当我们使用Windows上的浏览器想要访问我们的A客户机的Web服务的时候,我们需要访问浏览器的http://192.168.2.1:80,可知我们访问的正是firewall网关服务器WAN口的IP地址和端口80,而我们的firewall网关服务器会帮助我们修改IP包中的:

  1. 目标 IP 地址(Destination IP Address):防火墙网关服务器会将数据包的目标 IP 地址(原来是firewall网关服务器的WAN口的IP地址,也就是192.168.2.1)修改为内网服务器(linux客户机)的 IP 地址(192.168.1.1),以实现数据包的转发到内网(局域网)。

  2. 目标端口号(Destination Port):如果进行端口映射,防火墙网关服务器可以将数据包的目标端口号(原来是firewall的网关服务器的80端口)修改为内网服务器(linux客户机)上相应服务的监听端口(我们开启的监听端口为8000端口),以确保数据包能够正确地被内网服务器接收。文章来源地址https://www.toymoban.com/news/detail-591339.html

到了这里,关于计算机网络 day9 DNAT实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机网络 day8 动态路由 - NAT - SNAT实验 - VMware的网卡的3种模式

    目录 动态路由:IGP 和 EGP 参考网课:4.6.1 路由选择协议概述_哔哩哔哩_bilibili ​编辑 IGP(Interior Gateway Protocol)内部网关协议: EGP(Interior Gateway Protocol)外部网关协议: BGP 边界网关协议(Border Gateway Protocol) 实验: NAT:网络地址转换 NAT 有以下几种常见的应用方式: SNAT

    2024年02月16日
    浏览(39)
  • 计算机网络套接字编程实验-TCP多进程并发服务器程序与单进程客户端程序(简单回声)

    1.实验系列 ·Linux NAP-Linux网络应用编程系列 2.实验目的 ·理解多进程(Multiprocess)相关基本概念,理解父子进程之间的关系与差异,熟练掌握基于fork()的多进程编程模式; ·理解僵尸进程产生原理,能基于|sigaction()或signal(),使用waitpid()规避僵尸进程产生; ·

    2024年02月12日
    浏览(47)
  • 计算机网络套接字编程实验-TCP单进程循环服务器程序与单进程客户端程序(简单回声)

    1.实验系列 ·Linux NAP-Linux网络应用编程系列 2.实验目的 ·理解并掌握在程序运行时从命令行读取数据的C语言编程方法; ·理解并掌握基于命令参数设置并获取IP与Port的C语言编程方法; ·理解并掌握套接字地址的数据结构定义与地址转换函数应用; ·理解并掌握网络字节序

    2024年02月11日
    浏览(97)
  • 计算机网络 day4 IP地址的两部分-A、B、C、D、E五类IP地址-私有地址-子网掩码-DNA服务器-域名解析服务

    目录 三创网络拓扑结构图:  普通家庭网络拓扑结构图:(也可以直接使用 子母路由器 (母:无线路由器)(子:信号放大器、中继器)) 网络层:(network layer) 搜索IP地址所在地:iP地址查询--手机号码查询归属地 | 邮政编码查询 | iP地址归属地查询 | 身份证号码验证在

    2024年02月01日
    浏览(54)
  • 计算机网络 实验指导 实验17

    Table PC0 和 Table PC1 最开始可能还会连Access Point0,无影响后面会改 名称 接口 IP地址 网关地址 Router0 fa0/0 210.10.10.1 fa0/1 220.10.10.2 Tablet PC0 210.10.10.11 Tablet PC1 210.10.10.12 Wireless 互联网 220.10.10.2 LAN 192.168.0.1 PC0 0/1 192.168.0.10 192.168.0.1 PC1 192.168.0.11 192.168.0.1 PC2 192.168.0.12 192.168.0.1 Access p

    2024年04月15日
    浏览(70)
  • 计算机网络实验六 综合设计实验

    1.掌握因特网的配置相关工作 1.构建一个如下图3所示拓扑图(或简化图,去掉R4); 图3 网络互联拓扑图 2.要求PC1和PC3 是同一单位内部的不同子网(例如B类网络的两个子网); 3.要求PC1、PC2、PC3、PC4、PC5、PC6能够互相ping通; 4.要求PC1通过在浏览器中输入WWW服务器的域名对其

    2024年02月12日
    浏览(60)
  • 计算机网络三个 实验

    目录 实验一 ipconfig 实作一 实作二 ping 实作一 实作二 tracert 实作一 实作二 ARP 实作一 实作二 实作三 DHCP 实作一 netstat 实作一 实作二 DNS 实作一 实作二 实作三 cache 实作一 实作二 实验二 准备 数据链路层 实作一 熟悉 Ethernet 帧结构 实作二 了解子网内/外通信时的 MAC 地址 实作

    2024年02月09日
    浏览(60)
  • 计算机网络实验

    自己计算机网络配置 ipconfig /all ​ 物理地址. . . . . . . . . . . . . : 00-E0-4C-68-04-91 IPv4 地址 . . . . . . . . . . . . : 10.60.55.199(首选) 子网掩码 . . . . . . . . . . . . : 255.254.0.0 默认网关. . . . . . . . . . . . . : 10.60.255.254 别人计算机网络配置 ipconfig /all ​ 物理地址. . . . . . . . . . . . . : 2C-F0-

    2024年01月16日
    浏览(48)
  • 计算机网络实验作业

    实验内容 1. 领取水晶头、网线、网线钳等,制作网线。利用测线仪测试制作好的网线是否正常? 正常 2. 双绞线分成非屏蔽双绞线和(屏蔽双绞线  ),(  屏蔽双绞线 )的屏蔽效果好,( 非屏蔽双绞线  )的价格便宜。 3. 根据绞合的密度区分不同类别的双绞线,如

    2024年02月06日
    浏览(67)
  • 计算机网络 实验二

    ⭐计网实验专栏,欢迎订阅与关注! ★观前提示 :本篇内容为计算机网络实验。内容可能会不符合每个人实验的要求,因此以下内容建议仅做思路参考。 一、实验目的 (1)掌握IP地址的基本结构(网络部分与主机部分的区分) (2)掌握子网掩码的含义 (3)掌握IP包的组成格

    2023年04月17日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包