nixp.ru v3.0

19 октября 2017,
четверг,
10:12:10 MSK

DevOps с компанией «Флант»
lol1990lol написал 10 марта 2012 года в 23:49 (6352 просмотра) Ведет себя неопределенно; открыл 1 тему в форуме, оставил 7 комментариев на сайте.

Я совсем новичок

os: fedora 16

2 провайдера:

1 — pppoe с именем и паролем сетевой ip 10.7.28.121 маска 255.255.255.0 осн. шлюз 10.7.28.1 dns 10.3.3.1; 10.3.3.2 внешний ip динамический

2 — dhcp внешний ip динамический поднимается автоматически

Нужно чтобы они работали вместе и пакеты приходящие через первый интерфейс, уходили через него же. Второй интерфейс соответственно.

Нужна помощь.

defender

А бокс форвардит трафик или нет? Какой из каналов должен использовать сам бокс?

lol1990lol

Не важно, на машине будет hlds главное чтобы на оба ip люди могли коннектиться

lol1990lol

help plz

defender

Ну сначала как это делается. Нам надо каким-либо образом различить пакеты от одного подключения от другого. Притом, сделать это надо как можно раньше, еще по первого принятия решения о маршрутизации (см картинку из iptables tutorial). перед первым принятием решения о маршрутизации пакет проходит 2 цепочки — PREROUTING из таблиц mangle и nat. Поскольку таблицу nat не рекомендуют использовать для любых задач, кроме трансляции адресов, будем использовать таблицу mangle. Итак, нам требуется пометить соединение к которому принадлежит первый пакет и, согласно метки соединения, маркировать все последующие пакеты ему принадлежащие. Для этого служит расширение iptables CONNMARK. Итак:

iptables -t mangle -A PREROUTING -i ppp0 -m state --state NEW -j CONNMARK --set-mark 0×1    , где ppp0 — интерфейс pppoe подключения

далее, восстанавливаем метку для пакетиков из метки соединения:

iptables -t mangle -A PREROUTING  -j CONNMARK --restore

iptables -t mangle -A OUTPUT -j CONNMARK --restore    —— насчет этого правила сомневаюсь в его необходимости. По крайней мере в Вашем случае и том конфиге, что создаем, пользоваться не будет. Но лишним оно не станет…

Итак, все пакеты, что пришли по pppoe теперь отмечены меткой 0×1. При этом, такой-же меткой будут отмечаться и пакеты, которые генерятся самим боксом по признаку принадлежности к соединению. Далее, с помощью iproute2 выбираем для пакетов разные таблицы маршрутизации.

сначала для удобства создадим в /etc/iproute2/rt_tables запись о новой таблице маршрутизации. Это не необходимая мера, Вы можете обращаться к таблице по номеру, но так аккуратней и после этого можно будет обращаться к таблице по «названию». Добавим в выше озвученный файл нечто такое (в начало)

201     pppoe

название может быть и gorshok, в общем выбирается произвольно.

Заполняем таблицу. Заполнять надо с помощью утилиты ip. В таблицу надо добавить все Ваши локальные роуты и дефолтный от pppoe соединения. Как это сделать… Чесн, никогда не пользовался pppoe (да! я счастливый человек!) и вразумительного сказать ничего не могу…

в общем обязательно там должно быть нечто

ip route add default via 10.7.28.1 dev ppp0 table pppoe

Теперь заставим все пакеты с меткой 0×1 использовать таблицу маршрутизации pppoe(201):

ip rule add fwmark 1 table pppoe

Собственно с этого момента должно работать. Вопрос в следующем. Когда я делал подобное у себя, у меня были статические адреса. И иногда получалось так, что… был выставлен неправильный входящий интерфейс и мне приходилось в первом правиле iptables использовать совпадение не по входящему интерфейсу, а по ip-адресу назначения. Если не получится — обращайтесь, додебажим :D

lol1990lol

ок) пасиба

fly4life

 



lol1990lol

Я совсем новичок

os: fedora 16

2 провайдера:

1 — pppoe с именем и паролем сетевой ip 10.7.28.121 маска 255.255.255.0 осн. шлюз 10.7.28.1 dns 10.3.3.1; 10.3.3.2 внешний ip динамический

2 — dhcp внешний ip динамический поднимается автоматически

Нужно чтобы они работали вместе и пакеты приходящие через первый интерфейс, уходили через него же. Второй интерфейс соответственно.

Нужна помощь.

Так не бывает.

В смысле, бывает конечно всякое, но не так, как описываешь ты.

Попытками одновременной работы с двумя провайдерами, как правило, решают одну из следующих задач (и соответственно, сталкиваются с проблемами):

1. Отказоустойчивость канала:

а) обеспечение доступности извне какого-то внутреннего сервиса при отключении одного из провайдеров;

б) обеспечение доступности Интернет для пользователей/серверов локальной сети при отключении одного из провайдеров.

И/ИЛИ

2) балансировка нагрузки канала (трафик от одних пользователей/серверов пускают через одного провайдера, трафик остальных — через другого).

Под 1.а. твой случай не попадает, посокльку внешние адреса динамические (при динамике внешних адресов 1.а попросту бессмысленен).

В контексте попадания под случаи 1.б и 2 смущает слово «приходящие» во фразе «Нужно чтобы они работали вместе и пакеты приходящие через первый интерфейс, уходили через него же».

Так какую конкретно задачу пытаешься решить ты? Что при этом пробовал делать и что конкретно не получилось?

 

lol1990lol

Для hlds доступ из внутренней сети закрыт администрацией, поэтому внутрисетевые клиенты коннектятся через внешний динамический IP 1-го рповайдера

lol1990lol

Задача — hlds на 2 провайдера. Не получилось из-за незнания.

lol1990lol

А если 2 dhc p то какая будет таблица? И 2 клиента no-ip Это возможно?

lol1990lol

Так как IP динамические (оба), думаю надо сделать 2 клиента NO-IP ( O_O) только как?????

GyRT

lol1990lol, а сервак то теперь доступен по обоим адресам? Просто давно пытался такое сделать и как-то не взлетело.