1.1问题引入
经典问题:浏览器输入网站域名www.toutiao.com到网页加载出来,都经历了哪些过程?
①域名解析
②TCP建连
③SSL握手
...
可以通过浏览器抓包区解析根源或者本质 :www.toutiao.com
02 企业接入升级打怪之路
2.1使用域名系统
2.1.1 Host管理
随着example公司业务规模和员工数量的增长,使用该方式面临诸多问题:
- 流量和负载:用户规模指数级增长,文件大小越来越大,统一分 发引起较大的网络流量和cpu负载
- 名称冲突:无法保证主机名称的唯一性, 同名主机添加导致服务故障
- 时效性:分发靠人工上传,时效性太差
2.1.2 使用域名系统
使用域名系统替换hosts文件
关于域名空间:
- 域名空间被组织成树形结构
- 域名空间通过划分zone的方式进行分层授权管理
- 全球公共域名空间仅对应一棵树
- 根域名服务器:查询起点
- 域名组成格式: [a-zA-Z0-9 _-], 以点划分label
顶级域gTLD: general Top-level Domains: gov政府 .edu教育.com商业.mil军事.org非盈利组织
城名报文格式
2.1.3 域名购买与配置迁移
首先是域名购买
购买二级域名: example.com
域名备案:防止在网上从事非法的网站经营活动,打击不良互联网信息的传播,一般在云厂商处即可进行实名认证并备案 修改配置:清空/etc/hosts 配置/etc/resolv.conf中nameservers为公共DNS 迁移原配置,通过控制台添加解析记录即可
2.1.4 如何开放外部用户访问
“如何建设外部网站,提升公司外部影响力?
方案:租赁一个外网ip,专用于外部用户访问户网站,将www.example.com解析到外网ip 100.1.2.3,将该ip绑定到一台物理机上,并发布公网route,用于外部用户访问。
2.2 自建DNS服务器
2.2.1问题背景
内网域名的解析也得出公网去获取,效率低下
外部用户看到内网ip地址,容易被hacker攻击
云厂商权威DNS容易出故障,影响用户体验
持续扩大公司品牌技术影响力,使用自己的DNS系统
2.2.2 DNS查询过程
dig {$domain} +trace
dig 命令主要用来从 DNS 域名服务器查询主机地址信息,可以用来测试域名系统工作是否正常。
参数:
主机:指定要查询域名主机;查询类型:指定DNS查询的类型;查询类:指定查询DNS的class;查询选项:指定查询选项。
@<服务器地址>:指定进行域名解析的域名服务器;
-b<ip地址>:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求;
-f<文件名称>:指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息;
-P:指定域名服务器所使用端口号;
-t<类型>:指定要查询的DNS数据类型;
-x<IP地址>:执行逆向域名查询;
-4:使用IPv4;
-6:使用IPv6;
-h:显示指令帮助信息。
dig @8.8.8.8 www.baidu.com #指定DNS服务器解析。
2.2.3 DNS记录类型
A/AAAA: IP指向记录,用于指向IP,前者为IPv4记录,后者为IPv6记录
CNAME:别名记录,配置值为别名或主机名,客户端根据别名继续解析以提取IP地址
TXT:文本记录,购买证书时需要
MX:邮件交换记录,用于指向邮件交换服务器
NS:解析服务器记录,用于指定哪台服务器对于该域名解析
SOA记录:起始授权机构记录,每个zone有 且仅有唯一-的一 条SOA记录,SOA是描述zone属性以及主要权威服务器的记录
2.2.4权威DNS系统架构
思考:站在企业角度思考,我们需要的是哪种DNS服务器?
答案:权威DNS,LocalDNS(可选) 常见的开源DNS: bind、 nsd、 knot、coredns
DNS Query DNS Response DNS Update DNS Notify DNS XFR
经过研发人员的不断努力,example 公司有了自己的权威DNS系统。