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

本文主要是介绍[ 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 端口。

这篇关于[ linux网络 ] 网关服务器搭建,综合应用SNAT、DNAT转换,dhcp分配、dns分离解析,nfs网络共享以及ssh免密登录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/726154

相关文章

Kotlin Map映射转换问题小结

《KotlinMap映射转换问题小结》文章介绍了Kotlin集合转换的多种方法,包括map(一对一转换)、mapIndexed(带索引)、mapNotNull(过滤null)、mapKeys/map... 目录Kotlin 集合转换:map、mapIndexed、mapNotNull、mapKeys、map

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

Redis中Stream详解及应用小结

《Redis中Stream详解及应用小结》RedisStreams是Redis5.0引入的新功能,提供了一种类似于传统消息队列的机制,但具有更高的灵活性和可扩展性,本文给大家介绍Redis中Strea... 目录1. Redis Stream 概述2. Redis Stream 的基本操作2.1. XADD

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

JSONArray在Java中的应用操作实例

《JSONArray在Java中的应用操作实例》JSONArray是org.json库用于处理JSON数组的类,可将Java对象(Map/List)转换为JSON格式,提供增删改查等操作,适用于前后端... 目录1. jsONArray定义与功能1.1 JSONArray概念阐释1.1.1 什么是JSONA

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

MyBatis中$与#的区别解析

《MyBatis中$与#的区别解析》文章浏览阅读314次,点赞4次,收藏6次。MyBatis使用#{}作为参数占位符时,会创建预处理语句(PreparedStatement),并将参数值作为预处理语句... 目录一、介绍二、sql注入风险实例一、介绍#(井号):MyBATis使用#{}作为参数占位符时,会

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于