Перенаправить archive.ubuntu.com на зеркало на уровне DNS

Я полагаюсь много образов Docker, и нецелесообразно изменять /etc/apt/source.list для каждого из них, поэтому я хочу перенаправить archive.ubuntu.com на зеркало на уровне DNS (у меня собственный dnsmasq / unbound в сети).

Моя установка представляет собой Pi-Hole, работающий на порту 53 (pihole-FTL 4.0, с базовым dnsmasq), который указывает на несвязанный, работающий на порту 5353:

server=127.0.0.1#5353

Для достижения redirect, я добавил эти строки в несвязанную конфигурацию:

local-zone: "archive.ubuntu.com." typetransparent
local-data: "archive.ubuntu.com. CNAME ubuntu.mirror.su.se."

И, похоже, все работает нормально (без привязки к порту 5353):

root@raspberrypi:~# dig +short -p 5353 @127.0.0.1 archive.ubuntu.com
ubuntu.mirror.su.se.
root@raspberrypi:~# dig +short -p 5353 @127.0.0.1 ubuntu.mirror.su.se
193.11.30.223
root@raspberrypi:~# 

Странно то, что dnsmasq теряет себя с этим:

root@raspberrypi:~# dig +short -p 53 @127.0.0.1 archive.ubuntu.com
ubuntu.mirror.su.se.
root@raspberrypi:~# dig +short -p 53 @127.0.0.1 ubuntu.mirror.su.se
root@raspberrypi:~# 

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

Сначала я подумал, что это может быть проверка DNSSEC, но тогда ошибка должна была быть в архиве .ubuntu.com , а не зеркало.

Есть идеи, как это отладить?

0
задан 28 February 2019 в 10:11
1 ответ

Похоже, несвязанный сам может это сделать:

local-zone: "archive.ubuntu.com" redirect
local-data: "archive.ubuntu.com. CNAME se.archive.ubuntu.com."

Это дает:

$ docker run --rm -it test bash
root@3f1c7eff6ebc:/# dig archive.ubuntu.com

; <<>> DiG 9.11.3-1ubuntu1.5-Ubuntu <<>> archive.ubuntu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14903
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;archive.ubuntu.com.        IN  A

;; ANSWER SECTION:
archive.ubuntu.com. 3265    IN  CNAME   se.archive.ubuntu.com.
se.archive.ubuntu.com.  3265    IN  CNAME   ftp.acc.umu.se.
ftp.acc.umu.se.     3265    IN  A   194.71.11.165
ftp.acc.umu.se.     3265    IN  A   194.71.11.173

;; Query time: 3 msec
;; SERVER: 192.168.1.2#53(192.168.1.2)
;; WHEN: Thu Feb 28 19:31:27 UTC 2019
;; MSG SIZE  rcvd: 142
0
ответ дан 5 December 2019 в 03:55

Теги

Похожие вопросы