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