Linux下用dnsmasq做dns cache server的配置方法

目前最新版是2.7.1 ,可去其FTP下载:http://www.thekelleys.org.uk/dnsmasq/

安装过程比较简单

yum -y install dnsmasq*
wget http://www.keepalived.org/software/keepalived-1.2.9.tar.gz
tar zxvf keepalived-1.2.9.tar.gz
cd keepalived-1.2.9
./configure --prefix=/usr/local/keepalived
make && make install
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/
chkconfig --add keepalived
chkconfig --level 35 keepalived on

keepalived的配置很简单,只需要配置一个VIP可以在两台Server之间飘来飘去就可以实现主备了

! Configuration File for keepalived

global_defs {
  notification_email {
   xxx@xxx.com
  }
  notification_email_from xxx@xxx.com
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id LVS_DEVEL
}

vrrp_instance dnscache {
  state MASTER         // 另一台配置BACKUP
  interface eth1        // 在哪个接口上进行服务器状态检测
  virtual_router_id 51
  priority 180         // BACKUP机器上配置100
  advert_int 1         // 检查间隔,单位为秒
  authentication {
    auth_type PASS
    auth_pass 1234
  }

  virtual_ipaddress {       // VIP设置,指定到内网网卡
    192.168.100.99/24 dev eth1
  }
}

dnsmasq的配置也很简单

resolv-file=/etc/resolv.dnsmasq.conf
cache-size=1000
conf-dir=/etc/dnsmasq.d

  将dns地址写入到/etc/resolv.dnsmasq.conf文件中

echo "nameserver 8.8.8.8" > /etc/resolv.dnsmasq.conf

  本机和局域网其它全部的服务器dns解析都用它

echo "nameserver 192.168.100.99" > /etc/resolv.conf

  最后找一台局域网Server验证一下,如果能解析就说明正常了.

nslookup www.google.cn 192.168.100.99

  此方案只适合小型企业,规模少的情况下使用,解析量大的时候还是用bind最好。

下面是其它网友的补充:

代码如下:

sudo pacman -S --needed dnsmasq
cd /etc

[admin@huangye etc]$ sudo cp -v dnsmasq.conf{,.orig}
`dnsmasq.conf' -> `dnsmasq.conf.orig'

[admin@huangye etc]$ sudo vim dnsmasq.conf

相比来说,dnsmasq的配置简单多了:

代码如下:

resolv-file=/etc/dnsmasq.resolv.conf
addn-hosts=/etc/dnsmasq.hosts
local=/localnet/
no-dhcp-interface=eth0
conf-dir=/etc/dnsmasq.d

代码如下:

[admin@huangye etc]$ sudo cp -v resolv.conf dnsmasq.resolv.conf
Password:
`resolv.conf' -> `dnsmasq.resolv.conf'
sudo mkdir /etc/dnsmasq.d
sudo touch /etc/dnsmasq.hosts

sudo /etc/rc.d/dnsmasq start

最后,别忘记加入rc.conf DAEMONS,注意要在network后面。

dnsmasq 可从额外的hosts文件读取条目,如可以这样添加正向解析:

echo "IP地址 域名" > /etc/dnsmasq.hosts

另外,重启dnsmasq可以用SIGHUP(可以在修改hosts文件后,让配置生效)

killall -s SIGHUP dnsmasq

查看服务状态:

netstat -tunl
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN
udp        0      0 0.0.0.0:53              0.0.0.0:*

再dig 一下,发现稳定在4ms ,我晕,同样的配置,我在一台ubuntu server 10.04 上面dig 是1ms ,在我本地居然在4ms ,囧

(0)

相关推荐

  • OLEDB和ODBC的区别(优缺点)

    ODBC是一种连接数据库的开放标准. ODBC(OpenDataBase Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows OpenServices Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口).这些API利用SQL来完成其大部分任务.ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC. 它本身就是为了是数据库的使用者不必考虑使用的是何种数据库而

  • php5.3中连接sqlserver2000的两种方法(com与ODBC)

    1.Com链接,ADODB.Connection 复制代码 代码如下: $conn = new Com("ADODB.Connection"); //实例化一个Connection对象 $connstr = "provider=sqloledb;datasource=.;uid=sa;pwd=123456;database=jnold;"; $conn->Open($connstr); $rs = new Com("ADODB.Recordset&q

  • php常用ODBC函数集(详细)

    ODBC连接类函数odbc_connect函数:打开一个ODBC连接odbc_close函数:关闭一个已经打开的ODBC连接odbc_close_all函数:关闭所有已经打开的ODBC连接odbc_pconnect函数:打开一个持续有效的ODBC连接 ODBC操作类函数odbc_commit函数:更新所有处于未决状态的操作odbc_do函数:在打开的ODBC连接上执行SQL语句odbc_exec函数:执行SQL语句odbc_execute函数:执行一个预置的SQL语句odbc_free_resu

  • linux mysql 报错:MYSQL:The server quit without updating PID file

    1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限解决方法 :给予权限,执行 "chown -R mysql:mysql /var/data" "chmod -R 755 /usr/local/mysql/data"  然后重新启动mysqld! 2.可能进程里已经存在mysql进程解决方法:用命令"ps -ef|grep mysqld"查看是否有mysqld进程,如果有使用"kill -9  进

  • ADO,OLEDB,ODBC,DAO,RDO的区别说明

    一 ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口).这些API利用SQL来完成其大部分任务.ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC. 二 DAO:数据访问对象是用来显露了Microsoft Jet数据库引擎(最早是给Mic

  • linux下如何配置SQLSERVER ODBC

    一 测试环境 操作系统 Red Hat As 5.5 数据库 SQLServer2000 installed in windows xp professional,我假定数据库有用户autotest 密码是autotest,数据库文件是atsdb 注意: 1 MS从来没有提供过SQLServer for Linux,所以大家也不要去尝试在Linux系统安装SQLServer,但是可以通过ODBC连接 Windows系统的SQLServer数据库: 2 安装的SQLServer2000是不会打开1

  • mysql odbc字符集设置(中文显示乱码)

    1.将mysql安装目录下的my.ini中的[client]项中添加default-character-set=gb2312 [client] default-character-set=gb2312 port=3306 2.将my.ini拷贝到c盘根目录,并修改名字为my.cnf 3.在配置odbc源时,选上Read Options From my.cnf这一项 MySQL ODBC字符集设置 mysql数据库字符集为utf8,使用delphi7的adoquery查询出的结果显示乱码 odbc

  • LVS(Linux Virtual Server)Linux 虚拟服务器介绍及配置(负载均衡系统)

    一,简介 LVS(Linux Virtual Server) 是Unix-like系统中的一个虚拟服务器,是国内贡献给开源组织的一个最优秀的项目之一.LVS在Unix-like系统中 是作为一个前端(Director)存在的,又称为调度器,它本身不提供任何的服务,只是将通过互联网进来的请求接受后再转发给后台运行的真正的 服务器(RealServer)进行处理,然后响应给客户端. LVS有两个重要的组件:一个是IPVS,一个是IPVSADM.ipvs是LVS的核心组件,它本身只是一个框架,类似于i

  • Linux编译mssql扩展使用php连接sqlserver2008的使用步骤

    1.安装配置freetds 复制代码 代码如下: wget http://mirrors.xmu.edu.cn/ubuntu/archive/pool/main/f/freetds/freetds_0.82.orig.tar.gztar zxf freetds_0.82.orig.tar.gzcd freetds_0.82./configure --prefix=/sxmobi/Software/common/freetds --enable-msdblibmake && make ins

  • 关于php连接mssql:pdo odbc sql server

    只有一个php_pdo_odbc.dll. so~最新最好的php连接mssql方法应该是这样: 复制代码 代码如下: <?php $cnx = new PDO("odbc:Driver={SQL Server};Server=127.0.0.1;Database=test;",'sa','asd123'); var_dump($cnx); $a = $cnx->query("SELECT * FROM [user]"); var_dump($a); f

  • Turbolinux-7-Server拓林思服务器版光盘安装过程详细图解

    安装前先记下你系统中监视器的厂商和型号.    将光盘设为第一启动盘,放入安装光盘盘,重新启动电脑,如果你的光盘能自动启动,将出现如下图1所示:screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0>选择安装语言,选Sinplified_chi

  • ADO.NET 连接数据库字符串小结(Oracle、SqlServer、Access、ODBC)

    ADO.NET 连接到 SQL Server SQL Server .NET Framework 数据提供程序支持类似于 OLE DB (ADO) 连接字符串格式的连接字符串格式. 复制代码 代码如下: using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); // Do work here. } 连接到 OLE DB 数据源 OLE DB .NET Framework

随机推荐