BIND 从服务器及缓存服务器配置

生产环境只有一个主服务器往往是不够的
一个域的从服务器通常是为了备份及负载均衡使用
所有这些域的信息都有域的主服务器控制
域从服务器没有权限创建或修改域的zone文件,而是从域主服务器上抓取所属域的zone文件

域从服务器的配置步骤:

① 在BIND的主配置文件中添加该域的定义
② 启动BIND服务或使BIND刷新配置
③ 查看域的zone文件是否正常抓取到/var/named/slaves目录中
④ 使用host或者dig命令检测域信息是否正常

主从DNS服务器简要拓补图:

㈠ --准备

[root@localhost ~]# service named start
启动 named: [确定]
[root@localhost ~]# iptables -F --检查防火墙设置
[root@localhost ~]# getenforce --检查selinux设置
Disabled
[root@localhost etc]# pwd
/var/named/chroot/etc
[root@localhost etc]# vim named.conf
--删除下面这条监听器配置
listen-on port 53 {127.0.0.1;};
--否则,BIND只为本机服务,但Slave是从外网连进来的


㈡ --登入从服务器
--在BIND的主配置文件中添加从域example.com的配置信息:
配置文件位置:
/var/named/chroot/etc/named.conf
在主配置文件中添加一行域的zone定义:

zone "example.com"{
        type slave;
        masters {192.168.1.110; };  --分号和大括号之间一定要有个空格!
        file "slaves/example.com.zone";
};


㈢ --检查named对slaves文件的读写权限
slaves文件位置:
/var/named/chroot/var/named
所属用户及所属组最好都改成named

[root@localhost named]# chown named slaves/
[root@localhost named]# ls -l
总计 44
..
..
drwxrwx--- 2 named named 4096 12-01 01:33 slaves

㈣ --重启BIND服务

[root@localhost etc]# service named restart
停止 named: [确定]
启动 named: [确定]

㈤ --查看zone文件是否正常抓取下来
文件位置:
/var/named/chroot/var/named/slaves
[root@localhost slaves]# ls
example.com.zone my.ddns.internal.zone.db my.slave.internal.zone.db

㈥ --验证从服务器BIND是否能够正常运行
--通过将本机的DNS配置指向本机来测试

[root@localhost slaves]# vim /etc/resolv.conf
nameserver 127.0.0.1
[root@localhost slaves]# host
www.example.com
www.example.com has address 192.168.1.130
可见,从服务器BIND可以正常服务
至此,从服务器的搭建完成

在一个局域网中可能有很多的主机要访问互联网,这时就可以在局域网的出口处配置缓存服务器,加速网络访问
也可以为缓存服务器配置一个上游DNS服务器地址
也就是,当缓存服务器无法完成解析或者想让局域网内的用户可以访问到除了指定DNS配置之外的额外DNS服务器的情况下
就会给客户端返回一个更稳定或者信息更全的另一个DNS地址
客户端就可以通过这个DNS继续完成查询

在Master端配置

文件位置:
/var/named/chroot/etc

[root@localhost etc]# vim named.conf
options
{
        
        directory "/var/named";
        forwarders {222.1.33.6; }; 

};


如果我们在named.conf里面指定forward only
则缓存服务器便不再进行任何的解析查询
直接把需求转发到上游DNS服务器

options
{
        
        directory "/var/named";
        forwarders {222.1.33.6; };
        forward only; 

};


展开阅读全文

zabbix监控bind服务器

04-17

<p>n <span style="font-size:16px;">Zabbix 是一个企业级分布式开源监控解决方案。</span>n</p>n<p>n <span style="font-size:16px;"> </span>n</p>n<p>n <span style="font-size:16px;">Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。</span>n</p>n<p>n <span style="font-size:16px;"> </span>n</p>n<p>n <span style="font-size:16px;">Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。</span>n</p>n<p>n <span style="font-size:16px;"> </span>n</p>n<p>n <span style="font-size:16px;">Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和发布的。这意味着产品源代码是免费发布的,可供公共使用。</span>n</p>n<p>n <br /></p>n<p>n <strong>主要讲解8个主题:</strong>n</p>n<p>n 1.<span style="font-size:9px;">     </span>通过SNMP防火墙设备的监控n</p>n<p>n 2.<span style="font-size:9px;">     </span>通过SNMP交换机设备的监控n</p>n<p>n 3.<span style="font-size:9px;">     </span>对Windows的性能、服务、用户登陆监控n</p>n<p>n 4.<span style="font-size:9px;">     </span>对Linux的性能、用户登陆情况进行监控n</p>n<p>n 5.<span style="font-size:9px;">     </span>生产中常用的服务进行监控,如nginx,httpd,mysql,ceph,bind等n</p>n<p>n 6.<span style="font-size:9px;">     </span>Zabbix分布式的部署和监控n</p>n<p>n 7.<span style="font-size:9px;">     </span>常见的zabbix三种报警方式n</p>n<p>n 8.<span style="font-size:9px;">     </span>使用grafana对zabbix中的数据进行展示n</p>n<p>n <br /></p>n<p>n <strong><span style="color:#FF0000;"><img src="https://img-bss.csdn.net/201904170341178480.png" alt="" /><br /></span></strong>n</p>n<p>n <strong><span style="color:#FF0000;"><img src="https://img-bss.csdn.net/201904170342156152.png" alt="" /><br /></span></strong>n</p>n<p>n <strong><span style="color:#FF0000;"><img src="https://img-bss.csdn.net/201904170342379246.png" alt="" /><br /></span></strong>n</p>n<p>n <strong><span style="color:#FF0000;"><br /></span></strong>n</p>

服务器不能bind

10-08

我想模拟一个很简单的聊天工具,但是服务器bind总返回1,WSAGetLastError()=0,我也查不到代表什么。rn刚看这方面的书,请高手们帮帮忙啊!还有就是,服务器和客户端能不能写到一个程序里面?rnrnrn[b]服务器[/b][color=#FF0000][/color]rnrnServerDlg.hrn[code=C/C++]rnprotected:rn HICON m_hIcon;rnrn // 生成的消息映射函数rn virtual BOOL OnInitDialog();rn afx_msg void OnSysCommand(UINT nID, LPARAM lParam);rn afx_msg void OnPaint();rn afx_msg HCURSOR OnQueryDragIcon();rn DECLARE_MESSAGE_MAP()rnrnrn SOCKET servSock;rn SOCKADDR_IN servAddr,clientAddr;rnpublic:rn CEdit m_Dlg;rn CEdit m_Send;rn afx_msg void OnTimer(UINT_PTR nIDEvent);rn CButton m_OK;[/code]rnrnServerDlg.cpprnrn[code=C/C++]rnBOOL CServerDlg::OnInitDialog()rnrn CDialog::OnInitDialog();rnrn ...............rnrn // TODO: 在此添加额外的初始化代码rn servSock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);rn if (servSock==INVALID_SOCKET)rn rn AfxMessageBox(_T("服务器套接字创建失败!"));rn return FALSE;rn rn //////////////////////////////////////////////////////////////////////////rn servAddr.sin_family=PF_INET;rn servAddr.sin_port=htons(5000);rn servAddr.sin_addr.s_addr=inet_addr("59.66.134.170");rn SetTimer(1,1,NULL);rn rn return TRUE; // 除非将焦点设置到控件,否则返回 TRUErnrnvoid CServerDlg::OnTimer(UINT_PTR nIDEvent)rnrn // TODO: 在此添加消息处理程序代码和/或调用默认值rn rn //////////////////////////////////////////////////////////////////////////rnrn //if(Flag==1)return;rn u_long u=1;rn if (int n=bind(servSock,(LPSOCKADDR)&servAddr,sizeof(servAddr))==SOCKET_ERROR)rn rn m_Dlg.SetWindowText(_T("服务器绑定失败!"));rn int c=WSAGetLastError();rn // closesocket(servSock);rn return ;//FALSE;rn rn elsern rn Flag++;rn ioctlsocket(servSock,FIONBIO,(unsigned long*)&u);rn int len;rn len=sizeof(clientAddr);rn listen(servSock,30);rn SOCKET newSock;rn newSock=accept(servSock,(sockaddr FAR*)&clientAddr,&len);rn if (newSock==INVALID_SOCKET)rn rn m_Dlg.SetWindowText(_T("服务器接受失败!"));rn // closesocket(servSock);rn return ;//FALSE;rn rn elsern rn m_Send.SetWindowText(_T("服务器接收成功"));rn char ch[20]=0,c[]="sdf";rn int n=send(newSock,c,sizeof(c),0);rn if(n==sizeof(c))AfxMessageBox(_T("发送成功"));rn int r=recv(newSock,ch,20,0);rn if(r<0)rn rn int d=WSAGetLastError();rn // closesocket(servSock);rn AfxMessageBox(_T("接收失败!"));rn return ;//FALSE;rn rn else if(r==0)AfxMessageBox(_T("传送完毕!"));rn elsern rn CString str;rn str.Format(_T("%s"),ch);rn m_Send.SetWindowText(str);rn rn rn rnrn CDialog::OnTimer(nIDEvent);rnrn[/code]rnrn[b]客户端[/b][color=#FF0000][/color]rnrnclientDlg.cpprn[code=C/C++]rnBOOL CClientDlg::OnInitDialog()rnrn CDialog::OnInitDialog();rnrn .............rnrn // TODO: 在此添加额外的初始化代码rnrnrn clientSock=socket(AF_INET,SOCK_STREAM,0);rn if (clientSock==INVALID_SOCKET)rn rn AfxMessageBox(_T("客户端套接字创建失败!"));rn return FALSE;rn rn //////////////////////////////////////////////////////////////////////////rn clientAddr.sin_family=AF_INET;rn clientAddr.sin_port=htons(5000);rn clientAddr.sin_addr.s_addr=inet_addr("59.66.134.170");rn //////////////////////////////////////////////////////////////////////////rn if(connect(clientSock,(LPSOCKADDR)&clientAddr,sizeof(clientAddr))==SOCKET_ERROR)rn rn int t=WSAGetLastError();rn closesocket(clientSock);rn m_Dlg.SetWindowText(_T("客户端连接失败"));rn return FALSE;rn rn else m_Dlg.SetWindowText(_T("连接成功"));rn char ch[]="sdf";rn int n=send(clientSock,ch,sizeof(ch),0);rn if(n==SOCKET_ERROR)rn m_Dlg.SetWindowText(_T("发送失败"));rn if(n==sizeof(ch)) m_Dlg.SetWindowText(_T("发送成功"));rn int c=WSAGetLastError();rn //////////////////////////////////////////////////////////////////////////rn u_long u=1;rn ioctlsocket(clientSock,FIONBIO,(unsigned long*)&u);rn SetTimer(1,1,NULL);rn rnrn return TRUE; // 除非将焦点设置到控件,否则返回 TRUErnrnvoid CClientDlg::OnTimer(UINT_PTR nIDEvent)rnrn // TODO: 在此添加消息处理程序代码和/或调用默认值rn if (clientSock!=INVALID_SOCKET)rn rn char rec[100]=0;rn if (recv(clientSock,rec,1024,0)<=0)rn rn m_Send.SetWindowText(_T("客户端接收失败"));rn // closesocket(clientSock);rn return;rn rn CString str;rn str.Format(_T("%s"),rec);rn m_Dlg.SetWindowText(str);rn rnrn CDialog::OnTimer(nIDEvent);rn[/code] 论坛

ubuntu下bind服务器同步过来的数据是乱码

09-09

我两台机器都是ubuntu的系统,配置完后,主从可以实现同步,但是从服务器同步过来的zone内容是乱码。。。如下:rnrnSep 9 17:04:17 winter named[1041]: client 192.168.163.131#45162: received notify for zone 'test.com'rnSep 9 17:04:17 winter named[1041]: zone test.com/IN: Transfer started.rnSep 9 17:04:17 winter named[1041]: transfer of 'test.com/IN' from 192.168.163.131#53: connected using 192.168.163.130#59715rnSep 9 17:04:17 winter named[1041]: zone test.com/IN: transferred serial 9rnSep 9 17:04:17 winter named[1041]: transfer of 'test.com/IN' from 192.168.163.131#53: Transfer completed: 1 messages, 12 records, 283 bytes, 0.002 secs (141500 bytes/sec)rnSep 9 17:04:17 winter named[1041]: zone test.com/IN: sending notifies (serial 9)rnroot@winter :/var/cache/bind# lsrndb.163.168.192.in-addr.arpa db.test.com managed-keys.bindrnroot@winter :/var/cache/bind# vi db.test.com rnrn打开之后一堆乱码:rn^@^@^@^B^@^@^@^AU簿繹^Q^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@R ^@^A^@^F^@^@^@^@^BX^@^@^@^A^@rn^Dtest^Ccom^@^@2^Dbind^Dtest^Ccom^@^Dmail^Dtest^Ccom^@^@^@^@ ^@^@^A,^@^@^A,^@^@^N^P^@^AQ<80>^@^@^@$^@^A^@^A^@^@^@^@^BX^@^@^@^A^@rn^Dtest^Ccom^@^@^D?穡瞿<83>^@^@^@1^@^A^@^O^@^@^@^@^BX^@^@^@^A^@rn^Dtest^Ccom^@^@^Q^@^@^Dmail^Dtest^Ccom^@^@^@^@A^@^A^@^B^@^@^@^@^BX^@^@^@^B^@rn^Dtest^Ccom^@^@^O^Dbind^Dtest^Ccom^@^@^P^Ebind2^Dtest^Ccom^@^@^@^@)^@^A^@^A^@^@^@^@^BX^@^@^@^A^@^O^Dbind^Dtest^Ccom^@^@^D?穡瞿<83>^@^@^@*^@^A^@^A^@^@^@^@^BX^@^@^@^A^@^P^Ebind2^Dtest^Ccom^@^@^D82>^@^@^@(^@^A^@^A^@^@^@^@^BX^@^@^@^A^@^N^Cftp^Dtest^Ccom^@^@^D?穡瞿<82>^@^@^@)^@^A^@^A^@^@^@^@^@^@^@^A^@^O^Dmail^Dtest^Ccom^@^@^D?穡瞿<83>^@^@^@5^@^A^@^E^@^@^@^@^BX^@^@^@^A^@^Q^Fwinter^Dtest^m^@^@^N^Cwww^Dtest^Ccom^@^@^@^@(^@^A^@^A^@^@^@^@^BX^@^@^@^A^@^N^Cwww^Dtest^Ccom^@^@^D?穡瞿<83>rn~ 论坛

没有更多推荐了,返回首页