[ 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.mzph.cn/news/690351.shtml

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

相关文章

源聚达科技:抖音店铺2024年卖什么好

随着时代的变迁和科技的进步&#xff0c;消费者的购物习惯与偏好也在不断演变。展望2024年&#xff0c;抖音作为新兴的电商平台&#xff0c;其店铺销售策略需紧跟潮流&#xff0c;才能在激烈的市场竞争中脱颖而出。那么&#xff0c;哪些产品将成为抖音店铺的新宠呢? 首当其冲&…

STM32CubeMax(使用7步)新建工程

现在有时间学习一下STM32用CubeMX新建一个工程的步骤&#xff0c;特此记录一下&#xff1a; 第一步打开STM32CubeMax 第二步搜索芯片型号&#xff1a; 第三步配置时钟&#xff1a; 第四步点选配置时钟源&#xff1a; 第五步填写工程相关的名称路径信息&#xff1a; 第六步选择…

基于SpringBoot3从零配置SpringDoc

基于SpringBoot3从零配置SpringDoc 一、SpringFox二、SpringDoc三、Open API 规范四、SpringBoot3配置Knife4j1.官方参考文档2.添加依赖3.添加配置项4.设置文档首页5.编写控制器6.文档展示 一、SpringFox github SpringFox 已经停止更新了。SpringFox 对 SpringBoot3.0 不适配…

微信小程序开发之Vant组件库

文章目录 环境Vant介绍示例 微信小程序的npm支持安装npm包构建npm 在微信小程序开发中使用Vant准备安装和配置一&#xff1a;安装二&#xff1a;修改app.json三&#xff1a;修改project.config.json四&#xff1a;构建npm包 使用Button组件Calendar组件 参考 环境 Windows 11 …

【开源】基于JAVA+Vue+SpringBoot的就医保险管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 科室档案模块2.2 医生档案模块2.3 预约挂号模块2.4 我的挂号模块 三、系统展示四、核心代码4.1 用户查询全部医生4.2 新增医生4.3 查询科室4.4 新增号源4.5 预约号源 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVue…

把Llama2封装为API服务并做一个互动网页

最近按照官方例子&#xff0c;把Llama2跑起来了测试通了&#xff0c;但是想封装成api服务&#xff0c;耗费了一些些力气 参考&#xff1a;https://github.com/facebookresearch/llama/pull/147/files 1. 准备的前提如下 按照官方如下命令&#xff0c;可以运行成功 torchrun -…

程序员怎么利用chatgpt提高效率

在当今这个数字化时代&#xff0c;AI 技术以各种形式融入到我们的生活和工作中&#xff0c;对于程序员而言&#xff0c;AI 可以成为他们的得力助手。特别是 OpenAI 的 ChatGPT&#xff0c;其深度学习模型在编程领域具有很大潜力。 首先&#xff0c;我们介绍一下 GitHub Copilo…

【Larry】英语学习笔记语法篇——非谓语动词和从句是一回事

目录 非谓语动词和从句是一回事 不定式&#xff1a;名词/形容词/副词 1、不定式 名词属性的不定式&#xff1a;作为主语、表语、宾语 形容词属性的不定式&#xff1a;作后置定语 副词属性的不定式&#xff1a;作状语 副词属性的不定式&#xff1a;作插入语 不定式的逻辑…

【CSS】display:flex和display: inline-flex区别

flex&#xff1a;将对象作为弹性伸缩盒显示 inline-flex&#xff1a;将对象作为内联块级弹性伸缩盒显示 DOM结构 <div class"main"><div></div><div></div><div></div><div></div></div>flex .main{…

HTML世界核心

目录 一、基本文档(Basic Documentation) 二、基本标签(Basic Tags) 三、文本格式化(Formatting) 四、链接(Links) 五、图片(Images) 六、样式/区块(Styles/Sections) 七、无序列表(Disorder List) 八、有序列表(Sequence List) 九、定义列表(Definin…

用户空间与内核通信(二)

文章&#xff1a;用户空间与内核通信&#xff08;一&#xff09;介绍了系统调用&#xff08;System Call&#xff09;&#xff0c;内核模块参数和sysfs&#xff0c;sysctl函数方式进行用户空间和内核空间的访问。本章节我将介绍使用netlink套接字和proc文件系统实现用户空间对内…

python入门----基础

这里写目录标题 重点虚拟环境/与//的区别/// 关于print字符串可以用号拼接单双引号转义符换行三引号 变量变量的定义变量名的命名 API库导库以及使用 注释单行注释多行注释 数据类型strboolNoneTypetype函数 交互模式介绍开启 input作用延伸 if-else条件嵌套语句逻辑运算符内容…

信号系统之窗口正弦滤波器

1 Windowed-Sinc 的策略 图 16-1 说明了 windowed-sinc 滤波器背后的思想。在**(a)**中&#xff0c;显示了理想低通滤波器的频率响应。所有低于截止频率 f c f_c fc​ 的频率都以单位振幅通过&#xff0c;而所有较高的频率都被阻挡。通带是完全平坦的&#xff0c;阻带中的衰减…

代码随想录算法训练营第三六天 | 无重叠区间、划分字母区间、合并区间

目录 无重叠区间划分字母区间合并区间 LeetCode 435. 无重叠区间 LeetCode 763.划分字母区间 LeetCode 56. 合并区间 无重叠区间 给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量&#xff0c;使剩余区间互不重叠…

【linux】体系结构和os管理

冯诺依曼体系结构 输入单元&#xff1a;包括键盘, 鼠标&#xff0c;扫描仪, 写板等 中央处理器(CPU)&#xff1a;含有运算器和控制器等 输出单元&#xff1a;显示器&#xff0c;打印机等 这里的存储器指的是内存 三者是相互连接的&#xff0c;设备之间会进行数据的来回拷贝&am…

STM32F1 - I2C读写EEPROM

Inter-integrated circuit 1> 实验概述2> I2C模块 - 硬件方框图3> I2C模块 - 主发送器模式4> I2C模块 - 主接收器模式 1> 实验概述 通过STM32F103内部I2C硬件模块&#xff0c; 读写EEPROM - AT24C02 2> I2C模块 - 硬件方框图 3> I2C模块 - 主发送器模式 4…

GPT-4助力我们突破思维定势

GPT-4在突破思维局限、激发灵感和促进知识交叉融合方面的作用不可小觑&#xff0c;它正逐渐成为一种有力的工具&#xff0c;助力各行业和研究领域的创新与发展。 GPT-4在突破传统思维模式、拓宽创新视野和促进跨学科知识融合方面扮演着越来越重要的角色&#xff1a; 突破思维…

java 数据结构LinkedList类

目录 什么是LinkedList 链表的概念及结构 链表的结构 无头单向非循环链表 addFirst方法&#xff08;头插法&#xff09; addLast方法&#xff08;尾插法&#xff09; addIndex方法 contains方法 removeAllKey方法 size和clear方法 链表oj题 无头双向非循环链表 ad…

Paper - 使用 CombFold 组合装配实现大型蛋白质复合物的结构预测

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/136170304 CombFold: predicting structures of large protein assemblies using a combinatorial assembly algorithm and AlphaFold2 CombFold…

大公司为什么禁止SpringBoot项目使用Tomcat?

原作者&#xff1a;老杨 原文PDF链接&#xff1a;https://topjavaer.cn/advance/excellent-article/28-springboot-forbid-tomcat.html 前言 在SpringBoot框架中&#xff0c;我们使用最多的是Tomcat&#xff0c;这是SpringBoot默认的容器技术&#xff0c;而且是内嵌式的Tomcat…