понедельник, 25 ноября 2013 г.

Cisco DNS proxy + BIND cache + dnscrypt

Как-то раз однажды мне понадобилось соорудить приличную и быстро работающую связку из описанных в заголовке компонентов. Нет, ну это было, конечно, сделано в рамках приведения инфраструктуры сети из состояния "лоскутное одеяло" в божеский вид.

Как обычно, поверхностное гугление накопало массу унылого говна с ошибками - создается впечатление, что народ, копипастя друг у друга, даже не чешется эти так называемые решения проверить и убедиться, что все так и работает, как написано.

Пришлось убить около десяти дней времени, чтобы все, во-первых, проделать лично - поэтапно и все вкупе, а во-вторых, найти все грабли и подводные камни, разложенные разработчиками компонентов и писаками поганых статеек.

Представляю вашему вниманию готовое и работоспособное решение.

Cisco DNS proxy


Правило 1: Cisco не слишком хороша в роли DNS-сервера. Максимум в качестве DNS-прокси, переадресующего запросы далее.

Исходя из этого принципа конфигурируем главный роутер инфраструктуры:

ip dns server

ip domain name localdomain
ip name-server 192.168.200.3
ip name-server 8.8.4.4
ip name-server 8.8.8.8


Первым указываем адрес нашего будущего кэширующего сервера (у меня на нем же расположен прокси), и - на случай, если этот сервер будет вдруг лежать - чтобы пользователи не остались без инета, укажем два публичных DNS Гугла.

Так как наша циска главная и по совместительству является DHCP-сервером, изменим во всех пулах адреса DNS на шлюз сети:

!
ip dhcp pool 100
network 192.168.100.0 255.255.255.0
default-router 192.168.100.1
dns-server 192.168.100.1
option 252 ascii "http://192.168.200.3:8080/wpad.dat "
!



Прошу заметить, что наш кэширующий DNS располагается как раз на прокси-сервере, к чему есть определенные предпосылки (Squid тоже использует кэширующий DNS для ускорения).

Проделанная операция сильно сократит прямой DNS-трафик из сетей наружу и снизит нагрузку на инфраструктуру. Наша циска будет по умолчанию форвардить DNS-запросы на первый ответивший сервер, а, поскольку в одном хопе будет располагаться наш кэш, он и будет отвечать быстрее всех.

BIND как рекурсор


Настройка кэширующего DNS (рекурсора) это отдельная голубая печаль. 

Почему печаль? Потому что интернет переполнен перепостами пары-тройки мудацких статеек на тему того, как поднять этот самый рекурсор.

Прежде всего, ребятишки: вы сами пробовали поднять кэширующий BIND? Ах, вы думали, что он кэширует.... А посмотреть потом в кэш бинда - что он, собственно говоря, кэширует - вы пробовали? Ах, нет, это вон тот ваня написал, а он уж знает толк..... 

Золотые мои. Рекурсору не нужны корневые DNS. Вообще. Вот не нужны и все тут. Он без них заведется.

Нужно, по существу, только два файла. named.conf и localhost.rev. Ну и rndc поднять - для удобства, контроля и мониторинга. И это все.

Простенький примерчик. Используем в качестве рута гугловые паблик DNS (хотя это плохая идея. Гугл прогибается под правительства. Выберите другие источники.) и кэшируем их ответы.

Пишем /etc/named.conf:


acl "myfolks" { 192.168.0.0/16; 127.0.0.1; };

key "rndc-key" {
algorithm hmac-md5;
secret "9d1KdGZr5W2xTdGsqsWtag==";
};

controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};

options {
directory "/var/named";
pid-file "/var/run/named/named.pid";
allow-query { "myfolks"; };
version "unknown";
};
// Forward zone:
zone "." {
type forward;
forwarders { 8.8.4.4; 8.8.8.8; };
};
// Reverse resolve for 127.0.0.1:
zone "0.0.127.in-addr.arpa" {
type master;
file "localhost.rev";
notify no; };


Разумеется, надо положить в /var/named файл localhost.rev.

Обратите внимание на следующие моменты. В опциях НЕ НАДО писать директивы о рекурсии. Если вы это сделаете - вы в кэше не увидите ничего, кроме рутовых DNS (желающие могут лично убедиться с помощью команды rndc dumpdb). Вы именно их желаете кэшировать? Ну-ну, вперед. 2 секунды латентности кэширующего DNS убедят даже анацефала вас. 

Корневая зона ссылается на форвардеры, а не на файл с рутовыми DNS. Еще раз - рутовые DNS ни на фиг кэшу не упёрлись. Ни во что. (Они тем более не уперлись, что в одно действие подменяются контролируемым провайдером источником. Проблемы с цензурой поимеете).

Тип форвардинга менять не надо. Forward only. Начнете экспериментировать - обнаружите в кэше все те же корневые DNS и ничего более.

Ах, да - localhost.rev сами сумеете сгенерировать? ;) И rndc.conf создать? :)

Ну и напоследок надо просто выполнить команду svcadm enable dns/server.

Форвардер мы чуть позже поменяем на сервис dnscrypt, но об этом в следующей части. Те, кто считает, что скрывать им нечего и DNS-фуфло, могут на этом и закончить конфигурирование. :)

DNSCrypt как форвардер


По зрелом размышлении я оставил сервис dnscrypt (давно функционирующий на прокси) в качестве форвардера для наполнения нашего кэша.

Собственно, сам dnscrypt без каких бы то ни было проблем преспокойно собирается на Солярисе. И единственное, что потребуется - это SMF-сервис для него.

Такой сервис готов, написан и лежит здесь.

Последние штрихи. Конфигурационный файл сервиса лежит в /etc и настраивается так, как в архиве. На нестандартный порт. Ну и, соответственно, после запуска сервиса (по умолчанию dnscrypt использует сервисы OpenDNS) следует изменить строчку forwarders в /etc/named.conf:

forwarders { 127.0.0.1 port 5355; };


и перезапустить BIND: svcadm restart dns/server.

Дать всей этой связке немного поработать, затем дать команду rndc dumpdb и убедиться, что в кэше (дамп будет находиться в /var/named/named_dump.db) находятся именно запрашиваемые клиентами DNS:

;
; Start view _default
;
;
; Cache dump of view '_default'
;
$DATE 20131125121626
; additional
235.92.163.95.in-addr.arpa. 1152 IN \-ANY ;-$NXDOMAIN
; answer
cloudns.com.au. 3095 A 198.98.104.71
; answer
www.yahoo.co. 52462 CNAME rc.yahoo.com.
; answer
www.aaronvanderzwan.com. 5830 A 69.163.223.130
; answer
get.adobe.com. 3149 CNAME get.wip4.adobe.com.
; answer
www.adobe.com. 4845 CNAME www.wip4.adobe.com.
; answer
ec2-54-247-27-195.eu-west-1.compute.amazonaws.com. 581328 A 54.247.27.195
; answer
www.arsenal.com. 67536 CNAME cs19.wpc.edgecastcdn.net.
; answer
img1.blogblog.com. 75530 CNAME blogger.l.google.com.
; answer
www.blogblog.com. 2983 CNAME blogger.l.google.com.
; answer
www1.blogblog.com. 75526 CNAME blogger.l.google.com.
; answer
www2.blogblog.com. 75526 CNAME blogger.l.google.com.
; answer
www.blogratedirectory.com. 2383 CNAME blogratedirectory.com.
; answer
1.bp.blogspot.com. 593928 CNAME photos-ugc.l.googleusercontent.com.
; answer
2.bp.blogspot.com. 593925 CNAME photos-ugc.l.googleusercontent.com.
; answer
4.bp.blogspot.com. 593925 CNAME photos-ugc.l.googleusercontent.com.
; answer
yvoinov.blogspot.com. 2981 CNAME blogspot.l.googleusercontent.com.
; answer
static.chartbeat.com. 13870 CNAME chartbeat.edgekey.net.
; answer
ajax.cloudflare.com. 61532 CNAME ajax.cloudflare.com.cdn.cloudflare.net.
; answer
www.clubvulcan.com. 22533 CNAME clubvulcan.com.
; answer
facebook.conduitapps.com. 687 CNAME www.conduitapps.com.edgesuite.net.
; answer
youtube.conduitapps.com. 3089 CNAME www.conduitapps.com.edgesuite.net.
; answer
hosted.daportfolio.com. 2836 A 199.15.160.103
; answer
wilkowski.daportfolio.com. 575691 CNAME hosted.daportfolio.com.
; answer
ocsp.digicert.com. 64643 CNAME cs9.wac.edgecastcdn.net.
; answer
ideaskz.disqus.com. 18135 CNAME disqus.map.fastly.net.
; answer
static.ak.facebook.com. 747 CNAME static.ak.facebook.com.edgesuite.net.
; answer
api.facebook.com. 484 CNAME star.c10r.facebook.com.
; additional
c10r.facebook.com. 109386 NS a.ns.c10r.facebook.com.
109386 NS b.ns.c10r.facebook.com.
; additional
a.ns.c10r.facebook.com. 125370 A 69.171.239.11
; additional
b.ns.c10r.facebook.com. 109386 A 69.171.255.11
; answer
graph.facebook.com. 481 CNAME api.facebook.com.
; answer
api.farmanager.com. 2065 A 93.174.73.204
; answer
www.freedrweb.com. 3505 A 87.242.75.212
; answer
geiminator.com. 27434 A 178.73.241.138
; answer
www.geiminator.com. 27434 CNAME geiminator.com.
; answer
accounts.google.com. 280489 CNAME accounts.l.google.com.
; answer
apis.google.com. 333645 CNAME plus.l.google.com.
; answer
clients2.google.com. 65 CNAME clients.l.google.com.
; answer
code.google.com. 604200 CNAME code.l.google.com.
; answer
0.docs.google.com. 575959 CNAME browserchannel-docs.l.google.com.
; answer
drive.google.com. 223 A 173.194.113.169
223 A 173.194.113.168
223 A 173.194.113.167
223 A 173.194.113.174
223 A 173.194.113.163
223 A 173.194.113.166
223 A 173.194.113.164
223 A 173.194.113.165
223 A 173.194.113.160
223 A 173.194.113.161
223 A 173.194.113.162
; answer
upload.drive.google.com. 585205 CNAME large-uploads.l.google.com.
; answer
feedburner.google.com. 598265 CNAME www3.l.google.com.
; answer
feedproxy.google.com. 287779 CNAME www4.l.google.com.
; answer
ghs.google.com. 318253 CNAME ghs.l.google.com.
; answer
tools.l.google.com. 71 A 173.194.113.132
71 A 173.194.113.134
71 A 173.194.113.133
71 A 173.194.113.131
71 A 173.194.113.142
71 A 173.194.113.137
71 A 173.194.113.135
71 A 173.194.113.129
71 A 173.194.113.128
71 A 173.194.113.136
71 A 173.194.113.130
; answer
www3.l.google.com. 49 A 173.194.113.130
49 A 173.194.113.134
49 A 173.194.113.133
49 A 173.194.113.135
49 A 173.194.113.142
49 A 173.194.113.137
49 A 173.194.113.131
49 A 173.194.113.128
49 A 173.194.113.136
49 A 173.194.113.129
49 A 173.194.113.132
; answer
mail.google.com. 319036 CNAME googlemail.l.google.com.
; answer
safebrowsing.google.com. 333009 CNAME sb.l.google.com.
; answer
safebrowsing-cache.google.com. 322426 CNAME safebrowsing.cache.l.google.com.
; answer
sb-ssl.google.com. 578693 CNAME sb-ssl.l.google.com.
; answer
support.google.com. 15566 CNAME www3.l.google.com.
; answer
talk.google.com. 557982 CNAME talk.l.google.com.
; answer
toolbarqueries.google.com. 575699 CNAME toolbarqueries.l.google.com.
; answer
tools.google.com. 287997 CNAME tools.l.google.com.
; answer
translate.google.com. 292464 CNAME www3.l.google.com.
; answer
www.google.com. 23 A 173.194.113.178
23 A 173.194.113.176
23 A 173.194.113.177
23 A 173.194.113.180
23 A 173.194.113.179
; answer
ssl.google-analytics.com. 18980 CNAME ssl-google-analytics.l.google.com.
; answer
www.google-analytics.com. 34436 CNAME www-google-analytics.l.google.com.
; answer
ajax.googleapis.com. 1018 CNAME googleapis.l.google.com.
; answer
fonts.googleapis.com. 1675 CNAME googleapis.l.google.com.
; answer
farmanager.googlecode.com. 66871 CNAME googlecode.l.googleusercontent.com.
; answer
www.googletagmanager.com. 5160 CNAME www-googletagmanager.l.google.com.
; answer
doc-0o-ag-docs.googleusercontent.com. 57619 CNAME googlehosted.l.googleusercontent.com.
; answer
blogspot.l.googleusercontent.com. 40 A 173.194.113.138
40 A 173.194.113.140
40 A 173.194.113.139
; answer
lh3.googleusercontent.com. 83734 CNAME googlehosted.l.googleusercontent.com.
; answer
oauth.googleusercontent.com. 9697 CNAME googlehosted.l.googleusercontent.com.
; answer
themes.googleusercontent.com. 17425 CNAME googlehosted.l.googleusercontent.com.
; answer
adv.gpm-digital.com. 61709 A 77.95.133.6
; answer
1.gravatar.com. 3050 CNAME cs91.wac.edgecastcdn.net.
; answer
track.hubrus.com. 5571 CNAME pool.retargeter.iponweb.net.
; answer
invisionboard.com. 7719 A 50.28.75.102
; answer
www.invisionboard.com. 7719 CNAME invisionboard.com.
; answer
juick.com. 41908 A 178.63.67.74
; answer
lastpass.com. 2069 A 38.127.167.7
2069 A 128.121.22.133
; answer
lp-push-server-164.lastpass.com. 2025 A 192.241.185.248
; additional
livejournal.com. 78711 NS ns2.cdnetdns.net.
78711 NS ns1.cdnetdns.net.
; answer
l-stat.livejournal.com. 63110 CNAME l-stat.livejournal.com.cdngc.net.
; answer
cdn-images.mailchimp.com. 34702 CNAME dbhkt46el5ri0.cloudfront.net.
; answer
marketgid.com. 63516 A 87.242.88.80
; answer
rtbproxy.marketgid.com. 68517 CNAME proxy.rtbsystem.com.
; answer
ieonline.microsoft.com. 178 CNAME any.edge.bing.com.
; answer
teredo.ipv6.microsoft.com. 115 CNAME teredo.ipv6.microsoft.com.nsatc.net.
; answer
redir.opera.com. 81877 A 91.203.99.52
; answer
support.plarium.com. 54741 A 209.190.121.242
; answer
td.plarium.com. 65370 A 209.190.121.242
; answer
doc.powerdns.com. 1811 CNAME xs.powerdns.com.
; answer
xs.powerdns.com. 1811 A 82.94.213.34
; answer
pixel.quantserve.com. 2686 CNAME map-pb.quantserve.com.akadns.net.
; answer
www.rarsoft.com. 7830 CNAME rarsoft.com.
; answer
reklamaster.com. 2724 A 5.9.85.7
; answer
rulesofwargame.com. 4801 A 173.45.106.130
; answer
b.scorecardresearch.com. 62206 CNAME b.scorecardresearch.com.edgesuite.net.
; answer
w.sharethis.com. 49947 CNAME w.sharethis.com.edgesuite.net.
; answer
singerco.com. 74989 A 174.143.15.114
; answer
www.singerco.com. 74989 CNAME singerco.com.
; answer
cluster-3.skillclub.com. 66555 A 209.190.121.202
; answer
cluster-5.skillclub.com. 67016 CNAME plarium.vo.llnwd.net.
; answer
www.slate.com. 26532 CNAME www.slate.com.edgesuite.net.
; answer
www.socialgrowthtechnologies.com. 27015 CNAME socialgrowthtechnologies.com.
; answer
dc1.soltysiak.com. 77139 A 178.216.201.222
; answer
u1136.39.spylog.com. 25946 CNAME ru03-hits.spylog.com.
; answer
u5928.82.spylog.com. 156220 CNAME ru09-hits.spylog.com.
; answer
crl.startssl.com. 61553 CNAME www.startssl.com.edgesuite.net.
; answer
www.startssl.com. 64096 A 192.116.242.20
; answer
www.sugarsync.com. 67790 A 74.201.86.21
; answer
liveupdate.symantecliveupdate.com. 370 CNAME liveupdate.symantec.d4p.net.
; answer
scm-l3.technorati.com. 600 CNAME wac.1DDE.edgecastcdn.net.
; answer
static.technorati.com. 558428 A 208.66.65.196
; answer
widgets.technorati.com. 988 CNAME www.technorati.com.
; answer
www.technorati.com. 1956 A 208.66.65.239
; additional
twitter.com. 78711 NS ns3.p34.dynect.net.
78711 NS ns2.p34.dynect.net.
78711 NS ns4.p34.dynect.net.
78711 NS ns1.p34.dynect.net.
; answer
search.vuze.com. 42757 CNAME web-www-1660276444.us-east-1.elb.amazonaws.com.
; answer
time.windows.com. 754 CNAME time.microsoft.akadns.net.
; answer
igurublog.wordpress.com. 3177 CNAME lb.wordpress.com.
; answer
l3.yimg.com. 252 CNAME fd-geoycs-l.gy1.b.yahoodns.net.
; answer
accounts.youtube.com. 2991 CNAME www3.l.google.com.
; answer
www.youtube.com. 28796 CNAME youtube-ui.l.google.com.
; answer
www.apoelfc.com.cy. 80556 A 195.14.149.64
; answer
www.fcbayern.telekom.de. 27456 CNAME www.fcbayern.de.
; answer
monstrum.dk. 8924 A 91.221.206.60
; answer
www.monstrum.dk. 8924 CNAME monstrum.dk.
; answer
dnscrypt.eu. 33939 A 192.71.151.13
; answer
www.olweb.fr. 1408 CNAME olweb.tf1.fr.
; answer
soro.in. 5058 A 78.46.246.125
; answer
ad.mydiesel.kg. 82261 A 212.42.102.204
; answer
www.alb.kz. 253335 A 212.154.249.43
; answer
www.alb24.kz. 248040 A 92.46.47.151
; answer
alfa.kz. 73674 A 195.93.153.94
; answer
aktau.alfa.kz. 79840 CNAME new-alfa.neolabs.net.
; answer
aktobe.alfa.kz. 79839 CNAME new-alfa.neolabs.net.
; answer
astana.alfa.kz. 79840 CNAME new-alfa.neolabs.net.
; answer
atyrau.alfa.kz. 74841 CNAME new-alfa.neolabs.net.
; answer
balhash.alfa.kz. 79840 CNAME new-alfa.neolabs.net.
; answer
ekibastuz.alfa.kz. 67223 CNAME new-alfa.neolabs.net.
; answer
img2.alfa.kz. 67214 A 195.93.153.98
; answer
karaganda.alfa.kz. 82026 CNAME new-alfa.neolabs.net.
; answer
kokshetau.alfa.kz. 82026 CNAME new-alfa.neolabs.net.
; answer
kostanay.alfa.kz. 77516 CNAME new-alfa.neolabs.net.
; answer
kyzylorda.alfa.kz. 79842 CNAME new-alfa.neolabs.net.
; answer
pavlodar.alfa.kz. 79841 CNAME new-alfa.neolabs.net.
; answer
petropavlovsk.alfa.kz. 67224 CNAME new-alfa.neolabs.net.
; answer
rudniy.alfa.kz. 82027 CNAME new-alfa.neolabs.net.
; answer
bf.kz. 51850 A 195.210.46.200
; answer
bin.kz. 51846 NS ns.zakon.kz.
51846 NS mx.zakon.kz.
; answer
www.gcvp.kz. 12144 A 212.154.192.85
; answer
clients1.google.kz. 2773 CNAME clients-cctld.l.google.com.
; answer
id.google.kz. 63116 CNAME id.l.google.com.
; answer
akimzyrian.gov.kz. 9815 A 89.28.129.117
; answer
forum.ideas.kz. 10043 A 69.163.137.160
; answer
cabinet.idport.kz. 48856 A 89.218.23.182
; answer
www.inform.kz. 5090 A 212.154.160.250
; answer
deposit.kaspibank.kz. 4215 A 82.200.138.67
; answer
static.br.kcdn.kz. 25457 A 185.22.67.254
; answer
static.kl.kcdn.kz. 6949 A 185.22.67.234
; answer
base.kiwi.kz. 7410 A 195.210.46.44
; answer
adilet.minjust.kz. 47193 A 89.218.67.50
; answer
i2.mynur.kz. 3562 A 195.210.46.168
; answer
i4.mynur.kz. 475 A 195.210.46.168
; answer
nationalbank.kz. 55827 A 212.154.131.69
; answer
www.nationalbank.kz. 2 A 212.154.131.69
; answer
php5.neolabs.kz. 55791 A 195.93.153.26
; answer
www.web.neolabs.kz. 16689 CNAME php5.neolabs.kz.
; answer
zero-data.neolabs.kz. 66348 A 195.93.153.23
; answer
olimp.kz. 533 A 91.216.220.4
; answer
prosportkz.kz. 1145 A 95.56.230.203
; answer
quorum.kz. 1991 A 91.219.194.34
; answer
www.quorum.kz. 1991 CNAME quorum.kz.
; answer
cabinet.salyk.kz. 45962 A 212.154.165.148
; answer
www.salyk.kz. 45773 A 89.218.84.157
; answer
sia.kz. 10027 A 195.93.153.3
; answer
pro.sia.kz. 10030 A 195.93.153.3
; answer
www.sia.kz. 10028 CNAME sia.kz.
; answer
www.stat.kz. 136783 A 92.46.127.4
; answer
tengrinews.kz. 1674 A 92.46.32.205
; answer
www.today.kz. 54368 A 92.46.53.224
; answer
vesti.kz. 54567 A 195.210.47.168
; answer
voxpopuli.kz. 230 A 195.210.46.120
; answer
www.voxpopuli.kz. 230 CNAME voxpopuli.kz.
; answer
www.zakon.kz. 1321 A 212.154.141.146
; answer
www.zdrav.kz. 534 A 89.218.2.186
; answer
zero.kz. 56787 A 195.93.153.23
; answer
c.zero.kz. 65314 CNAME zero-data.neolabs.kz.
; answer
www.behance.net. 18877 CNAME behance.net.
; answer
liveupdate.symantec.d4p.net. 743 CNAME symantec.georedirector.akadns.net.
; answer
ad.doubleclick.net. 64615 CNAME dart.l.doubleclick.net.
; answer
fls.doubleclick.net. 78714 CNAME dart.l.doubleclick.net.
; answer
stats.g.doubleclick.net. 63372 CNAME stats.l.doubleclick.net.
; answer
imgg.dt00.net. 3777 CNAME imgg.dt01.net.
; answer
wac.1DDE.edgecastcdn.net. 2983 CNAME gs1.wac.edgecastcdn.net.
; answer
cs107.wac.edgecastcdn.net. 478 A 68.232.35.139
; answer
cs9.wac.edgecastcdn.net. 5375 A 93.184.220.29
; answer
gs1.wac.edgecastcdn.net. 2983 A 93.184.220.20
; answer
chartbeat.edgekey.net. 13870 CNAME e6059.g.akamaiedge.net.
; answer
wildcard.mam.conduit.com.edgekey.net. 6635 CNAME e8089.g.akamaiedge.net.
; answer
www.conduit.com.edgekey.net. 1881 CNAME e6321.g.akamaiedge.net.
; answer
wildcard.mythings.com.edgekey.net. 1265 CNAME e6082.b.akamaiedge.net.
; answer
javadl-esd-secure.oracle.com.edgekey.net. 6209 CNAME e5486.g.akamaiedge.net.
; answer
crl.ws.symantec.com.edgekey.net. 5521 CNAME e6845.ce.akamaiedge.net.
; answer
wildcard.krxd.net.edgekey.net. 13869 CNAME e5180.g.akamaiedge.net.
; answer
wwwimages.adobe.com.edgesuite.net. 10437 CNAME wwwimages.adobe.com.edgesuite.net.globalredir.akadns.net.
; answer
cdn.afterdownload.com.edgesuite.net. 4541 CNAME a1834.g1.akamai.net.
; answer
af.avg.com.edgesuite.net. 12045 CNAME a702.g2.akamai.net.
; answer
alerts.conduit-services.com.edgesuite.net. 5443 CNAME a1726.g1.akamai.net.
; answer
clientservice.mam.conduit-services.com.edgesuite.net. 6293 CNAME a743.g1.akamai.net.
; answer
www.conduitapps.com.edgesuite.net. 6620 CNAME a122.g1.akamai.net.
; answer
www.msftncsi.com.edgesuite.net. 11939 CNAME a1961.g.akamai.net.
; answer
www.outbrain.com.edgesuite.net. 4471 CNAME a267.b.akamai.net.
; answer
w.sharethis.com.edgesuite.net. 11455 CNAME a335.b.akamai.net.
; answer
www.slate.com.edgesuite.net. 16051 CNAME a1503.g.akamai.net.
; answer
z.cdn.turner.com.edgesuite.net. 5641 CNAME a1755.g.akamai.net.
; answer
urls.api.twitter.com.edgesuite.net. 6678 CNAME a1697.g.akamai.net.
; answer
tf1.fr.edgesuite.net. 15356 CNAME a1272.g.akamai.net.
; answer
ws.bbc.co.uk.edgesuite.net. 9996 CNAME a476.ga.akamai.net.
; answer
static.bbci.co.uk.edgesuite.net. 2838 CNAME a1638.g.akamai.net.
; answer
node1.bbcimg.co.uk.edgesuite.net. 14134 CNAME a1092.g.akamai.net.
; additional
c.footprint.net. 42708 NS hk-1.ns.c.footprint.net.
42708 NS jp-2.ns.c.footprint.net.
42708 NS b.ns.c.footprint.net.
; additional
b.ns.c.footprint.net. 129108 A 209.84.2.47
; additional
hk-1.ns.c.footprint.net. 129108 A 192.221.77.23
; additional
jp-2.ns.c.footprint.net. 129108 A 61.120.158.14
; answer
cdn.krxd.net. 62331 CNAME wildcard.krxd.net.edgekey.net.
; answer
new-alfa.neolabs.net. 55164 A 195.93.153.94
; additional
nsatc.net. 117035 NS e.ns.nsatc.net.
117035 NS l.ns.nsatc.net.
117035 NS us-ca-6.ns.nsatc.net.
; answer
teredo.ipv6.microsoft.com.nsatc.net. 88 A 94.245.121.253
; additional
e.ns.nsatc.net. 117035 A 8.12.199.51
; additional
l.ns.nsatc.net. 121118 A 8.255.48.47
; additional
us-ca-6.ns.nsatc.net. 121118 A 199.93.58.47
; answer
www.om.net. 17612 CNAME tf1.fr.edgesuite.net.
; answer
openstat.net. 1023 A 193.169.234.231
1023 A 193.169.234.232
1023 A 193.169.234.233
1023 A 193.169.234.234
; answer
api28.thetrafficstat.net. 64318 CNAME t.thetrafficstat.net.
; answer
api30.thetrafficstat.net. 63270 CNAME t.thetrafficstat.net.
; answer
api31.thetrafficstat.net. 66555 CNAME t.thetrafficstat.net.
; answer
fm.thetrafficstat.net. 66761 CNAME lb.thetrafficstat.net.
; answer
lb.thetrafficstat.net. 72603 A 64.79.93.226
72603 A 64.79.93.210
; answer
t.thetrafficstat.net. 66555 A 64.79.93.146
66555 A 64.79.93.194
66555 A 64.79.93.178
66555 A 64.79.93.162
66555 A 64.79.93.130
66555 A 64.79.92.194
; additional
gslb.vgtf.net. 70440 NS ns4.p42.dynect.net.
70440 NS ns5.timewarner.net.
70440 NS ns3.timewarner.net.
70440 NS ns3.p42.dynect.net.
70440 NS ns1.timewarner.net.
70440 NS ns2.p42.dynect.net.
70440 NS ns1.p42.dynect.net.
; answer
favicon.yandex.net. 4473 A 87.250.251.36
4473 A 213.180.204.36
4473 A 77.88.21.36
; answer
vec02.maps.yandex.net. 254 CNAME vec.maps.yandex.net.
; answer
pitts.co.nz. 12481 A 205.134.250.2
; answer
www.pitts.co.nz. 12481 CNAME pitts.co.nz.
; additional
bandito.org. 28660 NS ns1.1ns2ns.org.
28660 NS ns2.1ns2ns.org.
; answer
i.bandito.org. 28660 A 188.190.120.74
; answer
ca-news.org. 31397 A 212.42.122.2
; answer
dailybitcoins.org. 3091 A 78.46.152.177
; answer
dnscrypt.org. 59765 A 204.232.175.78
; answer
download.dnscrypt.org. 821 A 91.121.49.42
; answer
dnscurve.org. 96 A 131.193.32.147
96 A 131.193.32.142
; answer
internetdefenseleague.org. 266 A 174.129.212.2
266 A 75.101.163.44
; answer
kdenlive.org. 70049 A 93.88.246.67
; answer
www.kdenlive.org. 70049 CNAME kdenlive.org.
; answer
mininova.org. 25772 A 80.94.76.5
; answer
www.opennicproject.org. 77202 A 75.127.96.89
; answer
profi-forex.org. 56414 A 173.192.197.187
; answer
100bretelek.ru. 1867 A 46.182.31.89
; answer
advombat.ru. 61762 A 176.9.109.220
; answer
baltpp.ru. 19635 A 5.178.80.218
; answer
www.baltpp.ru. 19635 CNAME baltpp.ru.
; answer
mail.banklife.ru. 26068 A 212.92.99.38
; answer
demiart.ru. 9009 A 188.127.247.193
; answer
3d.demiart.ru. 6047 A 188.127.248.66
; answer
cards.demiart.ru. 4923 A 188.127.248.66
; answer
corel.demiart.ru. 2710 A 188.127.248.66
; answer
shop.demiart.ru. 7305 A 176.9.35.175
; answer
free.hosting.design.ru. 16161 A 195.91.160.34
; answer
ludwig.design.ru. 16162 CNAME free.hosting.design.ru.
; answer
dn-rostov.ru. 74793 A 216.224.174.69
; answer
www.dn-rostov.ru. 74793 CNAME dn-rostov.ru.
; answer
target.net.finam.ru. 51536 A 5.9.144.204
; answer
www.finmarket.ru. 13511 A 213.134.198.5
; answer
clients1.google.ru. 402 CNAME clients-cctld.l.google.com.
; answer
maps.google.ru. 72248 CNAME maps-cctld.l.google.com.
; answer
news.google.ru. 72249 CNAME news-cctld.l.google.com.
; answer
translate.google.ru. 72248 CNAME translate.google.com.
; answer
gostats.ru. 552224 A 208.43.215.131
; answer
www.ibresource.ru. 8270 A 188.40.51.15
; answer
mail.radar.imgsmail.ru. 55 A 217.69.141.141
; answer
ivd.ru. 75101 A 194.58.41.198
; answer
www.ivd.ru. 11183 CNAME ivd.ru.
; answer
www.lanbilling.ru. 41625 A 62.117.107.106
; answer
weather.agent.mail.ru. 200 A 94.100.185.52
; answer
www.membrana.ru. 78832 CNAME membrana.ru.
; answer
www.murman-trans.ru. 9101 A 74.119.193.127
; answer
narisoval.ru. 957 A 195.91.160.34
; answer
www.narisoval.ru. 956 CNAME narisoval.ru.
; answer
www.propheta.ru. 348661 CNAME ghs.google.com.
; answer
counter.rambler.ru. 159 A 81.19.88.102
159 A 81.19.88.103
159 A 81.19.88.106
159 A 81.19.88.108
159 A 81.19.88.80
159 A 81.19.88.81
159 A 81.19.88.95
159 A 81.19.88.96
; answer
www.rax.ru. 3912 A 88.212.196.111
; answer
www.rbkmoney.ru. 68407 A 46.38.182.209
; answer
reformal.ru. 6404 A 176.34.107.4
; answer
media.reformal.ru. 1599 CNAME reformal.ru.
; answer
www.runnet.ru. 15994 A 194.85.41.195
; answer
www.salon.ru. 76450 A 194.58.41.198
; answer
selcdn.ru. 65737 A 188.93.16.237
65737 A 188.93.16.238
65737 A 188.93.16.236
; answer
storage.selectel.ru. 37509 CNAME 423.selcdn.ru.
; answer
shop-script.ru. 2656 A 174.142.184.182
; answer
www.shop-script.ru. 2656 CNAME shop-script.ru.
; answer
sostav.ru. 1377 A 217.199.212.114
; answer
www.sports.ru. 531602 A 37.209.240.1
; answer
studio38.ru. 9050 A 178.63.32.120
; answer
tema.ru. 8975 A 69.4.231.184
; answer
www.tema.ru. 8975 CNAME tema.ru.
; answer
a.tfile.ru. 8392 A 89.188.109.206
; answer
s.tfile.ru. 13037 A 89.188.115.202
; answer
www.tns-counter.ru. 1095 A 217.73.200.220
1095 A 217.73.200.219
1095 A 217.73.200.221
1095 A 217.73.200.218
1095 A 217.73.200.222
; answer
trunkmobile.ru. 585266 A 93.174.72.3
; answer
www.trunkmobile.ru. 585266 CNAME trunkmobile.ru.
; answer
vninform.ru. 282301 A 92.243.64.186
; answer
www.webfm.ru. 6638 A 213.134.198.79
; answer
xdes.ru. 3973 A 109.70.27.4
; additional
yandex.ru. 71307 NS ns1.yandex.ru.
71307 NS ns2.yandex.ru.
; answer
an.yandex.ru. 197 A 87.250.250.90
197 A 93.158.134.90
197 A 213.180.204.90
; answer
api-maps.yandex.ru. 931 A 93.158.134.106
931 A 213.180.193.106
931 A 213.180.204.106
931 A 77.88.21.106
931 A 87.250.250.106
; answer
fotki.yandex.ru. 407 A 87.250.250.178
407 A 87.250.251.178
407 A 93.158.134.178
407 A 213.180.193.178
407 A 213.180.204.178
407 A 77.88.21.178
; answer
mail.yandex.ru. 1113 A 93.158.134.25
1113 A 213.180.193.25
1113 A 213.180.204.25
1113 A 87.250.250.25
; additional
ns1.yandex.ru. 330508 A 213.180.193.1
; additional
ns2.yandex.ru. 330508 A 93.158.134.1
; answer
yandex.st. 33959 A 178.154.131.216
33959 A 178.154.131.217
33959 A 178.154.131.215
; answer
mail.rambler.su. 2006 A 81.19.67.75
2006 A 81.19.67.74
; answer
alternathistory.org.ua. 68941 A 195.16.90.15
; answer
www.tavernetta.ua. 1715 A 89.184.73.57
; answer
style.uz. 56113 A 195.158.27.58
; answer
www.style.uz. 56113 CNAME style.uz.
;
; Address database dump
;
;
; Unassociated entries
;
; 127.0.0.1 [srtt 127923] [flags 00002000] [ttl 1798]
;
; Bad cache
;
;
; Start view _bind
;
;
; Cache dump of view '_bind'
;
$DATE 20131125121626
;
; Address database dump
;
;
; Unassociated entries
;
;
; Bad cache
;
; Dump complete


Обратите внимание еще раз - не корневые DNS. А именно то, что запрашивают клиенты. То есть наш кэш кэширует - что от него и требуется. Ну и при помощи команды dig можно посмотреть, как это работает.

понедельник, 11 ноября 2013 г.

Cisco: DHCP static bindings

Поиск по ключевым словам, вынесенным в заголовок, дает массу результатов. Каждый суслик-агрономиндус и каждый новоиспеченный CCNA считает своим долгом родить в своем блоге  полуграмотную статью о том, как сделать статический биндинг на Cisco. Более-менее внятная информация есть только на англоязычных форумах Cisco, и то там один-два толковых советчика. Остальные просто создают шум.

Результаты удручающие. Помимо очевидных разночтений, эти писульки либо не отличаются точностью и полнотой, либо представляют собой откровенный копипаст другого такого же неграмотного суслика э-э-э-э..... "специалиста".

Позорно, джентльмены. Беретесь объяснять - так будьте так добры, объясняйте внятно.

Я хочу попытаться исправить кривизну всей этой писанины, из которой полезное пришлось извлекать как золотоискателю.

Часть 1. Делаем статическую привязку одиночных хостов.


Это один из самых простых и наиболее очевидных методов привязки. К сожалению, имеет существенный недостаток -  в каждый пул можно поместить не более одного хоста/устройства, и сопровождать сеть, в которой нужно привязать достаточно много устройств - проблематично. Ну и, кроме того, это сильно раздувает конфигурацию Cisco.

Порядок действий следующий.

1. Надо определить MAC-адрес целевого устройства командой show ip dhcp binding IP-адрес
2. Зачистить существующую привязку командой clear ip dhcp binding IP-адрес
3. Выполнить последовательность команд:

conf


ip dhcp pool host_pool1
host 192.168.100.44 255.255.255.0
client-identifier 0100.1d09.3f28.a3
end


write


Данный адрес не требуется исключать из пула DHCP, поскольку статический биндинг автоматически исключает явно привязанные адреса из пула соответствующей сети. Идентификатор клиента представляет собой не что иное, как его мак-адрес, определенный на шаге 1. IP-адрес привязки можно задать совершенно иной (по существу, любой из пула) и, после обновления адреса на устройстве будет выдан заданный вами адрес (и впредь будет выдаваться, lease time для адресов, заданных подобным образом - Infinite).

Часть 2. Статическая привязка любого количества хостов из файла.


Привязка большего количества хостов из файла немного более сложная процедура. Прежде всего вам понадобится TFTP-сервер на клиенте и навыки загрузки файлов на Cisco. Во-вторых, потребуется некоторое представление о файловой системе самого устройства.

В остальном процедура не сложнее описанной в первой части, важно лишь соблюдение некоторых принципов, которые я приведу чуть позже.

1. Следует идентифицировать все устройства, которые вы желаете статически привязать к определенным адресам способом, описанным в 1 части. Сохраните mac-адреса.
2. Определите, какие именно адреса вы хотите зарезервировать за данными устройствами и тоже запишите их.
3. Проверьте, чтобы данные адреса не были исключены из выдачи DHCP-сервером командами ip dhcp excluded-address
4. Создайте файл static-bindings следующей структуры:

*time* Nov 4 2013 06:29 PM
*version* 2
!IP address Type Hardware address Lease expiration
192.168.100.44 /24 id 0100.1d09.3f28.a3 Infinite
192.168.100.119 /24 id 0100.19d1.3f50.22 Infinite
192.168.100.120 /24 id 0100.e04d.9708.19 Infinite
*end*


Строки, выделенные * - ключевые поля. Время - это время, когда вы создали файл. Версия - номер версии базы привязки. В принципе, можно задавать любое, главное, что при повторных загрузках файла она не уменьшалась. Строка с ! - комментарий, описывающий структуру файла.
Важно - маска сети, в которой находятся адреса, должна быть отделена от адреса пробелом.  И это должна быть именно маска сети, а не хоста (т.е. /32 не задавайте - адреса не будут выдаваться). Формат окончания строк (DOS/UNIX) не принципиален.
5. Загрузите файл на циску по TFTP. Для этого запустите на своем клиенте TFTP-сервер, положите созданный файл привязок в его корень и выполните команду на Cisco:

copy tftp://ip-address-вашего-клиента/static-bindings flash0:/


Файл будет загружен в корневой раздел файловой системы (у меня на 2911 это flash0:/). Чисто технически вы можете предварительно создать там поддиректорию и затолкать файл в нее. Но у меня там не навалено файлов и я положил файл привязки прямо в корень.
6. Сбросьте все ранее созданные биндинги командой clear ip dhcp binding *.
7. Выполните последовательность команд:

conf

ip dhcp pool static-pool
origin file flash0://static-bindings
default-router 192.168.100.1
dns-server 208.67.220.220 208.67.222.222

end

write


В принципе, default-router и dns-сервер можно и не указывать - они будут взяты из данных пула сети, в котором находились данные адреса. Но так более правильно с точки зрения логики.

Собственно говоря, это все. Теперь можно обновить IP-адреса на устройствах и они получат адреса, которые вы им задали в файле. Адреса, включенные в пул статических привязок, автоматически исключаются из выдачи самого динамического пула.

Некоторые тонкости. В файл можно затолкать привязки из нескольких пулов (если они у вас определены). В этом случае команда создания пула должна включать в себя только origin file. Но, опять же, с точки зрения удобства, привязки разных пулов лучше сгруппировать в разные пулы и, соответственно, разные файлы.