目录
频道首页
linux与网络综合实践记录
收藏
0
xy20118 最近修改于 2024-05-28 09:00:33

🏢 项目场景

相关背景: image 类似小型公司网络搭建(两个人的公司😎) 一边是内网 一边是外网。


📜 要求描述

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

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

3)server1服务器上创建密钥对并上传给网关服务器,并使server1的root用户可以使用root用户免交互登录网关服务器

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

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


🫵场景分析

image

可以先画整体的构思图 整理出大概得思路:

1.网关服务器 一个对内网 一个外网 在虚拟机上对应两个网卡,!!#ffff00 ens33 192网段 ens36 12 网段!! 整个场景分析下来 之后还得作为dhcp服务器 和DNS服务器 所以配置网卡的时候 都需要指向本机。 2.SV1需要手动配置和ens33 同网段IP ,网关服务器 同样作为他的DNS服务器 DNS指向网关服务器 且和SV2同网段。 3.SV2和PC1 通过IP地址 需要dhcp服务器 地址池分配 DNS指向网关服务器 4.NFS存储共享服务,SV2作为共享服务器 共享自己的目录 到SV1上 并展示。 5.www.benet.com 为server1的IP地址 PC1可以使用域名www.benet.com解析12.0.0.254

image


🔍 可能出现问题

1.虚拟机搭建模拟实验环境,可能会存在虚拟机网段和题目要求不一样的情况,需要按照题目要求调整网卡配置 网卡模式 并且连通xhell
2.dhcp分配不同网段 可能会存在对应分配错误情况 3.ssh免密登录网关服务器 客户机和服务机 注意区分 4.NFS共享的服务端和客户端 5.DNS服务器 混淆 理解清楚谁给谁提供DNS域名解析 解析过程。 6.对应各服务 安装软件的名称


👍 解决方案

!!#fff2cc 以下场景默认关闭防火墙和selinux!! !!#ffff00 systemctl stop firewalled
setenforce 0 !! 1.本机网段 和题目要求不一样 需要按照题目要求 调整VM8 和VM1 配置 调整为对应的网段192 12 两个。 image image image image 2.虚拟机网络配置NAT和仅主机模式都需要对应调整 网关也调整。 image

3.规划四台虚拟机 首选部署网关服务器 在网关服务器,添加一个仅主机模式的网卡 给12段使用 image image

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 #编辑网卡配置
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.254
NETMASK=255.255.255.0
GATEWAY=192.168.100.254
DNS1=127.0.0.1  
DNS2=218.2.135.1

[root@localhost ~]# systemctl restart network #重启网络 
[root@localhost ~]# ifconfig  #查看网卡配置是否生效以及新加网卡名称
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.254  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 fe80::7f34:379f:8add:fd96  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:24:f7:87  txqueuelen 1000  (Ethernet)
        RX packets 7960  bytes 2142282 (2.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2227  bytes 323816 (316.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:24:f7:91  txqueuelen 1000  (Ethernet)
        RX packets 7  bytes 603 (603.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 104  bytes 18672 (18.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens36 #手动更改网卡ens36配置文件。
DEVICE=ens36
NAME=ens36
BOOTPROTO=static
ONBOOT=yes
IPADDR=12.0.0.254 #IP地址
NETMASK=255.255.255.0 #子网掩码 题目要求
GATEWAY=12.0.0.254 #网关指向自己
DNS1=127.0.0.1  #DNS本机
[root@localhost ~]# ifconfig #查看网卡是否生效配置
ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 12.0.0.254  netmask 255.255.255.0  broadcast 12.0.0.255
        inet6 fe80::20c:29ff:fe24:f791  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:24:f7:91  txqueuelen 1000  (Ethernet)
        RX packets 16  bytes 1326 (1.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 189  bytes 32053 (31.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost etc]# cat resolv.conf  #查看DNS设置 
# Generated by NetworkManager
nameserver 127.0.0.1 #代表本机
nameserver 218.2.135.1

2.配置SV1 网卡 按照要求Server1:192.168.100.101/24 手动修改网卡配置文件 image

[root@xyy1 ~]# systemctl restart network #重启网络
[root@xyy1 ~]# ifconfig   #查看配置是否生效
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.101  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 fe80::20c:29ff:fe6c:b61a  prefixlen 64  scopeid 0x20<link>
[root@xyy1 ~]# cat /etc/resolv.conf #查看DNS配置
nameserver 192.168.100.254 

3.配置完成之后 连接xshell 鼠标右键属性或者新建填写对应主机即可 image image 连接上之后建议可以先改名

[root@localhost ~]# hostnamectl  set-hostname GSV
[root@gsv ~]#    #exit 退出后重新打开就可以生效
[root@gsv ~]# hostnamectl set-hostname SV1
[root@sv1 ~]# dhcp

4.根据场景分析 可以先安装所需软件在网关服务器以及SV1上 (可以先改网关通网 也可以之后用本地yum仓库)

[root@gsv ~]# yum  install bind dhcp bind-utlis httpd -y  #安装所需软件 网关服务器  
[root@sv1 ~]# yum install httpd nfs-utlis rpcbind -y #SV1上安装软件 

5.网关服务器分配对应的IP地址 给PC1和SV2 网关服务器安装dhcp后 修改配置文件 分配地址 image

[root@gsv ~]# rpm -qc dhcp 
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases
[root@gsv ~]# cat /etc/dhcp/dhcpd.conf 
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
[root@gsv ~]# cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf 
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@gsv ~]# vim /etc/dhcp/dhcpd.conf  #修改配置文件
# This is a very basic subnet declaration.

subnet 192.168.100.0 netmask 255.255.255.0 {
  range 192.168.100.50 192.168.100.90;
  option routers 192.168.100.254;
  option domain-name-servers 192.168.100.254;
}
subnet 12.0.0.0 netmask 255.255.255.0 {
  range 12.0.0.50 12.0.0.100;
  option routers 12.0.0.254;
  option domain-name-servers 12.0.0.254;

}
[root@gsv ~]# systemctl start dhcpd #开启服务 如果异常可以查看日志  根据日志提示处理。

image 如果服务启动失败报错可以根据日志提示进行修改处理。 image

SV2 网卡配置文件修改 模式修改为dhcp获取 其余直接注释掉即可。从网关服务器获取 image 修改配置后重启网络服务查看 是否对应IP池内部地址

[root@sv2 ~]# ifconfig  #查看网卡信息
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.50  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 fe80::bb40:9fd0:5f4e:2392  prefixlen 64  scopeid 0x20<link>
[root@sv2 ~]# cat /etc/resolv.conf  #DNS设置查看
# Generated by NetworkManager
search example.org
nameserver 192.168.100.254

PC1先修改网卡为仅主机模式 然后 修改网卡配置信息 同SV1一样 dhcp获取网卡配置 其余注释掉 image#483px #213px

[root@pc1 ~]# systemctl restart network
[root@pc1 ~]# ifconfig  #查看地址在IP地址池内
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 12.0.0.50  netmask 255.255.255.0  broadcast 12.0.0.255
        inet6 fe80::d07:f07:5c30:9920  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:80:97:54  txqueuelen 1000  (Ethernet)

配置完成后 四台虚拟机都可以按照各自对应的主机 连接到xshell image

  1. server1服务器上创建密钥对并上传给网关服务器,并使server1的root用户可以使用root用户免交互登录网关服务器
    SV1 创建秘钥给网关服务器 192.168.100.254
[root@sv1 ~]# ssh-keygen

image

秘钥传给网关服务器

[root@sv1 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.100.254

image

测试验证: SV1root账户免密直接登录网关服务器 对方日志也可以查看到 image

7.SV1服务器安装和启动httpd服务搭建Web网站,首页内容自定 SV1已经安装httpd 软件 所以直接书写html文件即可

[root@sv1 ~]# cd /var/www/html/ #切换到对应网页文件目录
[root@sv1 html]# vim index.html #编辑静态文件 内容随便
[root@sv1 html]# systemctl start httpd  #启动httpd服务
[root@sv1 html]# curl 192.168.100.101  #显示静态页文件 
你快乐吗?!

8.把server2的/share目录中的首页文件index.html,通过NFS挂载到server1的/var/www/html目录下使用 分析得知 SV2属于服务端,SV1是客户端 SV2需要安装httpd和nfs-utils rpcbind 三个软件

yum install nfs-utils  rpcbind httpd  -y
[root@sv2 /]# mkdir share  #新建一个共享文件目录
[root@sv2 /]# cd /var/www/html/  #切换到网页规定目录
[root@sv2 html]# vim index.html #编辑文件 
[root@sv2 html]# systemctl start httpd #启动服务
[root@sv2 html]# curl 192.168.100.50 #查看文件显示
每天都一样!
[root@sv2 html]# cp -p index.html /share/  #对应文件复制到共享目录里面。
[root@sv2 html]# ls /share/
index.html
[root@sv2 html]# vim /etc/exports #编辑NFS配置文件
/share    *   
~                                                                         
~                                                                         
~ 
[root@sv2 html]# exportfs -v #查看本机共享情况
/share            <world>  (ro,sync,wdelay,hide,no_subtree_check,sec=sys,secure,root_squash,no_all_squash)  #权限 
systemctl start rpcbind nfs  #启动服务 nfs 

image

切换到客户端SV1 查看共享情况

[root@sv1 /]# showmount -e 192.168.100.50  #查看共享情况 服务器的。
Export list for 192.168.100.50: 
/share * 
[root@sv1 /]# mount 192.168.100.50:/share  /var/www/html/ # 共享目录挂载到静态页面目录下 
[root@sv1 /]# curl 192.168.100.101  #验证本机访问 显示的是共享目录内容 
每天都一样!

上面是临时挂载 如果需要永久挂载需要手写配置文件/etc/fstab image

7.网关服务器解析 外网访问www.benet.com 是192.168.100.101(SV1) 内网访问是12.0.0.254

首先安装软件 bind bind-utlis 查看配置文件 修改配置文件

[root@gatesv named]# rpm -qc bind

image

修改主配置文件 允许对方和自己互相访问 不做限制。

将根域注释。分离解析时 启用 view ,所有zone 都必须在 view 里面
zone "." IN {                  
       type hint;
      file "named.ca";
# zone 是指分配给某个服务器的特定命名空间  

image

修改区域配置文件

view "lan" {
        match-clients { 192.168.100.0/24; }; # 定义内外网 view代表容器分割
                zone "benet.com" IN {       #定义域名
          type master;   #定义类型
          file "bet.net.com.lan";  #定义配置文件名 
        };

        zone "." IN { 
          type hint;       #根区域类型 
          file "named.ca";
        };
};

image

复制模板配置文件给对应的已定义配置文件 修改文件

[root@gatesv named]# cp -p /var/named/named.localhost  bet.net.com.wan  #保留权限复制 一会需要调用文件 执行named服务。
[root@gatesv named]# cp -p /var/named/named.localhost  bet.net.com.lan 

image image

验证不同客户端访问 结果 NDS解析是否正确 image

9.snat和dnat snat 使内网地址 SNAT:让内网通过某一特定地址访问外部网络,实现地址伪装,请求报文:修改源IP DNAT:把本地网络中的主机上的某服务开放给外部网络访问(发布服务和端口映射),但隐藏真实IP,请求报文:修改目标IP (简单理解就是局域网共享到公网上面)

网关服务器需要先开启路由转发功能

[root@gatesv ~]# sysctl -a |grep ip_forward
net.ipv4.ip_forward = 1  #默认是0 修改为1 开启路由转发
[root@gatesv ~]# vim /etc/sysctl.conf  #永久生效 修改配置文件 
[root@gatesv ~]#sysctl -p #刷新内核参数 使修改生效

image

添加iptables规则

##SNAT策略
[root@gatesv ~]#iptables -t nat -A POSTROUTING -o ens36 -s 192.168.100.0/24 -j SNAT --to 12.0.0.254 
##DNAT策略
[root@gatesv ~]#iptables -t nat -A PREROUTING -i ens36 -d 12.0.0.254 -p tcp --dport 80 -j DNAT --to 192.168.100.101
[root@gatesv ~]#sysctl -p
net.ipv4.ip_forward = 1
内容大纲
批注笔记
linux与网络综合实践记录
ArticleBot
z
z
z
z
主页
会议室
Git管理
文章
云文档
看板