Docker to BIG-IP: Map container names to DNS
Problem this snippet solves:
The associated iRule is used in the DevCentral article:
https://devcentral.f5.com/articles/connecting-docker-to-big-ip
This will intercept DNS requests and return an IP address based on a name from a data group.
How to use this snippet:
Attach to LTM virtual that is the GTM listener (53).
Code :
when DNS_REQUEST {
set lower_name [string tolower [DNS::question name]]
if { $lower_name ends_with ".container.f5demo.com" } {
set container [getfield $lower_name "." 1]
#log local0. "container $container"
set node_addr [class match -value $container equals dg_docker_container]
if {$node_addr ne "" }
{
set node_ip [getfield $node_addr ":" 1]
DNS::answer insert "[DNS::question name]. 30 [DNS::question class] [DNS::question type] $node_ip"
# Stop further processing of the query after this iRule and send the answer to the client
DNS::return
} else {
DNS::answer clear
DNS::header rcode NXDOMAIN
DNS::return
}
}
}Published Sep 01, 2015
Version 1.0Eric_Chen
Employee
Joined May 16, 2013
Eric_Chen
Employee
Joined May 16, 2013
No CommentsBe the first to comment