• Docker下搭建DNS服务器DNSmasq


    https://www.linuxidc.com/Linux/2016-08/134538.htm

    为方便Hadoop集群管理,决定利用Docker环境手动搭建一个DNS服务器。

    1. 配置容器

    选择andyshinn/dnsmasq的docker镜像,2.75版本。执行命令

    docker run -d -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN --name dns-server andyshinn/dnsmasq:2.75
    

    本以为顺利完成,结果报错:

    docker: Error response from daemon: failed to create endpoint dns-server on network bridge: Error starting userland proxy: listen tcp 0.0.0.0:53: bind: address already in use.

    dns服务默认是用的53端口被占用了。查看本机端口占用情况:

    netstat -lnp|grep 53
    

    发现在宿主机器上有一个dnsmasq服务。google一番了解到,原来是Ubuntu默认安装了dnsmasq-base服务。官网提到:

    Note that the package “dnsmasq” interferes with Network Manager which can use “dnsmasq-base” to provide DHCP services when sharing an internet connection. Therefore, if you use network manager (fine in simple set-ups only), then install dnsmasq-base, but not dnsmasq. If you have a more complicated set-up, uninstall network manager, use dnsmasq, or similar software (bind9, dhcpd, etc), and configure things by hand.

    通过kill 停掉该服务。再次执行上述命令,通过

    docker ps
    

    查看,容器启动成功。

    2. 配置DNS服务

    进入容器

    docker exec -it dns-server /bin/sh
    

    首先配置上行的真正的dns服务器地址,毕竟你只是个本地代理,不了解外部规则。创建文件:

    vi /etc/resolv.dnsmasq
    

    添加内容:

    nameserver 114.114.114.114
    nameserver 8.8.8.8
    

    配置本地解析规则,这才是我们的真实目的。新建配置文件

    vi /etc/dnsmasqhosts
    

    添加解析规则

    172.20.2.14 master
    172.20.2.15 slave15
    172.20.2.16 slave16
    

    修改dnsmasq配置文件,指定使用上述两个我们自定义的配置文件

    vi /etc/dnsmasq.conf
    

    修改下述两个配置

    resolv-file=/etc/resolv.dnsmasq
    addn-hosts=/etc/dnsmasqhosts
    

    回到宿主,重启dns-server容器服务。

    docker restart dns-server
    

    通过本机验证

    修改本机dns服务器地址:

    通过dig命令查看

    dig master
    

    一切如愿。

    https://www.cnblogs.com/xiao987334176/p/13491341.html

    基于docker搭建DNSmasq

     

    一、概述

    DNSmasq是一个小巧且方便地用于配置DNSDHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。它服务那些只在本地适用的域名,这些域名是不会在全球的DNS服务器中出现的。DHCP服务器和DNS服务器结合,并且允许DHCP分配的地址能在DNS中正常解析,而这些DHCP分配的地址和相关命令可以配置到每台主机中,也可以配置到一台核心设备中(比如路由器),DNSmasq支持静态和动态两种DHCP配置方式。

    二、安装

    环境说明

    操作系统:centos 7.6

    docker版本:19.03.12

    ip地址:192.168.31.74

    下载镜像

    docker pull jpillora/dnsmasq

    配置文件

    新建配置文件

    mkdir -p /data/dns/
    vi /data/dns/dnsmasq.conf

    内容如下:

    #dns解析日志
    log-queries
    #域名与IP映射
    address=/lb.guxin.com/172.16.91.165

    说明:

    将lb.guxin.com解析成172.17.205.28

    启动

    复制代码
    docker run -d\
        --name dnsmasq \
        --restart always \
        -p 53:53/udp \
        -p 8080:8080 \
        -v /data/dns/dnsmasq.conf:/etc/dnsmasq.conf \
        --log-opt "max-size=100m" \
        -e "HTTP_USER=admin" \
        -e "HTTP_PASS=123456" \
        jpillora/dnsmasq
    复制代码

    参数解释:

    --log-opt 指定docker容器日志大小

    HTTP_USER web ui 用户名

    HTTP_PASS web ui 密码

    web登录

    http://192.168.31.74:8080/

    输入用户名:admin,密码:123456

    效果如下:

    可以直接在网页上,新增一条

     点击左侧的save按钮,就会保存并加载。

    三、测试

    安装dns解析工具

    yum -y install bind-utils

    解析域名lb.guxin.com,指定dns服务器为192.168.31.74

    复制代码
    # nslookup lb.guxin.com 192.168.31.74
    Server:        192.168.31.74
    Address:    192.168.31.74#53
    
    Name:    lb.guxin.com
    Address: 172.16.91.165
    复制代码

    可以发现,解析记录,正是我们所配置的。

    本文参考链接:

    https://www.jianshu.com/p/10a47b59853e

  • 相关阅读:
    Eclipse Java开发环境配置 + memcached + maven
    sqlserver数据库自动备份
    从表A中选择部分字段插入到表B
    电信IOT平台关于产品profile插件的添加流程
    SQLServer查询耗时sql语句
    net core 包管理
    byte[] 截串操作
    关于kafka启动失败问题
    springboot 搭建maven项目
    C# MongoDB学习之路(一)
  • 原文地址:https://www.cnblogs.com/yipianchuyun/p/15901240.html
Copyright © 2020-2023  润新知