Перейти к содержанию

Вопрос

Опубликовано (изменено)

В роутере (fw 5.0.0) прописан DNS от провайдера (обычный) и от Яндекса (DoT), в списке DNS маршрутизации прописан youtube.com.

Проблема: www.youtube.com не смог зароутиться куда надо. После неудачного роутинга несколько раз делал "nslookup www.youtube.com 192.168.1.1", но результата не дало - роутер упорно вёл по провайдеру.

Пробовал включить dns-proxy debug, после чего роутер почти завис секунд через 30, смог выключить эту настройку только через telnet. Кажется после этого роутинг таки заработал, но легче от этого не стало.

Наблюдения:

* провайдерные DNS возвращают 173.194.221.198 от primary и 64.233.162.198 от secondary на nslookup www.youtube.com.

* nslookup на www.youtube.com возвращает "Tracing route to wide-youtube.l.google.com", а на youtube.com возвращает "Tracing route to youtube.com".

* nslookup www.youtube.com 77.88.8.8 (обычный dns от яндекса) возвращает разные адреса на каждый запрос.

Вот как это примерно выглядит:

C:\Users\user>tracert -d -w 50 www.youtube.com

Tracing route to wide-youtube.l.google.com [173.194.220.198]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  192.168.1.1
  2     1 ms     1 ms     1 ms  <isp_gw>
^C
C:\Users\user>nslookup www.youtube.com 192.168.1.1
Server:  UnKnown
Address:  192.168.1.1

Non-authoritative answer:
Name:    wide-youtube.l.google.com
Addresses:  2a00:1450:4010:c1e::c6
          142.251.1.198
Aliases:  www.youtube.com
          youtube-ui.l.google.com


C:\Users\user>tracert -d -w 50 www.youtube.com

Tracing route to wide-youtube.l.google.com [142.251.1.198]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  192.168.1.1
  2     1 ms     1 ms    <1 ms  <isp_gw>
^C
  
C:\Users\user>tracert -d -w 50 youtube.com

Tracing route to youtube.com [173.194.221.91]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  192.168.88.88
  2    91 ms    89 ms     *     <kvn_gw>
  

 

 

Изменено пользователем qmxocynjca
  • Ответы 230
  • Создана
  • Последний ответ

Лучшие авторы в вопросе

Рекомендуемые сообщения

  • 0
Опубликовано
10 часов назад, Racer X сказал:

Да и даже если бы был, то yandeх он ru, а не com.

это не имеет значения, оба домена резолвятся через одни IP-адреса

Спойлер

nslookup yandex.ru
╤хЁтхЁ:  UnKnown
Address:  192.168.1.1

Не заслуживающий доверия ответ:
╚ь :     yandex.ru
Addresses:  2a02:6b8:a::a
          77.88.55.88
          77.88.44.55
          5.255.255.77

nslookup yandex.com
╤хЁтхЁ:  UnKnown
Address:  192.168.1.1

Не заслуживающий доверия ответ:
╚ь :     yandex.com
Addresses:  2a02:6b8:a::a
          77.88.55.88
          77.88.44.55
          5.255.255.77

если эти адреса уже добавились в таблицу маршрутизации, то все ресурсы проксируемые через них будут идти в туннель. после перезагрузки таблица сбрасывается поэтому у вас и начинает трафик идти напрямую. для определения причины дождитесь пока трафик до yandex не начнёт заворачиваться в туннель, сохраните диагностический файл и выполните в нём поиск по 'yandex.ru' и 'yandex.com' чтобы определить к какому домену они привязались в теге <parent>.

  • 0
Опубликовано
5 минут назад, cheburashkaDDNS сказал:

это не имеет значения, оба домена резолвятся через одни IP-адреса

А при чём здесь IP-адреса?

  • 0
Опубликовано

@VVS потому что все отрезолвенные IP-адреса DNS-рутинга сохраняются в системную таблицу маршрутизации до перезагрузки или истечения времени жизни записей <ttl> / <deadline>. и если в моём случае из-за суффикса x.com yandex.com пошёл в туннель, то туда направился и yandex.ru который проксируется через те же адреса. если человек категорично говорит, что для yandex.ru сопоставлений по спискам нет, то возможно на каком-то из этапов запросы могли пойти к yandex.com для которого они присутствуют

  • 0
Опубликовано
25 минут назад, VVS сказал:

И ещё хочется уточнить:
Допустим, что на адресе 123.123.123.123 находятся несколько десятков доменов.
Вы что, утверждаете, что, если один домен из этих десятков настроен через VPN, то и все остальные десятки доменов пойдут через VPN?

да, именно так и есть

Спойлер

tracert temp-mail.org

Трассировка маршрута к temp-mail.org [8.6.112.0]
с максимальным числом прыжков 30:

  1    <1 мс    <1 мс    <1 мс  192.168.1.1
  2    45 ms    45 ms    44 ms  10.8.0.1
^C


tracert pichive.online

Трассировка маршрута к pichive.online [8.6.112.0]
с максимальным числом прыжков 30:

  1    <1 мс    <1 мс    <1 мс  192.168.1.1
  2    45 ms    45 ms    44 ms  10.8.0.1
^C


tracert missav.ws

Трассировка маршрута к missav.ws [8.6.112.0]
с максимальным числом прыжков 30:

  1    <1 мс    <1 мс    <1 мс  192.168.1.1
  2    45 ms    45 ms    45 ms  10.8.0.1
^C


tracert kfmedia.ru

Трассировка маршрута к kfmedia.ru [8.6.112.0]
с максимальным числом прыжков 30:

  1    <1 мс    <1 мс    <1 мс  192.168.1.1
  2    44 ms    44 ms    44 ms  10.8.0.1

только первый домен занесён у меня в список DNS-маршрутизации, остальные просто запарсены как размещённые на том же IP-адресе

отрезолвенный IP-адрес 8.6.112.0 добавляется в таблицу маршрутизации

поэтому, добавив один домен под Anycast CDN, необязательно прописывать остальные

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

  • 0
Опубликовано
7 часов назад, VVS сказал:

Вы что, утверждаете, что, если один домен из этих десятков настроен через VPN, то и все остальные десятки доменов пойдут через VPN?

В этой реализации действительно так и есть. DNS-proxy резольвит IP домена из списка и после этого вносит именно IP в список маршрутизации и дальше маршрутизирует по IP до истечения TTL.

  • 0
Опубликовано
9 часов назад, Racer X сказал:

В этой реализации действительно так и есть. DNS-proxy резольвит IP домена из списка и после этого вносит именно IP в список маршрутизации и дальше маршрутизирует по IP до истечения TTL.

Можно из списка исключить домен, тогда он точно в маршрутизацию не пойдет. Команда exclude.

  • 0
Опубликовано
11 часов назад, Racer X сказал:

В этой реализации действительно так и есть. DNS-proxy резольвит IP домена из списка и после этого вносит именно IP в список маршрутизации и дальше маршрутизирует по IP до истечения TTL.

А что будет, если я в DNS-маршрутизации укажу, что один из этих доменов должен ходить через VPN, а другой - через провайдера?

  • 0
Опубликовано
5 минут назад, VVS сказал:

А что будет, если я в DNS-маршрутизации укажу, что один из этих доменов должен ходить через VPN, а другой - через провайдера?

Зависит от порядка правил в running-config. First match wins.

  • 0
Опубликовано

Потестил 5.1.0.
К сожалению, изменений не видно: роутер бомбит DNS двойными запросами, и далее сам обновляет по TTL.
Это означает, что в роутинге самостоятельный ресолвер, отдельный от mDNS, и живущий своей жизнью.
При таком подходе нормальной работы роутинга по доменам не будет. Нужна интеграция с mDNS, в список маршрутов должен добавляться только тот IP, который mDNS отдал клиенту, и никакой другой. Не нужно ничего на роутере обновлять по TTL, это клиент должен решать. Отдали клиенту IP - добавили в ipset, бессрочно. Это единственный рабочий вариант.

 

  • 0
Опубликовано
В 21.06.2026 в 19:37, cheburashkaDDNS сказал:

случайным образом заметил, что трафик к Yandex стал заворачиваться через туннель

В 5.1.1 всё также. Пользоваться практически ДНС-роутингом практически не возможно.

  • 0
Опубликовано (изменено)

Не, определять, какой домен должен идти по маршруту, а какой нет, путем текстового сравнения суффикса (x.com и yandex.com) - это, ребята, просто жопа. Да детсадовец может поправить ваш текстовый парсер доменов, чтобы он именно на домены строку разбивал, а не тупо по окончанию строки определял: подходит/не подходит. Вообще-то, ваша реализация - это какой-то позор.:50_open_mouth:

Изменено пользователем mooq
  • 0
Опубликовано
15 минут назад, mooq сказал:

Не, определять, какой домен должен идти по маршруту, а какой нет, путем текстового сравнения суффикса (x.com и yandex.com) - это, ребята, просто жопа. Да детсадовец может поправить ваш текстовый парсер доменов, чтобы он именно на домены строку разбивал, а не тупо по окончанию строки определял: подходит/не подходит. Вообще-то, ваша реализация - это какой-то позор.:50_open_mouth:

А с чего Вы решили, что они определяют по окончанию строки текстовым сравнением, по собственному опыту что-ли?

  • 0
Опубликовано
25 минут назад, VVS сказал:

А с чего Вы решили, что они определяют по окончанию строки текстовым сравнением, по собственному опыту что-ли?

Как это объяснить? :D Один домен в списке (x com), а залетают все по суффиксу.

Спойлер
# show object-group fqdn domain-list0

{
	"group": [
		{
			"group-name": "domain-list0",
			"enabled": true,
			"ipv4-addresses-count": 8,
			"ipv6-addresses-count": 0,
			"fqdn-count": 5,
			"entry": [
				{
					"fqdn": "huggerx.com",
					"type": "runtime",
					"deadline4": 1834,
					"deadline6": 36,
					"fail-counter4": 0,
					"fail-counter6": 1,
					"last-external": 85,
					"last-list-changed": 85,
					"parent": "x.com",
					"ipv4": [
						{
							"address": "192.64.119.9",
							"ttl": 1800,
							"last-updated": 85
						}
					],
					"ipv6": []
				},
				{
					"fqdn": "x.com",
					"type": "config",
					"deadline4": 56,
					"deadline6": 120,
					"fail-counter4": 0,
					"fail-counter6": 1,
					"last-external": 7,
					"last-list-changed": 7,
					"ipv4": [
						{
							"address": "172.66.0.227",
							"ttl": 30,
							"last-updated": 7
						}
					],
					"ipv6": []
				},
				{
					"fqdn": "testx.com",
					"type": "runtime",
					"deadline4": 589,
					"deadline6": 72,
					"fail-counter4": 0,
					"fail-counter6": 1,
					"last-external": 48,
					"last-list-changed": 48,
					"parent": "x.com",
					"ipv4": [
						{
							"address": "3.33.130.190",
							"ttl": 600,
							"last-updated": 48
						},
						{
							"address": "15.197.148.33",
							"ttl": 600,
							"last-updated": 48
						}
					],
					"ipv6": []
				},
				{
					"fqdn": "yandex.com",
					"type": "runtime",
					"deadline4": 83,
					"deadline6": 114,
					"fail-counter4": 0,
					"fail-counter6": 4,
					"last-external": 391,
					"last-list-changed": 391,
					"parent": "x.com",
					"ipv4": [
						{
							"address": "5.255.255.77",
							"ttl": 444,
							"last-updated": 391
						},
						{
							"address": "77.88.44.55",
							"ttl": 444,
							"last-updated": 391
						},
						{
							"address": "77.88.55.88",
							"ttl": 444,
							"last-updated": 391
						}
					],
					"ipv6": []
				},
				{
					"fqdn": "getupx.com",
					"type": "runtime",
					"deadline4": 2911,
					"deadline6": 116,
					"fail-counter4": 0,
					"fail-counter6": 4,
					"last-external": 399,
					"last-list-changed": 399,
					"parent": "x.com",
					"ipv4": [
						{
							"address": "23.227.38.66",
							"ttl": 3303,
							"last-updated": 399
						}
					],
					"ipv6": []
				}
			],
			"excluded-ipv4": [],
			"excluded-ipv6": [],
			"excluded-fqdns": [],
			"fqdn-count-runtime": 4
		}
	],
	"prompt": "(config)"
}

Домен "u", а залетают "ru".

Спойлер
{
	"group": [
		{
			"group-name": "domain-list0",
			"enabled": true,
			"ipv4-addresses-count": 7,
			"ipv6-addresses-count": 0,
			"fqdn-count": 5,
			"entry": [
				{
					"fqdn": "ya.ru",
					"type": "runtime",
					"deadline4": 49,
					"deadline6": 109,
					"fail-counter4": 0,
					"fail-counter6": 1,
					"last-external": 10,
					"last-list-changed": 10,
					"parent": "u",
					"ipv4": [
						{
							"address": "5.255.255.242",
							"ttl": 30,
							"last-updated": 10
						},
						{
							"address": "77.88.44.242",
							"ttl": 30,
							"last-updated": 10
						},
						{
							"address": "77.88.55.242",
							"ttl": 30,
							"last-updated": 10
						}
					],
					"ipv6": []
				},
				{
					"fqdn": "ozon.ru",
					"type": "runtime",
					"deadline4": 50,
					"deadline6": 116,
					"fail-counter4": 0,
					"fail-counter6": 1,
					"last-external": 13,
					"last-list-changed": 13,
					"parent": "u",
					"ipv4": [
						{
							"address": "185.73.193.68",
							"ttl": 30,
							"last-updated": 13
						},
						{
							"address": "185.73.194.82",
							"ttl": 30,
							"last-updated": 13
						}
					],
					"ipv6": []
				},
				{
					"fqdn": "rbc.ru",
					"type": "runtime",
					"deadline4": 58,
					"deadline6": 123,
					"fail-counter4": 0,
					"fail-counter6": 1,
					"last-external": 6,
					"last-list-changed": 6,
					"parent": "u",
					"ipv4": [
						{
							"address": "178.248.238.247",
							"ttl": 30,
							"last-updated": 6
						}
					],
					"ipv6": []
				},
				{
					"fqdn": "forum.keenetic.ru",
					"type": "runtime",
					"deadline4": 299,
					"deadline6": 121,
					"fail-counter4": 0,
					"fail-counter6": 1,
					"last-external": 6,
					"last-list-changed": 6,
					"parent": "u",
					"ipv4": [
						{
							"address": "176.114.90.129",
							"ttl": 283,
							"last-updated": 6
						}
					],
					"ipv6": []
				},
				{
					"fqdn": "u",
					"type": "config",
					"deadline4": 2147483,
					"deadline6": 2147483,
					"fail-counter4": 0,
					"fail-counter6": 0,
					"last-external": 20,
					"last-list-changed": 20,
					"ipv4": [],
					"ipv6": []
				}
			],
			"excluded-ipv4": [],
			"excluded-ipv6": [],
			"excluded-fqdns": [],
			"fqdn-count-runtime": 4
		}
	],
	"prompt": "(config)"
}

 

  • 0
Опубликовано
10 минут назад, dchusovitin сказал:

Как это объяснить? :D Один домен в списке (x com), а залетают все по суффиксу.

Скорее всего неправильно распарсили - регулярное выражение, которое охватывало бы и *.x.com и x.com, но не включало бы *x.com достаточно неочевидно.

Но я не буду столь же безапелляционен, как @mooq, которому я отвечал, так что однозначно утверждать, что дело именно в этом я не буду.

  • 0
Опубликовано
2 часа назад, VVS сказал:

Скорее всего неправильно распарсили - регулярное выражение, которое охватывало бы и *.x.com и x.com, но не включало бы *x.com достаточно неочевидно.

Ну какие регулярки, есть способы в разы проще и в десятки раз быстрее.
Сломали - бывает, можно было бы уже починить. Фича проклята, желающих ей заняться мало, заставляют провинившихся :D
 

  • 0
Опубликовано

@VVS с чем ты опять не согласен? Тебе ответили на вопрос, согласно официальной документации на функцию о которой ты спросил, ты крестики свои ставишь просто потому что настолько не способен прочесть доку или потому не способен ее понять?

 

  • 0
Опубликовано
1 час назад, dchusovitin сказал:

Ну какие регулярки, есть способы в разы проще и в десятки раз быстрее.

Может быть, но очень сомневаюсь, что просто сравнением текстовых строк. :)

  • 0
Опубликовано
11 часов назад, VVS сказал:

А с чего Вы решили, что они определяют по окончанию строки текстовым сравнением, по собственному опыту что-ли?

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

  • 0
Опубликовано

Не знаю, совпадение или нет, но после обновления до 5.1.1 опять всплыла старая болячка: часть доменов полезла в обход заданного интерфейса 🤦‍♂️

Помогает принудительный сброс динамической таблицы адресов путём перезагрузки интерфейса при включённой опции «Добавлять автоматически»:

interface Wireguard0 down
interface Wireguard0 up

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   1 пользователь онлайн

×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.