Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
sleepycat, не куда придётся, а в дефолтный роут с меньшей метрикой. Соответственно, можно переместить дефолтные роуты в таблицу default, а перед ней вставить ещё одну, с дефолтным роутом на менее приоритетный шлюз. Метим соединения, вошедшие через него, и по метке отправляем ответы в эту таблицу. Статически (без DHCP) это можно сделать примерно так: ip rule flush # очищаем правила выбора таблиц ip rule add pref 10 tab main # сначала обычные роуты (локалка) ip rule add pref 100 fwmark 2 tab 100 # только с меткой 2 ip rule add pref 32767 tab default # без метки ip route flush cache iptables -t mangle -F # удаляем все правила маркировки iptables -t mangle -A OUTPUT -j CONNMARK --restore-mark # вспоминать метки на выходе iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark # и входе iptables -t mangle -A PREROUTING -i eth1 -j CONNMARK --set-mark 2 # метить новые входящие на eth1 ip link set eth1 up # поднимаем eth1 ip addr flush dev eth1 # очищам его адреса ip addr add 192.168.1.9/24 brd + dev eth1 # задаём адрес и подсеть ip route add default via 192.168.1.1 metric 20 tab default # дефолт, только если второй (eth2) не подключён ip route add default via 192.168.1.1 tab 100 # дефолт для помеченных ip link set eth2 up ip addr flush dev eth2 ip addr add 192.168.0.9/24 brd + dev eth2 ip route add default via 192.168.0.1 metric 10 tab default # второй будет "главным", метрика ниже Правила ip rule и iptables точно такие же. В /etc/dhcpcd.conf добавить опцию nogateway, или запускать dhcpcd с ключом -G Для автоматического создания роутов сделать скрипт /etc/dhcpcd.enter-hook , который dhcpcd будет запускать при настройке каждого из интерфейсов: if [ "$if_up" = "true" -a -n "$new_routers" ] ; then case "$ifname" in eth1) M=20 ip route add default via $new_routers tab 100 ;; eth2) M=10 ;; esac [ -n "$M" ] && ip route add default via $new_routers metric $M tab default fi |
sleepycat |
|
![]()
Темы:
98
Сообщения:
3291
Участник с: 19 июля 2011
|
sleepycat, не куда придётся, а в дефолтный роут с меньшей метрикой.я наверно настолько туп что и не сооброзил сам. ПО сабжу. Ну вот опять какие то метки, опять же это фильтр, опять же без него никак…
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
|
inar |
|
![]()
Темы:
12
Сообщения:
62
Участник с: 30 сентября 2011
|
Уважаемые, Если честно, я не могу вообще въехать в суть проблемы. Для меня кажется странной сама ситуация, что необходима донастройка роутинга на машине, которая не является шлюзом\роутером\фаерволом, и не должна перенаправлять пакеты с одного интерфейса на другой. Она всего лишь находится в двух сетях. Почему при двух включённых интерфейсах я могу свободно коннектиться по фтп к машине из обоих локальных сетей по фтп и ssh, и это не требует донастройки сети, а из интернета - не могу(только по одной)? Почему в случае с локальной сетью машина догоняет, что если клиент пришёл на конкретный интерфейс, то через этот интерфейс с ним и надо общаться, а если через интернет - она этого не понимает? Проясните, пожалуйста. Natrio, спасибо за советы, но.. ) Я использую не dchpd а netcfg, и настраиваю сеть в net-profiles. Но, давайте пока оставим этот вопрос, и сделаем для начала по статике. Я так решил потому, что если с получением по dhcp что-то случиться, это будет гемор. Итак, я изменил настройки сети: /etc/network.d/net1 CONNECTION='ethernet'аналогично для второго интерфейса назначил статический адрес 0.9. Проверил, работает. Далее, я ввёл ваши команды, теперь я из интернета вообще не могу приконнектиться к фтп или ssh. результаты таковы: ip route 192.168.0.0/24 dev eth2 proto kernel scope link src 192.168.0.9 ip rule 0: from all lookup local возможно, я что-то упустил или неправильно сделал?
Только Россия, только хардкор..
|
sleepycat |
|
![]()
Темы:
98
Сообщения:
3291
Участник с: 19 июля 2011
|
о чем я и говорил, реальность иногда вставляет палки в теорию. Если есть желание точно узнать что и как придется сидеть со сниффером и искать “блуждающий пакет”, сам не знаю, видно боги сжалились надо мною и я еще в таком тонком анализе не нуждался, все работало/eт после прочтения базовой документации.
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
|
kurych |
|
Темы:
0
Сообщения:
1395
Участник с: 06 ноября 2011
|
InarПотому что в случае подключения из локальных подсетей ответ сервера направляется по известному маршруту, соответствующему одному из интерфейсов, находящемуся в том сегменте, откуда запрос на соединение и пришел. В случае коннекта из интернета, ip адрес клиента находится не в локальной сети и явного маршрута к нему сервер не знает. Поэтому он направит ответ по дефолтному маршруту, у которого метрика меньше. Если этот маршрут совпадет с тем, по которому запрос пришел, то проблем нет. А если запрос пришел в один интерфейс, а ушел в другой, то здесь и начинаются проблемы. Причем, это проблемы не технические, т.к. работа TCP/IP это допускает, а возможные проблемы политики провайдеров. Хотя, в Вашем конкретном случае, пока даже не имеет смысла пенять на провайдеров, а стоит посмотреть на свои локальные подсети: судя по тому, что адреса на сервере из частного диапозона (192.168…), сервер находится за NAT-ом (или даже за двумя?). Что и как там настроено? Часто локальные файрволы настраиваются так, что бы дропать не syn-пакеты, для которого отсутствует установленное соединение. Это кратко. Если непонятно, то читайте теорию и спец.литературу по организации сетей до просветления. InarОпять: даже не удосужились заглянуть в man ip. И не захотели подумать, что должно получиться. Как минимум, в "ip rule“ должна присутствовать таблица ”100", а приоритет таблицы main должен быть 10. Нет ни того, ни другого. “ip route list tab all” позволяет увидеть маршруты во всех таблицах. У Вас, похоже, не отработала ни одна команда. Посмотрите внимательно: возможно, после каждой было сообщение об ошибке. |
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
InarВ том-то и дело, что в двух ЛОКАЛЬНЫХ сетях, с ними всё просто – у каждой свой отдельный диапазон, и на него прописан роут. А интернет это ОДНА сеть! И так как интернет покрывает ВСЕ диапазоны IP-адресов, кроме нескольких специальных, на него невозможно прописать никакого роута, кроме дефолтного. В результате ваша бедная машина, которая имеет “всего лишь” два подключения к интернету, волей-неволей вынуждена исполнять обязанности роутера, то есть выбирать из РАЗНЫХ маршрутов к одной и той же цели. А все тривиальные настройки сети для конечного пользователя НЕ ПРЕДНАЗНАЧЕНЫ для одновременной работы с несколькими подключениями к интернету, поэтому и получается, что работает только одно из них. (Попробовали бы вы в форточках так подключиться, было бы ещё хуже. Я знаю, я пробовал.) Я использую не dchpd а netcfg, и настраиваю сеть в net-profiles.В дистрибутивах линукса есть два DHCP-клиента – dhcpcd и dhclient. Последний используется по-умолчанию в Дебиане и Убунте, а в Арче по-умолчанию именно dhcpcd, а netcfg это всего лишь набор скриптов, которые используют в данном случае именно dhcpcd – не верите, можете после подключения по DHCP поискать его в процессах :) Так что вам НЕ НУЖНО было менять ваши профили, оставьте их как были. Вам надо прописать правила ip rule и iptables (первые два абзаца кода в начале) в скрипт и выполнить его ДО запуска ваших профилей один раз (на загрузку), а также исправить конфиг dhcpcd и добавить ему скрипт, который я привёл в прошлом посте, после чего перезапустить профили. Всё остальное, что вы делали, никак не поможет делу, и никаких правил не создаст, в чём вы уже убедились сами. Если же вы хотите настроить сеть статически, то уберите профили из загрузки вообще, перезагрузитесь (вам так будет проще) и выполните последовательно все приведённые в начале команды, без отсебятины и от рута. P.S. Я вижу, что вы не знаете элементарных вещей, так что если вы чего-то не понимаете – спрашивайте сразу, не стесняйтесь. |
inar |
|
![]()
Темы:
12
Сообщения:
62
Участник с: 30 сентября 2011
|
Коллеги, спасибо за разъяснения, с логикой работы сети всё ясно, с dhcpcd - тоже. Теперь хочу уточнить пути решения ) Если отключить загрузку профилей, ребутнуться, ввести все команды, настроить /etc/dhcpcd.enter-hook, включить профили, всё будет работать как надо, после перезагрузки всё опять приходит в нерабочее состояние. Или команды надо в автозагрузку?
Только Россия, только хардкор..
|
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
InarВообще-то я писал о ДВУХ разных путях решения – первый БЕЗ DHCP, второй с ним – либо тот, либо другой, но не всё вместе! В первом случае вам надо убрать профили, прописать ВСЕ команды в один скрипт и поставить его в автозагрузку. Во втором случае надо прописать в него только первые два абзаца, добавить в его в автозагрузку ПЕРЕД профилями, которые тоже оставить, создать /etc/dhcpcd.enter-hook и добавить строчку nogateway в /etc/dhcpcd.conf |
inar |
|
![]()
Темы:
12
Сообщения:
62
Участник с: 30 сентября 2011
|
Спасибо, с этим понятно. подскажите, пожалуйста, как сделать скрипт в автозагрузку? гугл и поиск по форуму не помогли = ( Да, и, кстати, уже после решения этой проблемы - можно ли сделать так, чтобы на этом компе торенты качались и раздавались с обоих карт? или для этого необходимо настраивать load balancing только после split access, как здесь?
Только Россия, только хардкор..
|
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
InarСамое простое – положить скрипт в /etc/rc.d/ , сделать ему chmod 755 и вписать его название в DAEMONS перед профилями. Да, и, кстати, уже после решения этой проблемы - можно ли сделать так, чтобы на этом компе торенты качались и раздавались с обоих карт? или для этого необходимо настраивать load balancing только после split access, как здесь?Да, можно. Надо просто настроить перенаправление соответствующих портов на роутерах. Нет, не нужно, если у ваших роутеров есть выделенные IP в интернете, и они могут принимать входящие соединения. А вообще я не такой большой знаток торрент-протоколов, чтобы предсказать, как они поведут себя при балансировке. |