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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: маршрутизация между двумя сетевухами  (Прочитано 2690 раз)

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

Оффлайн Витька

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

Я видел, что много тем с похожим названием, но у меня немного всё (как я надеюсь) проще. Всё, что мне нужно - это понять, как объяснить пакету, что через eth0 (то есть, в инет) нужно слать все пакеты, кроме тех, которые предназначены для сети, в которую смотрит eth1. Имеется 14.04, две сетевухи. В /etc/network/interfaces я настроил IP, маску, шлюз, DNS. Для каждой из них. И теперь мне кажется, что у неё (оси) два шлюза, и она просто не знает, куда отправлять пакет. Подозреваю, что нужно прописать статический маршрут, который будет направлять все пакеты, для локалки - в локалку, через шлюз локалки. Я могу из локалки подключиться к ней по ssh, пингую оба шлюза и компы локалки, пингую компы, которые используют тот же шлюз для инета, дальше - Network is unreachable или unknown host...

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12141
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: маршрутизация между двумя сетевухами
« Ответ #1 : 08 Июля 2015, 22:32:57 »
Прикреплена же тема https://forum.ubuntu.ru/index.php?topic=107492.0

Ну и в вики статья есть: https://help.ubuntu.ru/wiki/sharing_internet#интернет-шлюз_на_базе_ubuntu_serverinternet_connection_sharing_squid_firestarter
« Последнее редактирование: 08 Июля 2015, 22:45:38 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Витька

  • Автор темы
  • Активист
  • *
  • Сообщений: 592
    • Просмотр профиля
Re: маршрутизация между двумя сетевухами
« Ответ #2 : 08 Июля 2015, 22:59:23 »
Sly_tom_cat,
блин, я, может, тупее, чем кажусь, но у меня точно ситуация не усложнена тем, что важно, чтобы на обеих интерфейсах был настроен gateway?
Не dhcp!

хотя покурю это всё, может и правда пойму что-нибудь)
« Последнее редактирование: 08 Июля 2015, 23:05:54 от Витька »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: маршрутизация между двумя сетевухами
« Ответ #3 : 09 Июля 2015, 03:44:30 »
Добрый вечер!

Я видел, что много тем с похожим названием, но у меня немного всё (как я надеюсь) проще. Всё, что мне нужно - это понять, как объяснить пакету, что через eth0 (то есть, в инет) нужно слать все пакеты, кроме тех, которые предназначены для сети, в которую смотрит eth1.
Дурдом…

Цитировать
Имеется 14.04, две сетевухи. В /etc/network/interfaces я настроил IP, маску, шлюз, DNS.
Замечательно.
Цитировать
Для каждой из них.
Неверно.
Цитировать
И теперь мне кажется, что у неё (оси) два шлюза, и она просто не знает, куда отправлять пакет.
Она то знает. А вот решить не может.

Цитировать
Подозреваю, что нужно прописать статический маршрут, который будет направлять все пакеты, для локалки - в локалку, через шлюз локалки.
Какой нахрен "шлюз локалки"?
Давайте рассказывайте вашу топологию полностью.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн Витька

  • Автор темы
  • Активист
  • *
  • Сообщений: 592
    • Просмотр профиля
Re: маршрутизация между двумя сетевухами
« Ответ #4 : 09 Июля 2015, 07:33:01 »
AnrDaemon,
есть инет, для настройки которого есть IP, маска, шлюз и DNS. И есть локалка, в которой тоже есть эти настройки, DNS - другой сервер, не тот, на котором настраиваю. В оффтопике настройка выглядит как-то так, что route add <адрес сети назначения> mask ... <адрес шлюза> -p

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: маршрутизация между двумя сетевухами
« Ответ #5 : 09 Июля 2015, 08:16:22 »
заметьте, в оффтопике шлюз локалки указан в маршруте, а не в настройках интерфейса.

Оффлайн Витька

  • Автор темы
  • Активист
  • *
  • Сообщений: 592
    • Просмотр профиля
Re: маршрутизация между двумя сетевухами
« Ответ #6 : 09 Июля 2015, 08:24:48 »
fisher74,
Да я вроде головой понимаю, что нужно маршрут прописать, а сделать этого не получается. Мне нужно понять, как мне это сделать, если я понял, как это сделать в оффтопике, значит не всё потеряно.

Правильно ли я понимаю, что нужно сказать оси, что шлюз такой-то для нескольких сетей (10 и 192), а она сама поймёт, что все остальные через другой, или нужно route add default gw 192.168.1.1 eth0, как "для всех, кроме" указать, как в хавту пишут?
« Последнее редактирование: 09 Июля 2015, 08:32:41 от Витька »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: маршрутизация между двумя сетевухами
« Ответ #7 : 09 Июля 2015, 08:55:47 »
Ещё раз. Медленно.
Не надо котят с щенятами бросать в одну корзину. Подрастут - перегрызутся.
Шлюз по умолчанию к локалке не имеет НИКАКОГО ОТНОШЕНИЯ.
Когда у твоей системы уже есть адрес в локальной сети, она без всяких шлюзов знает, куда отправлять пакеты для этой локальной сети.
Маршруты (а шлюз - это таки маршрут) нузны только для отправки пакетов в сети, неизвестные локально.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн botsman

  • Активист
  • *
  • Сообщений: 296
    • Просмотр профиля
Re: маршрутизация между двумя сетевухами
« Ответ #8 : 09 Июля 2015, 09:27:59 »
Покажите свой /etc/network/interfaces и вывод команды route

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: маршрутизация между двумя сетевухами
« Ответ #9 : 09 Июля 2015, 09:29:50 »
Скорее всего, Вы не поняли как сделать, а у Вас просто получилось сделать так, чтобы заработало.
Попробую коротко на пальцах
Любую систему можно представить в качестве помещения в здании. А человека - пакетом.
В этом помещении могут быть несколько дверей (интерфейсов). Какие-то двери могут вести в коридоры (подсети), какие-то в другие помещения (host) (можно принять, например, как ppp-интерфейс).
Коридоров, в которые есть выходы-интерфейсы, может быть несколько. Некоторые могут вести в мир (через другие свои двери и коридоры) или просто в другие коридоры (так же через другие двери и возможно даже ещё какие-то коридоры).
В качестве пакетов, мы уже приняли человека, который может выйти из помещения и двигаться согласно назначения.
Человек, находясь в комнате, может выйти только через двери комнаты. Он может попасть в любую другую комнату, но для этого он должен знать маршрут (разрешение доступа в эти помещения или коридоры не рассматриваем).
По маршруту он должен узнать - является ли дверь назначения в прилегающем коридоре или находится где-то дальше? Если конечна яцель находится в другом коридоре, например лестница, куда нет дверей комнаты, но туда есть дверь в прилегающем коридоре, то нужно знать эту дверь. Она является шлюзом (gateway) в тот коридор-лестницу. Лестница может выводить на улицу (в мир), а может и не выходить - это зависит от строения здания (локальной сети). Лестниц может быть несколько, какие-то могут иметь выход в мир, какие-то - нет. Но человек может ориентироваться только на двери которые находятся в прилегающих к помещению коридоров.
Можно проложить маршрут в одно и тоже помещение (или на выход из здания) разными путями. У одного дистанция (метрика) может быть больше, у другого - меньше. Человек (пакет) для движения, выбирает самую короткую дистанцию. Но первоначально путь он может проложить только до двери в прилегающих коридорах к своему помещению. Что будет дальше - будет решено уже за шлюзовой дверью.
Ещё человек знает, что есть дверь, через которую он может попасть в любое помещение, которое находится вне прилегающих коридоров. Эта дверь - шлюз по умолчанию. А маршрут до неё - маршрут по-умолчанию. Именно он указывается ни настройках интерфейсов в качестве параметра gateway и выводится в таблице маршрутизации как маршрут на сеть 0.0.0.0/0. Если указать этот параметр на нескольких интерфейсах, то система может запутаться через какой шлюз посылать пакет. Все остальные маршруты закладываются в таблицу маршрутизации - план здания на стене. Кстати, на плане эвакуации этажа указан default-gateway (пример не очень, так там может быть указан выход на запасной выход)
Т.е. фактически, на выходе из комнаты, человек-пакет знает только в какой коридор (подсеть) должен выйти и через какую дверь-интерфейс. Так как эта дверь находится в пределах коридора и он не помнит в какой стороне коридора она находится (arp-кеш уже очистил эту запись), то он может выглянуть (послать broadcast-пакет) через эту дверь (интерфейс) в коридор и увидев (получив arp-ответ) ту дверь в которую он должен попасть и дальше уже идти к ней.

Возможно где не очень понятно и не совсем кратко, но как смог.

Оффлайн Витька

  • Автор темы
  • Активист
  • *
  • Сообщений: 592
    • Просмотр профиля
Re: маршрутизация между двумя сетевухами
« Ответ #10 : 09 Июля 2015, 14:16:42 »
botsman,
(Нажмите, чтобы показать/скрыть)

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



Пользователь решил продолжить мысль [time]09 Июль 2015, 15:22:49[/time]:
вы мне подскажите, для какой сетевухи нужно маршрут писать, чтобы система меня поняла?
« Последнее редактирование: 09 Июля 2015, 14:24:04 от Витька »

Оффлайн botsman

  • Активист
  • *
  • Сообщений: 296
    • Просмотр профиля
Re: маршрутизация между двумя сетевухами
« Ответ #11 : 09 Июля 2015, 14:39:04 »
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

iface eth0 static
adress 178.208.159.125
netmask 255.255.255.248
gateway 178.208.159.121
dns-nameservers 87.245.190.122 87.245.145.6
auto eth0

iface eth1 static
adress 172.17.133.250
netmask 255.255.255.0
[color=red]gateway 172.17.133.1[/color]
dns-nameservers 172.17.131.22 172.17.131.24 172.17.17.250
auto eth1
Выделенное красным - лишнее, если же клнечно eth1 - локалка
В описание интерфейса eth1 добавьте код добавления маршрутов на необходимые сети
post-up route add -net АдресСети netmask МаскаСети gw АдресШлюза dev ИмяИнтерфейса
post-down route del -net АдресСети

ДНС-Сервера в таких случаях я предпочитаю указывать внутренней локалки, а уже в настройках самих ДНС-серверов настраиваю сервера пересылки, что бы клиенты правильно разрешали FQDN-имена
« Последнее редактирование: 09 Июля 2015, 14:42:56 от botsman »

Оффлайн Витька

  • Автор темы
  • Активист
  • *
  • Сообщений: 592
    • Просмотр профиля
Re: маршрутизация между двумя сетевухами
« Ответ #12 : 17 Июля 2015, 14:19:46 »
ребят, что-то я с этим файлом навертел по ходу, или я даже не знаю, с чем. Теперь у меня этот комп вообще не понимает, что где-то в мире есть днсы. Файлик стёр, ввёл руками настройки интерфейсов - сеть в принципе появилась (имеется в виду, что раньше с этой тачки даже пинги не шли, а теепрь я даже могу по ssh подрубиться, но только через другую тачку, имеющую один и тот же шлюз в инете, то есть сначала к другой, потом к этой), но даже apt-get update выдаёт, что не знает ничего

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: маршрутизация между двумя сетевухами
« Ответ #13 : 17 Июля 2015, 17:47:16 »
Вас нужно просить показать содержание файла interfaces?

Оффлайн Витька

  • Автор темы
  • Активист
  • *
  • Сообщений: 592
    • Просмотр профиля
Re: маршрутизация между двумя сетевухами
« Ответ #14 : 17 Июля 2015, 20:02:38 »
fisher74,
так говорю же, был вот тот, который под спойлером выше. А после перезагрузки я к нему не мог подключиться никак, удалил файл, прописал руками вот так
(Нажмите, чтобы показать/скрыть)

 

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