青岛实训11--nfs和samba

任务要求

1. ⼀台应⽤服务器web-server部署apache,静态⽹⻚资源存放在另外⼀台NFS服

务器上

2. 对于NFS服务器上保存的静态资源实⾏实时备份(inotify + rsync)

任务拆解

1. 共享存储服务器搭建NFS服务,为web服务器提供静态资源⽂件内容

创建共享⽬录来保存静态资源⽂件

发布该共享⽬录给web服务使⽤

2. ⼀台服务器搭建web服务,并==使⽤==(挂载)共享存储的静态资源涉及知识点

==NFS服务的搭建(新知识点)==

mount命令挂载⽹络资源(掌握)

rsync⼯具实现对共享存储上的静态资源备份(旧知识点)

课程⽬标

了解NFS服务的应⽤场景及特点

==能够通过NFS服务实现⽂件共享(重点)==

能够使⽤mount命令==挂载==⽹络共享资源理论储备

⼀、NFS服务介绍

NFS(Network File System)⽹络⽂件系统

主要⽤于linux系统上实现⽂件共享的⼀种协议,其客户端主要是Linux

没有⽤户认证机制,且数据在⽹络上传送的时候是明⽂传送,⼀般只能在局域

中使⽤

⽀持多节点同时挂载及并发写⼊

企业应⽤:为集群中的web server提供前端端存储

该服务包括的组件:

RPC(Remote Procedure Call Protocol):

远程过程调⽤协议,它是⼀种通过⽹络从远程计算机程序上请求服务,不需要了解

底层⽹络技术的协议。

rpcbind //负责NFS的数据传输,远程过程调⽤ ==tcp/udp协议 端⼝

111==

nfs-utils //控制共享哪些⽂件,权限管理

⼆、NFS服务相关软件包

nfs-utils-1.2.3-26.el6.x86_64 nfs服务的⼀个脚本控制⼯具(服务端

与客户端)

nfs4-acl-tools-0.3.3-6.el6.x86_64 acl ⼯具包

nfs-utils-lib-1.1.5-4.el6.x86_64 nfs 库⽂件

[root@nfs-server ~]# rpm -q rpcbind

rpcbind-0.2.0-11.el6.x86_64

[root@nfs-server ~]# rpm -aq|grep ^nfs

nfs-utils-1.2.3-39.el6.x86_64

nfs-utils-lib-1.1.5-6.el6.x86_64

nfs4-acl-tools-0.3.3-6.el6.x86_64

三、配置⽂件解读

/etc/exports man 5 exports

共享⽬录 共享选项

/nfs/share *(ro,sync)

共享主机:

* :代表所有主机

192.168.0.0/24:代表共享给某个⽹段

192.168.0.0/24(rw) 192.168.1.0/24(ro) :代表共享给不同⽹段

192.168.0.254:共享给某个IP

*.itcast.com:代表共享给某个域下的所有主机

共享选项:

ro:只读

rw:读写

sync:实时同步,直接写⼊磁盘

async:异步,先缓存在内存再同步磁盘

anonuid:设置访问nfs服务的⽤户的uid,uid需要在/etc/passwd中存在任务解决⽅案

anongid:设置访问nfs服务的⽤户的gid

root_squash :默认选项 root⽤户创建的⽂件的属主和属组都变成nfsnobody,

其他⼈nfs-server端是它⾃⼰,client端是nobody。

no_root_squash:root⽤户创建的⽂件属主和属组还是root,其他⼈server端是

它⾃⼰uid,client端是nobody。

all_squash: 不管是root还是其他普通⽤户创建的⽂件的属主和属组都

是nfsnobody

说明:

anonuid和anongid参数和all_squash⼀起使⽤。

all_squash表示不管是root还是其他普通⽤户从客户端所创建的⽂件在服务器端的

拥有者和所属组都是nfsnobody;服务端为了对⽂件做相应管理,可以设置anonuid

和anongid进⽽指定⽂件的拥有者和所属组

环境准备:

Web-server:10.1.1.11

NFS-server:10.1.1.12

详细步骤:

1. 搭建NFS-server

1)创建共享⽬录及⽹站的静态资源⽂件

mkdir /share

echo "hello 来到我的世界" > /share/index.html

2)发布共享⽬录

[root@nfs-server ~]# cat /etc/exports

/share 10.1.1.0/24(ro)

3)启动服务检查端⼝是否监听

[root@nfs-server ~]# service rpcbind start

Starting rpcbind: [

OK ][root@nfs-server ~]# service nfs start

Starting NFS services: [

OK ]

Starting NFS mountd: [

OK ]

Starting NFS daemon: [

OK ]

Starting RPC idmapd: [

OK ]

查看端⼝111是否监听:

[root@nfs-server ~]# netstat -nltpu|grep rpcbind

2. 搭建web服务

1)安装软件

[root@web-server ~]# rpm -q httpd

httpd-2.2.15-29.el6.centos.x86_64

2)挂载nfs-server端共享⽬录

[root@web-server ~]# mount -t nfs 10.1.1.12:/share

/var/www/html/media

mount: wrong fs type, bad option, bad superblock on

10.1.1.1:/share,

missing codepage or helper program, or other error

(for several filesystems (e.g. nfs, cifs) you might

need a /sbin/mount.<type> helper program)

In some cases useful info is found in syslog - try

dmesg | tail or so

原因:客户端没有安装nfs相关的⼯具包

解决:

[root@web-server ~]# yum -y install nfs-utils nfs-utils-lib

nfs4-acl-tools

[root@web-server ~]# mount -t nfs 10.1.1.1:/share /var/www/html或者

[root@web-server ~]# mount.nfs 10.1.1.1:/share /var/www/html/

[root@web-server ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/vg_server-lv_root 18G 2.3G 15G 14% /

tmpfs 491M 0 491M 0% /dev/shm

/dev/sda1 485M 33M 427M 8% /boot

/dev/sr0 4.2G 4.2G 0 100% /mnt

10.1.1.1:/share 18G 3.1G 14G 19%

/var/www/html

3)在web-server端查看⾸⻚⽂件

[root@web-server ~]# ll /var/www/html/

total 4

-rw-r--r-- 1 root root 25 Dec 30 02:48 index.html

4)启动Apache服务

[root@web-server ~]# service httpd start

3. 测试验证

Windows:

http://10.1.1.2

Linux:

# yum -y install elinks

# elinks http://10.1.1.2

客户端访问常⻅的问题:

[root@MissHou ~]# showmount -e 10.1.1.1

clnt_create: RPC: Port mapper failure - Unable to receive:

errno 113 (No route to host)

原因:

1. nfs-server端rpcbind服务没开

2. ⽹络问题

3. 防⽕墙问题===============================================================

===================

环境:

nfs-server:10.1.1.1

backup:10.1.1.250

4. 实现nfs-server端的数据⽂件实时同步

1)安装inotify⼯具

[root@nfs-server ~]# pwd

/soft

[root@nfs-server ~]# tar xf inotify-tools-3.13.tar.gz

[root@nfs-server ~]# ls

inotify-tools-3.13 inotify-tools-3.13.tar.gz

[root@nfs-server ~]# cd inotify-tools-3.13

[root@nfs-server inotify-tools-3.13]# ls

aclocal.m4 config.guess configure depcomp

libinotifytools Makefile.in NEWS

AUTHORS config.h.in configure.ac INSTALL ltmain.sh

man README

ChangeLog config.sub COPYING install-sh Makefile.am

missing src

[root@nfs-server inotify-tools-3.13]# ./configure

[root@nfs-server inotify-tools-3.13]# make

[root@nfs-server inotify-tools-3.13]# make install

2)编写脚本

[root@nfs-server ~]# vim rsync.sh

#!/bin/bash

/usr/local/bin/inotifywait -mrq -e

modify,delete,create,attrib,move /share |while read events

do

rsync -a --delete /share 10.1.1.250:/backup/echo "`date +%F\ %T`出现事件$events" >>

/var/log/rsync.log 2>&1

done

加可执⾏权限:

[root@nfs-server ~]# chmod +x rsync.sh

注意:在backup备份机器上创建/backup⽬录!!!

说明:解决不需要交互有两种⽅案,其⼀可以配置免密登录;其⼆可以在backup机搭

建rsync服务

3) 配置nfs-server的root⽤户免密码登录backup机器

[root@nfs-server ~]# ls ~/.ssh/

known_hosts

[root@nfs-server ~]# ssh-keygen

。。。

[root@nfs-server ~]# ls ~/.ssh/

id_rsa id_rsa.pub known_hosts

[root@nfs-server ~]# cd ~/.ssh/

[root@nfs-server .ssh]# ssh-copy-id -i id_rsa.pub

root@10.1.1.250

4)脚本放到后台去运⾏

[root@nfs-server ~]# ./rsync.sh &

5)测试验证

nfs-server端改变⽂件:

[root@nfs-server ~]# cd /share/

[root@nfs-server share]# mkdir aaa

[root@nfs-server share]# touch test{1..3}

查看⽇志:

[root@nfs-server ~]# tail -f /var/log/rsync.logmount -t nfs mount.nfs

mount -t cifs mount.cifs

扩展:samba服务

⼀、samba介绍

SMB(Server Message Block)协议实现⽂件共享,也称为CIFS(Common

Internet File System )

是Windows和类Unix系统之间共享⽂件的⼀种协议

客户端==主要是Windows==;⽀持多节点同时挂载以及并发写⼊

主要⽤于windows和Linux下的⽂件共享、打印共享

实现==匿名与本地⽤户==⽂件共享

2018-12-30 07:31:36出现事件/share/ CREATE,ISDIR aaa

2018-12-30 07:32:15出现事件/share/ CREATE test1

2018-12-30 07:32:16出现事件/share/ ATTRIB test1

2018-12-30 07:32:16出现事件/share/ CREATE test2

2018-12-30 07:32:16出现事件/share/ ATTRIB test2

2018-12-30 07:32:16出现事件/share/ CREATE test3

2018-12-30 07:32:16出现事件/share/ ATTRIB test3

backup备份机查看数据同步情况:

[root@backup backup]# ll

total 8

drwxr-xr-x 2 root root 4096 Dec 30 07:31 aaa

-rw-r--r-- 1 root root 25 Dec 30 02:48 index.html

-rw-r--r-- 1 root root 0 Dec 30 07:32 test1

-rw-r--r-- 1 root root 0 Dec 30 07:32 test2

-rw-r--r-- 1 root root 0 Dec 30 07:32 test3Samba服务的主要进程:

smbd进程

控制发布共享⽬录与权限、==负责⽂件传输== ==TCP 139

445==

nmbd进程 ⽤于名称解析netbios ==UDP 137 138== ;基于NETBIOS协议

获得计算机名称——>解析为相应IP地址,实现信息通讯

NetBIOS是Network Basic Input/Output System的简称,⼀般指⽤于局域⽹通信

的⼀套API

⼆、samba服务器搭建

了解配置⽂件:

[root@smb-server ~]# rpm -aq|grep ^samba

samba-3.6.9-164.el6.x86_64 服务端软件包

samba-common-3.6.9-164.el6.x86_64

samba-winbind-3.6.9-164.el6.x86_64

samba-client-3.6.9-164.el6.x86_64

samba-winbind-clients-3.6.9-164.el6.x86_64

samba4-libs-4.0.0-58.el6.rc4.x86_64

/etc/samba/smb.conf

[global] 全局选项

workgroup = MYGROUP 定义samba服务器所在的⼯作组

server string = Samba Server Version %v smb服务的描述

log file = /var/log/samba/log.%m ⽇志⽂件

max log size = 50 ⽇志的最⼤⼤⼩KB

security = user 认证模式:share匿名|user⽤户密

码|server外部服务器⽤户密码

passdb backend = tdbsam 密码格式 load printers = yes 加载打印机

cups options = raw 打印机选项

[homes] 局部选项(共享名称)

comment = Home Directories 描述

browseable = no 隐藏共享名称

writable = yes 可读可写

[printers] 共享名称

comment = All Printers 描述

path = /var/spool/samba 本地的共享⽬录

browseable = no 隐藏

guest ok = no ——> public = no 需要帐号和密码访问

writable = no ——> read only =yes 不可写

printable = yes 打印选项

[share]

path = /dir1

guest ok = no

writable = yes

需求:

搭建⼀个SAMBA服务,共享⼀个⽬录/samba/share,客户端使⽤user01/123通过

windows或者Linux可以在该⽬录⾥创建⽂件删除⽂件

smb-server:10.1.1.1

1. 关闭防⽕墙和selinux

2. 配置yum源

3. 软件三步曲

1)安装软件

[root@smb-server ~]# yum -y install samba

2)确认软件是否成功安装

[root@smb-server ~]# rpm -aq|grep ^samba

samba-winbind-3.6.9-164.el6.x86_64samba-winbind-clients-3.6.9-164.el6.x86_64

samba-3.6.9-164.el6.x86_64

samba-common-3.6.9-164.el6.x86_64

3)查看软件的⽂件列表

/etc/init.d/nmbd

/etc/init.d/smbd

/usr/sbin/nmbd

/usr/sbin/smbd

[root@smb-server ~]# rpm -ql samba-common

/etc/samba/smb.conf 配置⽂件

4. 根据需求通过修改配置⽂件完成服务的搭建

1)创建⼀个共享⽬录

mkdir /samba/share -p

2) 修改配置⽂件

vim /etc/samba/smb.conf

...

[smb_share]

comment = samba service

path = /samba/share

guest ok = no

writable = yes

或者

[samba_share]

path = /samba/share

public = no

writable = yes

3) 创建⼀个本地⽤户并且加⼊到samba数据库⾥

[root@smb-server samba]# useradd user01[root@smb-server samba]# id user01

uid=508(user01) gid=510(user01) groups=510(user01)

[root@smb-server samba]# which smbpasswd

/usr/bin/smbpasswd

[root@smb-server samba]# rpm -qf /usr/bin/smbpasswd

samba-common-3.6.23-51.el6.x86_64

[root@smb-server samba]# smbpasswd -a user01

New SMB password:

Retype new SMB password:

Added user user01.

[root@smb-server samba]# pdbedit -L

user01:508:

5. 启动服务

[root@smb-server samba]# /etc/init.d/nmb start

Starting NMB services: [

OK ]

[root@smb-server samba]# /etc/init.d/smb start

Starting SMB services: [

OK ]

6. 测试验证

windows:

Linux下:

查看samba服务共享资源:

[root@client ~]# smbclient -L 10.1.1.1 -U user01

Enter user01's password:

session setup failed: SUCCESS - 0

解决:

服务端修改hosts⽂件将IP和主机名⼀ ⼀对应起来查看smb服务端共享的模块或者标签:

[root@client ~]# smbclient -L 10.1.1.1 -U user01

Enter user01's password:

-L: 列出

-U:指定⽤户查看

直接访问smb服务:

[root@client ~]# smbclient //10.1.1.1/smb_share -U user01

Enter user01's password:

Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-51.el6]

smb: \> ls

. D 0 Sat Sep 1

10:10:00 2018

.. D 0 Sat Sep 1

10:10:00 2018

35418 blocks of size 524288. 29675 blocks available

问题可以查看共享的⽂件,但是不能够创建⽂件

分析:

服务开放了写权限,但是⽬录本身没有对user01⽤户开发写权限

解决:

[root@smb-server samba]# setfacl -m u:user01:rwx /samba/share/

-m:修改权限

u:表示⽤户

g:表示组

[root@smb-server samba]# setfacl -m g:admin:rx /samba/share

挂载使⽤:

[root@client ~]# mount.cifs -o user=user01,pass=123

//10.1.1.1/samba/share /u01没有mount.cifs命令,请安装cifs-utils-4.8.1-19.el6.x86_64

windows下如果⽆法访问,请查看是否开启了smb客户端程序:

访问控制:

控制读写权限

writable = yes/no

readonly = yes/no

如果资源可写,但只允许某些⽤户可写,其他都是只读

write list = admin, root, @staff(⽤户组)

read list = mary, @students

控制访问对象

valid users = tom,mary,@itcast

invalid users = tom

注意:以上两个选项只能存在其中⼀个

⽹络访问控制:

hosts deny = 192.168.0. 拒绝某个⽹段

hosts allow = 192.168.0.254 允许某个IP

hosts deny = all 拒绝所有三、总结

1. ftp 局域⽹和外⽹都可以

2. nfs 局域⽹ 挂载⽅式访问 mount.nfs

3. samba 局域⽹ 直接访问(smbclinet) 挂载的⽅式mount.cifs

我们做了什么

1.创建了2个虚拟主机

2.nfsserver 配置静态⽂件共享

1.停⽤防⽕墙和selinux

2.安装2个应⽤

1.rpcbind

2.nfs-utils

3.配置/etc/exports

hosts allow = 192.168.0. EXCEPT 192.168.0.254 允许某个⽹段,但拒

绝某个单个IP

注意:deny和allow同时存在,allow优先

/share

*(rw,sync|async)

4.启动服务

systemctl start rpmbind

systemctl start nfs

5.查看端⼝占⽤

netstat -lnput|grep 111

6.确定nfs服务区正常启动

3.webserver 发布web项⽬

1.停⽤防⽕墙和selinux

2.安装nginx

3.修改nginx默认的index.html,添加图⽚和视频

4.在nginx下的html⽬录中创建⼀个挂载⽬录 static

mkdir /usr/share/nginx/html/static/

5.挂载nfs服务

mount -t nfs 192.168.71.144:/share/

/usr/share/nginx/html/static/6.查看挂载⽬录,在webserver中看到nfs服务共享的数据,这个数据是连接,

不是真实的⽂件。和rsync的数据不同

7.⽂件的测试,读⽂件

备份静态⽂件

1.克隆⼀个备份主机 bakuphost

2.停⽤selinx和firewalld

3.⽀持rsync备份同步 安装rsync,bakuphost nfsserver两台主机上都应该安装

4.在nfs主机上安装inotify-tools监听/share⽬录

5.先同步⼀份⼀份到bakuphost主机的tmp⽬录下

6.需要输⼊密码才会同步过去,为了⾃动化,设置免密

1.ssh-keygen

2.ssh-copy-id root@192.168.71.146

3.测试7.bakhost主机上创建/bakup

8.nfsserver上创建⼀个脚本rn.sh

9.脚本代码

#!/bin/bash

inotifywait /share -mrq -e

modify,create,delete,attrs,move|while read events

do

rsync -av --delete /share/ root@192.168.71.145:/bakup/

# 也可以输出⽇志

done

10.给添加x权限,执⾏脚本

使⽤samba

SAMBA⽂件共享与DNS域名服务

⼀、SAMBA⽂件共享

1、什么是SAMBA

SMB(Server Message Block)协议实现⽂件共享,也称为CIFS(Common

Internet File System )

是Windows和类Unix系统之间共享⽂件的⼀种协议

客户端==主要是Windows==;⽀持多节点同时挂载以及并发写⼊

主要⽤于windows和Linux下的⽂件共享、打印共享

实现==匿名与本地⽤户==⽂件共享

2、SAMBA主要进程

smbd进程

控制发布共享⽬录与权限、==负责⽂件传输== ==TCP 139

445==

nmbd进程 ⽤于名称解析netbios ==UDP 137 138== ; 基于NETBIOS协议获得

计算机名称——>解析为相应IP地址,实现信息通讯 NetBIOS是Network Basic Input/Output System的简称,⼀般指⽤于局域⽹通信的

⼀套API

3、SAMBA环境准备

第⼀步:从模板机中克隆⼀台Linux服务器,叫做SAMBA

第⼆步:更改主机名称与IP地址

第三步:关闭防⽕墙与SELinux

第四步:配置yum源

# hostnamectl set-hostname samba.itcast.cn

# su

# vim /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=none

IPADDR=10.1.1.10

NETMASK=255.255.255.0

GATEWAY=10.1.1.2

DNS1=8.8.8.8

DNS2=114.114.114.114

# systemctl restart network

扩展:如果是多张⽹卡,建议使⽤ifdown ens33以及ifup ens33实现重启⽹络操作

# systemctl stop firewalld

# systemctl disable firewalld

# setenforce 0

# vim /etc/selinux/config

SELINUX=disabled4、SAMBA软件安装(服务器搭建)

SAMBA也是⼀个C/S架构的软件,Client主要是Windows

5、了解smb的配置⽂件

# yum clean all

# yum makecache

# yum install samba -y

# rpm -qa |grep ^samba

# vim /etc/samba/smb.conf

[global] 全局选项

workgroup = MYGROUP 定义samba服务器所在的⼯作组

server string = Samba Server Version %v smb服务的描述

log file = /var/log/samba/log.%m ⽇志⽂件

max log size = 50 ⽇志的最⼤⼤⼩KB

security = user 认证模式:share匿名|user⽤户密

码|server外部服务器⽤户密码

passdb backend = tdbsam 密码格式

load printers = yes 加载打印机

cups options = raw 打印机选项

[homes] 局部选项(共享名称)

comment = Home Directories 描述

browseable = no 隐藏共享名称

writable = yes 可读可写

[printers] 共享名称

comment = All Printers 描述

path = /var/spool/samba 本地的共享⽬录6、SAMBA综合案例

搭建⼀个SAMBA服务,共享⼀个⽬录/samba/share,客户端使⽤user01/123通过

windows或者Linux可以在该⽬录⾥创建⽂件删除⽂件

第⼀步:SAMBA服务器环境准备

更改主机名称、IP地址、关闭防⽕墙、SELinux、配置YUM源

第⼆步:安装SAMBA软件

第三步:查询SAMBA⽣成⽂件列表(rpm -ql)

browseable = no 隐藏

guest ok = no ——> public = no 需要帐号和密码访问

writable = no ——> read only =yes 不可写

printable = yes 打印选项

[share]

path = /dir1

guest ok = no

writable = yes

# yum install samba -y

# rpm -aq|grep ^samba

# rpm -ql samba

/usr/sbin/smbd

/usr/sbin/nmbd

/usr/lib/systemd/system/smb.service

/usr/lib/systemd/system/nmb.service第四步:在服务器端创建⼀个共享⽬录

# mkdir /samba/share -p

第五步:编辑/etc/smb.conf配置⽂件,实现SAMBA共享

# vim /etc/samba/smb.conf

...

[smb_share]

comment = samba service

path = /samba/share

guest ok = no

writable = yes

或者

[samba_share]

path = /samba/share

public = no

writable = yes

备注:guest ok === public

第六步:创建⼀个user01⽤户,然后添加到samba认证中,设置密码为123

# useradd user01

# smbpasswd -a user01

New SMB password:123

Retype new SMB password:123

Added user user01.

以上操作完成后,则SAMBA系统中增加了⼀个user01的账号以及123的密码

第七步:启动nmb与smb服务# systemctl start nmb

# systemctl start smb

第⼋步:基于Windows或Linux实现⽂件共享

Windows:

① ⾸先安装SAMBA⽀持Windows + X,选择控制⾯板

② 找到Windows功能选项

③ 安装SAMBA功能(客户端)④ 进⼊计算机(我的电脑),找到映射⽹络驱动器

设置SAMBA服务器的地址信息:

10.1.1.10 => Linux服务器的IP地址smb_share => SAMBA标签

挂载完成后,⽬录不可写?答:主要原因在于/samba/share⽬录没有写⼊

权限

# setfacl -m u:user01:rwx /samba/share

第九步:基于Linux或Linux实现⽂件共享

yum -y install samba-client

smbclient -L 10.1.1.10 -U user01

使⽤smbclient查看⽬录信息

# smbclient //10.1.1.10/smb_share -U user01

把SAMBA挂载到Linux系统(类似NFS)

yum -y install cifs-utils

# mkdir /u01

# mount.cifs -o user=user01,pass=123 //10.1.1.10/smb_share /u01

访问控制说明:

控制读写权限

writable = yes/no

readonly = yes/no

如果资源可写,但只允许某些⽤户可写,其他都是只读

write list = admin, root, @staff(⽤户组)7、总结

1. ftp 局域⽹和外⽹都可以

2. nfs 局域⽹ 挂载⽅式访问 mount.nfs 侧重于Linux与Linux之间

3. samba 局域⽹ 直接访问(smbclinet)挂载的⽅式mount.cifs 侧重于Windows与

Linux之间

⼆、DNS域名管理系统

1、任务背景

read list = mary, @students

控制访问对象

valid users = tom,mary,@itcast

invalid users = tom

注意:以上两个选项只能存在其中⼀个

⽹络访问控制:

hosts deny = 192.168.0. 拒绝某个⽹段

hosts allow = 192.168.0.254 允许某个IP

hosts deny = all 拒绝所有

hosts allow = 192.168.0. EXCEPT 192.168.0.254 允许某个⽹段,但拒绝

某个单个IP

注意:deny和allow同时存在,allow优先解析内⽹域名,能够访问内⽹web应⽤。把 www.zhangmin.cluster 解析到内⽹服

务器IP

2、DNS概述

DNS(domain name system ) 域名管理系统

域名:

由特定的格式组成,⽤来表示互联⽹中==某⼀台计算机或者计算机组的名称==,能

够使⼈更⽅便的访问互联⽹,⽽不⽤记住能够被机器直接读取的IP地址。

计算机 => IP地址,互联⽹中的计算机都是通过IP地址进⾏互相访问的。(IP地址过

于复杂)

域名:代替IP实现计算机的访问(⾼级 => 上层应⽤,底层还是IP地址)

每个域名 => DNS服务器 => 对应的IP地址☆ DNS的正向解析

域名的==正向解析==

将主机域名转换为对应的IP 地址,以便⽹络程序能够通过主机域名访问到对应的服

务器主机

域名——>IP

A记录

☆ DNS的反向解析

域名的==反向解析==

将主机的IP地址转换为对应的域名,以便⽹络(服务)程序能够通过IP地址查询到

主机的域名

IP——>域名

PTR记录

3、DNS的结构

域名:www.itheima.com

DNS结构:www.itheima.com. => 从右向左解析☆ 根域(.)

在整个 DNS 系统的最上⽅⼀定是 . (⼩数点) 这个 DNS 服务器 (称为 root),也

叫”根域“。

根域 (13台 全世界只有13台。1个为主根服务器,放置在美国。其余12个均为

辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于

⽇本。)

☆ ⼀级域名<顶级域|国家域>

com net edu gov org cc io| cn uk us ru ja ko

.com : 商业公司

.net :互联⽹公司

.edu :教育(中⼩学、⾼中、⼤学...)

.gov :政府.io :存储设备,redis

.cn :中国域名(国家域)

☆ ⼆级域名(⾃⼰购买管理)

qq.com. baidu.com. google.com.

☆ 域名机构

收费(新⽹|万⽹)

⽼牌免费域名:TK顶级域名、TK域名DNS、TK域名商

4、DNS⼯作原理

如果询问⼀次得到结果 递归查询 C-S

如果询问多次得到结果 迭代查询 S-S

⼀次递归 多次迭代

5、dig⼯具使⽤编号

主机名称

IP地址

备注信息

1

client

x.x.x.x

client客户端,⽤于测试

2

dns

x.x.x.x

dns服务器,⽤于实现域名解析

3

web

x.x.x.x

web服务器,⽤于搭建内部web服务

5、dig⼯具使⽤

三、DNS服务器的搭建

1、DNS服务器端软件

DNS 的==域名解析==都是 ==udp/53== . 主从之间的==数据传输==默认使

==tcp/53==

DNS服务器端软件:

==Bind==是⼀款开放源码的DNS服务器软件,Bind由美国加州⼤学Berkeley(伯克

利)分校开发和维护的,全名为Berkeley Internet Name Domain它是⽬前世界上使

⽤最为⼴泛的DNS服务器软件,⽀持各种unix平台和windows平台。BIND现在由互

联⽹系统协会(Internet Systems Consortium)负责开发与维护。

2、DNS服务器搭建

☆ 第⼀步:环境准备

# dig +trace www.itcast.cn 追踪DNS的解析过程

# dig www.itcast.cn 正向解析

# dig -x IP地址 反向解析① 更改主机名称与IP地址

# hostnamectl set-hostname client

# hostnamectl set-hostname dns

# hostnamectl set-hostname web

# su

# vim /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=none

IPADDR=10.1.1.11/10.1.1.12/10.1.1.13

更改UUID编号的后3位,必须是唯⼀的

② 使⽤MX进⾏连接

③ 关闭防⽕墙与SELinux

# systemctl stop firewalld

# systemctl disable firewalld

# setenforce 0

# vim /etc/selinux/config

SELINUX=disabled

④ 配置YUM源(有⽹配置公⽹YUM源、⽆⽹就配置光盘或⾃建YUM源)

# yum clean all

# yum makecache☆ 第⼆步:安装DNS软件

DNS服务器:

安装完毕后,可以使⽤rpm -q查询是否安装成功:

# yum install bind -y

# rpm -q bind

# rpm -ql bind

# ⽇志轮转⽂件

/etc/logrotate.d/named

# 配置⽂件⽬录

/etc/named

# 主配置⽂件

/etc/named.conf

# zone⽂件,定义域

/etc/named.rfc1912.zones

# 服务管理脚本

/usr/lib/systemd/system/named.service

# ⼆进制程序⽂件

/usr/sbin/named

# 检测配置⽂件

/usr/sbin/named-checkconf

# 检测域⽂件

/usr/sbin/named-checkzone

# 根域服务器

/var/named/named.ca

# 正向解析区域⽂件模板

/var/named/named.localhost

# 反向解析区域⽂件模板find主要⽤来搜索计算机中的⽂件,rpm主要⽤来检查计算机中是否安装过

某个软件

☆ 第三步:DNS正向解析配置(域名=>IP)

/etc/named.conf主要配置访问权限控制(哪些IP或哪些主机可以访问DNS服务器)

/etc/named.rfc1912.zones主要定义域名如何解析(正向解析),解析到具体哪个IP

地址

① 对named.conf以及named.rfc1912.zones进⾏备份

/var/named/named.loopback

# dns服务器下载⽂件的默认路径

/var/named/slaves

# 进程pid

/var/rum/named

cp /etc/named.conf /etc/named.conf.bak

cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak② named.conf主配置⽂件详解(访问权限控制)

# vim /etc/named.conf

添加任何主机都可以访问的权限:

③ zones⼦配置⽂件详解(域名应该指向哪个IP地址)

# vim /etc/named.rfc1912.zones

...

zone "zhangmin" IN {

type master;

file "zhangmin.zone";

allow-update { none; };

};

扩展 => vim => :19,23 co 42,把19-23⾏,copy到42⾏的后⾯

④ 在/var/named⽬录创建itcast.cluster.zone⽂件定义正向解析

# cd /var/named

# cp -p named.localhost itcast.cluster.zone扩展:-p代表复制⽂件时保留⽂件的原有属性

⑤ 编辑itcast.cluster.zone⽂件,定义域名的指向

# vim itcast.cluster.zone

扩展:zone⽂件的格式说明

zone⽂件详解

# $TTL 缓存的⽣存周期

# @ = zonename = itcast.com 当前域

# IN 互联⽹

# SOA 开始授权

# NS dns服务端 nameserver

# A ipv4 正向

# AAAA IPV6

# CNAME 别名

# MX 邮件交互记录 5 数字代表优先级 数字越⼩优先级越⾼

# 0 ; serial 更新序列号

# 1D ; refresh 更新间隔(从服务器下载数据)

# 1H ; retry 失败重试

# 1W ; expire 区域⽂件的过期时间☆ 第四步:检查named.conf与zones⽂件

☆ 第五步:启动DNS服务(named)

3、Web服务搭建

4、测试DNS服务器的正向解析

Client:客户端服务器操作

# 3H ) ; minimum 缓存的最⼩⽣存周期

# D Day、H Hour、W Week

# named-checkconf /etc/named.conf

# named-checkconf /etc/named.rfc1912.zones

检查itcast.cluster.zone⽂件

# cd /var/named

# named-checkzone itcast.cluster.zone itcast.cluster.zone

# systemctl restart named

# netstat -tnlp |grep named

# yum install httpd -y

# systemctl start httpd

# echo 'DNS Test ...' > /var/www/html/index.html☆ 添加DNS服务器

☆ 使⽤nslookup检测正向解析是否⽣效

☆ 使⽤elinks命令⾏浏览器或curl来实现访问

# 临时

echo 'nameserver 10.1.1.12' > /etc/resolv.conf

注:电脑重启,⽹络刷新restart network,VMware挂起,临时DNS都会失效

# 永久添加

vim /etc/sysconfig/network-scripts/ifcfg-ens33

DNS=10.1.1.12

# nslookup www.itcast.cluster

# yum install elinks -y

# elinks

输⼊www.itcast.cluster

# curl http://www.itcast.cluster

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值