LINUX.ORG.RU
решено ФорумAdmin

Yota LTE, раздача на несколько компов, Ubuntu 12.04


0

1

Модем Yota поднимает сетевой интерфейс на компе и определяется, как eth1. С пользованием интернет на том компе, куда она подключена проблем нет вобще. Они начинаются, если попробовать выходить в интернет со второго компа, который подключен через свитч. На втором компе шлюзом установлен первый, DNS - «8.8.8.8». Сайты не грузятся в принципе. Выяснил, что гасится всё в момент запроса на DNS-сервер. Каким-то образом етот запрос Yota не пропускает. Причём, только по UDP. Командой «host -T» всё резолвится, как надо. В iptables ситуация такая: *filter :INPUT ACCEPT [4654:1916205] :FORWARD ACCEPT [642:357499] :OUTPUT ACCEPT [5321:2653325] COMMIT *mangle :PREROUTING ACCEPT [9375:4820036] :INPUT ACCEPT [8555:4400019] :FORWARD ACCEPT [655:358399] :OUTPUT ACCEPT [9413:4140131] :POSTROUTING ACCEPT [10055:4497630] [16:960] -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu COMMIT *nat :PREROUTING ACCEPT [431:96586] :INPUT ACCEPT [170:10272] :OUTPUT ACCEPT [1701:115119] :POSTROUTING ACCEPT [1698:114883] [26:1646] -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE COMMIT

Вопросов несколько по данной теме. 1. Куда могут деватся проходящие UDP-запросы к DNS-серверам и как поймать хоть какие-то сообщения? 2. Каким образом резолвит адреса первый комп, если у него в /etc/resolv.conf стоит одиноко «127.0.0.1»? 3. Почему их не резолвит второй комп, если DNS-ом у него будет стоять первый?

1. Куда могут деватся проходящие UDP-запросы к DNS-серверам и как поймать хоть какие-то сообщения?

когда-то давно придумали tcpdump

Каким образом резолвит адреса первый комп, если у него в /etc/resolv.conf стоит одиноко «127.0.0.1»?

через локальный named, который форвардит запросы root серверам и кэшит их.

3. Почему их не резолвит второй комп, если DNS-ом у него будет стоять первый?

Например потому, что ему запрещены запросы к named'у, запущенному на первом.
Или named запущен на 127.0.0.1

zgen ★★★★★
()
Ответ на: комментарий от zgen

когда-то давно придумали tcpdump

В Wireshark ловлю сообщения «Source quench». Только не могу понять - такое сообщение же к ICMP относится?

через локальный named, который форвардит запросы root серверам и кэшит их.

А етот кеш каким-то образом можно очищать?

Например потому, что ему запрещены запросы к named'у, запущенному на первом.
Или named запущен на 127.0.0.1

И как их можно разрешить? Надеюсь, не установкой DNS-сервера, типа bind?

abr_linux
() автор топика
Ответ на: комментарий от abr_linux

В Wireshark ловлю сообщения «Source quench».

Где вы их ловите? Вам нужно поймать на Yota-модеме (eth0) первого компьютера DNS-запрос от второго компа к 8.8.8.8. Если его нет, значит проблемы в настройках первого компьютера, допустим, не включён forwarding пакетов.

2. Запустите на первом от root'а (через sudo) команду «netstat -u -n -l -p | grep 53» увидите какой процесс обрабатывает dns-запросы первого компьютера и какие ip-адреса он слушает

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

mky ★★★★★
()

О, Господи, как всё сложно у Вас....Сможете ответить на несколько вопросов?

1) Форвардинг реализован на машине, в которую воткнута Ёта?

2) Пробовали полностью отключить сетевые экраны на обеих машинах? И что, если пробовали?

3)Свитч исправен изначально? Не «умный» ли он случаем?

4)Признаёт ли Ёта какие-то другие заведомо работоспособные DNS-серверы, акромя 8.8.8.8? Не пробовали? А погуглить?

5)Ежели со второго компа пытаться загрузить сайт в броузер не по имени, а непосредственно по айпишнику? И шо?

shubin
()
Ответ на: комментарий от mky

Где вы их ловите?

Так на первой же машине и ловлю.

2. Запустите на первом от root'а (через sudo) команду «netstat -u -n -l -p | grep 53»

Спасибо за наводку! Узнал, что DNS-сервак у меня dnsmasq. Пакет установлен dnsmasq-base, а при попытке установить dnsmasq, он запустится не может, пишет, что 53 порт занят. Буду разбиратся

anonymous
()
Ответ на: комментарий от shubin

1) Форвардинг реализован на машине, в которую воткнута Ёта?
5)Ежели со второго компа пытаться загрузить сайт в броузер не по имени, а непосредственно по айпишнику? И шо?

На ети вопросы ответ в первом же сообщении. Форвардинг настроен, TCP не глючит в принципе. Всё везде ходит. Проблема именно в UDP-запросе на любой DNS-сервер.

2) Пробовали полностью отключить сетевые экраны на обеих машинах?

Пока не пробовал. Правда, я не уверен, что они у меня включены.

3)Свитч исправен изначально? Не «умный» ли он случаем?

Исключено. Пробовал менять - та же ситуация

4)Признаёт ли Ёта какие-то другие заведомо работоспособные DNS-серверы, акромя 8.8.8.8?

Тоже нет. более того, я даже с первой машины до них достучатся не могу. Во всём буду разбиратся, как будет время. За наводки спасибо ;)

anonymous
()
Ответ на: комментарий от anonymous

Узнал, что DNS-сервак у меня dnsmasq. Пакет установлен dnsmasq-base

-Вот, накой вам это надо, какой именно? Вы его поднимать будете? Для того, чтоб расшарить интернет одного компутера на другой?!

shubin
()
Ответ на: комментарий от anonymous

Если ловите на первой машине на eth0, то уходят в Инет на 8.8.8.8 dns-запросы от второй машины?

Что именно показал netstat? Какие ip-адреса слушает dnsmasq?

Если верить тому, что написано в Инете, то dnsmasq-base это и есть dnsmasq, только запускает его Network-manager и слушает он только 127.0.0.1, поэтому запросы второго компьютера dnsmasq не принимает.

Можно поставить пакет dnsmasq (файлы конфигурации и скрипты запуска при загрузке системы), настраивать его и редактировать настройки Network-manager'а, чтобы он сам не запускал dnsmasq. Либо можно сделать DNAT (REDIRECT) на первом компе на 127.0.0.1 dns-запросов от второго компа.

mky ★★★★★
()
Ответ на: комментарий от mky

Вы его поднимать будете? Для того, чтоб расшарить интернет одного компутера на другой?!

Ну так а что предложите сделать?

Либо можно сделать DNAT

Спасибо тебе, добрейший человек! Я кажется начинаю понимать, почему он мог блокировать запросы. У Йоты своя подсеть. Шлюз 10.0.0.1, мой комп у ней 10.0.0.10. Я и раньше ето знал, но не учёл. Получалось так, что 10.0.0.1 был и DNS-сервером также. Именно на него и слались запросы через dnsmasq (правда всей цепочки я так и не выяснил). Стоило поставить DNAT на 10.0.0.1 на 53 порт по UDP, как заработали все DNS-сервера (8.8.8.8, 8.8.4.4 и пр.).

abr_linux
() автор топика
Ответ на: комментарий от abr_linux

Неглубоко погуглив, создаётся впечатление, что вроде как имеет значение праметр MTU, критическая величина >=1400. Подробно описаны методики расшаривания под Ёту применительно к винде по запросу типа «yota расшарить интернет»

Если расшаривается под винду, обязательно расшаривается и под Linux, надо полагать. Ищите и обрящите. Учитывая популярность вашей любимой ОС и масштабы форумов убунтологов уверен, что ответ на Ваш вопрос уже давно есть.

shubin
()
Ответ на: комментарий от shubin

Неглубоко погуглив, создаётся впечатление, что вроде как имеет значение праметр MTU

С ним я тоже игрался. Ставил значения от 400 до 1400. Ни в какую. Я даже слил настройки iptables с официального роутера, настроенного под Yota. Пробовал прописывать точ-в-точ, пробовал менять логически настройки. По сути, я уже и не хочу комп-шлюз, настроенный конкретно под Yota, а просто нужно было резолвить имена сайтов, проблема крылась в етом. Может, когда-то в будущем, когда будет нечего делать, я досконально изучу, что там и куда должно идти, ну а на данный момент проблема решена :) Спасибо, что помогли идеями ;)

abr_linux
() автор топика
28 октября 2012 г.
Ответ на: комментарий от anonymous

А что ты хочеш, чтобы я объяснил именно?

Я вобще счас поставил себе bind на раздающем компе и пока всё норм работает

abr_linux
() автор топика
Ответ на: комментарий от abr_linux

Стоило поставить DNAT на 10.0.0.1 на 53 порт по UDP, как заработали все DNS-сервера (8.8.8.8, 8.8.4.4 и пр.).

нихрена не распарсил, чо ты наделал. Ты таки юзаешь(л) гугловские или dnsmasq мопеда?

anonymous
()
Ответ на: комментарий от anonymous

Фишка там в том была, что без DNAT ответы от DNS гасились на шлюзе. Ето естественно, потому что шлюз не знал, на какой внутрисетевой комп слать поступивший ответ. Однако, в одной из недавних моих тем, ето правило сыграло злую шутку при настройке bind.

Так, а у тебя счас что-то не работает или ты узнаёш на будущее?

abr_linux
() автор топика
Ответ на: комментарий от abr_linux

у меня отваливаются запросы по таймауту. 3 штуки - и покедова. через секунду - проходит. Запросы через @10.0.0.1 отрабатывают нормально.

anonymous
()
Ответ на: комментарий от anonymous

Через TCP запросы к DNS работают?

Установи Wireshark или tcpdump на шлюзе и посмотри, куда пакеты идут вобще

Правило DNAT ставил или только спрашивал про него?

abr_linux
() автор топика
Ответ на: комментарий от abr_linux

очевидно, что работают. Пакеты идут куда и положено, смотреть даже не нужно. Не приходят ответы. Ощущение, что этот хуепед после некоторого времени после своего включения, начинает забывать куда транслировать udp пакеты, несмотря на dmz. В самом начале его работы, все работает четко без потерь.

правило мне видимо не нужно, т.к не в нем дело.

anonymous
()
Ответ на: комментарий от anonymous

Если пакеты не приходят на шлюз, значит, надо обращатся в Йоту, спрашивать, куда они теряются. Я думаю, ты ничего на своей стороне не сделаеш, если ответов просто нет. Если же пакеты до шлюза доходят, но теряются при пересылке на клиента, тогда проблема в твоей маршрутизации. Тут помогут tcpdump + ip route get + iptables -j LOG

Вобще, если забибёшся со внешними DNS, поставь bind. Ресурсов жрёт не так уж и много, а работает практически из коробки. Разве что «forward» прописать на гугловские или провайдерские DNS.

abr_linux
() автор топика
Ответ на: комментарий от abr_linux

на шлюзе сделал проверку - один ответ потерялся. как говорил - спустя какое-то время после старта свистка(sic!) все хуже и хуже. Мое предположение - дело в свистке, т.к. при передергивании все нормализутся.

А так думаю переткнуть ресолвер на tcp.

anonymous
()
Ответ на: комментарий от anonymous

нужно запилить корректную работу днс на openwrt

лол, на винде давно такое есть?

Откуда винда взялась?

abr_linux
() автор топика
Ответ на: комментарий от anonymous

На том компе, в который свисток воткнут работать всё должно норм. У тебя, я так понимаю, проблемы на клиентах?

abr_linux
() автор топика
Ответ на: комментарий от anonymous

Значит, только к сервис-службе Йоты. Просто у меня работает норм. Мб приноровился просто, типа «протоптал дорожку», а может инфраструктура у них тупая (в чём я мало сомневаюсь)

abr_linux
() автор топика
Ответ на: комментарий от abr_linux

она мне совсем ничем не сможет помочь=) только если выпустят новую прошивку. Что забавно - dnsmasq в мопеде отдает по dhcp dns - 10.0.0.1, то есть себя. Но при этом он ни разу не кеширует запросы. Почему нельзя было форвадить сразу резолверы провайдера - нипонтяно.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.