[ linux网络 ] 网关服务器搭建,综合应用SNAT、DNAT转换,dhcp分配、dns分离解析,nfs网络共享以及ssh免密登录

实验准备工作:

网关服务器安装:dhcp  bind (yum install -y dhcp bind bind-utlis)

server1安装:httpd   (yum install -y httpd)

没有网络就搭建本地yum仓库或者配置网卡使其能够上网。

( 1)网关服务器:ens36:12.0.0.254/24,ens33:192.168.80.11/24;Server1:192.168.80.7/24;PC1和server2:自动获取IP;交换机无需配置。要求能够使用Xshell等远程工具登录Server1和网关服务器。

首先,原本虚拟机是192.168.66.0网段,严格按照题目修改,先修改真机的 VM8 和 VM1 的环境设置

 然后,VMWARE软件的虚拟编辑器修改,统一网段

网关服务器处理:

第一步:2张网卡设置,网关服务器的网关就是自己,所以可以不用设置,但是DNS服务器指向自己,这个后面题目有要求,所以需要注意添加;

[root@wg ~]#cd /etc/sysconfig/network-scripts[root@wg network-scripts]#vim ifcfg-ens33TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.80.11
NETMASK=255.255.255.0
DNS1=192.168.80.11
#如果未安装实验要用的软件可以尝试搭建本地yum仓库。[root@wg network-scripts]#cp ifcfg-ens33 ifcfg-ens36
[root@wg network-scripts]#vim ifcfg-ens36TYPE=Ethernet
BOOTPROTO=static
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=12.0.0.254
NETMASK=255.255.255.0
DNS1=12.0.0.254[root@wg network-scripts]#systemctl restart network
[root@wg network-scripts]#ip a s ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:fe:04:29 brd ff:ff:ff:ff:ff:ffinet 192.168.80.11/24 brd 192.168.80.255 scope global ens33valid_lft forever preferred_lft forever[root@wg network-scripts]#ip a s ens36
5: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:fe:04:33 brd ff:ff:ff:ff:ff:ffinet 12.0.0.254/24 brd 12.0.0.255 scope global ens36valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fefe:433/64 scope link valid_lft forever preferred_lft forever[root@wg network-scripts]#cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 192.168.80.11
nameserver 12.0.0.254

 server1:网卡配置

[root@server1 ~]#cd /etc/sysconfig/network-scripts[root@server1 network-scripts]#vim ifcfg-ens33TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.80.7
NETMASK=255.255.255.0
GATEWAY=192.168.80.11
DNS1=192.168.80.11[root@server1 network-scripts]#systemctl restart network

 server2:网卡配置

[root@server2 ~]#cd /etc/sysconfig/network-scripts/
[root@server2 network-scripts]#vim ifcfg-ens33TYPE=Ethernet
BOOTPROTO=dhcp
NAME=ens33
DEVICE=ens33
ONBOOT=yes[root@server2 network-scripts]#systemctl restart network

server2虚拟机网卡设置NAT模式

 pc1:网卡配置

[root@pc1 ~]#cd /etc/sysconfig/network-scripts[root@pc1 network-scripts]#vim ifcfg-ens33TYPE=Ethernet
BOOTPROTO=dhcp
NAME=ens33
DEVICE=ens33
ONBOOT=yes[root@pc1 network-scripts]#systemctl restart network

 pc1虚拟机网卡设置 仅主机模式

( 2 )网关服务器提供DHCP服务给PC1和server2分配对应网段的IP地址和DNS服务器地址(注意后面题目的需求)。

网关服务器搭建DHCP服务器

[root@wg ~]#rpm -qc dhcp
/etc/dhcp/dhcpd.conf
##找到原配置文件[root@wg ~]#cat /etc/dhcp/dhcpd.conf
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
##复制配置案例覆盖原本的配置文件[root@wg ~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
##添加dhcp的分配规则[root@wg ~]#vim /etc/dhcp/dhcpd.confsubnet 192.168.80.0 netmask 255.255.255.0 {range 192.168.80.50 192.168.80.60;option routers 192.168.80.11;
}subnet 12.0.0.0 netmask 255.255.255.0 {range 12.0.0.50 12.0.0.60;option routers 12.0.0.254;
}[root@wg ~]#systemctl start dhcpd

查看server1:192.168.80.0段的ip地址

查看pc1:12.0.0.0段的ip地址

( 3 )server1服务器上创建密钥对并上传给网关服务器,并使server1的root用户可以使用root用户免交互登录网关服务器。
##生成密钥
[root@server1 ~]#ssh-keygen
##将生成的公钥传给网关服务器
[root@server1 ~]#ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.80.11
#输入yes回车后再输入网关服务器的密码即可。##测试完成免密登录
[root@server1 ~]#ssh 192.168.80.11
Last login: Sat Feb 17 12:11:51 2024 from 192.168.80.1
[root@wg ~]#exit
登出
Connection to 192.168.80.11 closed.

( 4 )server1服务器安装和启动httpd服务搭建Web网站,首页内容自定,但需要把server2的/share目录中的首页文件index.html,通过NFS挂载到server1的/var/www/html目录下使用。

server2配置:

[root@server2 ~]#mkdir /share
[root@server2 ~]#cd /share
[root@server2 share]#vim index.html
#输入任意内容即可。[root@server2 share]#cat index.html 
akjbjkb[root@server2 share]#vim /etc/exports       #书写共享规则/share *[root@server2 share]#systemctl start nfs    #开启文件共享,如若没有需要安装nfs-utils

server1配置:

[root@server1 ~]#showmount -e 192.168.80.50
Export list for 192.168.80.50:
/share *注意需要安装httpd
[root@server1 ~]#rpm -q httpd
httpd-2.4.6-99.el7.centos.1.x86_64[root@server1 ~]#mount 192.168.80.50:/share /var/www/html/
#把共享文件挂载到/var/www/html/目录下。[root@server1 ~]#systemctl start httpd
[root@server1 ~]#curl 192.168.80.7     #验证结果
akjbjkb

( 5 )网关服务器:搭建DNS分离,局域网解析www.benet.com 为server1的IP地址,外网解析为12.0.0.254,并且实现SNAT和DNAT 转换成ens36接口地址,PC1可以使用域名www.benet.com解析12.0.0.254直接访问Web网站。

在搭建DNS分离之前要先安装两样   bing 主包 和 bind 工具包

bind是DNS服务器软件

yum install bind bind-utlis -y

安装完软件之后 , 要能 找到

1.配置文件的位置   使用右边命令查找    rpm -qc  安装包的名字

网关服务器DNS配置:

修改主配置文件

vim /etc/named.conf

修改域名配置文件

vim /etc/named.rfc1912.zones

view "lei" {
match-clients { 192.168.80.0/24; };
zone "benet.com" IN {type master;file "benet.com.lei";
};
zone "." IN {type hint;file "named.ca";
};
};view "wai" {
match-clients { any; };
zone "benet.com" IN {type master;file "benet.com.wai";
};
zone "." IN {type hint;file "named.ca";
};
};

注意!除了 // 后面和上图配置保留,其它都的删除。

编辑数据库文件

命令:

[root@wg network-scripts]#cd /var/named/
[root@wg named]#cp -a named.localhost benet.com.lei
#保留权限复制named.localhost 为 benet.com.lan到当前目录
#这个 数据库文件 要跟 域名配置文件 中 file 后面的文件名相同。
[root@wg named]#cp -a named.localhost benet.com.wai
#保留权限复制named.localhost 为 benet.com.wan到当前目录

[root@wg named]#vim benet.com.lei

[root@wg named]#vim benet.com.wai

最后启动named服务,进行检验:

内网解析结果:

外网解析结果:

下面将实现SNAT和DNAT 转换成ens36接口地址,PC1可以使用域名www.benet.com解析12.0.0.254直接访问Web网站。

我们先看看未配置的情况:

内网sever2无法ping通外网的pc1

内网server2可以server1的80端口

外网的pc1无法访问内网。需要内网server1做端口映射到网关和DNS服务器上

 

网关服务器 添加 iptables 规则且 开启路由转发。

##SNAT策略
[root@wg named]#iptables -t nat -A POSTROUTING -o ens36 -s 192.168.80.0/24 -j SNAT --to 12.0.0.254
##DNAT策略
[root@wg named]#iptables -t nat -A PREROUTING -i ens36 -d 12.0.0.254 -p tcp --dport 80 -j DNAT --to 192.168.80.7[root@wg /var/named]#sysctl -a |grep “ip_forward"
net.ipv4.ip_forward = 0
##添加永久开启路由转发功能
[root@wg /var/named]#vim /etc/sysctl.conf 
net.ipv4.ip_forward = 1
[root@wg /var/named]#sysctl -p
net.ipv4.ip_forward = 1

SNAT策略详解:

内网访问外网时源ip转换为网关服务器的公网ip

DNAT策略详解:

外网客户端访问 网关服务器的公网ip 的 80 端口 时跳转至 内网 server1  的80 端口

验证效果:

实现内网可访问外网

pc1 可以 访问 server1 的 80 端口。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/259427.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity C#中的封装、继承和多态简单易懂的经典实例

文章目录 封装 (Encapsulation)继承 (Inheritance)多态 (Polymorphism) C#中的封装、继承和多态是面向对象编程&#xff08;OOP&#xff09;的三大核心特性。下面分别对这三个概念进行深入解释&#xff0c;并通过实例来说明它们在实际开发中的应用。 封装 (Encapsulation) 实例…

解决updatexml和extractvalue查询显示不全

报错注入是一种常见的SQL 注入方式&#xff0c;通过注入代码&#xff0c;触发数据库的错误响应&#xff0c;并从错误信息中获取有用的信息。 updatexml和extractvalue updatexml和extractvalue 是常用的两个报错注入函数 http://localhost/sqli/Less-5/?id1%27and%20updat…

【Pygame手册03/20】用于绘制形状的 pygame 模块

目录 一、说明二、画图函数2.1 接口draw下的函数2.2 pygame.draw.rect()2.3 pygame.draw.polygon()2.4 pygame.draw.circle()2.5 pygame.draw.ellipse()2.6 pygame.draw.arc()2.7 pygame.draw.line ()2.8 pygame.draw.lines()2.9 pygame.draw.aaline()2.10 pygame.draw.aaline…

【Redis】理论进阶篇------Redis的主从复制

一、原理解释 1、什么是Redis的主从复制 主从复制&#xff0c;是指将一台Redis服务器的数据复制到其他Redis服务器。前者称为主节点&#xff08;master&#xff09;,后者称为从节点&#xff08;slave&#xff09;;对于数据的复制是单项的&#xff0c;只能从主节点到从节点。Ma…

C#上位机与三菱PLC的通信06--MC协议之QnA-3E报文测试

1、A-3E报文回顾 1、存储区分类及访问规则 2、命令类型 命令由主命令子命令组成 3、报文结构 2、启动mc服务器 3、创建VS项目 这节继续使用上节的VS2022的项目&#xff0c;增加一个方法 MCTestA3E()&#xff0c;具体怎么创建项目&#xff0c;见上节的过程。C#上位机与三菱…

在 CentOS 平台下安装与配置 MySQL 5.7.36

CentOS平台常用有三种MySQL安装方式&#xff0c;即RPM安装包、二进制压缩包和源码包。一般来讲&#xff0c;建议使用二进制压缩包&#xff0c;因为该版本比其他的分发版使用起来要简单灵活。本次实验在 CentOS 7.6 平台上选用二进制压缩包安装方式。 1、清理MySQL安装环境 Cent…

MySQL 基础知识(九)之视图

目录 1 视图的介绍 2 视图算法 3 创建视图 4 查看视图结构 5 修改视图 6 删除视图 7 参考文档 1 视图的介绍 视图是一张并不存储数据的虚拟表&#xff0c;其本质是根据 SQL 语句动态查询数据库中的数据。数据库中只存放了视图的定义&#xff0c;通过 SQL 语句使用视图时…

【6-1】使用hanlp进行实体抽取以及句法分析(问题待解决)

1.使用hanlp抽取法人名称、企业名称等信息 # -*- coding: utf-8 -*- from pyhanlp import *text1"1998年11月11日&#xff0c;马化腾和同学张志东在广东省深圳市正式注册成立“深圳市腾讯计算机系统有限公司”&#xff0c;之后许晨晔、陈一丹、曾李青相继加入。当时公司…

论文解读:Masked Generative Distillation

文章汇总 话题 知识蒸馏 创新点 带掩盖的生成式蒸馏 方法旨在通过学生的遮罩特征来生成老师的特征(通过遮盖学生部分的特征来生成老师的特征)&#xff0c;来帮助学生获得更好的表现 输入:老师:&#xff0c;学生:&#xff0c;输入:&#xff0c;标签:&#xff0c;超参数: 1:使…

水质监测站工作原理!

TH-LSZ06】水质监测站的工作原理基于现代化学和生物学技术&#xff0c;主要通过化学分析和生物检测两种方法来检测水中有害物质。化学分析技术包括酸碱度、氧化还原电位、重金属离子、有机物、氮和磷等&#xff0c;而生物检测技术则主要关注病毒、细菌、真菌等微生物。 在水质…

Mac M1芯片编译openjdk报错问题解决

使用命令&#xff1a; sudo sh configure --with-target-bits64 用mac m1芯片编译openjdk一直报错&#xff1a; configure: The tested number of bits in the target (64) differs from the number of bits expected to be found in the target (32) configure: error: Cann…

【前端工程化面试题目】webpack 的热更新原理

可以在顺便学习一下 vite 的热更新原理&#xff0c;请参考这篇文章。 首先有几个知识点需要明确 热更新是针对开发过程中的开发服务器的&#xff0c;也就是 webpack-dev-serverwebpack 的热更新不需要额外的插件&#xff0c;但是需要在配置文件中 devServer 属性中配置 hot&a…

云原生之容器编排实践-基于CentOS7搭建三个节点的Kubernetes集群

背景 前面采用 minikube 作为 Kubernetes 环境来体验学习 Kubernetes 基本概念与操作&#xff0c;这样避免了初学者在裸金属主机上搭建 Kubernetes 集群的复杂度&#xff0c;但是随着产品功能的逐渐完善&#xff0c;我们需要过渡到生产环境中的 K8S 集群模式&#xff1b;而在实…

【代码移植】UNIX/Linux/POSIX代码程序移植到Windows系统平台技术汇总与经验分享

​ 图片来源 UNIX (Linux) to Windows代码移植技术路线 MinGW MinGW/MinGW-W64是用Windows原生系统API实现的&#xff0c;在Windows上运行的GCC编译工具链&#xff0c;可以编译出Windows原生应用程序。 MinGW编译工具链的生态位和微软官方的MSVC类似。 优点 MinGW编译出…

计算机网络-数据通信基础

目录 前言 一、数据通信基本概念 二、数据通信相关知识1 总结 前言 正在学习计算机网络体系&#xff0c;把每日所学的知识梳理出来&#xff0c;既能够当作读书笔记&#xff0c;又能分享出来和大家一同学习讨论。 一、数据通信基本概念 基本概念&#xff1a;信源、信道、信宿&…

第二篇【传奇开心果系列】Python的文本和语音相互转换库技术点案例示例:深度解读pyttsx3支持多种语音引擎

传奇开心果短博文系列 系列短博文目录Python的文本和语音相互转换库技术点案例示例系列 短博文目录前言一、三种语音引擎支持介绍和示例代码二、SAPI5引擎适用场景介绍和示例代码三、nsss引擎适用场景介绍和示例代码四、eSpeak适用场景介绍和示例代码五、归纳总结 系列短博文目…

红队学习笔记Day6 --->干货分享

今天看到这样的一个东西&#xff0c;好好好&#xff0c;有点恐怖&#x1f613;&#x1f613;&#x1f631;&#x1f631;&#x1f631;&#x1f631; 我就想网安是不是也有这种东西&#xff1f; 我来试试 icmp&#xff0c;RDP&#xff0c;arp&#xff0c;dhcp&#xff0c;nat&a…

Eclipse - 查看工程或者文件的磁盘路径

Eclipse - 查看工程或者文件的磁盘路径 1. Help -> Eclipse Marketplace -> Find: Explorer -> Eclipse Explorer 4.1.0 -> Install2. right-click -> Open in ExplorerReferences 1. Help -> Eclipse Marketplace -> Find: Explorer -> Eclipse Explo…

【Spring MVC篇】参数的传递及json数据传参

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Spring MVC】 本专栏旨在分享学习Spring MVC的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 一、普通参数的传…

【Java多线程】线程中几个常见的属性以及状态

目录 Thread的几个常见属性 1、Id 2、Name名称 3、State状态 4、Priority优先级 5、Daemon后台线程 6、Alive存活 Thread的几个常见属性 1、Id ID 是线程的唯一标识&#xff0c;由系统自动分配&#xff0c;不同线程不会重复。 2、Name名称 用户定义的名称。该名称在各种…