jenkins插件学习之active_directory_plugin之DNS查询

jenkins的active directory plugin之DNS查询

为什么在jenkins上Active Directory 插件那里的Domain Name只配置个 company.com 就行了呢?

DNS查询,通过udp通信查询到公司的所有的DC(domain controller)地址,然后进行AD域认证。
其实是通过一个查询获取到了具体的dns服务器的IP,返回的是好几个ip,
这个根据公司配置了几个DC(domain controller)服务器有关系的。

DNS报文格式,不论是请求报文,还是DNS服务器返回的应答报文,都使用统一的格式。

  DNS format

  +--+--+--+--+--+--+--+
  |        Header      |
  +--+--+--+--+--+--+--+
  |      Question      |
  +--+--+--+--+--+--+--+
  |      Answer        |
  +--+--+--+--+--+--+--+
  |      Authority     |
  +--+--+--+--+--+--+--+
  |      Additional    |
  +--+--+--+--+--+--+--+



下面是整理的一次查询发送报文

首先是头部区域
Header format

    0  1  2  3  4  5  6  7  0  1  2  3  4  5  6  7
  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  |                      ID                       |
  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  |QR|  opcode   |AA|TC|RD|RA|   Z    |   RCODE   |
  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  |                    QDCOUNT                    |
  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  |                    ANCOUNT                    |
  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  |                    NSCOUNT                    |
  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  |                    ARCOUNT                    |
  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
0~1字节, 最前面的2个字节表示会话表示,也就是报文ID。ID: 2个字节(16bit),标识字段,
客户端会解析服务器返回的DNS应答报文,获取ID值与请求报文设置的ID值做比较,如果相同,则认为是同一个DNS会话。
0 = 0x8C         演示例子给个 35935 -> 1000 1100 0101 1111 = 0x8C5F  ->  右移8位,得到高8位的 0x8C
1 = 0x5F         35935的低8位存放到这里。

2~3字节表示falg,标识。16位,2个字节表示。 QR(1bit),0为查询,1为响应。
opcode(4bit),通常值为0(标准查询),其他值为1(反向查询)和2(服务器状态请求),[3,15]保留值。
AA(1bit),表示授权回答。TC(1bit)表示可截断。RD(1bit)表示期望递归。RA(1bit)表示可用递归。
rcode(4bit)表示返回码,0表示没有错误,其他表示错误,[6,15] : 保留值,暂未使用。
2 = 0x01   0000 0001  
3 = 0x00   0000 0000

4~11字节,8个字节数量字段
4 = 0x0   问题数
5 = 0x1    
6 = 0x0    回答资源记录数
7 = 0x0    
8 = 0x0    授权资源记录数
9 = 0x0    
10 = 0x0  附加资源记录数
11 = 0x0  
到此是header头部结束。

 
 下面是Question区域了
Question format

    0  1  2  3  4  5  6  7  0  1  2  3  4  5  6  7
  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  |                     ...                       |
  |                    QNAME                      |
  |                     ...                       |
  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  |                    QTYPE                      |
  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  |                    QCLASS                     |
  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

 qname这一段比较长,也就是存放的我们的域名地址了,格式是 len+data,最后是个0.
 
12 = 0x03  十进制3 后面放了3个byte, 字符串是 "_gc"
13 = 0x5F
14 = 0x67
15 = 0x63

16 = 0x04  十进制4 后面放了4个byte, 字符串是”_tcp"
17 = 0x5F
18 = 0x74
19 = 0x63
20 = 0x70

21 = 0x0A   十进制10  后面10个byte,字符串 “company"
22 = 0x62
23 = 0x6C
24 = 0x61
25 = 0x63
26 = 0x6B
27 = 0x73
28 = 0x68
29 = 0x61
30 = 0x72
31 = 0x6B

32 = 0x03  十进制3 后面放了3个byte,后面3个byte,存放的是 字符串  “com” 
33 = 0x63  字母 c
34 = 0x6F  字母 o
35 = 0x6D  字母 m

36 = 0x00 十进制 0, qname最后放的0

37 = 0x00
38 = 0x2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值