<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Данные с RAW сокета не попадают на MASQUERADE</title>
    <link>https://opennet.me/openforum/vsluhforumID9/7319.html</link>
    <description>Я пишу серверное приложение (своего рода VPN сервер для роутера с линуксом на борту), читающее IP пакеты от клиентов и посылающих их с помощью IPv4 RAW сокета. &lt;br&gt;&lt;br&gt;sockrawip = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);&lt;br&gt;&lt;br&gt;struct sockaddr_in sindest;&lt;br&gt;sindest.sin_family = AF_INET;&lt;br&gt;sindest.sin_addr.s_addr = ip_header-&amp;gt;daddr;&lt;br&gt;&lt;br&gt;sendto(sockrawip, ip_header, ntohs(ip_header-&amp;gt;tot_len), &lt;br&gt;       0, (struct sockaddr *) &amp;sindest, sizeof (sindest));&lt;br&gt;&lt;br&gt;Все работает замечательно для пакетов предназначенных для локальной сети. Но на пакеты посылаемые в интернет я никогда не получаю ответ. Ваиршарк показывает что пакет послан скажем гуглу, но source IP у такого пакета остается прежний (те локальный IP). Судя по всему данные с &quot;сырого&quot; сокета не попадают в цепочку MASQUERADE и следовательно роутер не делает наттинг для них. Прав ли я и как это починить? Заранее спасибо.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>

<item>
    <title>Данные с RAW сокета не попадают на MASQUERADE (geragray)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/7319.html#10</link>
    <pubDate>Tue, 22 Apr 2008 17:00:47 GMT</pubDate>
    <description>&amp;gt; Будучи запущеным на роутере, приложение в состоянии отправлять пакеты с &lt;br&gt;&amp;gt;адреса реального интерфейса и без всяких шаманств с iptables. &lt;br&gt;&lt;br&gt;Так я и не говорю что пакеты не отправляются. Очень даже отправляются, только вот исходящий адрес там не совсем верный. Я чуть выше http://www.opennet.ru/openforum/vsluhforumID9/7319.html#7&lt;br&gt;более подробно описал что происходит.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Данные с RAW сокета не попадают на MASQUERADE (chip)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/7319.html#9</link>
    <pubDate>Tue, 22 Apr 2008 12:55:57 GMT</pubDate>
    <description>&amp;gt;Есть идеи? &lt;br&gt;&lt;br&gt;В этом случае NAT должен выполняться средствами приложения. См. natd из FreeBSD например.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Данные с RAW сокета не попадают на MASQUERADE (Николай Попов)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/7319.html#8</link>
    <pubDate>Tue, 22 Apr 2008 12:50:32 GMT</pubDate>
    <description>В POSRTOUTING попадают только транзитные пакеты. Локально сгенерированый трафик отправляется в nat.OUTPUT&lt;br&gt;&lt;br&gt;Не уверен что для этой цепочки применим SNAT/MASQUERADE, но это и не нужно. Будучи запущеным на роутере, приложение в состоянии отправлять пакеты с адреса реального интерфейса и без всяких шаманств с iptables.&lt;br&gt;</description>
</item>

<item>
    <title>Данные с RAW сокета не попадают на MASQUERADE (geragray)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/7319.html#7</link>
    <pubDate>Fri, 18 Apr 2008 11:56:41 GMT</pubDate>
    <description>&amp;gt;Еще раз, если Вы отправляете пакет с машины, которая подключена непосредственно к &lt;br&gt;&amp;gt;интернету и пытаетесь запихнуть его в цепочку MASQUERADE - то это &lt;br&gt;&amp;gt;глупость. &lt;br&gt;&lt;br&gt;Давайте объясню еще раз. Для начала рассмотрим типичню сеть&lt;br&gt;компьютер - ЛАН - роутер  - интернет - гугл&lt;br&gt;адрес Х           адрес У              адрес Г&lt;br&gt;&lt;br&gt;Если с компьютера сделать пинг гуглу, то он пошлет пакет ОтХдоГ который попадет на роутер. Роутер (который имеет паблик айпи - адрес У) же в свою очередь пошлет в интернет пакет с адресами вида ОтУдоГ. Гугл получит этот пакет и ответит на адрес У.&lt;br&gt;&lt;br&gt;В моем случае, приложение запущенное на роутере получает(как именно и зачем, не суть вопроса) пакет ОтХдоГ и посылает его в сеть с помощю сырого сокета. НО, роутер не заменяет адресХ на адрес У и поэтому в интернет уходит пакет для гугла, но с обратным адресом Х. То есть когда гугл ответит на посланный пинг, ответ удет на адрес типа 192.168.1.10. &lt;br&gt;&lt;br&gt;&amp;gt;Если Вы пытаетесь отправить пакет с локальной машины через роутер с MASQ &lt;br&gt;&amp;gt;- для других пакето</description>
</item>

<item>
    <title>Данные с RAW сокета не попадают на MASQUERADE (chip)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/7319.html#6</link>
    <pubDate>Fri, 18 Apr 2008 08:56:02 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Для чего на машине, которая имеет public ip отправлять пакеты через nat? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Хмм, а как по вашему роутеры работаю? К коробке с внешним ip &lt;br&gt;&amp;gt;подключены несколько компьютеров = локальная сеть. Любой пакет посланный одним из &lt;br&gt;&amp;gt;этих комптютеров натится роутером, иначе ответный пакет будет послан на локальный &lt;br&gt;&amp;gt;айпи отправителя. Я по большому счету эмулирую этот самый локально подключенный &lt;br&gt;&amp;gt;компьютер с помощью raw сокета. Но к сожалению ответ от гугла &lt;br&gt;&amp;gt;не приходит, следовательно бокс не делает нат для подобных пакетов. &lt;br&gt;&lt;br&gt;Еще раз, если Вы отправляете пакет с машины, которая подключена непосредственно к интернету и пытаетесь запихнуть его в цепочку MASQUERADE - то это глупость.&lt;br&gt;&lt;br&gt;Если Вы пытаетесь отправить пакет с локальной машины через роутер с MASQ - для других пакетов MASQ работает?&lt;br&gt;</description>
</item>

<item>
    <title>Данные с RAW сокета не попадают на MASQUERADE (geragray)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/7319.html#5</link>
    <pubDate>Fri, 18 Apr 2008 08:10:44 GMT</pubDate>
    <description>&amp;gt;Для чего на машине, которая имеет public ip отправлять пакеты через nat? &lt;br&gt;&lt;br&gt;Хмм, а как по вашему роутеры работаю? К коробке с внешним ip подключены несколько компьютеров = локальная сеть. Любой пакет посланный одним из этих комптютеров натится роутером, иначе ответный пакет будет послан на локальный айпи отправителя. Я по большому счету эмулирую этот самый локально подключенный компьютер с помощью raw сокета. Но к сожалению ответ от гугла не приходит, следовательно бокс не делает нат для подобных пакетов.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Данные с RAW сокета не попадают на MASQUERADE (chip)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/7319.html#4</link>
    <pubDate>Thu, 17 Apr 2008 13:22:45 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Скорее всего в правиле ната указан протокол tcp, а вы работаете на уровень ниже. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Да вроде бы нет, правило для маскарада только одно &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;iptables -t nat -A POSTROUTING -j MASQUERADE &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;так что по идее и tcp/udp/icmp траффик должен обрабатываться. Скорее всего проблемма &lt;br&gt;&amp;gt;в самом сокете :( &lt;br&gt;&lt;br&gt;Для чего на машине, которая имеет public ip отправлять пакеты через nat? &lt;br&gt;</description>
</item>

<item>
    <title>Данные с RAW сокета не попадают на MASQUERADE (geragray)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/7319.html#3</link>
    <pubDate>Thu, 17 Apr 2008 11:09:30 GMT</pubDate>
    <description>&amp;gt;Скорее всего в правиле ната указан протокол tcp, а вы работаете на уровень ниже. &lt;br&gt;&lt;br&gt;Да вроде бы нет, правило для маскарада только одно &lt;br&gt;&lt;br&gt;iptables -t nat -A POSTROUTING -j MASQUERADE &lt;br&gt;&lt;br&gt;так что по идее и tcp/udp/icmp траффик должен обрабатываться. Скорее всего проблемма в самом сокете :(&lt;br&gt;</description>
</item>

<item>
    <title>Данные с RAW сокета не попадают на MASQUERADE (angra)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/7319.html#2</link>
    <pubDate>Wed, 16 Apr 2008 01:39:58 GMT</pubDate>
    <description>Скорее всего в правиле ната указан протокол tcp, а вы работаете на уровень ниже. Попробуйте убрать критерий протокола -p tcp из правила, ну и специфические для этого протокола условия тоже. Также стоит проверить, что стоит в FORWARD, скорее всего опять таки пускаются только tcp пакеты и только с определенными флагами.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

</channel>
</rss>
