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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Работа с двумя сетевыми интерфейсами.  (Прочитано 1150 раз)

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

Оффлайн TMW1000F

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
  • Ubuntu 15.04
    • Просмотр профиля
Доброго времени суток.

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

Вобщем суть проблемы такая:
У меня есть 2 интерфейса: eth0 который смотрит в локалку через роутер (IP роутеру присваивается локалкой автоматически по маку, IP постоянный и не меняется, а сам роутер уже выдаёт IP моему компу) и usb0 - это мобилка, в которую воткнута симка с безлимитом. Изначально задача была в том, чтобы прописать маршруты, но потом, поразмыслив, я понял, что мне, вобщем-то надо чтобы в локалку ходили только 2 приложения: deluge (торрент-клиент) постоянно должен висеть только в локалке, а chromium - тогда когда мне это нужно, но в данном случае я согласен на установку второго браузера (например лисы) для походов в сеть.
Поэтому вопрос: можно ли заставить конкретные приложения использовать только интерфейс eth0 (может что-то прописать в параметрах запуска...), а все остальные пусть идут поумолчанию, в данном случае на usb0?

Спасибо за понимание. =)
« Последнее редактирование: 16 Марта 2014, 13:17:03 от TMW1000F »
Core™i7 860 2.80GHz
NVIDIA GeForce GTX 480
6Gb RAM

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Работа с двумя сетевыми интерфейсами.
« Ответ #1 : 16 Марта 2014, 16:06:25 »
Можно. Но не с помощью параметров запуска приложений, а, например, средствами iptables+iproute2.
Я считаю, что это ректальный способ решения проблемы, не только по длине пути, но и по сложности. Для такой настройки нужно чётко представлять работу сети, в том числе и маршрутизацию. А уж если Вы в её простейшем случае не разобрались, то что уж говорить по извращённым (для данного случая) методам...

Оффлайн TMW1000F

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
  • Ubuntu 15.04
    • Просмотр профиля
Re: Работа с двумя сетевыми интерфейсами.
« Ответ #2 : 16 Марта 2014, 17:35:43 »
Я прекрасно понимаю, как это делается и работает, я знаю, что такое маршрутизация и для чего она нужна, но есть 2 проблемы связаные со специфическими вещами - прописаные маршруты не сохраняются после перезагрузки и usb0 у меня имеет динамический адрес, т.е. прописать его default gw не получится. Однако, usb0 всегда получает IP в диапазоне 192.168.42.*... Как прописать usb0 шлюзом по умолчанию, если у него адрес динамический? Нигде этого не встречал. Т.е. при каждом новом подключении мобилки route -n показывает всегда разный Gateway.
Есть мысль, что надо бы подредактировать файл /etc/network/interfaces, но ЧТО писать в default gw у интерфейса usb0 чтобы он был поумолчанию?

К слову о простом и сложном: иногда то, что одному кажется сложным, для другого может оказаться проще и наоборот.
Опять же, о простых вещах: есть вещи, которые вы считаете элементарными и простейшими, так как пользуетесь ими постоянно и к ним привыкли, вы о них даже не говорите, потому что считаете, что их знает каждый... А я, например, 12 лет под форточками просидел, и там консоль раз в год по несчастью открывают...
« Последнее редактирование: 16 Марта 2014, 18:24:40 от TMW1000F »
Core™i7 860 2.80GHz
NVIDIA GeForce GTX 480
6Gb RAM

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Работа с двумя сетевыми интерфейсами.
« Ответ #3 : 16 Марта 2014, 18:15:01 »
Значит нужно решать проблемы поэтапно, а не начинать с ... хвоста.
прописаные маршруты не сохраняются после перезагрузки
"Вы просто не умеете их готовить" ©

usb0 у меня имеет динамический адрес, т.е. прописать его default gw не получится.
Если вдрес динамический, значит он получается через DHCP, а значит и дефолтный маршрут должен выдаваться. Если не так, значит Вы что-то не так делаете.

Есть мысль, что надо бы подредактировать файл /etc/network/interfaces, но ЧТО писать в default gw у интерфейса usb0 чтобы он был поумолчанию?
Рассуждать о возможных вариантах можно вечно. Возможно и у меня бы появились какие-либо мысли, но...
Так как нет никакой конкретики по Вашим настройкам, то считаю что решение с каждым постом не приближается, а наоборот растворяется в "многобукв"

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

Оффлайн TMW1000F

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
  • Ubuntu 15.04
    • Просмотр профиля
Re: Работа с двумя сетевыми интерфейсами.
« Ответ #4 : 16 Марта 2014, 18:26:23 »
Забыл добавить в сообщении, что при каждом новом подключении мобилки route -n показывает всегда разный Gateway. Вот где проблема...
Core™i7 860 2.80GHz
NVIDIA GeForce GTX 480
6Gb RAM

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Работа с двумя сетевыми интерфейсами.
« Ответ #5 : 16 Марта 2014, 18:33:36 »
Никакой проблемы в этом не вижу, учитывая, что этот маршрут Вам трогать не надо.
Я правильно понял, что у Вас основной трафик (не по объёмам, а по назначению) должен идти через мобилку, а через провода должны идти только пакеты предназначенные для локалки провайдера?

Оффлайн TMW1000F

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
  • Ubuntu 15.04
    • Просмотр профиля
Re: Работа с двумя сетевыми интерфейсами.
« Ответ #6 : 16 Марта 2014, 18:41:18 »
Именно так. В локалку только часть пакетов, остальное в интрнет.
Мобильник по сути как роутер. У меня на локалке тоже стоит роутер, и как настраивать его я знаю, у роутера есть статичный IP для внутренней сети (комп <-> роутер), вот если его указать как gw, всё работает нормально. Однако у мобильника тоже есть внутренний IP (комп <-> мобильник) и этот IP постоянно меняется... Из-за этого я и не пойму, как можно его сделать дефолтным...

Пользователь решил продолжить мысль 16 Марта 2014, 18:53:59:
пошагово то что я делаю:
подключен мобильник
route -n
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0         192.168.42.129  0.0.0.0         UG    0      0        0 usb0
192.168.42.0    0.0.0.0         255.255.255.0   U     1      0        0 usb0

Вижу что в качестве шлюза  192.168.42.129.
Подключаю локалку
route -n
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0         192.168.192.1   0.0.0.0         UG    0      0        0 eth0
192.168.42.0    0.0.0.0         255.255.255.0   U     1      0        0 usb0
192.168.192.0   0.0.0.0         255.255.255.0   U     1      0        0 eth0

Интренет отрубается, пишу sudo route add default gw 192.168.42.129 usb0
Интернет снова начинает работать. Всё нормально. Как и должно быть. НО! 192.168.42.129 - это адрес который меняется, он не постоянный... Стоит перезагрузить мобильник и он становится другой. Однако, всегда остаётся в диапазоне 192.168.42.*.
« Последнее редактирование: 16 Марта 2014, 18:56:04 от TMW1000F »
Core™i7 860 2.80GHz
NVIDIA GeForce GTX 480
6Gb RAM

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Работа с двумя сетевыми интерфейсами.
« Ответ #7 : 16 Марта 2014, 19:57:01 »
Для начала отмените замену дефолтного гетвея при подключении провода.

Оффлайн TMW1000F

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
  • Ubuntu 15.04
    • Просмотр профиля
Re: Работа с двумя сетевыми интерфейсами.
« Ответ #8 : 17 Марта 2014, 11:13:12 »
Настроить маршруты у меня получилось, всё работает, однако, проблема: у нас в локалке у провайдера ресурс доступен как из самой сети, так и из интернета. Все адреса и ссылки там идут вида site_name.ru и для локалки и для интернета... При вводе адреса в строку браузера он лезет в интернет и, разумеется, получает доступ к сайту через интернет. Но это мне не нужно, так как через мобилку, сами понимаете, связь значительно хуже чем по проводу... Если же вводить в место текстового адреса IP адрес, тогда всё работает так как мне надо, но все внутрисетевые ссылки как раз в текстовом виде и будет очень неудобно с этим работать...
Подскажите, в какую сторону мне копать теперь?
Core™i7 860 2.80GHz
NVIDIA GeForce GTX 480
6Gb RAM

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Работа с двумя сетевыми интерфейсами.
« Ответ #9 : 17 Марта 2014, 11:44:57 »
так как через мобилку, сами понимаете, связь значительно хуже чем по проводу...
Нет, я не понимаю. Зачем тогда мобилку через провод подключаете?
Всегда провод был лучшей средой для передачи информации, нежели воздух. За исключением случаев, когда провод не соответствует желаемого от него.
(не умею читать)
Все адреса и ссылки там идут вида site_name.ru и для локалки и для интернета... При вводе адреса в строку браузера он лезет в интернет и, разумеется, получает доступ к сайту через интернет.
Судя по всему у проводного провайдера dns-сервер резольвит в зависимости от подключения.
Попробуйте использовать для всех соедений его dns-сервер
« Последнее редактирование: 17 Марта 2014, 13:11:50 от fisher74 »

Оффлайн TMW1000F

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
  • Ubuntu 15.04
    • Просмотр профиля
Re: Работа с двумя сетевыми интерфейсами.
« Ответ #10 : 17 Марта 2014, 12:54:02 »
Я решил попробовать немного поковырять iproute2. Мало ли, вдруг получится. Да и по практикуюсь немного.
Так вот, изменяю скрипт вот так

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

Меня интересует строка i2_ip="`ip addr show usb0 | grep inet | awk '{print $2}'`"
Возьмет ли переменная значение IP адреса на интерфейсе usb0? (он там динамический).
Core™i7 860 2.80GHz
NVIDIA GeForce GTX 480
6Gb RAM

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Работа с двумя сетевыми интерфейсами.
« Ответ #11 : 17 Марта 2014, 13:08:14 »
Что мешает открыть терминалку и ввести туда эту команду?
ip addr show usb0 | grep inet | awk '{print $2}'

Пользователь решил продолжить мысль 17 Марта 2014, 13:09:43:
Что-то мне подсказывает, что грабли с именами/адресами останутся....

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Работа с двумя сетевыми интерфейсами.
« Ответ #12 : 17 Марта 2014, 13:27:51 »
Почему надо сразу iproute трогать? Если адрес у Вас постоянный пропишите его в /etc/hosts
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Работа с двумя сетевыми интерфейсами.
« Ответ #13 : 17 Марта 2014, 13:35:30 »
Человек хочет изучить работу iproute2, что есть похвально. Для решения его задачи, конечно,изврат, но в качестве учебного полигона - самое то.

Оффлайн TMW1000F

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
  • Ubuntu 15.04
    • Просмотр профиля
Re: Работа с двумя сетевыми интерфейсами.
« Ответ #14 : 17 Марта 2014, 16:08:10 »
В том-то всё и дело, что на одном из интерфейсов адрес динамический.
Вобщем всё, разобрался. Понимаю, что сделал через одно место, но оно работает так как мне надо и головой маленько поработал =)

Вот только сейчас еще найду как в скрипте сделать задержку на запуск и вообще всё кучеряво будет  :D
Core™i7 860 2.80GHz
NVIDIA GeForce GTX 480
6Gb RAM

 

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