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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Настройка маршрутизации для 2 интерфейсов  (Прочитано 3405 раз)

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

Оффлайн sensei88

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
В продолжении этой темы: https://forum.ubuntu.ru/index.php?topic=244031.0

Имеется 2 маршрута, оба смотрят в инет, на одном "белый" IP, второй с локальным IP за NAT (роутером).

Задача - обеспечить нормальное функционирование обоих интерфейсов, чтобы можно было вводить как
ping -I eth0 ya.ruтак и
ping -I eth1 ya.ruи оба бы работали.
Конкретно интересует выполнение команды curl от конкретного интерфейса
curl --interface eth0 http://url.url
curl --interface eth1 http://url.url

Как настроить таблицу маршрутизации?
« Последнее редактирование: 15 Мая 2014, 22:48:37 от sensei88 »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28512
    • Просмотр профиля
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн sensei88

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Наткнулся на это: https://help.ubuntu.ru/wiki/ip_balancing
Но тут балансировка трафика по 2 интерфейсам с переключением отказа.

Мне же собственно балансировать ч.-л. не надо.

Зато надо:
1) выполнять ping и curl с явным указанием интерфейса.
2) отвечать на все запросы с того интерфейса, с которого они пришли.
3) весь неразмеченный "клиентский" трафик надо гнать через eth1.

Какое из решений наиболее актуальное в моём случае?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28512
    • Просмотр профиля
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн sensei88

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Ну, например, http://anr-daemon.livejournal.com/1655.html
Сделал по последней вот так:
$ iptables-restore
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:WAN - [0:0]
:LAN - [0:0]
:DEFAULT - [0:0]
-A PREROUTING -i lo -j ACCEPT
#Т.к. работаем с глобальным трафиком, оставил сортировку по интерфейсу.
-A PREROUTING -i eth0 -m conntrack --ctstate NEW,RELATED -j WAN
-A PREROUTING -i eth1 -m conntrack --ctstate NEW,RELATED -j LAN
-A PREROUTING -j CONNMARK --restore-mark
#Попытался исходящий трафик промаркировать
-A OUTPUT -o eth0 -m conntrack --ctstate NEW,RELATED -j WAN
-A OUTPUT -o eth1 -m conntrack --ctstate NEW,RELATED -j LAN
-A OUTPUT -j CONNMARK --restore-mark
-A WAN -j CONNMARK --set-mark 1
-A LAN -j CONNMARK --set-mark 2
-A DEFAULT -j LAN
COMMIT
Не работает, как и не работало. Там ведь даже автор пишет, что это НЕ ДЛЯ  исходящего трафика.
А на пинги, например, он и до этого нормально отвечал по обоим интерфейсам.

Надо пока всего-то, чтобы при задании в curl (или ping) интерфейса, команда корректно выполнялась по обоим интерфейсам, а не ругалась на неответ.

Оффлайн AnrDaemon

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

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

Оффлайн sensei88

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Одними только правилами вы вопроса не решите. Внимательно читайте статью. Вам будет проще, вместо MAC удалённых роутеров у вас готовые интерфейсы.
Уважаемый AnrDaemon, я с Ubuntu в частности и вообще с Unix-подобными системами, на Вы.
Подскажите, если возможно, в какую сторону хотя бы копать.

Оффлайн ivsatel

  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
sensei88,
Когда-то получилось установить два маршрута по умолчанию https://forum.ubuntu.ru/index.php?topic=163652.msg1227183#msg1227183
Не знаю, может в вашем случае это поможет.

Оффлайн AnrDaemon

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

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

Оффлайн ivsatel

  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
AnrDaemon,
Думаю в этом нет ни какого изврата) И в этом случае поведение системы вполне предсказуемо)
ip r
195.2.238.18 dev ppp1  proto kernel  scope link  src 46.148.136.151
195.2.238.18 dev ppp0  proto kernel  scope link  src 195.2.238.226
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.1
default
        nexthop dev ppp0 weight 8
        nexthop dev ppp1 weight 2

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
ivsatel, маршрут по умолчанию у Вас — один.
sensei88 ссылко на опеннет вам разве не встерчалась?
Тогда держите http://www.opennet.ru/docs/RUS/LARTC/x348.html
« Последнее редактирование: 19 Мая 2014, 21:56:21 от koshev »
OpenWrt 19.07

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28512
    • Просмотр профиля
sensei88 ссылко на опеннет вам разве не встерчалась?
Тогда держите http://www.opennet.ru/docs/RUS/LARTC/x348.html
Там нет решения, просто куча правил набросана.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Изначально вопрос стоял в ответе с интерфейса на который пришёл запрос, "куча правил" удовлетворяет его.
OpenWrt 19.07

Оффлайн AnrDaemon

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

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

Оффлайн xeon_greg

  • Активист
  • *
  • Сообщений: 981
    • Просмотр профиля
В продолжении этой темы: https://forum.ubuntu.ru/index.php?topic=244031.0

Имеется 2 маршрута, оба смотрят в инет, на одном "белый" IP, второй с локальным IP за NAT (роутером).

Задача - обеспечить нормальное функционирование обоих интерфейсов, чтобы можно было вводить как
ping -I eth0 ya.ruтак и
ping -I eth1 ya.ruи оба бы работали.
Конкретно интересует выполнение команды curl от конкретного интерфейса
curl --interface eth0 http://url.url
curl --interface eth1 http://url.url

Как настроить таблицу маршрутизации?


важно
sysctl net.ipv4.conf.all.rp_filter=0

echo >> "1 g1" /etc/iproute2/rt_tables
echo >> "2 g2" /etc/iproute2/rt_tables

ip r a default via gw_on_eth0 t g1
ip r a default via gw_on_eth1 t g2

ip ru a from ip_on_eth0 t g1
ip ru a from ip_on_eth1 t g2
в основной таблице маршрутизации оставить всего один основной DGW

« Последнее редактирование: 20 Мая 2014, 16:37:17 от xeon_greg »

 

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