<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://www.fateyev.com/ru/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel>
        <title>Денис Фатеев unix:2010</title>
        <description></description>
        <link>http://www.fateyev.com/ru/</link>
        <lastBuildDate>Fri, 17 Apr 2026 01:46:35 +0000</lastBuildDate>
        <generator>FeedCreator 1.7.2-ppt DokuWiki</generator>
        <image>
            <url>http://www.fateyev.com/ru/lib/tpl/fateyev/images/favicon.ico</url>
            <title>Денис Фатеев</title>
            <link>http://www.fateyev.com/ru/</link>
        </image>
        <item>
            <title>Организация VPN-сети (часть восьмая)</title>
            <link>http://www.fateyev.com/ru/unix/2010/deploy_vpn_network_8</link>
            <description>
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
На данный момент мы имеем частную &lt;a href=&quot;http://ru.wikipedia.org/wiki/VPN&quot; class=&quot;interwiki iw_wpru&quot; title=&quot;http://ru.wikipedia.org/wiki/VPN&quot;&gt;VPN&lt;/a&gt;-сеть маршрутизаторов, развернутую поверх каналов провайдера. Осталось настроить маршрутизацию на роутерах, чтобы связать воедино локальные сети филиалов. 
&lt;/p&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;strong&gt;Головной филиал (сервер OpenVPN)&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
В конфигурационном файле сервера OpenVPN &lt;em&gt;(/etc/openvpn/server.conf)&lt;/em&gt; добавляем маршруты на сети, находящиеся за роутерами филиалов (это можно сделать в том блоке, где был определён ccd-каталог). Убираем закомментированную строку и прописываем свои значения:
&lt;/p&gt;
&lt;pre class=&quot;code cpp&quot;&gt;....
&lt;span class=&quot;co2&quot;&gt;# EXAMPLE: Suppose the client&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;# having the certificate common name &amp;quot;Thelonious&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;# also has a small subnet behind his connecting&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;# machine, such as 192.168.40.128/255.255.255.248.&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;# First, uncomment out these lines:&lt;/span&gt;
client&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;config&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;dir ccd
route 192.168.1.0 255.255.255.0
route 192.168.2.0 255.255.255.0
route 192.168.3.0 255.255.255.0
&lt;span class=&quot;co2&quot;&gt;# Then create a file ccd/Thelonious with this line:&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#   iroute 192.168.40.128 255.255.255.248&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;# This will allow Thelonious' private subnet to&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;# access the VPN.  This example will only work&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;# if you are routing, not bridging, i.e. you are&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;# using &amp;quot;dev tun&amp;quot; and &amp;quot;server&amp;quot; directives.&lt;/span&gt;
....&lt;/pre&gt;

&lt;p&gt;
Этими директивами мы сообщаем OpenVPN-серверу, что указанные маршруты должны добавляться в системную таблицу маршрутизации при запуске службы и удаляться при остановке. 
&lt;/p&gt;

&lt;p&gt;
Включаем внутренний роутинг OpenVPN на сети филиалов. Переходим в каталог &lt;em&gt;/etc/openvpn/ccd&lt;/em&gt; и редактируем файлы клиентских настроек, прописывая в каждый из них параметры сети, находящейся за ним.
&lt;/p&gt;

&lt;p&gt;
На примере файла &lt;em&gt;/etc/openvpn/ccd/filial2&lt;/em&gt;, должна получится такая картина:
&lt;/p&gt;
&lt;pre class=&quot;code cpp&quot;&gt;ifconfig&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;push 10.10.0.5 10.10.0.6
iroute 192.168.1.0 255.255.255.0&lt;/pre&gt;

&lt;p&gt;
Остальные файлы клиентских настроек в этом каталоге (&lt;em&gt;filial3&lt;/em&gt;, &lt;em&gt;filial4&lt;/em&gt; и т.п.) – отредактируйте сами по аналогии. 
&lt;/p&gt;

&lt;p&gt;
Разрешаем форвардинг пакетов между интерфейсами в &lt;em&gt;iptables&lt;/em&gt; (добавляем записи в файл &lt;em&gt;/etc/sysconfig/iptables&lt;/em&gt;):
&lt;/p&gt;
&lt;pre class=&quot;code cpp&quot;&gt;&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;A FORWARD &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;i eth1 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;o tun0 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;j ACCEPT
&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;A FORWARD &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;i tun0 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;o eth1 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;j ACCEPT&lt;/pre&gt;

&lt;p&gt;
Здесь &lt;em&gt;&amp;#039;eth1&amp;#039;&lt;/em&gt; – интерфейс, которым маршрутизатор подключен в локальную сеть.
&lt;/p&gt;

&lt;p&gt;
После внесения указанных изменений необходимо перезапустить &lt;em&gt;openvpn&lt;/em&gt; и &lt;em&gt;iptables:&lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[root@gateway1 ~]# /etc/init.d/openvpn restart
[root@gateway1 ~]# /etc/init.d/iptables restart&lt;/pre&gt;

&lt;p&gt;
На основном маршрутизаторе сети головного филиала необходимо прописать маршруты на сети прочих филиалов, указав шлюзом наш маршрутизатор &lt;a href=&quot;http://ru.wikipedia.org/wiki/VPN&quot; class=&quot;interwiki iw_wpru&quot; title=&quot;http://ru.wikipedia.org/wiki/VPN&quot;&gt;VPN&lt;/a&gt;-сети; либо для всех компьютеров сети назначить наш маршрутизатор шлюзом по умолчанию. 
&lt;/p&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;strong&gt;Дочерний филиал (клиент OpenVPN)&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;На VPN-маршрутизаторе филиала&lt;/em&gt; разрешаем форвардинг пакетов между интерфейсами в &lt;em&gt;iptables&lt;/em&gt; (добавляем записи в файл &lt;em&gt;/etc/sysconfig/iptables&lt;/em&gt;):
&lt;/p&gt;
&lt;pre class=&quot;code cpp&quot;&gt;&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;A FORWARD &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;i eth1 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;o tun0 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;j ACCEPT
&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;A FORWARD &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;i tun0 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;o eth1 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;j ACCEPT&lt;/pre&gt;

&lt;p&gt;
Здесь &lt;em&gt;&amp;#039;eth1&amp;#039;&lt;/em&gt; – интерфейс, которым маршрутизатор подключен в локальную сеть филиала.
&lt;/p&gt;

&lt;p&gt;
Перезапускаем &lt;em&gt;iptables:&lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[root@gateway2 ~]# /etc/init.d/iptables restart&lt;/pre&gt;

&lt;p&gt;
Перезапускаем службу &lt;em&gt;openvpn&lt;/em&gt; для форсированного переподключения к &lt;a href=&quot;http://ru.wikipedia.org/wiki/VPN&quot; class=&quot;interwiki iw_wpru&quot; title=&quot;http://ru.wikipedia.org/wiki/VPN&quot;&gt;VPN&lt;/a&gt;-серверу:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[root@gateway2 ~]# /etc/init.d/openvpn restart&lt;/pre&gt;

&lt;p&gt;
В локальной сети &lt;em&gt;дочернего филиала&lt;/em&gt; на основном маршрутизаторе сети необходимо прописать маршруты на сети прочих филиалов, указав шлюзом наш &lt;a href=&quot;http://ru.wikipedia.org/wiki/VPN&quot; class=&quot;interwiki iw_wpru&quot; title=&quot;http://ru.wikipedia.org/wiki/VPN&quot;&gt;VPN&lt;/a&gt;-маршрутизатор филиала; как вариант, назначить наш маршрутизатор шлюзом по умолчанию для всех машин в сети.
&lt;/p&gt;

&lt;p&gt;
&lt;br/&gt;

В результате вышеописанных действий, компьютеры сети основного филиала смогут обращаться к компьютерам дочерних филиалов, и наоборот – из дочернего филиала можно подключаться к компьютерам основного. 
&lt;/p&gt;

&lt;p&gt;
По умолчанию, каждая клиентская сеть может видеть только сеть основного филиала (а основной филиал «видит» всех клиентов), в большинстве случаев это необходимое условие по соображениям безопасности. Если всё же нужно, чтобы клиентские подсети могли обращаться друг к другу, на стороне OpenVPN-сервера нужно сделать некоторые дополнительные настройки:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Раскомментируем в конфигурационном файле &lt;em&gt;/etc/openvpn/server.conf&lt;/em&gt; параметр &lt;em&gt;&amp;#039;client-to-client&amp;#039;&lt;/em&gt; (прочтите его назначение в комментариях);&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Разрешаем форвардинг пакетов в &lt;em&gt;iptables&lt;/em&gt; (добавляем запись в файл &lt;em&gt;/etc/sysconfig/iptables&lt;/em&gt;):&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;code cpp&quot;&gt;&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;A FORWARD &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;i tun0 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;o tun0 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;j ACCEPT&lt;/pre&gt;

&lt;p&gt;
После внесения изменений не забудьте перезапустить &lt;em&gt;iptables&lt;/em&gt; и &lt;em&gt;openvpn:&lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[root@gateway1 ~]# /etc/init.d/iptables restart
[root@gateway1 ~]# /etc/init.d/openvpn restart&lt;/pre&gt;

&lt;p&gt;
&lt;br/&gt;

На этом настройка нашей &lt;a href=&quot;http://ru.wikipedia.org/wiki/VPN&quot; class=&quot;interwiki iw_wpru&quot; title=&quot;http://ru.wikipedia.org/wiki/VPN&quot;&gt;VPN&lt;/a&gt;-сети завершена. Проверьте, что компьютеры филиалов могут обращаться по друг к другу по IP-адресу (или по доменному имени, если настроена служба &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;).
&lt;/p&gt;

&lt;p&gt;
В следующей, заключительной части, будут рассмотрены некоторые моменты в настройке, расширяющие функционал и показывающие детали, которые могли остаться «за кадром».
&lt;/p&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;a href=&quot;http://www.fateyev.com/ru/unix/2009/deploy_vpn_network_7&quot; class=&quot;wikilink1&quot; title=&quot;unix:2009:deploy_vpn_network_7&quot;&gt;Организация VPN-сети (часть седьмая)&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.fateyev.com/ru/unix/2010/deploy_vpn_network_9&quot; class=&quot;wikilink1&quot; title=&quot;unix:2010:deploy_vpn_network_9&quot;&gt;Организация VPN-сети (часть девятая)&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://www.fateyev.com/ru/tag/linux?do=showtag&amp;amp;tag=linux&quot; class=&quot;wikilink1&quot; title=&quot;tag:linux&quot; rel=&quot;tag&quot;&gt;linux&lt;/a&gt;,
	&lt;a href=&quot;http://www.fateyev.com/ru/tag/vpn?do=showtag&amp;amp;tag=vpn&quot; class=&quot;wikilink1&quot; title=&quot;tag:vpn&quot; rel=&quot;tag&quot;&gt;vpn&lt;/a&gt;,
	&lt;a href=&quot;http://www.fateyev.com/ru/tag/network?do=showtag&amp;amp;tag=network&quot; class=&quot;wikilink1&quot; title=&quot;tag:network&quot; rel=&quot;tag&quot;&gt;network&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;span class=&quot;plugin_feedmod_comments&quot;&gt;
  &lt;a href=&quot;http://www.fateyev.com/ru/unix/2010/deploy_vpn_network_8#discussion__section&quot; title=&quot;Read or add comments to this article&quot;&gt;Read or add comments to this article&lt;/a&gt;
&lt;/span&gt;
</description>
        <category>linux</category>
        <category>vpn</category>
        <category>network</category>
            <pubDate>Mon, 22 Nov 2010 08:59:00 +0000</pubDate>
        </item>
        <item>
            <title>Организация VPN-сети (часть девятая)</title>
            <link>http://www.fateyev.com/ru/unix/2010/deploy_vpn_network_9</link>
            <description>
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Часто задаваемые вопросы:
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;1) Возможно ли ограничивать доступ к определенным ресурсам с отдельной машины или филиала?&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
В предыдущих заметках не используется фильтрация по параметрам клиента. С помощью правил &lt;em&gt;iptables&lt;/em&gt; можно описать все параметры доступа для вашего конкретного случая; например, закрыть доступ по определенным портам или запретить обращения с/на некоторые IP-адреса. Обратитесь к &lt;a href=&quot;http://www.opennet.ru/docs/RUS/iptables/&quot; class=&quot;urlextern&quot; title=&quot;http://www.opennet.ru/docs/RUS/iptables/&quot;  rel=&quot;nofollow&quot;&gt;руководству&lt;/a&gt; по &lt;em&gt;iptables&lt;/em&gt; для получения дополнительной информации.
&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;em&gt;2) Почему компьютеры другого филиала не видны в моем «Сетевом окружении»?&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Потому, что широковещательные пакеты не ходят через нашу &lt;a href=&quot;http://ru.wikipedia.org/wiki/VPN&quot; class=&quot;interwiki iw_wpru&quot; title=&quot;http://ru.wikipedia.org/wiki/VPN&quot;&gt;VPN&lt;/a&gt;-сеть, и это создает видимость недоступности компьютеров удаленной сети для пользователей. Тем не менее, компьютеры доступны по SMB по IP-адресу или доменному имени, например &lt;a href=&quot;file://///192.168.1.120/&quot; class=&quot;windows&quot; title=&quot;\\192.168.1.120\&quot;&gt;\\192.168.1.120\&lt;/a&gt;. Если по какой-то причине вам нужно, чтобы VPN поддерживала &lt;em&gt;broadcast&lt;/em&gt;, используйте режим &lt;a href=&quot;http://openvpn.net/index.php/open-source/faq.html#bridge2&quot; class=&quot;urlextern&quot; title=&quot;http://openvpn.net/index.php/open-source/faq.html#bridge2&quot;  rel=&quot;nofollow&quot;&gt;TAP&lt;/a&gt; вкупе с объединением виртуального адаптера OpenVPN и &lt;abbr title=&quot;Local Area Network&quot;&gt;LAN&lt;/abbr&gt;-интерфейса в мост &lt;em&gt;(&lt;a href=&quot;http://openvpn.net/index.php/open-source/documentation/miscellaneous/76-ethernet-bridging.html&quot; class=&quot;urlextern&quot; title=&quot;http://openvpn.net/index.php/open-source/documentation/miscellaneous/76-ethernet-bridging.html&quot;  rel=&quot;nofollow&quot;&gt;bridge&lt;/a&gt;)&lt;/em&gt;. 
&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;em&gt;3) Возможно ли организовать доступ удаленных клиентов в VPN-сеть через общедоступные сети (Интернет)?&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Если политика безопасности вашей компании разрешает удаленный доступ, то технологически здесь нет никаких препятствий. На пограничном интернет-маршрутизаторе вашей компании обеспечиваете проброс OpenVPN-портов (в зависимости от вашей конфигурации, &lt;em&gt;1194/udp&lt;/em&gt; или &lt;em&gt;1194/tcp&lt;/em&gt;) на машину, которая служит OpenVPN-сервером; создаете ключи и сертификаты для удаленных клиентов. На клиентскую машину нужно установить OpenVPN-клиент (существуют версии под все распространенные ОС, в том числе &lt;a href=&quot;http://openvpn.se/&quot; class=&quot;urlextern&quot; title=&quot;http://openvpn.se/&quot;  rel=&quot;nofollow&quot;&gt;для Windows&lt;/a&gt;) и указать в его конфигурации пару ключ/сертификат для подключения к VPN-серверу.
&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;em&gt;4) Хотелось бы считать трафик VPN-канала, причем с детализацией по времени и клиентам. Как это сделать?&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Решений здесь много; наиболее привлекательным кажется вариант с &lt;a href=&quot;http://ru.wikipedia.org/wiki/Netflow&quot; class=&quot;interwiki iw_wpru&quot; title=&quot;http://ru.wikipedia.org/wiki/Netflow&quot;&gt;Netflow&lt;/a&gt; (см. пример &lt;a href=&quot;http://www.ylsoftware.com/news/492&quot; class=&quot;urlextern&quot; title=&quot;http://www.ylsoftware.com/news/492&quot;  rel=&quot;nofollow&quot;&gt;здесь&lt;/a&gt;) или аккаунтинга с помощью &lt;a href=&quot;http://ru.wikipedia.org/wiki/RADIUS&quot; class=&quot;interwiki iw_wpru&quot; title=&quot;http://ru.wikipedia.org/wiki/RADIUS&quot;&gt;RADIUS&lt;/a&gt;-сервера. Чтобы облегчить администрирование больших распределенных сетей, возможно, следует подумать о покупке лицензии на &lt;a href=&quot;http://openvpn.net/index.php/access-server/download-openvpn-as.html&quot; class=&quot;urlextern&quot; title=&quot;http://openvpn.net/index.php/access-server/download-openvpn-as.html&quot;  rel=&quot;nofollow&quot;&gt;OpenVPN Access Server&lt;/a&gt;. Недавно на &lt;a href=&quot;http://unixforum.org/index.php?showtopic=91283&quot; class=&quot;urlextern&quot; title=&quot;http://unixforum.org/index.php?showtopic=91283&quot;  rel=&quot;nofollow&quot;&gt;Unixforum-е&lt;/a&gt; было обсуждение способов подсчёта трафика. 
&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;em&gt;5) Как в VPN-сети разграничить трафик по приоритетам, ограничить ширину VPN-канала для определенных приложений?&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Для системы, интерфейс OpenVPN &lt;em&gt;(tun/tap)&lt;/em&gt; ничем не отличается от физических сетевых интерфейсов, поэтому к нему применимы все методы организации управления передачей данных (классы шейпера, очереди и т.п.) Развернутое руководство по настройке шейпинга можно найти &lt;a href=&quot;http://gazette.linux.ru.net/rus/articles/index-lartc.html&quot; class=&quot;urlextern&quot; title=&quot;http://gazette.linux.ru.net/rus/articles/index-lartc.html&quot;  rel=&quot;nofollow&quot;&gt;здесь&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
Для примера, вот несколько реальных конфигураций, действующих в нашей сети:
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;а) Установка приоритетов передачи трафика (QoS) без гарантирования пропускной способности для каждого из видов трафика (обычно используется в том случае, когда общей ширины канала достаточно и нужно «пропустить» некоторые пакеты впереди остальных, несколько уменьшив задержку при их передаче):&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
В &lt;em&gt;/etc/sysconfig/iptables&lt;/em&gt; задаем правила маркировки нужного нам трафика:
&lt;/p&gt;
&lt;pre class=&quot;code cpp&quot;&gt;&lt;span class=&quot;co2&quot;&gt;# -- MANGLE table&lt;/span&gt;
&lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;mangle
&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;PREROUTING ACCEPT &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;POSTROUTING ACCEPT &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;INPUT ACCEPT &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;FORWARD ACCEPT &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;OUTPUT ACCEPT &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;# All VoIP-traffic with `mark 5`&lt;/span&gt;
&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;A POSTROUTING &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;o tun0 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;p udp &lt;span class=&quot;sy2&quot;&gt;--&lt;/span&gt;sport &lt;span class=&quot;nu0&quot;&gt;4569&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;j MARK &lt;span class=&quot;sy2&quot;&gt;--&lt;/span&gt;set&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;mark &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;A POSTROUTING &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;o tun0 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;p udp &lt;span class=&quot;sy2&quot;&gt;--&lt;/span&gt;sport &lt;span class=&quot;nu0&quot;&gt;5060&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;j MARK &lt;span class=&quot;sy2&quot;&gt;--&lt;/span&gt;set&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;mark &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;A POSTROUTING &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;o tun0 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;p udp &lt;span class=&quot;sy2&quot;&gt;--&lt;/span&gt;sport &lt;span class=&quot;nu0&quot;&gt;10000&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;12000&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;j MARK &lt;span class=&quot;sy2&quot;&gt;--&lt;/span&gt;set&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;mark &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;# RDP-traffic with `mark 6`&lt;/span&gt;
&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;A POSTROUTING &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;o tun0 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;p tcp &lt;span class=&quot;sy2&quot;&gt;--&lt;/span&gt;sport &lt;span class=&quot;nu0&quot;&gt;3389&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;j MARK &lt;span class=&quot;sy2&quot;&gt;--&lt;/span&gt;set&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;mark &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;# ICMP-traffic with `mark 6`&lt;/span&gt;
&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;A POSTROUTING &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;o tun0 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;p icmp &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;j MARK &lt;span class=&quot;sy2&quot;&gt;--&lt;/span&gt;set&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;mark &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;# Some third-party applications&lt;/span&gt;
&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;A POSTROUTING &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;o tun0 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;p tcp &lt;span class=&quot;sy2&quot;&gt;--&lt;/span&gt;dport &lt;span class=&quot;nu0&quot;&gt;2221&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2224&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;j MARK &lt;span class=&quot;sy2&quot;&gt;--&lt;/span&gt;set&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;mark &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;
&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;A POSTROUTING &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;o tun0 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;p udp &lt;span class=&quot;sy2&quot;&gt;--&lt;/span&gt;dport &lt;span class=&quot;nu0&quot;&gt;2221&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2224&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;j MARK &lt;span class=&quot;sy2&quot;&gt;--&lt;/span&gt;set&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;mark &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;
&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;A POSTROUTING &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;o tun0 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;p tcp &lt;span class=&quot;sy2&quot;&gt;--&lt;/span&gt;dport &lt;span class=&quot;nu0&quot;&gt;3108&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3111&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;j MARK &lt;span class=&quot;sy2&quot;&gt;--&lt;/span&gt;set&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;mark &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;
&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;A POSTROUTING &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;o tun0 &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;p udp &lt;span class=&quot;sy2&quot;&gt;--&lt;/span&gt;dport &lt;span class=&quot;nu0&quot;&gt;3108&lt;/span&gt;&lt;span class=&quot;sy4&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3111&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;j MARK &lt;span class=&quot;sy2&quot;&gt;--&lt;/span&gt;set&lt;span class=&quot;sy2&quot;&gt;-&lt;/span&gt;mark &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;
COMMIT&lt;/pre&gt;

&lt;p&gt;
Взято из конфигурации VPN-сервера центрального филиала, поэтому критериями маркировки, в основном, служат &lt;em&gt;tcp/udp-&lt;/em&gt;порты источника данных. В случае использования на клиентском роутере, требовалось бы маркировать пакеты по критерию «адрес/порт назначения».
&lt;/p&gt;

&lt;p&gt;
Описываем очереди для трафика (этот блок можно поместить в &lt;em&gt;/etc/rc.local&lt;/em&gt;):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;tc qdisc add dev tun0 root handle 1: prio priomap 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 0
tc qdisc add dev tun0 parent 1:1 handle 10: sfq limit 3000
tc qdisc add dev tun0 parent 1:2 handle 20: sfq
tc qdisc add dev tun0 parent 1:3 handle 30: sfq
tc filter add dev tun0 protocol ip parent 1: prio 1 handle 5 fw flowid 1:1
tc filter add dev tun0 protocol ip parent 1: prio 1 handle 6 fw flowid 1:2
tc filter add dev tun0 protocol ip parent 1: prio 1 handle 7 fw flowid 1:2&lt;/pre&gt;

&lt;p&gt;
Пакеты будут иметь приоритет в зависимости от метки (наибольший приоритет у пакетов, попадающих в очередь &lt;em&gt;1:1&lt;/em&gt;, т.е. маркированных меткой &lt;em&gt;«0х05»&lt;/em&gt;, остальные по нисходящей). Немаркированные пакеты имеют наименьший приоритет и идут очередью &lt;em&gt;1:3&lt;/em&gt;. Дополнительную информацию можно найти на &lt;a href=&quot;http://howtoforge.com/voip_qos_traffic_shaping_iproute2_asterisk&quot; class=&quot;urlextern&quot; title=&quot;http://howtoforge.com/voip_qos_traffic_shaping_iproute2_asterisk&quot;  rel=&quot;nofollow&quot;&gt;HowtoForge&lt;/a&gt; и &lt;a href=&quot;http://linux.die.net/man/8/tc-prio&quot; class=&quot;urlextern&quot; title=&quot;http://linux.die.net/man/8/tc-prio&quot;  rel=&quot;nofollow&quot;&gt;здесь&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;em&gt;б) Ограничение пропускной способности канала для каждого вида трафика (программа получает гарантированную полосу пропускания):&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Конфигурация &lt;em&gt;iptables&lt;/em&gt; остается такой же, как и в предыдущем примере; а вот правила шейпинга примут такой вид:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;/sbin/tc qdisc add dev tun0 root handle 1: htb default 13
/sbin/tc class add dev tun0 parent 1: classid 1:1 htb rate 920kbit

/sbin/tc class add dev tun0 parent 1:1 classid 1:10 htb rate 128kbit ceil 512kbit prio 0
/sbin/tc class add dev tun0 parent 1:1 classid 1:11 htb rate 128kbit ceil 512kbit prio 1
/sbin/tc class add dev tun0 parent 1:1 classid 1:12 htb rate 128kbit ceil 512kbit prio 2
/sbin/tc class add dev tun0 parent 1:1 classid 1:13 htb rate 128kbit ceil 128kbit prio 3

/sbin/tc filter add dev tun0 parent 1:0 protocol ip prio 1 handle 5 fw classid 1:10
/sbin/tc filter add dev tun0 parent 1:0 protocol ip prio 2 handle 6 fw classid 1:11
/sbin/tc filter add dev tun0 parent 1:0 protocol ip prio 3 handle 7 fw classid 1:12
/sbin/tc filter add dev tun0 parent 1:0 protocol ip prio 4 handle 8 fw classid 1:13

/sbin/tc qdisc add dev tun0 parent 1:10 handle 100: sfq perturb 5
/sbin/tc qdisc add dev tun0 parent 1:11 handle 110: sfq perturb 5
/sbin/tc qdisc add dev tun0 parent 1:12 handle 120: sfq perturb 5
/sbin/tc qdisc add dev tun0 parent 1:13 handle 130: sfq perturb 5&lt;/pre&gt;

&lt;p&gt;
По аналогии с предыдущим примером, здесь мы создаем четыре очереди, но уже классифицированные по &lt;a href=&quot;http://en.wikipedia.org/wiki/Hierarchical_Token_Bucket&quot; class=&quot;interwiki iw_wp&quot; title=&quot;http://en.wikipedia.org/wiki/Hierarchical_Token_Bucket&quot;&gt;HTB&lt;/a&gt;. Классы описаны с различными параметрами приоритетов и пропускной способности.
&lt;/p&gt;

&lt;p&gt;
Предполагается, что суммарная пропускная способность всего канала 1Мбит/с (минус 10-15% зарезервировано на организацию QoS – итого классам доступно 920Кбит/с). Очередь первого класса (куда попадают пакеты, маркированные меткой «0х05») имеет наивысший приоритет и гарантированную полосу 128Кбит/с, расширяемую по мере необходимости до 512Кбит/с за счет неиспользованной полосы очередей классов с меньшим приоритетом, если таковые имеются. 
&lt;/p&gt;

&lt;p&gt;
Аналогично для второго и третьего класса в наборе – идея состоит в том, чтобы предоставить для данных типов трафика гарантированную пропускную способность, дополнительно задействуя неиспользуемый канал «нижних» очередей, если это возможно. 
&lt;/p&gt;

&lt;p&gt;
Очередь четвертого класса, куда попадает весь неклассифицированный и, следовательно, неприоритетный трафик, имеет статичный канал 128Кбит/с и может лишь «давать в долг» пропускную способность очередям «верхних» классов.
&lt;/p&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;a href=&quot;http://www.fateyev.com/ru/unix/2010/deploy_vpn_network_8&quot; class=&quot;wikilink1&quot; title=&quot;unix:2010:deploy_vpn_network_8&quot;&gt;Организация VPN-сети (часть восьмая)&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://www.fateyev.com/ru/tag/linux?do=showtag&amp;amp;tag=linux&quot; class=&quot;wikilink1&quot; title=&quot;tag:linux&quot; rel=&quot;tag&quot;&gt;linux&lt;/a&gt;,
	&lt;a href=&quot;http://www.fateyev.com/ru/tag/vpn?do=showtag&amp;amp;tag=vpn&quot; class=&quot;wikilink1&quot; title=&quot;tag:vpn&quot; rel=&quot;tag&quot;&gt;vpn&lt;/a&gt;,
	&lt;a href=&quot;http://www.fateyev.com/ru/tag/network?do=showtag&amp;amp;tag=network&quot; class=&quot;wikilink1&quot; title=&quot;tag:network&quot; rel=&quot;tag&quot;&gt;network&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;span class=&quot;plugin_feedmod_comments&quot;&gt;
  &lt;a href=&quot;http://www.fateyev.com/ru/unix/2010/deploy_vpn_network_9#discussion__section&quot; title=&quot;Read or add comments to this article&quot;&gt;Read or add comments to this article&lt;/a&gt;
&lt;/span&gt;
</description>
        <category>linux</category>
        <category>vpn</category>
        <category>network</category>
            <pubDate>Wed, 05 Jan 2011 06:35:00 +0000</pubDate>
        </item>
    </channel>
</rss>
