自学内容网 自学内容网

Linux-DNS

https://i-blog.csdnimg.cn/blog_migrate/58966ddd9b29aabe8841f5ec34f0d31c.gif

🏡作者主页:点击!

🤖Linux专栏:点击!

⏰️创作时间:2024年11月16日12点20分

在这里插入图片描述

DNS

DNS基础

  • DNS是互联网中非常重要的一项服务,用于将域名和服务器的 IP 进行对应和解析,降低互联网访问难度,同时减少了运维工作量
  • DNS是应用层协议,使用TCP和UDP 53 端口,采用 C/S 架构
  • DNS通常使用 bind 实现
  • DNS域名采用分层架构,最上层是根域,依次是顶级域名、二级域名、及其下属的子域,最多支持127级子域

DNS正向解析流程

  1. 本地缓存中查找是否有对应 IP 地址
  2. 查看本地 hosts 文件是否配置静态域名解析
  3. 向本地 DNS 服务器发送查询请求
  4. 如果本地 DNS 没有所请求的域名,则由其向根服务器查询
  5. 根服务器将对应的顶级 DNS 服务器地址提供给本地 DNS 服务器
  6. 本地 DNS 向顶级 DNS 服务器发送解析请求
  7. 顶级 DNS 服务器将对应的权威DNS服务器地址返回给本地服务器
  8. 本地 DNS 服务器向权威 DNS 服务器发送解析请求
  9. 权威 DNS 服务器完成地址解析,将域名对应的地址返回到本地 DNS 服务器
  10. 本地服务器将地址返回客户端

DNS反向解析

  1. DNS反向解析是指将 IP 地址解析成为对应的域名
  2. DNS反向解析主要使用在邮件域名解析的场景中
  3. 反向解析时对应的顶级域为 arpa

DNS资源记录

  • 资源记录是 DNS 服务器用来进行解析的依据,相当于DNS的数据库文件
  • 常用的资源类型有 A、AAAA、SOA、NS、PTR、CNAME、MX等
  • 资源记录固定格式:name [TTL] IN RR_Type Value
    name:域名
    TTL:缓存时间,可从全局配置继承
    IN:Internet 记录,格式固定
    RR_Type:表示资源记录的类型
    Value:不同资源记录中的值不同

DNS资源记录常见类型

  1. A用于将域名解析为IPv4地址,AAAA用以将域名解析为 IPv6 地址,在A资源记录中,name表示主机的FQDN,Value表示主机对应的 IP 地址
  2. NS为域名服务记录,一个区域可包含多个NS,NS中,一个为主DNS服务器,其余为从DNS服务器
  3. MX用于标明区域内邮件服务器地址,一个区域可包含多个MX,使用0-99表示对应的优先级,0优先级最好,99优先级最低
  4. CNAME 用于定义域名的别名
  5. PTR 用于反向解析,将域名解析为 IP 地址,PTR记录是唯一的,以 .arpa 开始,以地址的主机位结尾

在这里插入图片描述

DNS配置

yum install -y bind
systemctl restart bind    #启动 named 服务
ss -nlp | grep 53    #查看端口监听情况

named-checkconf    #检查DNS配置是否有语法错误
named-checkzone 域名  数据文件    #检查DNS数据文件配置是否有语法错误
rndc reload    #重新加载 DNS 配置

nslookup    #之后输入需要解析的域名(交互式)
nslookup www.test.com    #直接解析(非交互式)

dig www.test.com +trace    #比 nslookup 工具更强大,还可以支持追踪

配置开始

cd /var/named    #此时这个下面全是DNS的配置文件
----------------------------------------------------------------------------------------------------------
cp -p named.localhost test.com.zone    #复制一份正向解析文件
vi test.com.zone
$TTL 1D
@IN SOA master.test.com.  admin.test.com.(
0
1D
1H
1W
3H)
NSMaster
master  A  192.168.65.203
www  CNAME main    #设置一个别名,让 www.test.com 指向 main.test.com
main  A  192.168.100.100
:wq
----------------------------------------------------------------------------------------------------------
cp -p named.loopback 192.168.65.zone    #复制一份反向解析文件

vi 192.168.65.zones
@    IN    SOA    @  master.test.com    admin.test.com()

NS    master
masterA192.168.65.203
192.168.100.100 PTRwww.test.com
:wq
----------------------------------------------------------------------------------------------------------
vi /etc/named.conf
#将里面 listen-on port 53 后面的 127.0.0.1; 改为 localhost;
#将最下面一行的 allow-query里面的参数改为 any;
check-names master warn;    #配置主服务器的域名设置,如果有不一样的就告警
:wq
----------------------------------------------------------------------------------------------------------
vi /etc/named.rfc1912.zones

zone "test.com" IN {
type master;
file "test.com.zone";
allow-update { none; };
};    #添加正向解析配置文件

zone "65.168.192.in-addr.arpa" IN{
type master;
file "192.168.56.zone";
allow-update { none; };
};    #添加反向解析配置文件

named-checkconf    #检查DNS配置文件
named-checkzone test.com /var/naemd/test.com.zone    #检查正向解析配置文件
rndc reload    #重新加载DNS的配置

路由

要让不同子网的主机进行通信的,就需要一种能够描述一个私网到另一个私网的描述,这种就称为路由

  • 路由项是一对预先定义的地址,包括:目的地址和网关
  • 路由项的含义是通过网关完成与目的地的通讯;路由表是多个路由项的集合
route    #使用命令列出所有路由表
route add -net 192.168.100.0 netmask 255.255.255.0 dev ens33    #添加一条路由,最后是出口网卡(下一跳)
route add -host 192.168.100.1 dev ens33    #添加一条主机路由,最后是下一跳
route    #上面配置的路由是暂时的,系统重启之后就没有了

route del -host 192.168.100.1 dev ens33    #删除一条主机路由
route    #输出查看路由表
nmcli connection modify ens33 +ipv4.routes "192.168.100.0/24 192.168.100.254"    #使用nmcli命令添加路由

主机名

  • 主机名是一个网络中唯一标识一台机器的名称
  • 这台机器不一定是一台物理机器,也可以是虚拟机
  • 主机名信息存放在文件 /etc/hostname 中
cat /etc/hostname

hostname    #查看当前主机名

hostname OpenEuler    #临时设置主机名,下次重启前有效,使用bash命令重新加载环境,之后就会生效
hostnamectl set-hostname OpenEuler    #永久设置主机名
echo "HCIE-OpenEuler" > /etc/hostname    #修改文件设置主机名

hosts

  • 随着局域网中主机数量增加,IP地址难以记忆,希望通过主机名直接访问其他主机
  • 这时我们可以通过一张记录主机名和IP地址的表找到这些主机——hosts
cat /etc/hosts

#使用编辑器修改其中的内容,去掉某条记录在前面加 # 号就是


# 配置域名
hostnamectl  set-hostname  www.test.com

bash    加载一下

vi /etc/hosts
192.168.10.2www.test.com

# hostname  -f  进行验证,不过只会出现一个

# 对于 /etc/hostname 这个文件的作用是用来存放主机名的
# 可以直接在里面加入主机名,永久实现

vi  /etc/hostname
www.test.com    ----//此处添加一条其实也可以

Author:DC


原文地址:https://blog.csdn.net/Jerry_BLOG/article/details/143815930

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!