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


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

Автор Тема: Настройка маршрутизации  (Прочитано 844 раз)

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

Оффлайн yPxg

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Настройка маршрутизации
« : 12 Февраля 2015, 19:50:47 »
Всем добрый день! Или вечер или ночь!!

Помогите разобраться почему не работает! =))

Опишу ситуацию:
Есть комп. Задач, он по задумке, должен выполнять много. Там и apache висит и DHCP c DNS подняты по вот этой http://howitmake.ru/blog/ubuntu/96.html статье, и проброс портов с одного интерфейса на другой и т.д.

На машине установлено несколько сетевых.
На одном интерфейсе висит IP от провайдера, подключение по умолчанию.
На втором интерфейсе белый статический IP (от того же провайдера).
На третьем интерфейсе локалка.
...

При использовании первого подключения (который по умолчанию) я не могу из интернета достучаться до машины по белому IP.
При использовании второго подключения я не могу пинговать комп из сети провайдера.

Внимание вопрос: почему?? Как организовать выход в интернет данной машины через первый интерфейс, а второй интерфейс оставить для других задач (для тогоже apache или проброса портов)?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Настройка маршрутизации
« Ответ #1 : 12 Февраля 2015, 19:54:35 »
Милости просим в библиотеку и поиск

Оффлайн bukass

  • Активист
  • *
  • Сообщений: 976
    • Просмотр профиля
Re: Настройка маршрутизации
« Ответ #2 : 12 Февраля 2015, 20:00:58 »
yPxg,
Цитировать
На одном интерфейсе висит IP от провайдера, подключение по умолчанию.
На втором интерфейсе белый статический IP (от того же провайдера).

У провайдера ip unnumbered?

Из другой сети оба ip доступны?
Всем пора в Изумрудный город, кому за умом, кому за сердцем.

Оффлайн yPxg

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Настройка маршрутизации
« Ответ #3 : 12 Февраля 2015, 20:48:39 »
Цитировать
У провайдера ip unnumbered?
Нет

Цитировать
Из другой сети оба ip доступны?
Из локальной сети пингуются обе сети в любом подключении.
При подключении перого, второй не пингуется и наоборот.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Настройка маршрутизации
« Ответ #4 : 12 Февраля 2015, 21:01:37 »
Вектор действий я Вам показал. Изучайте, воплощайте. Сами понимаете, что за Вас это никто не будет делать и, тем более, потом поддерживать.
Если что-то не будет получаться: показывайте что сделали и что не получилось - в меру сил поможем.
Можете и по другим ресурсам погуглить по словам iproute2+iptables

Оффлайн yPxg

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Настройка маршрутизации
« Ответ #5 : 12 Февраля 2015, 21:27:53 »
fisher74, дело в том что я не совсем понимаю почему при подключении одного интерфейса я не могу достучаться до другого из интернета или сети провайдера. Вот конкретно этой инфы я не могу найти. А маршрутизация это пока для меня вторичный вопрос.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Настройка маршрутизации
« Ответ #6 : 12 Февраля 2015, 21:46:54 »
В данном случае - он первичен.
Рассматриваем когда подключены оба соединения
1 интерфейс:
на интерфейсе выставлен адрес, маска и, скорее всего, указывается шлюз. То есть системе указывается, что весь интернет за "этой дверкой"
Пришло время подключить второе соединение. Подключаем и так же выставляется адрес, маска и ... ШЛЮЗ. Система это спокойно переживает и принимает эту настройку. Если честно я не помню, как происходит в Linuxе (просто давно так не извращался), но либо в системе получается 2 дефолтных шлюза, либо один. Что из этого происходит не важно, важно, что будет использоваться ТОЛЬКО ОДИН из них.
Теперь смотрим что происходит, когда пытаетесь подключиться к одному из интерфейсов. Будем считать, что это тот, кто был подключен первым. Пакет приходит на интерфейс, принимается системой, которая отвечает и ... смотря в таблицу маршрутизации выходит по дефолтному шлюзу из другого интерфейс с другим адресом. Пакет приходит к Вам обратно, но так как source-адрес не тот, то запрашивающая сторона его просто игнорит.
Вот как раз в задачах маршрутизации вернуть пакет через тот интерфейс, через которой пришёл запрос.

Немного сумбурно, но ... сегодня как-то вот не прёт рифма, извините

Оффлайн yPxg

  • Автор темы
  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Настройка маршрутизации
« Ответ #7 : 12 Февраля 2015, 22:01:23 »
Пакет приходит к Вам обратно, но так как source-адрес не тот, то запрашивающая сторона его просто игнорит.

Зато понятно!! Спасибо буду копать!!

Тему не закрываю отпишусь по результату вдруг кому пригодится.

Оффлайн MooSE

  • Старожил
  • *
  • Сообщений: 1198
    • Просмотр профиля
Re: Настройка маршрутизации
« Ответ #8 : 14 Февраля 2015, 06:37:41 »
Я немного поделюсь своим опытом:

$ cat /etc/iproute2/rt_tables
#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep

190     net_ext_2
195     net_ext_1

$ ip rule
0:      from all lookup local
19995:  from 10.6.4.199 to 192.168.2.0/24 lookup main
19996:  from 10.6.4.199 lookup net_ext_2
19997:  from 192.168.2.1 to 192.168.2.0/24 lookup main
19999:  from 192.168.254.254 to 192.168.2.0/24 lookup main
20000:  from 192.168.254.254 lookup net_ext_1
32766:  from all lookup main
32767:  from all lookup default

Здесь:
192.168.2.0/24 - моя локалка. В ней шлюзом является мой сервер с IP 192.168.2.1.

На "внешних" линках к провайдерам смотрят адреса 192.168.254.254 и 10.6.4.199. Каждый на своём интерфейсе разумеется.

И до кучи:
$ ip route show table net_ext_1
default via 192.168.254.1 dev eth1

$ ip route show table net_ext_2
default dev ppp999  scope link

# ip route show table main
default via 192.168.254.1 dev eth1
192.168.2.0/24 dev br0  proto kernel  scope link  src 192.168.2.1
192.168.254.0/24 dev eth1  proto kernel  scope link  src 192.168.254.254
217.66.20.128 dev ppp999  proto kernel  scope link  src 10.6.4.199

Теперь попробую рассказать как это работает: по умолчанию все маршруты описываются в таблице main. Мы добавляем дополнительные таблицы: net_ext_1 и net_ext_2. В каждую из них добавляем по одному маршруту: маршрут по умолчанию. Дальше для ip-адреса на каждом внешнем интерфейсе указываем в какой таблице в первую очередь искать машруты (через ip rule add lookup... ).

Таким образом трафик с моего 10.6.4.199 на интерфейсе ppp999 наружу будет уходить через ppp999 (см. net_ext_2) независимо от маршрута по умолчанию в main.

Трафик с 192.168.254.254 на eth1 будет уходить через eth1 (см. net_ext_1).

Вот как-то так. Надеюсь не сильно путано объяснил.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28512
    • Просмотр профиля
Re: Настройка маршрутизации
« Ответ #9 : 14 Февраля 2015, 07:30:47 »
ip route show table all type unicast
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

 

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