博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DNS负载均衡
阅读量:5058 次
发布时间:2019-06-12

本文共 5722 字,大约阅读时间需要 19 分钟。

昨天一直在测试DNS轮询,在CU上看到了有人推荐lbnamed然后就 google了一下,搜到很多文章,不是文章太老,根本不试用,就是些的很烂,让人摸不到头脑,写的不详细,让人会晕,我语言表达能力也不好,我尽量来写详细一下,写明了一些。首先声明我是在内网测试与公网会有些不同!如果你是公网就要申请域名解析服务~

域名: ludy.com
域名解析服务: ns1.ludy.com  //公网的话,要去你的域名服务商去申请的
software : bind-9.5.0-P2.tar.gz  lbcd-3.3.0.tar.gz   lbnamed-2.3.2.tar.gz  Stanford-DNSserver.tar.gz bind9 服务器:192.168.6.3 lbnamed 服务器:192.168.6.105 web1           :192.168.6.101 web2           :192.168.6.102
安装步骤:
一.分别在两台 web服务器上安装 lbcd-3.3.0.tar.gz tar zxvf lbcd-3.3.0.tar.gz cd lbcd-3.3.0 ./configure --prefix=/usr/local/lbcd make make install 运行 lbcd 不需要任何参数 /usr/local/lbcd/sbin/lbcd 二.安装配置 bind9 1.安装域名服务器 bind9 tar zxvf bind-9.5.0-P2.tar.gz cd bind-9.5.0-P2  ./configure --prefix=/usr/local/bind --enable-threads --enable-largefile --disable-openssl-version-check --disable-ipv6 make make install 2.配置bind9 因为我是在内网作测试,不是合法的 域名解析服务,所以我要欺骗bind 修改/etc/hosts vim /etc/hosts 192.168.6.3     ns1.ludy.com
cd /usr/local/bind sbin/rndc-confgen > etc/rndc.conf 生成rndc控制命令的key文件 cd etc tail -10 rndc.conf |head -9|sed s/#\//g > named.conf 生成 named.conf dig > named.root 生成named.root 文件
建立 正向 localhost.zone vim localhost.zone
$TTL 86400 $ORIGIN localhost. @    1D    IN    SOA    @    root (            42    ;serial            3H    ;refresh            15M    ;retry            1W    ;expiry            1D )    ;minimum     1D    IN    NS    @     1D    IN    A    127.0.0.1
建立named.local反向解析文件
$TTL    86400 @    IN    SOA    localhost.    root.localhost. (             2008121617    ;Serial             28800        ;Refresh             14400        ;Retry             3600000        ;Expire             86400 )        ;Minimum     IN    NS    localhost. 1    IN    PTR    localhost.   ;不要忘记此处有点
建立  ludy.com 正向解析文件
vim ludy.com
$TTL 300 $ORIGIN ludy.com. @    IN    SOA    ns1.ludy.com.      root.ludy.com. (             2008041001    ;serial number YYMMDDNN             28800        ;Refresh             7200        ;Retry             864000        ;Expire             300 );        ;Min TTL ludy.com.    IN    NS    ns1.ludy.com. best.ludy.com.    IN    NS    ns1.ludy.com. ;是为lbnamed 准备的 ns1        IN    A    192.168.6.3 ludy.com.    IN    MX    10 mail.ludy.com. ludy.com.    IN    A    192.168.6.3 mail        IN    A    192.168.6.188 www1        IN    A    192.168.6.101   ; web服务器1 www2        IN    A    192.168.6.102   ; web服务器2 www        IN    CNAME    [url]www.best.ludy.com.[/url] ;是为lbnamed 准备的
因为我之需要 域名解析服务,所以我就不建反向解析了
配置 named.conf
 key "rndc-key" {      algorithm hmac-md5;      secret "uKQKHQrih/M81kiqkwy62g==";  };    controls {      inet 127.0.0.1 port 953          allow { 127.0.0.1; } keys { "rndc-key"; };  }; options {     directory "/usr/local/bind/etc/namebd";     forwarders { 192.168.6.105; };     notify no;     pid-file "/usr/local/bind/var/run/named.pid";     auth-nxdomain no;     version "server 2008 dns 8.0";     blackhole { none; };     allow-recursion{ any; };     #设置允许查询IP列表。     listen-on port 53 {192.168.6.3;};     #如果是双IP可以指定其中一个IP,作为服务当然双网卡也可以用     max-cache-size 50M;       #设置缓存大小     allow-query { any; };     #允许递归查询的IP列表,也就是自己的域名列表中没有要查询的DNS,可以转发到转发器     allow-transfer { 192.168.6.3/24; 127.0.0.1/8; };     #transfer 是主辅DNS服务器之间域名zone数据传输许可 }; zone "." in {     type hint;     file "/usr/local/bind/etc/named.root"; }; zone "localhost" in {     type master;     file "/usr/local/bind/etc/localhost.zone"; }; zone "0.0.127.in-addr.arpa" in {     type master;     file "/usr/local/bind/etc/named.local";     allow-update { none; }; }; zone "ludy.com" in {     type master;     file "/usr/local/bind/etc/ludy.com";     allow-update { none; }; };
配置完成 可以启动 bind9了 /usr/local/bind/sbin/named -g 可以看到启动日志,如果有错误 在慢慢排查,一般都是那里空格没有加或者是 没有加 “.” 在 web1 web2 lbnamed 服务器的 /etc/resolv.conf 都改为 vim /etc/resolv.conf nameserver 192.168.6.3 然后作测试  nslookup ns1.ludy.com Server:        192.168.6.3 Address:    192.168.6.3#53
Name:    ns1.ludy.com Address: 192.168.6.3 好 bind9 OK,下面来安装 重要的 lbnamed 三,安装 lbnamed tar zxvf  lbnamed-2.3.2.tar.gz mv lbnamed-2.3.2 /usr/local/lbnamed cd /usr/local/lbnamed 配置 lbnamed.config mv lbnamed.config lbnamed.config.bak vim lbnamed.config www1.ludy.com    10    www   www2.ludy.com    10    www   
www        5    0    [url]www.best.ludy.com[/url]
注意,如果想把哪台服务器设置为优先负载的话,就把 默认的 10改低就优先分到哪台服务器了。
配置 lbnamed  我之列出我修改的地方~ vim lbnamed $poller               = "/usr/local/lbnamed/poller"; $poller_config        = "/usr/local/lbnamed/lbnamed.config"; $hostmaster           = "best.ludy.com"; @servers              = qw(ns1.ludy.com);
$ns->add_static("best.ludy.com",  T_SOA, $soa); $ns->add_static("best-a.ludy.com",  T_SOA, $soa);
$ns->add_dynamic("best.ludy.com" => \&handle_lb_request); $ns->add_dynamic("best-a.ludy.com" => \&handle_lb_request);
$ns->add_static("localhost.best.ludy.com",T_A,rr_A(0x7f000001)); $ns->add_static("localhost.best-a.ludy.com",T_A,rr_A(0x7f000001));
foreach (@servers) {     $ns->add_static("best.ludy.com",   T_NS, rr_NS($_));     $ns->add_static("best-a.ludy.com",   T_NS, rr_NS($_)); }
好保存退出
执行 ./lbnamed -l 1.log -d -h 192.168.6.105 -l 是 日志  -d  debug  -h 是 监听IP 地址(本机器地址)
netstat -ant tcp        0      0 192.168.6.105:53        0.0.0.0:*               LISTEN     启动成功~ 四,测试 在  web1 , web2 上 分别执行
nslookup [url]www.ludy.com[/url] Server:        192.168.6.3 Address:    192.168.6.3#53
[url]www.ludy.com   [/url] canonical name = [url]www.best.ludy.com.[/url] [url]www.best.ludy.com   [/url] canonical name = www1.ludy.com. Name:    www1.ludy.com Address: 192.168.6.101
都返回的是  www1.ludy.com
好的 看下 lbnamed 服务器 cd /usr/local/lbnamed ls
1.log     README        lbnamed.config.lb       lbnamed.config  slbcd LBCD.pm   lbnamed       lbnamed.config.status   lbnamed.rc Makefile  lbnamed.config  lbnamed.config.unreach  poller
多了三个文件 lbnamed.config.lb       lbnamed.config.status   lbnamed.config.unreach
查看 lbnamed.config.unreach  如果 为空说明两台 web的lbcd都 执行了,都从两台服务器上 获取了 负载信息。下来我们把 lbnamed.config 的 www2.ludy.com   10       www 默认的 10 该低一点 改为5 vim lbnamed.config www1.ludy.com   10      www www2.ludy.com   5       www
www             5       0       [url]www.best.ludy.com[/url]
在 其中一台web 服务器上 测试
root@fdfs:/home/ludy# nslookup [url]www.ludy.com[/url] Server:        192.168.6.3 Address:    192.168.6.3#53
[url]www.ludy.com   [/url] canonical name = [url]www.best.ludy.com.[/url] [url]www.best.ludy.com   [/url] canonical name = www2.ludy.com. Name:    www2.ludy.com Address: 192.168.6.102
到这里就 结束了。
提几点要 注意的地方  就是  lbnamed 服务器 web1 web2的服务器 一定要保证  三台服务器的   /etc/resolv.conf namedserver  地址一定要是  bind9的地址。 如果有什么问题 在问我  呵呵 ~~

本文出自 “” 博客,请务必保留此出处

转载于:https://www.cnblogs.com/snowhumen/archive/2013/05/28/3102951.html

你可能感兴趣的文章
关于Markdown的学习
查看>>
u-boot-1.1.6移植之dm9000
查看>>
AGC 012 C - Tautonym Puzzle
查看>>
对Java的初步的认识:
查看>>
npm安装
查看>>
阅读笔记02
查看>>
2019年春季学期第二周作业
查看>>
2014北邮计算机考研复试上机题解(上午+下午)
查看>>
mySQL 教程 第7章 存储过程和函数
查看>>
OGG同步Oracle到Kafka(Kafka Connect Handler)
查看>>
算法笔记_056:蓝桥杯练习 未名湖边的烦恼(Java)
查看>>
idea的maven项目无法引入junit
查看>>
jquery实现限制textarea输入字数
查看>>
习题1.18 输出两数之间的数
查看>>
thinkphp5 csv格式导入导出(多数据处理)
查看>>
mongodb索引
查看>>
Socket与WebSocket之分析对比
查看>>
插入排序(升序)
查看>>
ERROR: Removing '***': Device or resource busy
查看>>
GML3示例
查看>>