<?xml version="1.0"?>
<rss version="2.0"><channel><title>UNIX Latest Topics</title><link>https://it4it.club/forum/8-unix/</link><description>UNIX Latest Topics</description><language>en</language><item><title>Switch Port Mapping, &#x441;&#x442;&#x440;&#x43E;&#x438;&#x43C; &#x43A;&#x430;&#x440;&#x442;&#x443; &#x440;&#x430;&#x441;&#x43F;&#x43E;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F; &#x445;&#x43E;&#x441;&#x442;&#x43E;&#x432; &#x43D;&#x430; &#x43F;&#x43E;&#x440;&#x442;&#x430;&#x445; &#x441;&#x432;&#x438;&#x447;&#x435;&#x439;</title><link>https://it4it.club/topic/23-switch-port-mapping-stroim-kartu-raspolozheniya-hostov-na-portah-svichey/</link><description><![CDATA[
<p>
	<strong>Update 03.12.2015</strong>
</p>

<ol>
<li>
		Добавлена возможность отображать <strong>DNS</strong> имена для определенных хостов, это позволит явно и человеко-понятно идентифицировать соответствующие узлы в сети. Отсутствие записи на <strong>DNS</strong> сервере должно привлечь соответствующее внимание к хосту.

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Скрытый текст</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					<a class="ipsAttachLink ipsAttachLink_image" href="https://it4it.club/uploads/monthly_2015_12/sw6.jpg.7c2a41ea4061df770335c3369438cfa4.jpg" rel=""><img alt="sw6.thumb.jpg.be5279ee3b621aa294a6db47a4" class="ipsImage ipsImage_thumbnailed" data-fileid="179" data-unique="v89dtg60d" src="https://it4it.club/uploads/monthly_2015_12/sw6.thumb.jpg.be5279ee3b621aa294a6db47a4aa7a17.jpg"></a>
				</p>
			</div>
		</div>

		<p>
			 
		</p>
	</li>
	<li>
		В конфигурацию добавлен параметр <span style="color:#008000;"><strong>$domain</strong></span> позволяющий удалять из <strong>DNS</strong> имени хоста имя домена. Чтобы из <strong>name.domain.com</strong> сделать <strong>name</strong>, необходимо указать <span style="color:#008000;"><strong>$domain = ".domain.com"</strong></span>
	</li>
	<li>
		Обновлена база производителей сетевого оборудования - <span style="color:#008000;"><strong>oui.txt</strong></span>
	</li>
	<li>
		Мелки доработки интерфейса.
	</li>
</ol>
<p>
	 
</p>

<p>
	<strong>Update 26.11.2015</strong>
</p>

<ol>
<li>
		Добавлена возможность отображать реальные имена портов (<strong>Fa1</strong>, <strong>Ethernet1/0/1</strong>, <strong>Port1</strong> ...). Внимание: не все устройства способны передавать данную информацию, в связи с этим оставлены числовые идентификаторы, чтобы в таких случаях иметь систему идентификации.

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Скрытый текст</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					<a class="ipsAttachLink ipsAttachLink_image" href="https://it4it.club/uploads/monthly_2015_11/sw5.jpg.1036a3e7ab4dd3c7ba4411b36b63a62a.jpg" rel=""><img alt="sw5.thumb.jpg.dcddec4de97e754ccd995e572e" class="ipsImage ipsImage_thumbnailed" data-fileid="166" data-unique="vg7ahvvwz" src="https://it4it.club/uploads/monthly_2015_11/sw5.thumb.jpg.dcddec4de97e754ccd995e572eed919c.jpg"></a>
				</p>
			</div>
		</div>

		<p>
			 
		</p>
	</li>
	<li>
		Добавлена возможность описывать в конфигурации настройки для каждого устройства отдельно. Если не использовать эту возможность, то для оборудования будет применена общая конфигурация.
	</li>
	<li>
		Добавлена возможность описывать в конфигурации уникальные OID-ы для конкретного оборудования аналогично п.2.
	</li>
	<li>
		Мелкие доработки интерфейса и кода.
	</li>
</ol>
<p>
	 
</p>

<p style="text-align:center;">
	<a class="ipsAttachLink ipsAttachLink_image" href="https://it4it.club/uploads/monthly_2015_11/sw4.png.64ef45154e2ebd0b7e791b1d853b7b81.png" rel=""><img alt="sw4.thumb.png.6a856c6e3d9af36c7fe8e2ee6b" class="ipsImage ipsImage_thumbnailed" data-fileid="141" data-unique="djuovejyn" src="https://it4it.club/uploads/monthly_2015_11/sw4.thumb.png.6a856c6e3d9af36c7fe8e2ee6b50ff5f.png"></a>
</p>

<p>
	В данной теме мы будем рассуждать о мониторинге сетевого оборудования и подключенных к нему хостах. Следовало бы разместить её в другом разделе, но 90% всех манипуляций и дальнейшая эксплуатация будет производиться на UNIX-подобной платформе. В моем случае используется:
</p>

<ol>
<li>
		Linux Ubuntu 14.04
	</li>
	<li>
		Apache/2.4.7
	</li>
	<li>
		PHP 5.5.9
	</li>
	<li>
		Библиотека php5-snmp
	</li>
</ol>
<p>
	Также само сетевое оборудование (маршрутизаторы и свичи) должно поддерживать работу по протоколу SNMP и соответствовать стандартам ISO.
</p>

<p>
	Проект разработан отталкиваясь от топологии сети - звезда. Имеются множество отдельных подсетей 192.168.0.0 все они ходят во внешний мир через маршрутизаторы (в моем случае фирмы Cisco). В самих подсетях используются различные свичи, по большей части поддерживающие SNMP v1 и выше.
</p>

<p>
	Ранее я уже поднимал данную тему на другом, дружественном, форуме, но потом работа над проектом бала остановлена. На данный момент вопрос опять стал актуален и решено переделать как основную программу, так и внешний вид. Старая версия была написана на скорую руку и выглядела невзрачно и с большими изъянами в коде.
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Скрытый текст</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="sw1.png.223c16bb9db3c4b0b87ce510be74d07c" class="ipsImage ipsImage_thumbnailed" data-fileid="137" data-unique="ydfr89ujk" src="https://it4it.club/uploads/monthly_2015_11/sw1.png.223c16bb9db3c4b0b87ce510be74d07c.png"></p>
	</div>
</div>

<p>
	На данный момент проект преобразился и выглядит следующим образом. <span style="color:#FF0000;"><strong>Ваш браузер должен поддерживать HTML5.</strong></span>
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Скрытый текст</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<a class="ipsAttachLink ipsAttachLink_image" href="https://it4it.club/uploads/monthly_2015_11/sw2.png.b067dee8181da6ab2380caf3dd331fd6.png" rel=""><img alt="sw2.thumb.png.b5a20123c13502de0bab8994cc" class="ipsImage ipsImage_thumbnailed" data-fileid="139" data-unique="h4xxcxlvz" src="https://it4it.club/uploads/monthly_2015_11/sw2.thumb.png.b5a20123c13502de0bab8994cc5f1644.png"></a>
		</p>
	</div>
</div>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Скрытый текст</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<a class="ipsAttachLink ipsAttachLink_image" href="https://it4it.club/uploads/monthly_2015_11/sw3.png.25b01cc3de50ce5a4c252365769c686e.png" rel=""><img alt="sw3.thumb.png.88282e0fea5c631f3d66fece65" class="ipsImage ipsImage_thumbnailed" data-fileid="140" data-unique="cwevhuqzi" src="https://it4it.club/uploads/monthly_2015_11/sw3.thumb.png.88282e0fea5c631f3d66fece65371cdd.png"></a>
		</p>
	</div>
</div>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Скрытый текст</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<a class="ipsAttachLink ipsAttachLink_image" href="https://it4it.club/uploads/monthly_2015_11/sw4.png.64ef45154e2ebd0b7e791b1d853b7b81.png" rel=""><img alt="sw4.thumb.png.6a856c6e3d9af36c7fe8e2ee6b" class="ipsImage ipsImage_thumbnailed" data-fileid="141" data-unique="w1k98b7f9" src="https://it4it.club/uploads/monthly_2015_11/sw4.thumb.png.6a856c6e3d9af36c7fe8e2ee6b50ff5f.png"></a>
		</p>
	</div>
</div>

<p>
	Чтобы избежать вопроса "зачем это нужно?" предлагаю Вам задачку. Попробуйте назвать номер порта на свиче к которому подключен компьютер дяди Васи зная лишь его IP. Или еще интереснее - зная лишь производителя его сетевого оборудования. Или вопрос от начальника "Скажи мне, кто подключен к этому свичу, а я пока узнаю, кого нужно искать".
</p>

<p>
	Раньше это делалось следующим образом. Подключаемся к маршрутизатору и спрашиваем, какой MAC принадлежит интересующему нас IP, пусть это будет 192.168.0.3
</p>

<pre class="ipsCode">
cisco-router#sh arp | include Vlan1
Internet  192.168.0.1       210   0800.0694.d027  ARPA   Vlan1
Internet  192.168.0.2       210   0800.bdf0.0010  ARPA   Vlan1
Internet  192.168.0.3       210   000e.be08.001c  ARPA   Vlan1
Internet  192.168.0.4       210   000e.42ee.20cf  ARPA   Vlan1
Internet  192.168.0.5       210   0800.218e.be09  ARPA   Vlan1
Internet  192.168.0.6         5   20cf.0800.000e  ARPA   Vlan1
Internet  192.168.0.7         -   001c.0010.000e  ARPA   Vlan1
Internet  192.168.0.8         6   0010.1fc4.0800  ARPA   Vlan1
Internet  192.168.0.9         2   d027.0694.0800  ARPA   Vlan1
...</pre>

<p>
	Теперь мы знаем MAC, это 000e.be08.001c. Подключаемся к свичу и просим его показать нам таблицу MAC адресов с сортировкой по конкретному MAC-у.
</p>

<pre class="ipsCode">
cisco-switch#sh mac-address-table | include 000e.be08.001c
000e.be08.001c          Dynamic       1     FastEthernet21</pre>

<p>
	Теперь мы знаем, что интересующий нас (или не нас) хост использует порт FastEthernet21
</p>

<p>
	Все прошло относительно быстро и гладко. Но что делать, если порт имеет порядковый номер превышающий общее число физических портов на свиче, оборудование разных производителей и оно не поддерживает одинаковый формат MAC адресов, отсутствуют различные фильтры, как например "include" в оборудовании Cisco. При этом может быть несколько свичей с десятками хостов. Все это повлияет на время поиска и на конечный результат.
</p>

<p>
	<strong>Реализация</strong>
</p>

<p>
	Мы знаем, что и у какого оборудования спрашивать. Так и давайте спрашивать это используя SNMP протокол. Первым делом необходимо настроить Ваше сетевое оборудование, выставить необходимые разрешения и community. Описывать этот пункт нету смысла т.к у Вас своё оборудования, а у дяди Васи совсем другое.
</p>

<p>
	На сервере, где установлен Apache необходимо доставить библиотеку реализующий работу snmpwalk в PHP
</p>

<pre class="ipsCode">
apt-get install php5-snmp
service apache2 restart</pre>

<p>
	На самом деле большая часть работы уже сделана. Теперь необходимо скачать сам скрипт, он будет прикреплен к данному посту и отредактировать его под себя.
</p>

<p>
	<strong>Редактируем .htaccess</strong>
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted">
<span>RewriteEngine</span><span> </span><span>On</span><span>
</span><span>Options</span><span> </span><span>+</span><span>FollowSymlinks</span><span>
</span><span>Options</span><span> </span><span>-</span><span>MultiViews</span><span>

</span><span>RewriteBase</span><span> </span><span>/</span><span>switch</span><span>/</span><span>
</span><span>RewriteCond</span><span> </span><span>%{</span><span>REQUEST_FILENAME</span><span>}</span><span> </span><span>!-</span><span>f
</span><span>RewriteCond</span><span> </span><span>%{</span><span>REQUEST_FILENAME</span><span>}</span><span> </span><span>!-</span><span>d
</span><span>RewriteRule</span><span> </span><span>(.*)</span><span> index</span><span>.</span><span>php</span><span>?</span><span>$1 </span><span>[</span><span>L</span><span>]</span></pre>

<p>
	Убедитесь, что у Вас подключен модуль <strong>mod_rewrite</strong> и измените относительный путь указанный в <strong>RewriteBase</strong> на удобный Вам. Если закинуть каталог <strong>switch</strong> в корневую веб директории <strong>Apach</strong>, то вносить изменений в файл не нужно.
</p>

<p>
	<strong>Редактируем index.php</strong>
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted" style="">
<span class="pln">$url </span><span class="pun">=</span><span class="pln"> </span><span class="str">'http://'</span><span class="pun">.</span><span class="pln">$_SERVER</span><span class="pun">[</span><span class="str">"HTTP_HOST"</span><span class="pun">].</span><span class="str">'/switch/'</span><span class="pun">;</span><span class="pln">

$domain </span><span class="pun">=</span><span class="pln"> </span><span class="str">'.domain.com'</span><span class="pun">;</span><span class="pln">

$community </span><span class="pun">=</span><span class="pln"> </span><span class="str">'public'</span><span class="pun">;</span><span class="pln">
$unit </span><span class="pun">=</span><span class="pln"> array</span><span class="pun">(</span><span class="pln">
    </span><span class="str">'network_id'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> array</span><span class="pun">(</span><span class="pln">
        </span><span class="str">'name'</span><span class="pln">   </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'Желаемое для отображения имя подсети или объекта где сеть эксплуатируется'</span><span class="pun">,</span><span class="pln">
        </span><span class="str">'router'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'192.168.1.1'</span><span class="pun">,</span><span class="pln">
        </span><span class="str">'switch'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> array</span><span class="pun">(</span><span class="str">'192.168.1.2'</span><span class="pun">),</span><span class="pln">
    </span><span class="pun">),</span><span class="pln">
    </span><span class="str">'object_name'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> array</span><span class="pun">(</span><span class="pln">
        </span><span class="str">'name'</span><span class="pln">   </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'Желаемое для отображения имя подсети или объекта где сеть эксплуатируется'</span><span class="pun">,</span><span class="pln">
        </span><span class="str">'router'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'192.168.2.1'</span><span class="pun">,</span><span class="pln">
        </span><span class="str">'switch'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> array</span><span class="pun">(</span><span class="str">'192.168.2.2'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'192.168.2.3'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'192.168.2.4'</span><span class="pun">),</span><span class="pln">
    </span><span class="pun">),</span><span class="pln">

    </span><span class="com">// UPDATE 26.11.2015</span><span class="pln">
    </span><span class="str">'new_object'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> array</span><span class="pun">(</span><span class="pln">
        </span><span class="str">'name'</span><span class="pln">     </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'new object name'</span><span class="pun">,</span><span class="pln">
        </span><span class="str">'router'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'192.168.3.1'</span><span class="pun">,</span><span class="pln">
        </span><span class="str">'switch'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> array</span><span class="pun">(</span><span class="str">'192.168.3.2'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'192.168.3.3'</span><span class="pun">),</span><span class="pln">

        </span><span class="com">// Уникальные настройки для маршрутизатора 192.168.3.2</span><span class="pln">
        </span><span class="str">'192.168.3.1'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> array</span><span class="pun">(</span><span class="pln">
            </span><span class="str">'community'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'public2'</span><span class="pun">,</span><span class="pln">
        </span><span class="pun">),</span><span class="pln">

        </span><span class="com">// Уникальные настрокий для свича 192.168.3.3</span><span class="pln">
        </span><span class="str">'192.168.3.3'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> array</span><span class="pun">(</span><span class="pln">
            </span><span class="str">'community'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'public3'</span><span class="pun">,</span><span class="pln">
            </span><span class="str">'ifName'</span><span class="pln">    </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'.1.3.6.1.2.1.31.1.1.1.1'</span><span class="pun">,</span><span class="pln">
            </span><span class="str">'dot1dBasePortIfIndex'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'.1.3.6.1.2.1.17.1.4.1.2'</span><span class="pun">,</span><span class="pln">
        </span><span class="pun">),</span><span class="pln">
    </span><span class="pun">),</span><span class="pln">
</span><span class="pun">);</span></pre>

<p>
	Мы старались сделать конфигурацию интуитивно понятной, получилось это или нет, спорный вопрос. Поживем увидем, а пока разберем, что тут к чему.
</p>

<ol>
<li>
		<strong>$url</strong> - содержит <strong>http</strong> адрес до каталога со скриптом. Измените <strong>/switch/</strong> на используемый Вами
	</li>
	<li>
		<strong>network_id</strong>, <strong>object_name </strong>- любой понравившийся идентификатор для подсети. Используйте латиницу и\или цифры и не используйте пробелы.
	</li>
	<li>
		<strong>name </strong>- описание для подсети. Оно будет отображаться в списке на главной странице скрипта и в навигационном баре
	</li>
	<li>
		<strong>router </strong>- IP адрес маршрутизатора, через который подсеть ходит во внешний мир
	</li>
	<li>
		<strong>switch </strong>- список IP адресов свичей используемых в подсети
	</li>
</ol>
<p>
	Можно производить уникальную конфигурацию для любого сетевого устройства. Для этого в конфигурации нужного объекта необходимо указать адрес устройства и описать массив настроек для него. Можно изменять абсолютно любые существующие значения в скрипте. <span style="color:#FF0000;"><strong>ВНИМАНИЕ: если Вы не понимаете, за что отвечает та или иная переменная и как устроена эта кухня, лучше обратитесь к нам, и мы Вам обязательно поможем!</strong></span>
</p>

<p>
	Список рекомендуемых для изменения значений (описание значений имеется в самом скрипте):
</p>

<ol>
<li>
		<strong>community</strong>
	</li>
	<li>
		<strong>atPhysAddress</strong>
	</li>
	<li>
		<strong>sysDescr</strong>
	</li>
	<li>
		<strong>dot1dTpFdbAddress</strong>
	</li>
	<li>
		<strong>dot1dTpFdbPort</strong>
	</li>
	<li>
		<strong>dot1dBasePortIfIndex</strong>
	</li>
	<li>
		<strong>ifName</strong>
	</li>
</ol>
<p>
	<strong>Определение производителя по MAC адресу</strong>
</p>

<p>
	Каждому производителю выделяется определенный список MAC адресов для использования в его сетевом оборудовании. Ознакомиться с этим списком можно по адресу <a href="http://standards-oui.ieee.org/oui.txt" rel="external nofollow">http://standards-oui.ieee.org/oui.txt</a> Мы включили этот файл в состав архива, но советуем Вам периодически обновлять его.
</p>

<p>
	В скрипте используется <strong>shell_exec</strong>
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted">
<span>$vendor </span><span>=</span><span> explode</span><span>(</span><span>'(hex)'</span><span>,</span><span> shell_exec</span><span>(</span><span>"cat ./oui.txt | grep "</span><span>.</span><span>str_replace</span><span>(</span><span>' '</span><span>,</span><span> </span><span>'-'</span><span>,</span><span> substr</span><span>(</span><span>$mac</span><span>,</span><span> </span><span>0</span><span>,</span><span> </span><span>8</span><span>))));</span></pre>

<p>
	Это потенциально не безопасно, но мы не передаем ей данные полученные от пользовательского ввода, только MAC адреса. В любом случае <strong>shell_exec</strong> должен быть разрешен или часть кода, отвечающая за определения производителя, должна быть удалена.
</p>

<p>
	Есть очень интересная статья на сайте <strong><a href="http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/44800-mactoport44800.html" rel="external nofollow">CISCO</a></strong>. Она поможет Вам разобраться в принципах работы данного скрипта. К сожалению я узнал об этой статье уже после написания большей части кода программы. Но уже имеются идеи для следующей версии!
</p>
<iframe allowfullscreen="" class="ipsEmbed_finishedLoading" data-controller="core.front.core.autosizeiframe" data-embedcontent="" data-embedid="embed4276381178" scrolling="no" src="https://it4it.club/files/file/5-switch-port-mapping/?do=embed" style="overflow: hidden; height: 396px; max-width: 502px;"></iframe>

<p>
	<strong>PS: </strong>Если все сделано правильно, то Вы сможете насладится нашим велосипедом. Проект будет дорабатываться и обрастать всяческими "свистульками". Приятного использования <span class="ipsEmoji">😃</span>
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">23</guid><pubDate>Tue, 24 Nov 2015 13:50:30 +0000</pubDate></item><item><title>Ubuntu</title><link>https://it4it.club/topic/54-ubuntu/</link><description><![CDATA[
<p>
	Хочу поделится как я поднимал ipv6 через сервер Ubuntu.
</p>

<p>
	Регистрируемся <a href="https://tunnelbroker.net" rel="external nofollow">https://tunnelbroker.net</a> Пароль будет автоматически сгенерирован и выслан на указанный адрес электронной почты.
</p>

<p>
	 
</p>

<ol style="line-height:1.5em;margin:.3em 0px 0px 3.2em;padding:0px;list-style-image:none;color:rgb(0,0,0);font-family:'DejaVu Sans', Verdana, Tahoma, sans-serif;font-size:12.7px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);"><li style="margin-bottom:.1em;">
		<div>
			Выбрать в левом меню «User Functions &gt; Create Regular Tunnel»;
		</div>
	</li>
	<li style="margin-bottom:.1em;">
		<div>
			На открывшейся странице «Setup Regular IPv6 Tunnel» ввести свой текущий IP-адрес. Важно, чтобы у вас не были заблокированы входящие пакеты ICMP (ping);
		</div>
	</li>
	<li style="margin-bottom:.1em;">
		<div>
			В строке «We recommend you use:» будет указан рекомендованный (самый близкий к вам, по мнению HE.net) туннельный сервер. Можно выбрать его, либо какой-нибудь другой из списка ниже. В списке также указаны IP-адреса этих серверов, так что перед выбором можно проверить время отклика и маршрут до каждого с помощью<span> </span><code style="font-size:11.3506px;background-color:rgb(249,249,249);">ping</code><span> </span>или<span> </span><code style="font-size:11.3506px;background-color:rgb(249,249,249);">traceroute</code>. Некоторые сервера также могут быть недоступны для выбора (например по причине заполненности, «Not available (full)»). Для находящихся в России, оптимальным сервером будет один из находящихся в Европе (какой именно – зависит от вашего провайдера и точек его подключения к европейским сетям);
		</div>
	</li>
	<li style="margin-bottom:.1em;">
		<div>
			Нажать кнопку «Create Tunnel». 
		</div>
	</li>
	<li style="margin-bottom:.1em;">
		<div>
			<span style="color:rgb(0,0,0);font-family:'DejaVu Sans', Verdana, Tahoma, sans-serif;font-size:12.7px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">Создав туннель, переходим на экран его настройки В нижней части экрана, под надписью «Example<span> </span></span><span style="color:rgb(0,0,0);font-family:'DejaVu Sans', Verdana, Tahoma, sans-serif;font-size:12.7px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">Configurations , видим выпадающий список, где предлагается выбрать используемую вами операционную систему. После указания там ОС , сервер выдаст конфигурацию</span>
		</div>
	</li>
</ol><div>
	<span style="color:rgb(0,0,0);font-family:'DejaVu Sans', Verdana, Tahoma, sans-serif;font-size:12.7px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">чтобы поднять интерфейс ipv6 со своей стороны я использую скриптик который нашел в сети который привожу без изменений можно конечно и без него обойтись но мне просо он понравился )))</span>

	<div class="ipsSpoiler" data-ipsspoiler="">
		<div class="ipsSpoiler_header">
			<span>Скрытый текст</span>
		</div>

		<div class="ipsSpoiler_contents">
			<p>
				#!/bin/bash<br />
				# Create 6in4 tunnel endpoint script<br />
				# for use with <a href="http://www.tunnelbroker.com" rel="external nofollow">http://www.tunnelbroker.com</a> (Hurricane Electric)<br />
				# C 2010  icCE aka TuLiss (tuliss@gmail.com)<br />
				# Distributed under the terms of the GNU General Public License v3
			</p>

			<p>
				#Name Tunnel<br />
				HE_IPv6="he-ipv6"
			</p>

			<p>
				#Server IPv4 address:<br />
				IPV4_S="-----"
			</p>

			<p>
				#Client IPv6 address:<br />
				IPV6_C="------"
			</p>

			<p>
				#Interface Wan<br />
				INT_WAN="-----"
			</p>

			<p>
				#Tunel ttl<br />
				TUN_TTL="255"
			</p>

			<p>
				DESC="6in4"
			</p>

			<p>
				#WAN IP<br />
				WAN_IP=$(ip addr show $INT_WAN | awk '/inet/ {print $2}')
			</p>

			<p>
				case "$1" in<br />
				 start)<br />
				        echo "Starting $DESC tunnel"<br />
				        ifconfig $HE_IPv6 &amp;&gt;/dev/null<br />
				        if [ $? -eq 0 ]; then<br />
				         echo "Tunnel $HE_IPv6 already exists"<br />
				        exit 1<br />
				        fi
			</p>

			<p>
				        ip tunnel add $HE_IPv6 mode sit remote $IPV4_S local $WAN_IP ttl $TUN_TTL<br />
				        ip link set $HE_IPv6 up<br />
				        ip addr add $IPV6_C dev $HE_IPv6<br />
				        ip route add ::/0 dev $HE_IPv6<br />
				        ;;
			</p>

			<p>
				 stop)<br />
				        echo "Stopping $DESC tunnel"<br />
				        ifconfig $HE_IPv6 &amp;&gt;/dev/null<br />
				        if [ $? -ne 0 ]; then<br />
				         echo "Tunnel $HE_IPv6 does not exist"<br />
				        exit 1<br />
				        fi
			</p>

			<p>
				        ip link set $HE_IPv6 down<br />
				        ip tunnel del $HE_IPv6<br />
				        ;;
			</p>

			<p>
				        *)<br />
				          echo "Usage: $0 {start|stop}" &gt;&amp;2<br />
				         exit 1<br />
				esac<br />
				exit 0
			</p>
		</div>
	</div>
</div>

<div>
	<span style="color:rgb(0,0,0);font-family:'DejaVu Sans', Verdana, Tahoma, sans-serif;font-size:12.7px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">Чтобы проверить, работает ли настроенный вами туннель, можно попробовать попинговать IPv6-версию Google. В GNU/Linux это делается командой<span> </span></span><code style="font-size:11.3506px;background-color:rgb(249,249,249);color:rgb(0,0,0);font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;">ping6 ipv6.google.com</code><span style="color:rgb(0,0,0);font-family:'DejaVu Sans', Verdana, Tahoma, sans-serif;font-size:12.7px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">, а в Windows –<span> </span></span><code style="font-size:11.3506px;background-color:rgb(249,249,249);color:rgb(0,0,0);font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;">ping ipv6.google.com</code><span style="color:rgb(0,0,0);font-family:'DejaVu Sans', Verdana, Tahoma, sans-serif;font-size:12.7px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">. Либо, зайти на какие-нибудь IPv6-сайты через браузер: к примеру, на тот же<span> </span></span><a href="http://ipv6.google.com/" style="text-decoration:none;color:rgb(67,105,118);background:rgb(255,255,255) url(&quot;../monobook/external.png&quot;) no-repeat right center;padding:1px 13px 1px 0px;font-family:'DejaVu Sans', Verdana, Tahoma, sans-serif;font-size:12.7px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;" title="http://ipv6.google.com/" rel="external nofollow">ipv6.google.com</a><span style="color:rgb(0,0,0);font-family:'DejaVu Sans', Verdana, Tahoma, sans-serif;font-size:12.7px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;"><span> </span>или</span><a href="http://sixy.ch/" style="text-decoration:none;color:rgb(67,105,118);background:rgb(255,255,255) url(&quot;../monobook/external.png&quot;) no-repeat right center;padding:1px 13px 1px 0px;font-family:'DejaVu Sans', Verdana, Tahoma, sans-serif;font-size:12.7px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;" title="http://sixy.ch/" rel="external nofollow">Sixy.ch</a><span style="color:rgb(0,0,0);font-family:'DejaVu Sans', Verdana, Tahoma, sans-serif;font-size:12.7px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">, каталог доступных по IPv6 сайтов.</span>
</div>

<div>
	<span style="color:rgb(0,0,0);font-family:'DejaVu Sans', Verdana, Tahoma, sans-serif;font-size:12.7px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">Поскольку на сайте брокера, в настройках туннеля, должен быть прописан ваш IPv4, существует необходимость эту информацию, при её изменении (получении нового IP-адреса),<span> </span></span><a href="https://ipv4.tunnelbroker.net/ipv4_end.php" style="text-decoration:none;color:rgb(67,105,118);background:rgb(255,255,255) url(&quot;../monobook/external.png&quot;) no-repeat right center;padding:1px 13px 1px 0px;font-family:'DejaVu Sans', Verdana, Tahoma, sans-serif;font-size:12.7px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;" title="https://ipv4.tunnelbroker.net/ipv4_end.php" rel="external nofollow">обновлять</a><span style="color:rgb(0,0,0);font-family:'DejaVu Sans', Verdana, Tahoma, sans-serif;font-size:12.7px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">. Для этого, нужно тем или иным образом «дёрнуть» вот такой<span> </span></span><acronym style="border-bottom:1px dotted rgb(0,0,0);color:rgb(0,0,0);background:rgb(255,255,255) none;font-family:'DejaVu Sans', Verdana, Tahoma, sans-serif;font-size:12.7px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;" title="Uniform Resource Locator">URL</acronym><span style="color:rgb(0,0,0);font-family:'DejaVu Sans', Verdana, Tahoma, sans-serif;font-size:12.7px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">: </span>

	<p align="justify" style="margin-bottom:0cm;line-height:100%;">
		<strong><i>https://&lt;ваш логин&gt;:&lt;ваш пароль&gt;@ipv4.tunnelbroker.net/nic/update?hostname=&lt;ID тунеля&gt;</i></strong>
	</p>

	<p align="justify" style="margin-bottom:0cm;line-height:100%;">
		ну и конечно если мы раздаем с машины внутрь сети
	</p>

	<p align="justify" style="margin-bottom:0cm;line-height:100%;">
		<code style="font-family:Menlo, Monaco, 'Courier New', monospace;font-size:14px;color:rgb(34,34,34);white-space:normal;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;word-spacing:0px;background-color:rgb(255,255,255);"># apt-get install radvd</code><br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><span style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">/etc/radvd.conf</span>
	</p>

	<div class="ipsSpoiler" data-ipsspoiler="">
		<div class="ipsSpoiler_header">
			<span>Скрытый текст</span>
		</div>

		<div class="ipsSpoiler_contents">
			<p>
				<code style="font-family:Menlo, Monaco, 'Courier New', monospace;font-size:1em;color:rgb(34,34,34);white-space:normal;">interface eth0<br />
				{<br />
				  AdvSendAdvert on;<br />
				  MaxRtrAdvInterval 30;<br /><br />
				  prefix 2001:XXXX:YYYY:ZZZZ::1/64 //берем из </code><span style="color:rgb(34,34,34);font-family:arial, sans-serif;font-size:14px;font-style:normal;font-weight:bold;letter-spacing:normal;text-align:left;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">Routed IPv6 Prefixes</span><br /><code style="font-family:Menlo, Monaco, 'Courier New', monospace;font-size:1em;color:rgb(34,34,34);white-space:normal;">  {<br />
				    AdvOnLink on;<br />
				    AdvAutonomous on;<br />
				    AdvRouterAddr off;<br />
				    AdvValidLifetime 300;<br />
				    AdvPreferredLifetime 120;<br />
				  };<br />
				};</code>
			</p>
		</div>
	</div>
	<br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><span style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">Включаем форвардинг:</span><br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><span style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">/etc/sysctl.conf</span>

	<blockquote style="padding-left:15px;margin:.83em 0px;clear:both;border-left:2px solid rgb(187,187,187);color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);">
		<code style="font-family:Menlo, Monaco, 'Courier New', monospace;font-size:1em;color:rgb(34,34,34);white-space:normal;">net.ipv6.conf.all.forwarding=1</code>
	</blockquote>

	<p align="justify" style="margin-bottom:0cm;line-height:100%;">
		<br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><code style="font-family:Menlo, Monaco, 'Courier New', monospace;font-size:14px;color:rgb(34,34,34);white-space:normal;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;word-spacing:0px;background-color:rgb(255,255,255);"># sysctl -w net.ipv6.conf.default.forwarding=1<br />
		# echo 1 &gt; /proc/sys/net/ipv6/conf/all/forwarding</code><br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><span style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">Перезапускаем radvd:</span><br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><code style="font-family:Menlo, Monaco, 'Courier New', monospace;font-size:14px;color:rgb(34,34,34);white-space:normal;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;word-spacing:0px;background-color:rgb(255,255,255);"># invoke-rc.d radvd restart</code><br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><span style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">Теперь все компьютеры из локальной сети должны автоматически получить IPv6 адреса и адрес шлюз. За процессом можно следить на сервере при помощи команды radvdump, а на клиентах проверять наличие адреса при помощи ip -6 a.</span><br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><span style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">DNS-сервер придётся прописать клиентам вручную а если хочется все-таки автоматизировать этот процесс то выход есть</span>
	</p>
	<br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><span style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">Так как адреса клиентов основываются на MAC адресах, то в результате получаются адреса вида: 2001:528d:d4b6:1:215:f2ff:fe55:2d85. Работать с этим довольно тяжело, запомнить — невозможно. На помощь приходит multicast dns и его реализация в виде Avahi.</span><br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><code style="font-family:Menlo, Monaco, 'Courier New', monospace;font-size:14px;color:rgb(34,34,34);white-space:normal;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;word-spacing:0px;background-color:rgb(255,255,255);"># apt-get install avahi-daemon avahi-utils</code><br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><span style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">Проверяем наличие в /etc/avahi/avahi-daemon.conf строк:</span>

	<blockquote style="padding-left:15px;margin:.83em 0px;clear:both;border-left:2px solid rgb(187,187,187);color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);">
		<code style="font-family:Menlo, Monaco, 'Courier New', monospace;font-size:1em;color:rgb(34,34,34);white-space:normal;">[server]<br />
		use-ipv4=yes<br />
		use-ipv6=yes</code>
	</blockquote>
	<br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><span style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">Теперь все компьютеры в локальной сети получат имена вида hostname.local. Эти имена будут резолвиться по умолчанию в IPv4 адреса. Чтобы они резолвились по умолчанию в IPv6, правим строчку в /etc/nsswitch.conf.</span>

	<div class="ipsSpoiler" data-ipsspoiler="">
		<div class="ipsSpoiler_header">
			<span>Скрытый текст</span>
		</div>

		<div class="ipsSpoiler_contents">
			<p>
				<br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><span style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">Было:</span>
			</p>

			<blockquote style="padding-left:15px;margin:.83em 0px;clear:both;border-left:2px solid rgb(187,187,187);color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);">
				<code style="font-family:Menlo, Monaco, 'Courier New', monospace;font-size:1em;color:rgb(34,34,34);white-space:normal;">hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4</code>
			</blockquote>

			<p>
				<br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><span style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">Стало:</span>
			</p>

			<p>
				 
			</p>

			<blockquote style="padding-left:15px;margin:.83em 0px;clear:both;border-left:2px solid rgb(187,187,187);color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);">
				<code style="font-family:Menlo, Monaco, 'Courier New', monospace;font-size:1em;color:rgb(34,34,34);white-space:normal;">hosts: files mdns_minimal [NOTFOUND=return] dns mdns</code>
			</blockquote>
		</div>
	</div>

	<blockquote style="padding-left:15px;margin:.83em 0px;clear:both;border-left:2px solid rgb(187,187,187);color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);">
		 
	</blockquote>

	<p align="justify" style="margin-bottom:0cm;line-height:100%;">
		<br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><br style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);" /><span style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">Теперь можно использовать имена hostname.local и по умолчанию будут устанавливаться IPv6 соединения. если сразу не заработало то </span>
	</p>

	<p align="justify" style="margin-bottom:0cm;line-height:100%;">
		<span style="color:rgb(0,0,0);font-family:Verdana, sans-serif;font-size:14px;font-style:normal;font-weight:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);float:none;">на сервере возможно придется добавить маршрут </span>
	</p>

	<p style="margin-bottom:0cm;line-height:100%;">
		ip -6 route add 2001:470:хх:ххх::/64 dev eth0 ну или как там у вас внутренний интерфейс называется. Вот и все на данный момент отключил ip4 в локалке совсем так сказать ощутить будущее и могу сказать что пишу все это с шестого реального айпишника а значит форум it4it.club уже готов к будущему  
	</p>
</div>
]]></description><guid isPermaLink="false">54</guid><pubDate>Sat, 10 Dec 2016 07:39:54 +0000</pubDate></item><item><title>C&#x432;&#x43E;&#x439; online &#x43A;&#x43E;&#x43D;&#x432;&#x435;&#x440;&#x442;&#x435;&#x440; TIFF, JPEG, PNG &#x438; BMP &#x432; PDF</title><link>https://it4it.club/topic/25-cvoy-online-konverter-tiff-jpeg-png-i-bmp-v-pdf/</link><description><![CDATA[
<p style="text-align:center;">
	<img alt="converter_in_pdf_0.jpg" class="ipsImage ipsImage_thumbnailed" data-fileid="183" data-unique="b0kkpv8xj" src="https://it4it.club/uploads/monthly_2015_12/converter_in_pdf_0.jpg.08ad4f17859e012d2013d46e6619b687.jpg"></p>

<p>
	Доброе время суток.
</p>

<p>
	По долгу службы приходится обслуживать не одну сотню пользователей, все они уникальны, у каждого свои проблемы, но объединяет их всех одна из эталонных - необходимость конвертировать различные графические форматы в <strong>PDF</strong>. Тривиальная задача, ставь виртуальный принтер и в бой, но есть несколько проблем:
</p>

<ol>
<li>
		Все должно быть совершенно бесплатно т.к используется на предприятии и лишняя головная боль никому не нужна.
	</li>
	<li>
		Конвертер должен принимать форматы <strong>TIFF</strong>, <strong>JPEG</strong>, <strong>PNG</strong>, ...
	</li>
	<li>
		Некоторые готовые продукты не способны конвертировать те или иные форматы, например печать (встроенными средствами windows) формата <strong>TIFF</strong> на виртуальный принтер <strong>doPDF</strong>.
	</li>
	<li>
		Разный уровень подготовки пользователей, от "Смотри, как я умею" до "Смотри как надо". Вследствие чего некоторые люди способны интуитивно и самостоятельно понять, что к чему и под каким соусом это подать, а некоторые начинают процесс конвертирования с набора номера Вашего покорного слуги и его коллег. Естественно есть и промежуточные варианты эволюции с непредсказуемым результатом.
	</li>
	<li>
		Все должно быть просто и понятно, чтобы разобраться был способен даже ребенок.
	</li>
</ol>
<p>
	Все началось в один обыденный день, когда ко мне обратился один из пользователей которому необходимо в промышленных масштабах производить перевод злополучных <strong>TIFF</strong> файлов в <strong>PDF</strong>. В этот день было решено организовать собственный <strong>online</strong> сервис по конвертированию графических форматов в <strong>PDF</strong>.
</p>

<p>
	Основные болевые точки уже были затронуты выше, есть от чего отталкиваться, осталось только придумать алгоритм:
</p>

<ol>
<li>
		Пользователь открывает специальную страницу в браузере
	</li>
	<li>
		Перетаскивает необходимый ему файл в окно
	</li>
	<li>
		Немного ждет и получает на скачивание готовый <strong>PDF</strong>
	</li>
</ol>
<p>
	Все очень просто и работает в один клик, все действия за пользователя делает программа на сервере. Самое страшное, что может случиться - человек забудет адрес страницы.
</p>

<p>
	<strong>Переходим к реализации</strong>
</p>

<p>
	В моем случае используется:
</p>

<ol>
<li>
		Linux Ubuntu 14.04
	</li>
	<li>
		Apache/2.4.7
	</li>
	<li>
		PHP 5.5.9
	</li>
	<li>
		Библиотека php5-imagick
	</li>
	<li>
		mySQL сервер
	</li>
</ol>
<p>
	<a href="http://php.net/manual/ru/book.imagick.php" rel="external nofollow">ImageMagick</a> не входит в состав стандартных библиотек PHP (по крайней мере в пакете под Ubuntu), а следовательно:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span>apt-get install php5-imagick
service apache2 restart</span></pre>

<p>
	Следующим этапом идет создание базы данных. Сказать честно, это вынужденный пункт т.к необходимо возвращать конвертированный файл с именем идентичным оригиналу, а ведь имя может содержать символы из различных алфавитов (например кириллица). И это вызывает определенные трудности. Зато, как побочный эффект, мы получаем возможность вести логи, следовательно, оптимизировать работу скрипта в будущем.
</p>

<p>
	И так, создаем базу данных <strong>converter</strong> и таблицу <strong>inPDF</strong> со следующей структурой:
</p>

<pre class="ipsCode prettyprint prettyprinted">
<span>CREATE TABLE IF NOT EXISTS </span><span>`inPDF`</span><span> </span><span>(</span><span>
  </span><span>`id`</span><span> varchar</span><span>(</span><span>40</span><span>)</span><span> NOT NULL</span><span>,</span><span>
  </span><span>`time`</span><span> </span><span>int</span><span>(</span><span>20</span><span>)</span><span> NOT NULL</span><span>,</span><span>
  </span><span>`name`</span><span> varchar</span><span>(</span><span>100</span><span>)</span><span> NOT NULL</span><span>,</span><span>
  </span><span>`size`</span><span> </span><span>int</span><span>(</span><span>10</span><span>)</span><span> NOT NULL</span><span>,</span><span>
  </span><span>`ip`</span><span> varchar</span><span>(</span><span>15</span><span>)</span><span> DEFAULT NULL</span><span>,</span><span>
  </span><span>`dns`</span><span> varchar</span><span>(</span><span>50</span><span>)</span><span> DEFAULT NULL</span><span>,</span><span>
  UNIQUE KEY </span><span>`id`</span><span> </span><span>(</span><span>`id`</span><span>)</span><span>
</span><span>)</span><span> ENGINE</span><span>=</span><span>InnoDB</span><span> DEFAULT CHARSET</span><span>=</span><span>utf8</span><span>;</span></pre>

<p>
	Также следует использовать отдельную учетную запись SQL сервера для доступа к б.д.
</p>

<p>
	Все остальные файлы прикреплены к посту. Все конвертируемые файлы загружаются в каталог <strong>upload</strong> и для этого необходимы соответствующие права, но Вы и так это понимаете.
</p>

<pre class="ipsCode">
chmod 0777 ./upload</pre>

<p>
	Отредактируйте настройки базы данных в файле <strong>index.php</strong>
</p>

<pre class="ipsCode prettyprint lang-php">
$settings = array(
    'host'  =&gt; 'localhost',
    'db'    =&gt; 'converter',
    'login' =&gt; 'user',
    'pass'  =&gt; 'password'
);</pre>

<p>
	<strong>Пользовательский интерфейс</strong>
</p>

<p>
	Его необходимо реализовать максимально простым и интуитивно понятным. Я представил его себе в виде обычного перетаскивания файла (<strong>TIFF</strong>, <strong>JPEG</strong>, <strong>PNG</strong>, <strong>BMP</strong>, можно добавить и другие форматы) в браузер, небольшого ожидания и получения на скачивание конвертированного в <strong>PDF </strong>файла. Никаких настроек, вопросов и лишних кликов мышкой!
</p>

<p>
	Реализовать подобное поможет <strong>jquery</strong>. Я не селен в <strong>JS</strong>, поэтому побродил немного по сети и нашел, в свободном распространении пример реализации <strong>Dragon and Drop</strong>. После примитивных модификаций получил приемлемый результат.
</p>

<p style="text-align:center;">
	<img alt="converter_in_pdf_1.jpg" class="ipsImage ipsImage_thumbnailed" data-fileid="180" data-unique="wxf2o6bi9" src="https://it4it.club/uploads/monthly_2015_12/converter_in_pdf_1.jpg.0b61b95d221f718181ad523251a01eca.jpg"></p>

<p>
	Главное использовать современный браузер. Данное творение проверено в: Chrome, Firefox, Opera.
</p>

<p>
	<strong>PS</strong>: Не претендуем на идеал, но как по мне, для первой версии вполне даже пригодно.
</p>

<p>
	<a class="ipsAttachLink" href="//it4it.club/applications/core/interface/file/attachment.php?id=354" data-fileid="354" rel="">converter.7z</a>
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">25</guid><pubDate>Mon, 21 Dec 2015 11:26:09 +0000</pubDate></item></channel></rss>
