Я хочу поместить несколько сетевых устройств в отдельные сети дома. У меня есть VLAN-коммутатор и настроено несколько VLAN.
Доступ в интернет осуществляется через фритч-бокс, который находится на VLAN 50.
Для маршрутизации между различными VLAN у меня есть ODROID C1+ с ArchLinux. Я настроил его на наличие виртуальных сетей (по одной на каждую VLAN) на eth0.
Я добавил некоторые правила, используя ipchains, чтобы разрешить связь между внутренними VLAN и VLAN 50 для доступа в Интернет.
Первая попытка
Сначала я запустил dnsmasq в качестве сервера DNS и DHCP на ODROID для внутренних VLAN. VLAN 50 управляется frizbox со статическим IP для ODROID.
Если бы я начал просматривать на клиентском компьютере во внутренней VLAN. Каждый ~ 5-й раз, когда нужно было разрешить адрес, требовалось несколько секунд, иногда до тех пор, пока Chrome не отобразил страницу с ошибкой DNS. Перезагрузка показала страницу мгновенно.
Иногда в Steam возникали проблемы с подключением, однако после подключения загрузка происходила быстро. Просмотр магазина имеет те же проблемы, что и просмотр в Chrome.
Не имеет значения, настроен ли dnsmasq для пересылки DNS-запросов на fritzbox или другие DNS-серверы. например, googles '8.8.8.8.
Вторая попытка
Я заменил dnsmasq на dhcpd и настроил его для доставки IP-адреса fritzbox в качестве DNS-сервера. Таким образом, нет DNS-сервера на ODROID больше.
Проблема сохраняется.
Анализ
Я пытался использовать tcpdump, wireshark и внутреннюю трассировку fritzbox, чтобы выяснить, что происходит, но у меня есть только базовые знания с этим.
Однако мне удалось отследить медленный запрос / ответ (lufthansa.de). Я заметил, что было четыре запроса от клиента (192.168.10.33) к ODROID (192.168.10.1), который был перенаправлен на fritzbox (192.168.178.1), но только четвертый вызвал внешний запрос к DNS-серверу ISP (195.50.140.229).
К тому времени прошло уже 3 секунды, и ответ клиенту занял всего 0,02 секунды.
1 0.000000 192.168.10.33 192.168.10.1 DNS 72 Standard query 0xb45b A lufthansa.de 2 0.000426 192.168.178.52 192.168.178.1 DNS 72 Standard query 0xd007 A lufthansa.de 3 0.031337 192.168.10.33 192.168.10.1 DNS 72 Standard query 0xb45b A lufthansa.de 4 0.031678 192.168.178.52 192.168.178.1 DNS 72 Standard query 0xd007 A lufthansa.de 5 1.031410 192.168.10.33 192.168.10.1 DNS 72 Standard query 0xb45b A lufthansa.de 6 1.031746 192.168.178.52 192.168.178.1 DNS 72 Standard query 0xd007 A lufthansa.de 7 3.032089 192.168.10.33 192.168.10.1 DNS 72 Standard query 0xb45b A lufthansa.de 8 3.032430 192.168.178.52 192.168.178.1 DNS 72 Standard query 0xd007 A lufthansa.de 9 3.033214 92.217.249.36 195.50.140.229 DNS 80 Standard query 0x14a6 A lufthansa.de 10 3.049763 195.50.140.229 92.217.249.36 DNS 96 Standard query response 0x14a6 A lufthansa.de A 67.207.75.188 11 3.050508 192.168.178.1 192.168.178.52 DNS 88 Standard query response 0xd007 A lufthansa.de A 67.207.75.188 12 3.050814 192.168.10.1 192.168.10.33 DNS 88 Standard query response 0xb45b A lufthansa.de A 67.207.75.188
Есть идеи, что может быть не так? Некоторые настройки в fritzbox? Или что-нибудь на ODROID?
Спасибо за вашу помощь.
Заметки
- Скорость соединения в порядке. Как только имя будет разрешено, оно будет таким же быстрым, как и ожидалось.
- Проблема исчезнет, если я подключу клиента напрямую к fritzbox.
- Проблема также не показала, когда я использовал только две VLAN, одна из которых управлялась fritzbox как внутренняя сеть, другая - как гостевая сеть. К этому времени нет "внутреннего" роутера.