<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Раздел полезных советов: Маршрутизация IP сервисов в DMZ через два провайдера</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/42663.html</link>
    <description>На форуме часто задается вопрос, по поводу маршрутизации сети, подключенной к двум провайдерам.&lt;br&gt;В частном случае проблема расширяется тем, что нужно осуществлять проброс соединений к сервисам, &lt;br&gt;расположенным в локальной сети. Это делается с помощью DNAT, и при этом снова возникает &lt;br&gt;проблема - по каналу какого провайдера отправлять ответ.  Проблема усугубляется тем, &lt;br&gt;что обратное преобразование адресов выполняется уже после принятия &lt;br&gt;решения о маршрутизации, &lt;br&gt;т.е. примерно в районе цепочки POSTROUTING, но скрытно от пользователя.&lt;br&gt;&lt;br&gt;Решить эту нерешаемую проблему поможет модуль CONNMARK.  Принцип работы маршрутизатора для&lt;br&gt;решения описанной задачи будет выглядеть примерно так:&lt;br&gt;&lt;br&gt;Входящие соединения маркируются определенным флажком, после чего делается их проброс в нужное назначение.&lt;br&gt;Каждый обратный пакет соединения _до принятия решения о маршрутизации_ маркируется &lt;br&gt;флажком соответствующего ему соединения (флажок восстанавливается).&lt;br&gt;На основании флажков принимается решение о маршрутизации пакета в соо</description>

<item>
    <title>Маршрутизация IP сервисов в DMZ через два провайдера (анон)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/42663.html#14</link>
    <pubDate>Sat, 08 Dec 2012 18:36:49 GMT</pubDate>
    <description>&quot;Для проброса порта к  серверу в локальной сети&lt;br&gt;(в DMZ) проверку и восстановление маркера надо делать в цепочке PREROUTING. &lt;br&gt;Таким образом, &quot;обратный DNAT&quot; будет происходить когда пакет уже будет идти по нужному маршруту.&quot;&lt;br&gt;&lt;br&gt;А разве не в POSTROUTING?&lt;br&gt;</description>
</item>

<item>
    <title>Маршрутизация IP сервисов в DMZ через два провайдера (Виктор)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/42663.html#13</link>
    <pubDate>Thu, 30 Jul 2009 07:31:19 GMT</pubDate>
    <description>А как во фрибсд это сделать?&lt;br&gt;</description>
</item>

<item>
    <title>Маршрутизация IP сервисов в DMZ через два провайдера (PavelR)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/42663.html#12</link>
    <pubDate>Thu, 23 Jul 2009 05:53:46 GMT</pubDate>
    <description> &#091;root&#064;test z&#093;# ip ru sh&lt;br&gt;   0:      from all lookup local&lt;br&gt;   1000:   from all lookup main&lt;br&gt;   3300:   from all fwmark 0x1 lookup &amp;lt;second&amp;gt;&lt;br&gt;   5000:   from &amp;lt;first_ip&amp;gt; lookup &amp;lt;first&amp;gt;&lt;br&gt;   5500:   from &amp;lt;second_ip&amp;gt; lookup &amp;lt;second&amp;gt;&lt;br&gt;   10000:  from all lookup default&lt;br&gt;   32766:  from all lookup main&lt;br&gt;   32767:  from all lookup default&lt;br&gt;&lt;br&gt;Там еще два раза default присутствует :)&lt;br&gt;В общем случае, достаточно конечно же такого варианта:&lt;br&gt;&lt;br&gt; &#091;root&#064;test z&#093;# ip ru sh&lt;br&gt;   0:      from all lookup local&lt;br&gt;   1000:   from all lookup main&lt;br&gt;   3300:   from all fwmark 0x1 lookup &amp;lt;second&amp;gt;&lt;br&gt;   5000:   from &amp;lt;first_ip&amp;gt; lookup &amp;lt;first&amp;gt;&lt;br&gt;   5500:   from &amp;lt;second_ip&amp;gt; lookup &amp;lt;second&amp;gt;&lt;br&gt;   32767:  from all lookup default&lt;br&gt;&lt;br&gt;Но таблица правил по умолчанию выглядит так:&lt;br&gt;&lt;br&gt;0:      from all lookup local&lt;br&gt;32766:  from all lookup main&lt;br&gt;32767:  from all lookup default&lt;br&gt;&lt;br&gt;&lt;br&gt;и я удалять из неё правило 32766 не рискнул.&lt;br&gt;&lt;br&gt;-----------&lt;br&gt;&lt;br&gt;Правило   &quot;1000:   from all lookup main&quot; требуется чтобы напрямую присоединенные к маршрутизатору подсети маршру</description>
</item>

<item>
    <title>Маршрутизация IP сервисов в DMZ через два провайдера (SVLD)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/42663.html#11</link>
    <pubDate>Sat, 20 Jun 2009 22:54:20 GMT</pubDate>
    <description>mangle/OUTPUT нужна для отработки пакетов роутер-инет, для ДНАТов все танцы чисто в цепочке mangle/PREROUTING:&lt;br&gt;1. -i ifINET1 -m state --state NEW -j CONNMARK --set-mark 0x1&lt;br&gt;-i ifINET2 -m state --state NEW -j CONNMARK --set-mark -0x2&lt;br&gt;2. после этих правил надо делать -j CONNMARK --restore-mark, НО! при условии что пакет из локалки в инет! я для этого заводил отдельную цепочку в mangle, в которую заворачивал все пакеты из локалок, а в самой цепочке поставил три правила:&lt;br&gt;-d 10.0.0.0/8 -j RETURN&lt;br&gt;-d 192.168.0.0/16 -j RETURN&lt;br&gt;-j CONNMARK --restore-mark&lt;br&gt;</description>
</item>

<item>
    <title>Маршрутизация IP сервисов в DMZ через два провайдера (Артем)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/42663.html#10</link>
    <pubDate>Sun, 10 May 2009 09:04:15 GMT</pubDate>
    <description>Статья в точности описывает мою проблему, да вот только пример непонятный и неполный.&lt;br&gt;В нем смешался доступ к локальному сервису и проброс DNAT, получился неслыханный бред.&lt;br&gt;Пакет, приходящий со второго инета, почему то пробрасывается на первый инет, причем вовнутрь ! Ладно, фиг с ним, далее еще лучше, метка восстанавливается в цепочке OUTPUT ! Как &quot;оно&quot; там окажется ??? Значит это относится к локальному сервису ? А где тогда восстанавливается метка для пробрасываемого порта ?&lt;br&gt;Еще интересна цепочка маршрутизации, таблица main присутствует в ней дважды. Разъясните, пожалуйста, сей хитрый трюк и зачем он ? :)&lt;br&gt;</description>
</item>

<item>
    <title>Маршрутизация IP сервисов в DMZ через два провайдера (PavelR)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/42663.html#9</link>
    <pubDate>Wed, 09 Jul 2008 03:07:32 GMT</pubDate>
    <description>&amp;gt;Есть один неприятный момент в решениях предложенных автором и dry. Если у &lt;br&gt;&amp;gt;меня есть сервис на который должны попадать люди из-вне значит я &lt;br&gt;&amp;gt;должен прописать на 2 ip от разных провайдеров одно имя, нет &lt;br&gt;&amp;gt;ну конечно я могу и разные имена прописать, но для пользаков &lt;br&gt;&amp;gt;это не удобно ИМХО. Так вот если при этом один пров &lt;br&gt;&amp;gt;падает то половина народа попасть ко мне не смогут :-(. В &lt;br&gt;&amp;gt;общем как мне кажется нет тут нормальных решений кроме как AS &lt;br&gt;&amp;gt;получать :-(. А конторым типа моей, которой не более 10 ИП &lt;br&gt;&amp;gt;белых надо это не очень по карману :-(. &lt;br&gt;&lt;br&gt;Это вообще не относится к обсуждаемой теме. Обсуждаемая тема называется _маршрутизация_, и решение может иметь кучу применений. Так например тот же самый openvpn, smtp умеют балансироваться на два адреса штатно, и &quot;никаких неприятных моментов&quot;. &lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Маршрутизация IP сервисов в DMZ через два провайдера (muhlik)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/42663.html#8</link>
    <pubDate>Tue, 08 Jul 2008 05:20:24 GMT</pubDate>
    <description>Есть один неприятный момент в решениях предложенных автором и dry. Если у меня есть сервис на который должны попадать люди из-вне значит я должен прописать на 2 ip от разных провайдеров одно имя, нет ну конечно я могу и разные имена прописать, но для пользаков это не удобно ИМХО. Так вот если при этом один пров падает то половина народа попасть ко мне не смогут :-(. В общем как мне кажется нет тут нормальных решений кроме как AS получать :-(. А конторым типа моей, которой не более 10 ИП белых надо это не очень по карману :-(.&lt;br&gt;</description>
</item>

<item>
    <title>Маршрутизация IP сервисов в DMZ через два провайдера (PavelR)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/42663.html#7</link>
    <pubDate>Thu, 03 Jul 2008 13:17:28 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;iptables -A INPUT -p tcp --dport 3389 -m state --state NEW -j &lt;br&gt;&amp;gt;ACCEPT &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;При условии, что маршрутизация настроена вот так http://gazette.linux.ru.net/rus/articles/lartc/x348.html &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Так и не получилось у меня мапнуть порт через маркировку пакетов через &lt;br&gt;&amp;gt;DNAT, чет видимо не до понимаю чутка, если можно выложить конкретный &lt;br&gt;&amp;gt;пример с правилами iptables как пробросить порт в локалку и чтоб &lt;br&gt;&amp;gt;он был доступен на 2-x интерфейсах буду признателен. &lt;br&gt;&lt;br&gt;То что описано в &quot;статье&quot; - это и есть реальные примеры. Не забудьте добавить разрешающие правила в FORWARD и всё, всё остальное есть в статье.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Маршрутизация IP сервисов в DMZ через два провайдера (PavelR)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/42663.html#6</link>
    <pubDate>Thu, 03 Jul 2008 13:16:02 GMT</pubDate>
    <description>&amp;gt;Ок, вечерком постараюсь отписать. &lt;br&gt;&amp;gt;Есть рабочее решение, описание еще предстоит накидать. &lt;br&gt;&amp;gt;В кратце - идея в том, что на каждый канал провайдера создается &lt;br&gt;&amp;gt;своя подсеть DMZ (в идеале - vlan, но это не обязательно). &lt;br&gt;&amp;gt;Соответственно на обратном пути по подсети источника можно опознать пакет (с &lt;br&gt;&amp;gt;какого из внешних каналов он пришел) и применить к нему соответствующую &lt;br&gt;&amp;gt;таблицу роутинга. &lt;br&gt;&lt;br&gt;Понятно, в общем-то известное решение - позволяет обходиться без маркировки пакетов...&lt;br&gt;</description>
</item>

</channel>
</rss>
