Linux-DNS
🏡作者主页:点击!
🤖Linux专栏:点击!
⏰️创作时间:2024年11月16日12点20分
DNS
DNS基础
- DNS是互联网中非常重要的一项服务,用于将域名和服务器的 IP 进行对应和解析,降低互联网访问难度,同时减少了运维工作量
- DNS是应用层协议,使用TCP和UDP 53 端口,采用 C/S 架构
- DNS通常使用 bind 实现
- DNS域名采用分层架构,最上层是根域,依次是顶级域名、二级域名、及其下属的子域,最多支持127级子域
DNS正向解析流程
- 本地缓存中查找是否有对应 IP 地址
- 查看本地 hosts 文件是否配置静态域名解析
- 向本地 DNS 服务器发送查询请求
- 如果本地 DNS 没有所请求的域名,则由其向根服务器查询
- 根服务器将对应的顶级 DNS 服务器地址提供给本地 DNS 服务器
- 本地 DNS 向顶级 DNS 服务器发送解析请求
- 顶级 DNS 服务器将对应的权威DNS服务器地址返回给本地服务器
- 本地 DNS 服务器向权威 DNS 服务器发送解析请求
- 权威 DNS 服务器完成地址解析,将域名对应的地址返回到本地 DNS 服务器
- 本地服务器将地址返回客户端
DNS反向解析
- DNS反向解析是指将 IP 地址解析成为对应的域名
- DNS反向解析主要使用在邮件域名解析的场景中
- 反向解析时对应的顶级域为 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资源记录常见类型
- A用于将域名解析为IPv4地址,AAAA用以将域名解析为 IPv6 地址,在A资源记录中,name表示主机的FQDN,Value表示主机对应的 IP 地址
- NS为域名服务记录,一个区域可包含多个NS,NS中,一个为主DNS服务器,其余为从DNS服务器
- MX用于标明区域内邮件服务器地址,一个区域可包含多个MX,使用0-99表示对应的优先级,0优先级最好,99优先级最低
- CNAME 用于定义域名的别名
- 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)!