Я предполагаю, что вы используете Linux и, кроме того, используете дистрибутив на основе RedHat/CentOS -. Для других Unix и дистрибутивов потребуются аналогичные шаги -, но детали будут другими.
Начните с тестирования (обратите внимание, что это очень похоже на ответ @Peter. Я предполагаю следующее:
Команды следующие:
$ echo 200 isp1 >> /etc/iproute2/rt_tables
$ ip rule add from eno1 table isp1
$ ip route add default via 192.168.1.1 dev eno1 table isp1
Брандмауэр никоим образом не задействован. Ответные пакеты всегда отправлялись с правильного IP-адреса -, но раньше они отправлялись через неправильный интерфейс. Теперь эти пакеты с правильного IP будут отправляться через правильный интерфейс.
Предполагая, что описанное выше сработало,теперь вы можете сделать правила и изменения маршрута постоянными. Это зависит от того, какую версию Unix вы используете. Как и прежде, я предполагаю, что дистрибутив Linux основан на RH/CentOS -.
$ echo "from eno1 table isp1" > /etc/sysconfig/network-scripts/rule-eno1
$ echo "default via 192.168.1.1 dev eno1 table isp1" > /etc/sysconfig/network-scripts/route-eno1
Проверка того, что изменение сети является постоянным:
$ ifdown eno1 ; ifup eno1
Если это не сработало, в более поздних версиях RH/CentOS вам также потребуется один из двух вариантов:
или
Лично я предпочитаю устанавливать пакет правил, так как это более простой и поддерживаемый подход:
$ yum install NetworkManager-dispatcher-routing-rules
Еще одна настоятельная рекомендация — включить фильтрацию arp, поскольку это предотвращает другие проблемы, связанные с конфигурациями с двумя сетями. В RH/CentOS добавьте следующее содержимое в файл /etc/sysctl.conf:
net.ipv4.conf.default.arp_filter=1
net.ipv4.conf.all.arp_filter=1
"Может ли кто-нибудь дать некоторое представление о том, почему это работает так, и помочь с каким-то решением, если таковое имеется?"
Виртуальная машина Azure по умолчанию создана с неработающим DNS:systemd-resolved
требует дополнительной настройки. sudo systemctl status systemd-resolved
быстро подтвердит это. /etc/resolv.conf
указывает на127.0.0.53
-локальный ненастроенный тупиковый преобразователь.
Локальный тупиковый резолвер systemd-resolved
не настроен. У него не было настроено перенаправление, поэтому после нажатия 127.0.0.53
ему больше не у кого было спросить. Фу. Перейдите в конец, чтобы узнать, как настроить его для Ubuntu 18.04.
Если вам небезразлично, как был сделан такой вывод, пожалуйста, прочтите подробный ответ.
TCP [RFC793] is always used for full zone transfers (using AXFR) and is often used for messages whose sizes exceed the DNS protocol's original 512-byte limit.
Источник:https://www.rfc-editor.org/rfc/rfc7766
Это оказалось сложнее, чем я думал. Поэтому я развернул -виртуальную машину Ubuntu 18.04 в Azure, чтобы я мог протестировать ее с точки зрения операционной системы :
.Я начал с проверки того, что ничто не блокирует -DNS-запросы:
sudo iptables -nvx -L
sudo apparmor_status
Для всех цепочек вiptablesполитика по умолчанию была установлена на ПРИНЯТЬ , и хотяApparmorбыл установлен на « принудительное выполнение », не было ничего связанного с DNS. Таким образом, на данный момент на хосте не наблюдается проблем с подключением или разрешениями.
Затем мне нужно было установить,какDNS-запросы проходят через механизмы.
cat /etc/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "systemd-resolve --status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.
nameserver 127.0.0.53
options edns0
search ns3yb2bs2fketavxxx3qaprsna.zx.internal.cloudapp.net
Таким образом, согласно resolv.conf
, система ожидает локального тупикового преобразователя с именем systemd-resolved
. Проверяя состояниеsystemd -разрешенов соответствии с подсказкой, приведенной в тексте выше, мы видимошибку:
sudo systemctl status systemd-resolved
● systemd-resolved.service - Network Name Resolution
Loaded: loaded (/lib/systemd/system/systemd-resolved.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-10-08 12:41:38 UTC; 1h 5min ago
Docs: man:systemd-resolved.service(8)
https://www.freedesktop.org/wiki/Software/systemd/resolved
https://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-managers
https://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients
Main PID: 871 (systemd-resolve)
Status: "Processing requests..."
Tasks: 1 (limit: 441)
CGroup: /system.slice/systemd-resolved.service
└─871 /lib/systemd/systemd-resolved
Oct 08 12:42:14 test systemd-resolved[871]: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level UDP.
<Snipped repeated error entries>
/etc/nsswitch.conf
установить порядок источников, используемых для разрешения DNS-запросов. Что это говорит нам?:
hosts: files dns
DNS-запросы никогда не попадут в локальный systemd-resolved
преобразователь-заглушку, поскольку он не указан в /etc/nsswitch.conf
.
Настроены ли серверы пересылки для systemd-resolved
резолвера-заглушки?!?!? Давайте рассмотрим эту конфигурацию в /etc/systemd/resolved.conf
[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes
Нет:systemd-resolved
не имеет настроенного сервера пересылки, чтобы запрашивать, не найдено ли сопоставление локального имени ip :.
Конечным результатом всего этого является:
/etc/nsswitch.conf отправляет DNS-запросы в DNS, если в/etc/hosts
Запрашиваемый DNS-сервер — 127.0.0.53
, и мы только что увидели, что он не настроен, просмотрев его файл конфигурации /etc/systemd/resolved.conf
. Если здесь не указан сервер пересылки, мы не сможем ничего успешно решить.
Я попытался переопределить преобразователь-заглушку 127.0.0.53
, напрямую указав 168.63.129.16. Это не удалось:
dig aerserv-bc-us-east.bidswitch.net 168.63.129.16
; <<>> DiG 9.11.3-1ubuntu1.9-Ubuntu <<>> aerserv-bc-us-east.bidswitch.net 168.63.129.16
;; global options: +cmd
;; connection timed out; no servers could be reached
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 24224
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;168.63.129.16. IN A
;; Query time: 13 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue Oct 08 13:26:07 UTC 2019
;; MSG SIZE rcvd: 42
Нет :появление ;; SERVER: 127.0.0.53#53(127.0.0.53)
в выходных данных говорит нам о том, что мы не переопределили его и локальный ненастроенный преобразователь-заглушка все еще используется.
Однако использование любой из следующих команд отменяло преобразователь-заглушку 127.0.0.53
по умолчанию и, следовательно, успешно возвращало NOERROR
результаты:
sudo dig aerserv-bc-us-east.bidswitch.net @168.63.129.16
или
dig +trace aerserv-bc-us-east.bidswitch.net @168.63.129.16
Таким образом, любые запросы, основанные на использовании systemd-resolved
преобразователь-заглушки, были обречены, пока он не был настроен.
Мое первоначальное-неправильное-убеждение состояло в том, что TCP/53 блокировался :весь "Truncated 512" был немного красным -сельдь. Резольвер-заглушка не настроен. Я сделал предположение -Я знаю, я знаю, "НИКОГДА НЕ ПРЕДПОЛАГАЮ ;-)-что DNS настроен иначе.
systemd-resolved
:Отредактируйте директиву hosts
в /etc/nsswitch.conf
, как показано ниже, добавив resolve
, чтобы установить systemd-resolved
в качестве первого источника разрешения DNS:
hosts: resolve files dns
Отредактируйте директиву DNS
(как минимум )в /etc/systemd/resolved.conf
, чтобы указать нужный сервер пересылки,что в этом примере будет:
[Resolve]
DNS=168.63.129.16
Перезапуститьsystemd-resolved
:
sudo systemctl restart systemd-resolved
Red Hat почти все делает за вас в отношении настройки systemd-resolved
в качестве резолвера-заглушки,за исключением того, что они не сказали системе использовать его!
Отредактируйте директиву hosts
в /etc/nsswitch.conf
, как показано ниже, добавив resolve
, чтобы установить systemd-resolved
в качестве первого источника разрешения DNS:
hosts: resolve files dns
Затем перезапуститеsystemd-resolved
:
sudo systemctl restart systemd-resolved
Источник:https://www.linkedin.com/pulse/config-rhel8-local-dns-caching-terrence-houlahan/
После настройки systemd-resolved
DNS моей тестовой ВМ вел себя ожидаемым образом. Я думаю, что насчет этого....
Первые странности :при запросе из 2-х разных сетевых подключений (корпоративная сеть и персональный выделенный сервер ), я не могу воспроизвести усечение ответа:
$ dig +ignore aerserv-bc-us-east.bidswitch.net|more
; <<>> DiG 9.10.3-P4-Debian <<>> +ignore aerserv-bc-us-east.bidswitch.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53582
;; flags: qr rd ra; QUERY: 1, ANSWER: 112, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;aerserv-bc-us-east.bidswitch.net. IN A
;; ANSWER SECTION:
aerserv-bc-us-east.bidswitch.net. 119 IN CNAME bidcast-bcserver-gce-sc.bidswitch.
net.
bidcast-bcserver-gce-sc.bidswitch.net. 119 IN CNAME bidcast-bcserver-gce-sc-multif
o.bidswitch.net.
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.198.80
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.28.65
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.21.156
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.55.252
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.212.159
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.70.114
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.143.99
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.207.0.44
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.205.98
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.50.47
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.40.174
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.7.162
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.118.20
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.190.79
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.207.54.244
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.54.230
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.60.30
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.5.194
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.97.53
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.192.26
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.80.22
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.37.223
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.207.38.49
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.207.61.237
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.70.45
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.56.153
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.196.219
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.12.175
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.131.33
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.117.99
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.207.23.245
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.21.191
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.155.238
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.166.124
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.225.231
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.82.120
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.13.126
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.46.230
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.29.109
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.201.160
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.207.52.158
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.239.215
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.247.128
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.180.252
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.160.123
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.73.85
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.3.121
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.166.205
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.163.92
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.241.92
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.150.67
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.49.200
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.148.225
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.165.199
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.190.56
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.177.221
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.130.95
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.207.18.234
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.207.59.8
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.190.86
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.212.197
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.124.105
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.249.122
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.166.163
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.255.194
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.69.212
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.207.51.91
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.97.73
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.119.122
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.214.84
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.75.175
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.207.60.160
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.207.51.125
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.175.225
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.78.105
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.123.219
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.230.248
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.119.133
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.241.216
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.145.178
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.182.35
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.87.230
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.236.194
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.236.230
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.189.137
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.207.52.29
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.139.113
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.225.15
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.230.178
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.123.196
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.154.229
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.175.142
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.207.17.175
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.155.208
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.213.32
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.109.194
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.25.234
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.130.94
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.248.106
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.210.111
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.223.18
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.125.62
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.204.171
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.180.174
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.207.29.9
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.45.75
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.172.232
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.207.31.235
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.137.11
bidcast-bcserver-gce-sc-multifo.bidswitch.net. 59 IN A 35.211.193.229
;; Query time: 833 msec
;; SERVER: 10.132.1.40#53(10.132.1.40)
;; WHEN: Fri Oct 04 10:58:11 CEST 2019
;; MSG SIZE rcvd: 1905
Даже при запросе DNS Google(dig @8.8.8.8
)я не могу воспроизвести поведение, которое вы получили. Итак, я предполагаю, что усечение связано с используемым вами сервером имен (@ 168.63.129.16)
Тот факт, что запрос при переключении на TCP завершился ошибкой под обычным пользователем, а не под root, больше похож на локальную проблему. Вы уверены, что у вас нет правила брандмауэра, запрещающего 53/TCP обычным пользователям?
Можете ли вы провести тест с помощью dig @8.8.8.8
?
Если кто-то просматривает этот поток и у него возникает такая же проблема на виртуальной машине Azure под управлением Linux, ошибка, которую вы видите, скорее всего, связана с правилами FW, которые локально применяются/устанавливаются Azure WAlinuxAgent.
Эти правила ограничивают отправку исходящего TCP-пакета на вышестоящий лазурный DNS-сервер (168.63.129.16 )через порт 53 только пользователю root. (Да это безумие...)
sudo iptables -L -t security
Цепь OUTPUT (политика ACCEPT)
цель | прот | опция | источник | пункт назначения | |
---|---|---|---|---|---|
ПРИНЯТЬ | TCP | -- | где угодно | 168.63.129.16 | UID владельца совпадает с корнем |
БРОСИТЬ | TCP | -- | где угодно | 168.63.129.16 | ctstate INVALID,NEW |