Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Вторая сетевая не пингуется по подключённому к ней шнурку  (Прочитано 8679 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ais77

  • Автор темы
  • Участник
  • *
  • Сообщений: 186
  • linux blondy
    • Просмотр профиля
Собственно, сабж - я в полном недоумении о причинах происходящего,
2 дня уговоров и так, и эдак ни к чему не привели...  :-\

Ubuntu Server 9.10, установлен с нуля. В системе 2 интерфейса:
eth1 (192.168.1.2) 100МБ ----------> смотрит в АДСЛ роутер (везде IP-шники статические, никаких DHCP)
eth0 (192.168.1.3) 1ГБ ----------> должен смотреть в локальную сеть (из одного девайса - Playstation 3)
Оба интерфейса поднимаются/опускаются без ошибок.

Подключаю шнуроком ХР-ноут к гигабитной карточке eth0, выставляю на ноуте, скажем, 192.168.1.16, сеть устанавливается, пытаюсь пинговать eth0 - таймауты  :(
Шнурки проверены: при подключении ноута ими же к роутеру - все адреса сети пингуются без проблем.

Причём (для меня это оказалось новостью) - кабели обоих типов: и обычный патчкорд, и нуль-хаб (то, что раньше называлось twisted pair) работают оба. :o   Видимо, современные сетевухи научились определять тип кабеля и сами внутри себя соответственно коммутируют линии.
21-й век на дворе, а я и не заметил...

Но к главному вопросу - где рыть? Как может не пинговаться интерфейс с линии, к нему подключённой?


~$cat /etc/network/interfaces

(Нажмите, чтобы показать/скрыть)

~$ ifconfig -a
(Нажмите, чтобы показать/скрыть)

на всякий случай (хотя, это уже следующий этап) - ещё
~$ route -v
(Нажмите, чтобы показать/скрыть)

Вывел с помощью tcpdump реакцию eth0 на пинг с ноута (192.168.1.16). Может, это что-то объяснит людям знающим?
(Нажмите, чтобы показать/скрыть)

Помогите советом - где могут быть грабли?

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
Обе сетевые карты сервера в одной подсети. По таблице маршрутов eth1 на сервере стоит раньше eth0. Всё предназначенное для 192.168.1.0/24 должно уходить только в eth1 согласно таблице маршрутов. Всё для 192.168.1.16 шлётся через eth1 в ДСЛ шлюз где и пропадает. Интереснее посмотерть на вывод "route -n -v", без непонятных доменных имён, сразу с IP адресами.

Сделайте подсеть позади eth0, например, 10.22.33.0/24 или 192.168.2.0/24 . Это будет проще и правильно.

Комментарий: рing использует ICMP протокол, а в выводе tcpdump этого нет, там только UDP.
Можно использовать tcpdump -nn -i eth0 | grep ICMP | grep 192.168.1.3 для отлова пингов.

P.S. Да, современные коммутаторы и сетевые карты умеют работать как с "перевёрнутыми" кросоверами-кабелями и так и с "прямыми".
« Последнее редактирование: 22 Ноября 2009, 18:07:50 от Somewhere there out there »
StarDict и Mueller помогут против английского мануала.

Оффлайн El Scorpio

  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
Цитировать
eth1 (192.168.1.2) 100МБ ----------> смотрит в АДСЛ роутер (везде IP-шники статические, никаких DHCP)
eth0 (192.168.1.3) 1ГБ ----------> должен смотреть в локальную сеть (из одного девайса - Playstation 3)
Две сетевые карты в одной подсети нормально работать не будут.
Можно назначить "локальной сети"  другой диапазон, например 192.168.2.x
А что за марка ADSL-модема?
Если он многопортовый, проще будет воткнуть оба устройства в него, поднять NAT и не заморачиваться настройкой маршрутизации на компьютере.

Оффлайн ais77

  • Автор темы
  • Участник
  • *
  • Сообщений: 186
  • linux blondy
    • Просмотр профиля
Сделайте подсеть позади eth0, например, 10.22.33.0/24 или 192.168.2.0/24 . Это будет проще и правильно.
Brilliant! :D Вы абсолютно правы, мой респект и уважение! Создал вторую подсеть - пинги забегали как родные.  :)

Сейчас роутинг выглядит как
(Нажмите, чтобы показать/скрыть)
По моему разумению все пакеты, адресуемые вовне (DNS и интернет-запросы) должны бы отправляться по дефолтному роуту на модем через eth1, ведь так?
Но с eth0 пинг вовне не проходит, DNS не ресолвится... :- I  P-форвардинг в sysctl.conf включён. Чего я ещё не понимаю?

Ставить ipmasq и dnsmasq (как советуют в теме о шлюзе интернета) мне, почему-то, кажется костыльным решением для подсети из одной машины, хочется соблюсти чистоту жанра, но главное - понять... Благодарю Вас заранее.

Пользователь решил продолжить мысль 23 Ноября 2009, 12:14:11:
Если он многопортовый, проще будет воткнуть оба устройства в него, поднять NAT и не заморачиваться настройкой маршрутизации на компьютере.
Так и работало. Потребность в отдельном гигабитном интерфейсе для Playstation вызвана тем, что для передачи с сервера HD-видео (1080р) 100Мб-сети часто не хватает - картинка замирает + на этом же канале ещё Transmission работает, ssh, ftp... В общем, медиасерверу - медиасерверный коннект  ;)
« Последнее редактирование: 23 Ноября 2009, 14:14:47 от ais77 »

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
Ставить ipmasq и dnsmasq (как советуют в теме о шлюзе интернета) мне, почему-то, кажется костыльным решением для подсети из одной машины

Да, нет нужды ставить ipmasq и dnsmasq. Эти пакеты маскируют внутренние серые адреса от внешнего мира. Это уже делается на модеме-шлюзе в интернет и того достаточно. Тут же - только маршрутизация. В своей локалке можно городить сколь угодно много шлюзов и не делать маскарадинг, не делать трансляцию адресов, независимо от серости или белости адресов.

Можно проверить, что
cat /proc/sys/net/ipv4/ip_forwardдействительно даёт единицу, т.е. срабатывает настройка в sysctl.conf

На каждом комп-е позади eth0 нужно прописать шлюзом по умолчанию 192.168.2.1 Т.к. именно 192.168.2.1 знает где находится модем и остальной мир, на нём прописаны маршруты к остальному миру.

У всех компов для начала прописать адреса DNS даваемые провайдером, потом можно будет переписать на 192.168.1.1, когда заработает. Обычно дают пару адресов, скорее всего адреса можно посмотреть в настройках модема и, конечно, на сайте провайдера.

Посмотреть на Ubuntu Server sudo iptables -S Должен быть разрешён весь трафик через цепь FORWARD.

При этом, параллельно можно tcpdump'ом или графической Wireshark посмотреть на всех компьютерах по очереди как идут пакеты с пингами, т.е. пакеты в описании которых стоит ICMP. Иногда может дать подсказку, иногда нет.

Но с eth0 пинг вовне не проходит, DNS не ресолвится

Что именно пингуется, доменное имя или IP адрес?

Когда с DNS проблемы, можно на сервере, или ещё где, пингануть адрес www.ubuntu.com, запомнить ip адрес и по этому ip адресу с "внутренней" машины зайти на сайт через Firefox. Или пингануть сам IP адрес. Если заработает, значит - да, ДНС шалит. Иначе - есть что ещё.
StarDict и Mueller помогут против английского мануала.

Оффлайн ais77

  • Автор темы
  • Участник
  • *
  • Сообщений: 186
  • linux blondy
    • Просмотр профиля
действительно даёт единицу, т.е. срабатывает настройка в sysctl.conf
...
Посмотреть на Ubuntu Server sudo iptables -S Должен быть разрешён весь трафик через цепь FORWARD.
...
Что именно пингуется, доменное имя или IP адрес?
1) точно так
2) таблица чистая, у меня (пока был usb-модем) запускался скрипт, настраивавший вайерволл на iptables, сейчас я за роутером и надобности в нём, как бы, нет
# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
3) в том и дело - что ни по адресу, ни (естественно) по имени.. :(
Что-то с роутингом, как я понимаю... Но что?

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
1) Тогда из локалки пингуется ли eth1 с адресом 192.168.1.2, наружний адрес сервера?
2) Если пингуется наружний интерфейс шлюза, то вместо модема поставить компьютер с модемным адресом 192.168.1.1 и пинговать из локалки "192.168.1.1".

Если при подстановке компьютера этот 192.168.1.1 начнёт пинговаться, то:
(Нажмите, чтобы показать/скрыть)

В локалке нет опечаток в настройках на компах?
« Последнее редактирование: 23 Ноября 2009, 21:58:14 от Somewhere there out there »
StarDict и Mueller помогут против английского мануала.

Гарри Кашпировский

  • Гость
Вы не забывайте еще о том, что и модем ADSL-роутер должен знать о сети 192.168.2.0/24
« Последнее редактирование: 23 Ноября 2009, 23:18:41 от Гарри Кашпировский »

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
Точно!

Модем в сети 192.168.1.0/24 ничего не знает про сеть 192.168.2.0/24 Вот через сервер приходят модему пакеты от 192.168.2.16 . Модем или сам отвечает или натит-маскарадит эти пакеты, формирует какие-то ответные пакеты, но, а куда модему отправлять ответы для адреса 192.168.2.16, позади какого интерфейса искать адрес 192.168.2.16? В таблице маршрутов модема нет 192.168.2.0/24, но зато есть шлюз по умолчанию, шлюз куда слать всё что не подошло под остальные правила, и это шлюз провайдера, ну модем и шлёт эти ответы в другую сторону, провайдеру.

Модем-то тоже должен иметь маршрут куда отправлять пакеты адресованные любому из 192.168.2.0/24. Для обычного Линукс компьютера на месте модема маршрут задавался бы так
route add -net 192.168.2.0/24 gw 192.168.1.2
У модема может быть есть веб интерфейс для описания маршрутов, и там надо указать, что для сети 192.168.2.0/24 шлюз имеет адрес 192.168.1.2

Или иначе - правда ipmasq и dnsmasq... Вся локалка будет для модема выступать как один единственный 192.168.2.1 и вопрос маршрутов на модеме не возникнет.
StarDict и Mueller помогут против английского мануала.

Гарри Кашпировский

  • Гость
> Да, нет нужды ставить ipmasq и dnsmasq
> Или иначе - правда ipmasq и dnsmasq
Somewhere there out there, Вы уж определитесь ставить или нет :)
Честно говоря я в ipmasq не вижу смысла, фактически, те же функции выполняет iptables (цепочка NAT)
> На каждом комп-е позади eth0 нужно прописать шлюзом по умолчанию 192.168.2.1 Т.к. именно 192.168.2.1 знает где находится модем и остальной мир, на нём прописаны маршруты к остальному миру.
А вот этого не нужно делать. См свой пример с модемом.
« Последнее редактирование: 23 Ноября 2009, 23:29:53 от Гарри Кашпировский »

Оффлайн ais77

  • Автор темы
  • Участник
  • *
  • Сообщений: 186
  • linux blondy
    • Просмотр профиля
Вы не забывайте еще о том, что и модем ADSL-роутер должен знать о сети 192.168.2.0/24

Somewhere there out there, Гарри Кашпировский, Вы абсолютно правы.
Настроил правило на АДСЛ-роутере (есть там такое меню) - отправлять все пакеты, предназначенные для подсети 192.168.2.0/24, на интерфейс eth1 (192.168.1.2) - и всё заработало.  :D
Модем, действительно, не понимал, куда ответ-то отправлять на запрос, пришедший из такой сети - для него-то этой сети не существовало...
Вот и слал их, бедный, на роутинг по-умолчанию - в инет  :2funny:
Спасибо Вам ОГРОМНОЕ!

PS:
Цитата: Гарри Кашпировский
А вот этого не нужно делать. См свой пример с модемом.
Именно так я и сделал: gateway 192.168.2.1. Но DNS, при этом - 192.168.1.1. Работает!)))
« Последнее редактирование: 24 Ноября 2009, 01:30:42 от ais77 »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28487
    • Просмотр профиля
Я бы на вашем месте либо воткнул ADSL роутер в хаб и запустил интернет через него напрямую, либо сделал бридж в сервере из обоих карт.
Но конечно только в том случае, если не стоит задачи как-то контролировать использование интернет-канала.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн ais77

  • Автор темы
  • Участник
  • *
  • Сообщений: 186
  • linux blondy
    • Просмотр профиля
Мне нужен гигабитный коннект между сервером PS3, как я выше писал - вот почему появилась вторая карточка. А гигабитный свитч - это дополнительные расходы...

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

Но, если я правильно понимаю - бридж смешивает пакеты с обоих интерфейсов в одну кучу, а они по-разному нагружены: eth0 - это выделенный гигабит для HD-видеотрафика, тогда как eth1 - 100Мь и относительно слабо нагруженный, только инетом и локальным ssh, зачем и на нём ещё гигабитные пакеты, не будут они мешать?
« Последнее редактирование: 24 Ноября 2009, 14:17:55 от ais77 »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28487
    • Просмотр профиля
Не могу точно сказать, но думаю, что не должно ничего мешаться.
Мост - штука логическая, объединяет несколько физических интерфейсов одним логическим адресом.
Хотя... вообще, стОит на бумажке изобразить сеть и подумать с карандашом в руке, как и что должно бегать.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн El Scorpio

  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
Мне нужен гигабитный коннект между сервером PS3, как я выше писал - вот почему появилась вторая карточка. А гигабитный свитч - это дополнительные расходы...
Уважаемый, "вторая сетевая карточка" из воздуха появилась? :) Гигабитный свитч стоил бы ненамного дороже.
Опять же, личное время, затрачиваемое на настройку маршрутизации, тоже в деньги перевести можно

 

Страница сгенерирована за 0.037 секунд. Запросов: 23.