<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.permlug.org" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>сети</title>
 <link>http://www.permlug.org/taxonomy/term/149/</link>
 <description>The taxonomy view with a depth of 0.</description>
 <language>ru</language>
<item>
 <title>Dial-up call flow.</title>
 <link>http://www.permlug.org/node/3844/</link>
 <description>&lt;p&gt;Дак&amp;nbsp;вот ты&amp;nbsp;какой, коммутируемый удалённый доступ =)&lt;/p&gt;

&lt;p&gt;&lt;object width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/AgqEIp2YmtE&amp;hl=ru&quot;&gt;&lt;/param&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/AgqEIp2YmtE&amp;hl=ru&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;</description>
 <comments>http://www.permlug.org/node/3844/#comments</comments>
 <category domain="http://www.permlug.org/taxonomy/term/227/">прикол</category>
 <category domain="http://www.permlug.org/taxonomy/term/149/">сети</category>
 <pubDate>Sat, 12 Apr 2008 12:37:22 +0400</pubDate>
 <dc:creator>D3viL</dc:creator>
 <guid isPermaLink="false">3844 at http://www.permlug.org</guid>
</item>
<item>
 <title>OpenVPN, пример использования</title>
 <link>http://www.permlug.org/node/3736/</link>
 <description>&lt;p&gt;Приведу небольшой пример, как объединить две сети, географически удалённые друг от друга. Используем Linux, OpenVPN. Расположение и структура файлов от fedora core.&lt;br /&gt;
Итак, что мы имеем. А имеем мы два офиса, назовём их o1 и o2. В каждом протянута локальная сеть. В каждом есть свой интернет-провайдер и интернет-шлюз на базе Linux (fw1 и fw2 соответственно). Что мы хотим: чтобы у нас было одно адресное пространство 192.168.0.0/24 и прозрачная работа сети.&lt;br /&gt;
&lt;img src=&quot;http://www.permlug.org/files/firewall.png&quot; alt=&quot;&quot; class=&quot;bb-image&quot; /&gt;&lt;br /&gt;
Пусть у шлюзов будут адреса 192.168.0.1 для fw1 и 192.168.0.2 для fw2.&lt;br /&gt;
Для успешного функционирования при проблемах с Интернетом и минимизации трафика на каждом шлюзе будет стоять сервер dhcp. Этим, естественно будет заниматься демон dhcpd. Настройки его таковы (/etc/dhcpd.conf):&lt;br /&gt;
для fw1&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;ddns-update-style none;
ignore client-updates;
subnet 192.168.0.0 netmask 255.255.255.0 {
        option routers                  192.168.0.1;
        option subnet-mask              255.255.255.0;
        option domain-name              &quot;mynetwork&quot;;
        option domain-name-servers      192.168.0.1;
        range 192.168.0.10 192.168.0.200;
}&lt;/pre&gt;&lt;br /&gt;
для fw2&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;ddns-update-style none;
ignore client-updates;
subnet 192.168.0.0 netmask 255.255.255.0 {
        option routers                  192.168.0.2;
        option subnet-mask              255.255.255.0;
        option domain-name              &quot;mynetwork&quot;;
        option domain-name-servers      192.168.0.2;
        range                           192.168.0.201 192.168.0.254;
}&lt;/pre&gt;&lt;br /&gt;
Как видно, диапазоны ip не пересекаются.&lt;br /&gt;
Кроме того, на каждом шлюзе установим bind для кэширования dns-запросов и поддержания локальной dns.&lt;br /&gt;
Не буду приводить полный файл конфигурации, желающие найдут нужную информацию. Предположим, что это /etc/named.conf.&lt;br /&gt;
fw1:&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;options {
  directory &quot;/var/named&quot;;
  forwarders {
    /* тут ip сервера dns для первого провайдера */
  };
  allow-transfer  { 192.168.0.2; };
  allow-query { 192.168.0.0/24; };
};

/* локальный домен  mynetwork. Описание зоны в файле  /var/named/mynetwork */
zone &quot;mynetwork&quot; {
                type master;
                file &quot;mynetwork&quot;;
        };
&lt;/pre&gt;&lt;br /&gt;
fw2:&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;options {
  directory &quot;/var/named&quot;;
  forwarders {
    /* тут ip сервера dns для второго провайдера */
  };
  allow-transfer  { none; };
  allow-query { 192.168.0.0/24; };
};

/* локальный домен  mynetwork. Дамп зоны в файле  /var/named/mynetwork */
zone &quot;mynetwork&quot; {
        type slave;
        masters { 192.168.0.1; };
        file &quot;mynetwork.dump&quot;;
};&lt;/pre&gt;&lt;br /&gt;
Таким образом, мы минимализируем запросы к локальной dns между сетями, что сэкономит трафик и уменьшит нагрузку на сеть, а так же обеспечит некоторую отказоустойчивость.&lt;br /&gt;
Приступим к конфигурации openvpn.&lt;br /&gt;
Советы по начальной установке и подробную инструкцию тоже пропущу. Кому надо - найдут. Шаги такие:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;установим OpenVPN на оба шлюза&lt;/li&gt;&lt;li&gt;создадим серверный ключ на fw1&lt;/li&gt;&lt;li&gt;создадим клиентский ключ для fw2 на fw1&lt;/li&gt;&lt;li&gt;перенесём клиентский ключ и сертификат ca.crt с fw1 на fw2&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
Примемся за конфиг fw1 (тоже приведён не весь) /etc/openvpn/server.conf&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;port 1194
;протокол udp выбран из-за меньшей нагрузки на сеть в сравнении с tcp
proto udp
dev tap
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key  # This file should be kept secret
server-bridge 192.168.0.1 255.255.255.0 192.168.0.3 192.168.0.9
; обеспечим сжатие
comp-lzo
&lt;/pre&gt;&lt;br /&gt;
В данном случае мы указываем, что openvpn запускается в качестве сервера с адресом 192.168.0.1, маской /24 и выдаёт адреса от .3 до .9 , слушает порт 1194 (стандартный), использует устройство tap (об этом чуть позже).&lt;br /&gt;
fw2: /etc/openvpn/client.conf&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;client
dev tap
proto udp
remote ip_of_fw1 1194
resolv-retry infinite
nobind
ca keys/ca.crt
cert keys/clnt.crt
key keys/clnt.key
comp-lzo
up /etc/openvpn/addiftobr&lt;/pre&gt;&lt;br /&gt;
Здесь мы указываем, чтобы клиент (client) соединялся с fw1 по внешнему адресу последнего и после этого запускал скрипт /etc/openvpn/addiftobr&lt;br /&gt;
Сам скрипт не сложен:&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;#!/bin/sh

/usr/sbin/brctl addif br0 tap0
/sbin/ifconfig tap0 0.0.0.0 promisc up&lt;/pre&gt;&lt;br /&gt;
Смысл такой. На fw1 подымается мост (bridge) br0:&lt;br /&gt;
/etc/sysconfig/network-scripts/ifcfg-br0:&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
ONBOOT=yes
DELAY=0&lt;/pre&gt;&lt;br /&gt;
в него складывается интерфейс внутренней сети (предположим, eth0):&lt;br /&gt;
&lt;pre class=&quot;bb-code-block&quot;&gt;DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
TYPE=Ethernet
BRIDGE=br0&lt;/pre&gt;&lt;br /&gt;
После запуска openvpn в качестве сервера, автоматически создаётся устройство tap0, через которое демон гоняет свой трафик. А tap0 тоже складывается в br0.&lt;br /&gt;
На fw2 почти так же. Создаётся мост, куда помещается внутренний интерфейс. ip у моста статический 192.168.0.2. Подробнее о мостах ищите в документации. После запуска openvpn в качестве клиента создастся устройство tap0 и выполнится скрипт помещения его в мост.&lt;br /&gt;
И не забываем перекрыть пакеты dhcp через Интернет:&lt;br /&gt;
&lt;code class=&quot;bb-code&quot;&gt;iptables -A FORWARD -p udp -m udp --dport 67 -j DROP&lt;/code&gt;&lt;br /&gt;
на обоих шлюзах.&lt;br /&gt;
Если всё получится успешно, то мы можем без проблем пользоваться ресурсами сети как единым целым, не боясь за безопасность, ведь трафик шифруется.&lt;/p&gt;</description>
 <comments>http://www.permlug.org/node/3736/#comments</comments>
 <category domain="http://www.permlug.org/taxonomy/term/147/">openvpn</category>
 <category domain="http://www.permlug.org/taxonomy/term/148/">vpn</category>
 <category domain="http://www.permlug.org/taxonomy/term/71/">Документация</category>
 <category domain="http://www.permlug.org/taxonomy/term/146/">маршрутизация</category>
 <category domain="http://www.permlug.org/taxonomy/term/149/">сети</category>
 <enclosure url="http://www.permlug.org/files/firewall.png" length="24196" type="image/png" />
 <pubDate>Wed, 12 Mar 2008 19:48:17 +0300</pubDate>
 <dc:creator>Grifon</dc:creator>
 <guid isPermaLink="false">3736 at http://www.permlug.org</guid>
</item>
</channel>
</rss>
