Cisco router можно настроить в качестве кеширующего DNS сервера. Это удобно в небольших офисах, где нет серверов Windows и AD.
Общий вид команд выглядит следующим образом:
ip domain lookup
ip domain timeout 2
ip domain name office.local
ip host name1 192.168.0.11
ip host name2 192.168.0.12
ip name-server 192.168.2.3
ip name-server 178.23.144.5
ip name-server 8.8.8.8
ip name-server 8.8.4.4
ip dns server
ip domain lookup – включает трансляцию имён в ip адреса основанную на dns. Этот параметр включен по умолчанию. Часто его выключают чтобы маршрутизатор не “зависал” при вводе ошибочной команды, но для нашей цели его необходимо включить.
ip name-server – этот параметр задаёт адрес одного или нескольких серверов имён (dns). Приоритет определяется сверху вниз.
ip domain name – задаёт имя домена по умолчанию для пользователей Cisco IOS software для разрешения “неопознаных” доменных имён (имена без суффикса.
ip dns server – включаем собственно кеширующий DNS сервер на циске
Конструкция ip host name1 192.168.0.11 работает подобно файлу hosts в windows.
Проверка:
show ip dns view
DNS server для своих
Предыдущий конфиг приводит к тому, что роутер будет отвечать на все запросы DNS: как изнутри так и снаружи.
Для того, чтобы DNS сервер отвечал только на внутренние запросы у нас есть два пути:
DNS server для своих: ACL
Приведём здесь стандартный ACL, который в том числе запрещает доступ к нашему DNS через внешний интерфейс, и при этом разрешает DNS-запросы наружу:
ip access-list extended outside_acl_in
remark — Add anti-spoofing entries. !—Deny special-use address sources. !— Refer to RFC 3330 for add
deny ip 127.0.0.0 0.255.255.255 any
deny ip 192.0.2.0 0.0.0.255 any
deny ip 224.0.0.0 31.255.255.255 any
deny ip host 255.255.255.255 any
remark — The deny statement should not be configured !— on Dynamic Host Configuration Protocol (DHCP) r
deny ip host 0.0.0.0 any
remark — Filter RFC 1918 space.
deny ip 10.0.0.0 0.255.255.255 any
deny ip 172.16.0.0 0.15.255.255 any
deny ip 192.168.0.0 0.0.255.255 any
remark — Explicitly permit return traffic. !— Allow specific ICMP types.
permit icmp any any echo
permit icmp any any echo-reply
permit icmp any any unreachable
permit icmp any any time-exceeded
deny icmp any any
remark — These are outgoing DNS queries.
permit udp any eq domain any gt 1023
remark — Permit older DNS queries and replies to primary DNS server.
permit udp any eq domain any eq domain
remark — Permit legitimate business traffic.
permit tcp any any established
permit udp any range 1 1023 any gt 1023
remark — Deny all other DNS traffic.
deny udp any any eq domain
deny tcp any any eq domain
remark — Allow IPSec VPN traffic.
permit udp any any eq isakmp
permit udp any any eq non500-isakmp
permit esp any any
permit ahp any any
permit gre any any
remark — These are Internet-sourced connections to !— publicly accessible servers.
permit tcp any any eq 22
remark — Explicitly deny all other traffic.
deny ip any any
interface Port-channel1.81
ip access-group outside_acl_in in
DNS server для своих: Split DNS
В данном случае мы можем использовать функционал Split DNS:
ip domain lookup
ip domain timeout 2
ip domain name office.local
ip name-server 8.8.8.8
ip name-server 8.8.4.4
ip dns server
ip dns view no_dns_service_view
no domain lookup
no dns forwarding
ip dns view default
domain timeout 2
dns forwarder 8.8.8.8
ip dns view-list no_dns_service_list
view no_dns_service_view 1
interface Port-channel1.81
ip dns view-group no_dns_service_list