Add Docker file to build DNS server used in IMS
This commit is contained in:
37
dns/Dockerfile
Normal file
37
dns/Dockerfile
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
# BSD 2-Clause License
|
||||||
|
|
||||||
|
# Copyright (c) 2020, Supreeth Herle
|
||||||
|
# All rights reserved.
|
||||||
|
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
# 1. Redistributions of source code must retain the above copyright notice, this
|
||||||
|
# list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
# this list of conditions and the following disclaimer in the documentation
|
||||||
|
# and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
FROM ubuntu:bionic
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
# Install updates and dependencies
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get -y install tcpdump screen tmux ntp ntpdate iproute2 net-tools \
|
||||||
|
iputils-ping bind9
|
||||||
|
|
||||||
|
CMD /mnt/dns/dns_init.sh && \
|
||||||
|
/usr/sbin/named -c /etc/bind/named.conf -g -u bind
|
||||||
45
dns/dns_init.sh
Executable file
45
dns/dns_init.sh
Executable file
@@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# BSD 2-Clause License
|
||||||
|
|
||||||
|
# Copyright (c) 2020, Supreeth Herle
|
||||||
|
# All rights reserved.
|
||||||
|
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
# 1. Redistributions of source code must retain the above copyright notice, this
|
||||||
|
# list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
# this list of conditions and the following disclaimer in the documentation
|
||||||
|
# and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
cp /mnt/dns/epc_zone /etc/bind
|
||||||
|
cp /mnt/dns/ims_zone /etc/bind
|
||||||
|
cp /mnt/dns/named.conf /etc/bind
|
||||||
|
|
||||||
|
sed -i 's|EPC_DOMAIN|'$EPC_DOMAIN'|g' /etc/bind/epc_zone
|
||||||
|
sed -i 's|DNS_IP|'$DNS_IP'|g' /etc/bind/epc_zone
|
||||||
|
[ -z "$PCRF_PUB_IP" ] && sed -i 's|PCRF_IP|'$PCRF_IP'|g' /etc/bind/epc_zone || sed -i 's|PCRF_IP|'$PCRF_PUB_IP'|g' /etc/bind/epc_zone
|
||||||
|
|
||||||
|
sed -i 's|IMS_DOMAIN|'$IMS_DOMAIN'|g' /etc/bind/ims_zone
|
||||||
|
sed -i 's|DNS_IP|'$DNS_IP'|g' /etc/bind/ims_zone
|
||||||
|
sed -i 's|PCSCF_IP|'$PCSCF_IP'|g' /etc/bind/ims_zone
|
||||||
|
sed -i 's|ICSCF_IP|'$ICSCF_IP'|g' /etc/bind/ims_zone
|
||||||
|
sed -i 's|SCSCF_IP|'$SCSCF_IP'|g' /etc/bind/ims_zone
|
||||||
|
sed -i 's|FHOSS_IP|'$FHOSS_IP'|g' /etc/bind/ims_zone
|
||||||
|
|
||||||
|
sed -i 's|EPC_DOMAIN|'$EPC_DOMAIN'|g' /etc/bind/named.conf
|
||||||
|
sed -i 's|IMS_DOMAIN|'$IMS_DOMAIN'|g' /etc/bind/named.conf
|
||||||
13
dns/epc_zone
Normal file
13
dns/epc_zone
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
$ORIGIN EPC_DOMAIN.
|
||||||
|
$TTL 1W
|
||||||
|
@ 1D IN SOA localhost. root.localhost. (
|
||||||
|
1 ; serial
|
||||||
|
3H ; refresh
|
||||||
|
15M ; retry
|
||||||
|
1W ; expiry
|
||||||
|
1D ) ; minimum
|
||||||
|
|
||||||
|
1D IN NS epcns
|
||||||
|
epcns 1D IN A DNS_IP
|
||||||
|
|
||||||
|
pcrf 1D IN A PCRF_IP
|
||||||
25
dns/ims_zone
Normal file
25
dns/ims_zone
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
$ORIGIN IMS_DOMAIN.
|
||||||
|
$TTL 1W
|
||||||
|
@ 1D IN SOA localhost. root.localhost. (
|
||||||
|
1 ; serial
|
||||||
|
3H ; refresh
|
||||||
|
15M ; retry
|
||||||
|
1W ; expiry
|
||||||
|
1D ) ; minimum
|
||||||
|
|
||||||
|
1D IN NS ns
|
||||||
|
ns 1D IN A DNS_IP
|
||||||
|
|
||||||
|
pcscf 1D IN A PCSCF_IP
|
||||||
|
_sip._udp.pcscf 1D SRV 0 0 5060 pcscf
|
||||||
|
_sip._tcp.pcscf 1D SRV 0 0 5060 pcscf
|
||||||
|
|
||||||
|
icscf 1D IN A ICSCF_IP
|
||||||
|
_sip._udp 1D SRV 0 0 4060 icscf
|
||||||
|
_sip._tcp 1D SRV 0 0 4060 icscf
|
||||||
|
|
||||||
|
scscf 1D IN A SCSCF_IP
|
||||||
|
_sip._udp.scscf 1D SRV 0 0 6060 scscf
|
||||||
|
_sip._tcp.scscf 1D SRV 0 0 6060 scscf
|
||||||
|
|
||||||
|
hss 1D IN A FHOSS_IP
|
||||||
43
dns/named.conf
Normal file
43
dns/named.conf
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
options {
|
||||||
|
directory "/var/cache/bind";
|
||||||
|
|
||||||
|
// If there is a firewall between you and nameservers you want
|
||||||
|
// to talk to, you may need to fix the firewall to allow multiple
|
||||||
|
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
|
||||||
|
|
||||||
|
// If your ISP provided one or more IP addresses for stable
|
||||||
|
// nameservers, you probably want to use them as forwarders.
|
||||||
|
// Uncomment the following block, and insert the addresses replacing
|
||||||
|
// the all-0's placeholder.
|
||||||
|
|
||||||
|
forwarders {
|
||||||
|
8.8.8.8;
|
||||||
|
};
|
||||||
|
|
||||||
|
//========================================================================
|
||||||
|
// If BIND logs error messages about the root key being expired,
|
||||||
|
// you will need to update your keys. See https://www.isc.org/bind-keys
|
||||||
|
//========================================================================
|
||||||
|
dnssec-validation no;
|
||||||
|
allow-query { any; };
|
||||||
|
|
||||||
|
auth-nxdomain no; # conform to RFC1035
|
||||||
|
listen-on-v6 { any; };
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// Do any local configuration here
|
||||||
|
//
|
||||||
|
|
||||||
|
// Consider adding the 1918 zones here, if they are not used in your
|
||||||
|
// organization
|
||||||
|
//include "/etc/bind/zones.rfc1918";
|
||||||
|
zone "IMS_DOMAIN" {
|
||||||
|
type master;
|
||||||
|
file "/etc/bind/ims_zone";
|
||||||
|
};
|
||||||
|
|
||||||
|
zone "EPC_DOMAIN" {
|
||||||
|
type master;
|
||||||
|
file "/etc/bind/epc_zone";
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user