Bind软件的使用

BIND 软件的组成 bash 安装包 bind # bind 的主程序包 bind-utils # bind 的工具包 BIND 主程序:/usr/sbin/named 服务脚本和 Unit 名称:/etc/rc.d/init.d/named,/usr/lib/systemd/system/named.service 主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key 管理工具:/usr/sbin/rndc:remote name domain controller,默认与bind安装在同一主机,且 只能通过127.0.0.1连接named进程,提供辅助性的管理功能;953/tcp 解析库文件:/var/named/ZONE_NAME.ZONE 注意: (1) 一台物理服务器可同时为多个区域提供解析 (2) 必须要有根区域文件;named.ca:该文件中定义的是全球 13 个根的地址 (3) 应该有两个(如果包括ipv6的,应该更多)实现 localhost 和本地回环地址的解析库 主配置文件 named.conf bash options { listen-on port 53 { localhost; }; # 定义了监听本地的地址和端口,localhost 关键字表示监听本服务器的所有 # { 172.16.1.16;119.110.120.1; }; 可以监听多个地址 注意:最好是不要指定单独的 IP 进行监听,因为这样指定容错性太差 listen-on-v6 port 53 { ::1; }; # IPv6 的监听 directory "/var/named"; # 区域解析文件的位置 dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { localhost; }; # 允许解析或者同步的主机地址 # { 172.16.1.0/24;192.168.1.0/8; } 可以指定网段 # { any; } 该关键字是允许所有的主机进行解析 recursion yes; dnssec-enable yes; # 对域名进行签名,保障安全 dnssec-validation yes; # 保障安全,如果开启同步时可能会出错 bindkeys-file "/etc/named.root.key"; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; # pid 文件的存放位置 session-keyfile "/run/named/session.key"; # 会话密钥存放位置 }; logging { # 启动日志存放位置 channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { # 定义根域 "." 的地址,通过 named.ca 来指定 type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; # 区域解析的数据库,指定包含文件 include "/etc/named.root.key"; 全局配置:options {}; ...

September 21, 2020

DNS理论知识

DNS 作用 将主机名解析成 IP 地址,因为 IP 地址由一串数字组成,可以通俗的讲就是有些反人类不好记忆,所以使用 DNS 来将这一串数字解析为对应的域名,这样当用户访问时可以很方便的记住并且访问网页。但是计算机是不可能理解这种由拼音或者是英文组成的域名的,所以就可以利用 DNS 将名称解析成 IP 地址这样用户就可以通过域名来直接访问网络中的设备了。 DNS 介绍 域名系统,应用层协议,是互联网的一项服务,将域名和 IP 地址互相映射的一个分布式数据库,能够使人更方便地访问互联网,基于 C/S 架构。 DNS 查询类型(递归、迭代) 递归查询:只会向根目录发起请求,如果根不知道权威服务器的位置,会根据客户端访问的域名一级一级的寻找,直到找到该域名的权威服务器返回给客户端 迭代查询:客户端向根服务器发起请求,根返回给客户端自己的下一级(子域)的 DNS 服务器,客户端再次查询,直到一直请求找到权威服务器 DNS 缓存 局域网内每次通过 DNS 解析的域名都会在局域网的 DNS 服务器缓存下来解析记录,当用户再次访问时就不需要递归查询或者是迭代查询,直接通过本地的 DNS 缓存来查找目标主机的位置。但是缓存是有时间的。 DNS 的端口号 53/udp 同步和解析的作用 53/tcp 同步主从之间的文件作用 953/tcp rndc 这个管理软件是使用的 953 作为它的管理端口 FQDN 完整名称的组成 在互联网中,所有的 dns 解析都是通过顶级的根域来解析所有的解析请求。全世界共有 13 台 DNS 的根域。 不同等级域的作用 根域:最高等级的目录 一级域名(顶级域) 三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域 com, edu, mil, gov, net, org, int,arpa ...

September 21, 2020

GSLB CDN

GSLB 全局负载均衡 GSLB:Global Server Load Balance全局负载均衡 GSLB是对服务器和链路进行综合判断来决定由哪个地点的服务器来提供服务,实现异地服务器群服务 质量的保证 GSLB主要的目的是在整个网络范围内将用户的请求定向到最近的节点(或者区域) GSLB分为基于DNS实现、基于重定向实现、基于路由协议实现,其中最通用的是基于DNS解析方式 范例:查询 VIP 使用网宿的CDN服务 CDN 内容分发网络 用户向浏览器输入www.a.com这个域名,浏览器第一次发现本地没有dns缓存,则向网站的DNS 服务器请求 网站的DNS域名解析器设置了CNAME,指向了www.a.tbcdn.com,请求指向了CDN网络中的智能 DNS负载均衡系统 智能DNS负载均衡系统解析域名,把对用户响应速度最快的IP节点返回给用户; 用户向该IP节点(CDN服务器)发出请求 由于是第一次访问,CDN服务器会通过Cache内部专用DNS解析得到此域名的原web站点IP,向原 站点服务器发起请求,并在CDN服务器上缓存内容 请求结果发给用户 范例:CDN 原理就是利用公司资源使用分布式的思想对 DNS 临近的 DNS 请求进行解析并缓存到本地 CDN 服务商 阿里,腾讯,蓝汛,网宿,帝联等 智能 DNS:dnspod dns.la 智能 DNS 相关技术 bind 中的 ACL 将多个 IP 绑定到一个 ACL 列表中,如果将 ACL 应用在 DNS 那么定义的将会是一个区域。可以将这个通过 IP 网段划分的区域定义一个统一的名称调用 注意:只能先定义后使用;因此一般定义在配置文件中,处于 options 的前面 格式: bash acl acl_name { ip; net/perlen; }; 范例: bash acl beijing { 172.16.1,0/24; 10.0.0.10; }; bind 中有四个内置的 acl none 没有一个主机 any 任意主机 localhost 本机 localnet 本机的 IP 同掩码运算后得到的网络地址(网段) 访问控制的指令 allow-query {}; 允许查询的主机;白名单 allow-transfer {}; 允许区域传送的主机;白名单 allow-recursion {}; 允许递归的主机,建议全局使用 allow-update {}; 允许更新区域数据库中的内容 view 视图 view 视图,将 ACL 与区域数据库实现对应关系,实现智能 DNS 解析 一个 bind 服务器可定义多个view,每个view中可定义一个或多个 zone 每个 view 用来匹配一组客户端 多个 view 内可能需要对同一个区域进行解析,但使用不同的区域解析文件 注意: 一旦启用了view,所有的zone都只能定义在view中 仅在允许递归请求的客户端所在view中定义根区域 客户端请求到达时,是自上而下检查每个view所服务的客户端列表 view 格式 Code view VIEW_NAME { match-clients { beijingnet; }; zone "dingchen.local" { type master; file "dingchen.local.zone.bj"; }; include "/etc/named.rfc1912.zones"; }; view VIEW_NAME { match-clients { shanghainet; }; zone "dingchen.local" { type master; file "dingchen.local.zone.sh" }; include "/etc/named.rfc1912.zones"; }; 实战案例:利用 view 实现智能 DNS 实验目的 bash 搭建 DNS 主从服务器架构,实现 DNS 服务冗余 环境要求 bash 需要六台主机 web服务器1:100.0.0.123/8 web服务器2:100.0.0.105/8 web服务器3:100.0.0.106/8 DNS主服务器:100.0.0.104/8 DNS客户端1:100.0.0.6/8 DNS客户端2:100.0.0.10/8 实验步骤 1. 主 DNS 服务端配置文件实现 view 创建 ACL ...

September 21, 2020