<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Записки на полях &#187; network</title>
	<atom:link href="http://snake.khd.ru/tag/network/feed/" rel="self" type="application/rss+xml" />
	<link>http://snake.khd.ru</link>
	<description>cat /var/log/messages</description>
	<lastBuildDate>Sun, 05 Feb 2012 11:22:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Свет в конце тоннеля: OpenVPN + FreeBSD7</title>
		<link>http://snake.khd.ru/2011/03/svet-v-konce-tonnelya-openvpn-freebsd7/</link>
		<comments>http://snake.khd.ru/2011/03/svet-v-konce-tonnelya-openvpn-freebsd7/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 08:33:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[openvpn]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=690</guid>
		<description><![CDATA[Vtund всем хорош, кроме одного &#8211; в глобальных сетях его использовать трудно. А что делать, если среда дюже недружелюбная (считай &#8211; зарезано все, кроме стандартных протоколов, и ipip провесить уже не выйдет). Наш выход &#8211; VPN. Тем более что OpenVPN поможет и влан прокинуть, и данные зашифрует, и вообще, позволит создать у пользователя уверенность, что <a href='http://snake.khd.ru/2011/03/svet-v-konce-tonnelya-openvpn-freebsd7/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://snake.khd.ru/2011/01/trably-s-vtund/">Vtund</a> всем хорош, кроме одного &#8211; в глобальных сетях его использовать трудно. А что делать, если среда дюже недружелюбная (считай &#8211; зарезано все, кроме стандартных протоколов, и ipip провесить уже не выйдет). Наш выход &#8211; <a href="http://snake.khd.ru/tag/vpn/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  vpn">VPN</a>. Тем более что <a href="http://snake.khd.ru/tag/openvpn/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  openvpn">OpenVPN</a> поможет и влан прокинуть, и данные зашифрует, и вообще, позволит создать у пользователя уверенность, что удаленный филиал находится вовсе не в другом городе, а за стенкой (где б еще такой инет взять&#8230;)<br />
<span id="more-690"></span><br />
Исходные данные:<br />
Сервер: <a href="http://snake.khd.ru/tag/linux/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  linux">Linux</a> 2.6.28.2<br />
Клиент: <a href="http://snake.khd.ru/tag/freebsd/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  FreeBSD">FreeBSD</a> 7.2-RELEASE-p8<br />
OpenVPN 2.1.4</p>
<p>Задача: Организовать подключение таким образом, чтобы клиент, и сеть за ним могли видеть локальную сеть за сервером так, будто это два рядом стоящих маршрутизатора. Собственно, настройка занимает минут пятнадцать.</p>
<p>На клиенте:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>ports<span style="color: #000000; font-weight: bold;">/</span>security<span style="color: #000000; font-weight: bold;">/</span>openvpn <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span> clean</pre></div></div>

<p>/etc/rc.conf</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">openvpn_enable</span>=<span style="color: #ff0000;">&quot;YES&quot;</span>
<span style="color: #007800;">openvpn_if</span>=<span style="color: #ff0000;">&quot;tun&quot;</span>
<span style="color: #007800;">openvpn_configfile</span>=<span style="color: #ff0000;">&quot;/usr/local/etc/openvpn/client.conf&quot;</span>
<span style="color: #007800;">openvpn_dir</span>=<span style="color: #ff0000;">&quot;/usr/local/etc/openvpn&quot;</span></pre></div></div>

<p>Описание директив спер <a href="http://tuxnotes.ru/articles.php?a_id=26">отсюда</a> и <a href="https://secretsline.biz/ru/manual/read/openvpn-manual/">отсюда</a></p>
<p>/usr/local/etc/openvpn/client.conf</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#определяет какой использовать тип устройства tun или tap.</span>
dev tun
<span style="color: #666666; font-style: italic;">#Возможные значения: udp, tcp, tcp-client, tcp-server. С первыми двумя все ясно, </span>
<span style="color: #666666; font-style: italic;">#а на последних двух остановимся чуть подробнее:</span>
<span style="color: #666666; font-style: italic;">#tcp-client - сам пытается установить соединение</span>
<span style="color: #666666; font-style: italic;">#tcp-server - только ждет подключений</span>
<span style="color: #666666; font-style: italic;">#Примечательно, что с использованием протокола udp VPN будет работать чуть быстрее, </span>
<span style="color: #666666; font-style: italic;">#чем tcp. Но в плане стабильности работы лучше выбирать tcp </span>
<span style="color: #666666; font-style: italic;">#(как показывает практика, VPN-соединение более устойчиво)</span>
proto udp
<span style="color: #666666; font-style: italic;">#определяет удаленный конец туннеля. Могут использоваться записи IP и DNS.</span>
remote 10.12.0.201
port <span style="color: #000000;">1194</span> 
<span style="color: #666666; font-style: italic;">#Роль - клиент или сервер</span>
client
<span style="color: #666666; font-style: italic;">#если OpenVPN не удалось узнать имя удаленного хоста по DNS, </span>
<span style="color: #666666; font-style: italic;">#то через указанное количество секунд попытаться переподключиться.</span>
resolv-retry infinite
<span style="color: #666666; font-style: italic;">#Настройки сертификатов и безопасности</span>
ca <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>openvpn<span style="color: #000000; font-weight: bold;">/</span>keys<span style="color: #000000; font-weight: bold;">/</span>ca.crt
cert <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>openvpn<span style="color: #000000; font-weight: bold;">/</span>keys<span style="color: #000000; font-weight: bold;">/</span>client.crt
key <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>openvpn<span style="color: #000000; font-weight: bold;">/</span>keys<span style="color: #000000; font-weight: bold;">/</span>client.key
tls-client
tls-auth <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>openvpn<span style="color: #000000; font-weight: bold;">/</span>keys<span style="color: #000000; font-weight: bold;">/</span>ta.key <span style="color: #000000;">1</span>
<span style="color: #666666; font-style: italic;">#алгоритм хэширования</span>
auth SHA512
<span style="color: #666666; font-style: italic;">#указываем алгоритм шифрования</span>
cipher BF-CBC
ns-cert-type server
persist-key
persist-tun
<span style="color: #666666; font-style: italic;">#Настройки логов</span>
status <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>openvpn<span style="color: #000000; font-weight: bold;">/</span>openvpn-status.log
log <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>openvpn<span style="color: #000000; font-weight: bold;">/</span>openvpn.log
<span style="color: #666666; font-style: italic;">#Уровень детализации логов</span>
verb <span style="color: #000000;">3</span>
<span style="color: #666666; font-style: italic;">#Маршрут на удаленную сеть, который поднимается при подключении</span>
route 10.255.0.0 255.255.255.0</pre></div></div>

<p>На стороне сервера:<br />
/etc/openvpn/server.conf</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">&nbsp;
<span style="color: #7a0874; font-weight: bold;">local</span> 10.12.0.201
port <span style="color: #000000;">1194</span>
proto udp
dev tun10
&nbsp;
ca <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>openvpn<span style="color: #000000; font-weight: bold;">/</span>keys<span style="color: #000000; font-weight: bold;">/</span>ca.crt
cert <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>openvpn<span style="color: #000000; font-weight: bold;">/</span>keys<span style="color: #000000; font-weight: bold;">/</span>server.crt
key <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>openvpn<span style="color: #000000; font-weight: bold;">/</span>keys<span style="color: #000000; font-weight: bold;">/</span>server.key
<span style="color: #c20cb9; font-weight: bold;">dh</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>openvpn<span style="color: #000000; font-weight: bold;">/</span>keys<span style="color: #000000; font-weight: bold;">/</span>dh1024.pem
<span style="color: #666666; font-style: italic;">#автоматически присваивает адреса всем клиентам (DHCP) </span>
<span style="color: #666666; font-style: italic;">#в указанном диапазоне с маской сети. </span>
<span style="color: #666666; font-style: italic;">#Данная опция заменяет ifconfig и может работаеть только с </span>
<span style="color: #666666; font-style: italic;">#TLS-клиентами в режиме TUN, соответственно использование </span>
<span style="color: #666666; font-style: italic;">#сертификатов обязательно. Например: server 10.3.0.0 255.255.255.0</span>
<span style="color: #666666; font-style: italic;">#Подключившиеся клиенты получат адреса в диапазоне между 10.3.0.1 и 10.3.0.254.</span>
server  10.255.1.112 255.255.255.248
<span style="color: #666666; font-style: italic;">#Статические маршруты, которые будут выдаваться клиенту</span>
push <span style="color: #ff0000;">&quot;route 10.0.0.0 255.0.0.0&quot;</span>
push <span style="color: #ff0000;">&quot;route 92.50.243.0 255.255.255.0&quot;</span>
push <span style="color: #ff0000;">&quot;route 94.25.108.0 255.255.255.0&quot;</span>
push <span style="color: #ff0000;">&quot;route 46.8.128.0 255.255.128.0&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#Папка с дополнительными настройками клиента</span>
client-config-dir ccd
<span style="color: #666666; font-style: italic;">#Статические маршруты на сеть за клиентом, которые поднимаются на сервере</span>
route 10.255.1.112 255.255.255.252
route 10.12.4.0 255.255.255.0
route 10.12.5.0 255.255.255.0
route 10.12.51.0 255.255.255.0
&nbsp;
client-to-client
keepalive <span style="color: #000000;">10</span> <span style="color: #000000;">120</span>
&nbsp;
tls-server
tls-auth <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>openvpn<span style="color: #000000; font-weight: bold;">/</span>keys<span style="color: #000000; font-weight: bold;">/</span>ta.key <span style="color: #000000;">0</span> <span style="color: #666666; font-style: italic;"># This file is secret</span>
&nbsp;
auth SHA512
cipher BF-CBC        <span style="color: #666666; font-style: italic;"># Blowfish (default)</span>
&nbsp;
max-clients <span style="color: #000000;">10</span>
<span style="color: #666666; font-style: italic;">#Пользователь и группа, от имени которых будет запускаться процесс</span>
user openvpn
group openvpn
&nbsp;
<span style="color: #666666; font-style: italic;">#Не перечитывать файлы с ключами при получении SIGUSR1 или --ping-restart.</span>
<span style="color: #666666; font-style: italic;">#Эта опция может быть использована совместно с --user nobody, </span>
<span style="color: #666666; font-style: italic;">#чтобы разрешить перезапуски вызываемые SIGUSR1. </span>
<span style="color: #666666; font-style: italic;">#По умолчанию, если вы понижаете привелегии демона OpenVPN, то </span>
<span style="color: #666666; font-style: italic;">#его нельзя перезапустить, так как невозможно заново прочитать защищенные файлы ключей. </span>
persist-key
<span style="color: #666666; font-style: italic;">#Не закрывать и повторно открывать устройство TUN/TAP </span>
<span style="color: #666666; font-style: italic;">#или запускать скрипты up/down при получении сигнала SIGUSR1 или перезапусков по --ping-restart.</span>
<span style="color: #666666; font-style: italic;">#Сигнал SIGUSR1 схож с SIGHUP, но предоставляет более точный контроль над опциями перезапуска.</span>
persist-tun
status <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>openvpn<span style="color: #000000; font-weight: bold;">/</span>openvpn-status.log
log <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>openvpn<span style="color: #000000; font-weight: bold;">/</span>openvpn.log
verb <span style="color: #000000;">3</span></pre></div></div>

<p>Включаем, соединяемся&#8230; пиры друг друга пингуют. С клиента пингуется сеть за сервером, а вот наоборот &#8211; хрен. Курим гугл, находим <a href="http://subnets.ru/blog/?p=1517">решение</a>:</p>
<blockquote><p>
Важное замечание, что если OpenVPN запускается в режиме server (см. комментарии п.2), то статический или динамический  маршрут, даже который смотрит правильно и напрямую в интерфейс tun, ни к чему не приведет, работать не будет.<br />
Т.к. в режиме server получается point-to-multipoint линк и именно поэтому серверу надо уже объяснять какому клиенту за ифейсом tun нужно отправлять трафик. Поэтому туннельные интерфейсы могут пинговаться, а любые подсети за OpenVPN-клиентом нет, т.к. трафик не уедет в туннель.<br />
Это хорошо видно по tcpdump, если с OpenVPN-сервера попробовать попинговать любой адрес из подсети, которая находится ЗА OpenVPN-клиентом.<br />
С одной стороны (со стороны OpenVPN-сервера) трафик в tun виден, а до другой стороны трафик просто не доходит, а если быть точнее, то на самом деле трафик с OpenVPN-сервера просто не отправляется.
</p></blockquote>
<p>Так что файлик /etc/openvpn/ccd/client будет примерно таким:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">ifconfig-push 10.255.1.114 10.255.1.113
iroute 10.12.51.0 255.255.255.0
iroute 10.12.5.0 255.255.255.0
iroute 10.12.4.0 255.255.255.0</pre></div></div>

<p>После этого все должно заработать. Маршруты появятся автоматически, как только установится соединение. Так же можно запускать сторонние скрипты с помощью директив up и down. Подробнее с примерами их использования можно ознакомиться по ссылкам выше.</p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2011/03/svet-v-konce-tonnelya-openvpn-freebsd7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Главное отличие VPN от VLAN</title>
		<link>http://snake.khd.ru/2011/01/glavnoe-otlichie-vpn-ot-vlan/</link>
		<comments>http://snake.khd.ru/2011/01/glavnoe-otlichie-vpn-ot-vlan/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 03:44:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Смехуечки]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[vlan]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/2011/01/glavnoe-otlichie-vpn-ot-vlan/</guid>
		<description><![CDATA[На самом деле термин VLAN произошел от английского термина &#8220;виллан&#8221; ( холоп ), то есть &#8211; сеть для смердов. А термин VPN произошел от уже от севременного &#8220;ВИП-и-Н&#8221; что означает &#8211; сеть для VIP&#8217;ов. (с) nag,ru]]></description>
			<content:encoded><![CDATA[<p>На самом деле термин <a href="http://snake.khd.ru/tag/vlan/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  vlan">VLAN</a> произошел от английского термина &#8220;виллан&#8221; ( холоп ), то есть &#8211; сеть для смердов.<br />
А термин <a href="http://snake.khd.ru/tag/vpn/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  vpn">VPN</a> произошел от уже от севременного &#8220;ВИП-и-Н&#8221; что означает &#8211; сеть для VIP&#8217;ов.<br />
(с) nag,ru</p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2011/01/glavnoe-otlichie-vpn-ot-vlan/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Траблы с vtund</title>
		<link>http://snake.khd.ru/2011/01/trably-s-vtund/</link>
		<comments>http://snake.khd.ru/2011/01/trably-s-vtund/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 12:30:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[vtun]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=675</guid>
		<description><![CDATA[Хорошая штука, но на идеологически правильной ОС есть два косяка: 1. Версия 3.0.1 требует lzo (из портов ставится влет) 2. При компиляции make install ругается: snake@serv &#91;vtun-3.0.1&#93;#make install gcc -g -O2 -c main.c main.c: In function 'main': main.c:63: error: 'VTUN_CONFIG_FILE' undeclared &#40;first use in this function&#41; main.c:63: error: &#40;Each undeclared identifier is reported only once <a href='http://snake.khd.ru/2011/01/trably-s-vtund/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Хорошая штука, но на идеологически правильной ОС есть два косяка:<br />
1. Версия 3.0.1 требует lzo (из портов ставится влет)<br />
2. При компиляции make install ругается:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snake<span style="color: #000000; font-weight: bold;">@</span>serv <span style="color: #7a0874; font-weight: bold;">&#91;</span>vtun-3.0.1<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;">#make install</span>
<span style="color: #c20cb9; font-weight: bold;">gcc</span> <span style="color: #660033;">-g</span> <span style="color: #660033;">-O2</span> <span style="color: #660033;">-c</span> main.c
main.c: In <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #ff0000;">'main'</span>:
main.c:<span style="color: #000000;">63</span>: error: <span style="color: #ff0000;">'VTUN_CONFIG_FILE'</span> undeclared <span style="color: #7a0874; font-weight: bold;">&#40;</span>first use <span style="color: #000000; font-weight: bold;">in</span> this <span style="color: #000000; font-weight: bold;">function</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
main.c:<span style="color: #000000;">63</span>: error: <span style="color: #7a0874; font-weight: bold;">&#40;</span>Each undeclared identifier is reported only once
main.c:<span style="color: #000000;">63</span>: error: <span style="color: #000000; font-weight: bold;">for</span> each <span style="color: #000000; font-weight: bold;">function</span> it appears in.<span style="color: #7a0874; font-weight: bold;">&#41;</span>
main.c: In <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #ff0000;">'write_pid'</span>:
main.c:<span style="color: #000000;">217</span>: error: <span style="color: #ff0000;">'VTUN_PID_FILE'</span> undeclared <span style="color: #7a0874; font-weight: bold;">&#40;</span>first use <span style="color: #000000; font-weight: bold;">in</span> this <span style="color: #000000; font-weight: bold;">function</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">***</span> Error code <span style="color: #000000;">1</span></pre></div></div>

<p>Первое лечится отключением lzo:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--disable-lzo</span></pre></div></div>

<p>Второе &#8211; использованием gmake (кстати нечто похожее было при установке <a href="http://snake.khd.ru/2009/10/poschitaem-vse-stargazer-kak-billing-dlya-nebolshoj-lokalki/">старгайзера</a>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">gmake</span> <span style="color: #c20cb9; font-weight: bold;">install</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2011/01/trably-s-vtund/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Делаем по-взрослому (изучаем vlan`ы)</title>
		<link>http://snake.khd.ru/2010/03/delaem-po-vzroslomu-izuchaem-vlany/</link>
		<comments>http://snake.khd.ru/2010/03/delaem-po-vzroslomu-izuchaem-vlany/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 08:00:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[vlan]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=272</guid>
		<description><![CDATA[Первый раз с самим понятием вланов (virtual LAN, VLAN) я столкнулся, проживая в студенческом общежитии (как будто я там сейчас не живу &#8211; прим. авт). Универ после ремонта разродился на нормальную ЛВС &#8211; с розетками в каждой комнате, коммутационными шкафами на лестничных клетках и 48-портовыми д-линками на этаж. На каждое общежитие студгородка было выделено по <a href='http://snake.khd.ru/2010/03/delaem-po-vzroslomu-izuchaem-vlany/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Первый раз с самим понятием вланов (virtual LAN, <a href="http://xgu.ru/wiki/Vlan">VLAN</a>) я столкнулся, проживая в студенческом общежитии (как будто я там сейчас не живу &#8211; <em>прим. авт</em>). Универ после ремонта разродился на нормальную ЛВС &#8211; с розетками в каждой комнате, коммутационными шкафами на лестничных клетках и 48-портовыми д-линками на этаж. На каждое общежитие студгородка было выделено по 2 влана, что добавило геморроя в настройке, но позволило избавиться от лишних бродкастов (с другой стороны, всякие VypressChat уже не работали). Сама идея очень даже неплоха &#8211; пользователи отделяются друг от друга на канальном уровне, можно крутить разные подсети на одном коммутаторе и прочие плюшки.<br />
<span id="more-272"></span><br />
Интернет в общаге раздается весьма своеобразно &#8211; через два сервера. На одном крутится две дсл, на другом &#8211; еще три. Модемы подключены напрямую, т.е. в одном сервере стоит три сетевушки, во втором &#8211; четыре. Это накладывает существенные ограничения во-первых на железо (найти плату с 3 и более PCI-разъемами сложновато), а во-вторых на масштабируемость &#8211; добавлять новые сетевухи это не наш метод <img src='http://snake.khd.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Т.к. под рукой совершенно случайно оказался управляемый DES-1226G с поддержкой вланов, решено было через этот самый коммутатор подключать модемы, оставив на серверах по две сетевушки &#8211; на вход и на выход. На &#8220;входящей&#8221;, соответственно висели интерфейсы общежитских сетей, на &#8220;выходящей&#8221; &#8211; вланы модемов.<br />
Создается влан-интерфейс чрезвычайно просто:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snake<span style="color: #000000; font-weight: bold;">@</span>snake <span style="color: #7a0874; font-weight: bold;">&#91;</span>snake<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;">#ifconfig vlan1692 create vlan 1692 vlandev em1 inet 192.169.2.2 netmask 255.255.255.0</span></pre></div></div>

<p>Здесь:<br />
<a href="http://snake.khd.ru/tag/vlan/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  vlan">vlan</a>1692 &#8211; имя интерфейса<br />
vlan 1692 &#8211; так называемый тэг влана (если мы собираемся принимать на этом интерфейсе только тэгированный трафик, что и требуется)<br />
vlandev em1 &#8211; указывает родительский интерфейс (транк) на котором и будет висеть влан<br />
далее идет обычная настройка &#8211; ip, маска и т.д.<br />
Чтобы изменения сохранились после перезагрузки, в rc.conf нужно добавить следующие строки:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snake<span style="color: #000000; font-weight: bold;">@</span>snake <span style="color: #7a0874; font-weight: bold;">&#91;</span>snake<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;">#cat /etc/rc.conf</span>
<span style="color: #007800;">hostname</span>=<span style="color: #ff0000;">&quot;snake.hostel5.ru&quot;</span>
<span style="color: #007800;">ifconfig_em0</span>=<span style="color: #ff0000;">&quot;inet 10.1.0.1 netmask 255.255.255.0&quot;</span>
<span style="color: #007800;">cloned_interfaces</span>=<span style="color: #ff0000;">&quot;vlan1205 vlan1690 vlan1691 vlan1692 vlan1693 vlan1694 vlan1695&quot;</span>
<span style="color: #007800;">ifconfig_vlan1205</span>=<span style="color: #ff0000;">&quot;inet 10.12.5.254 netmask 255.255.255.0 vlan 1205 vlandev em0&quot;</span>
<span style="color: #007800;">ifconfig_vlan1690</span>=<span style="color: #ff0000;">&quot;inet 192.169.0.2 netmask 255.255.255.0 vlan 1690 vlandev em1&quot;</span>
<span style="color: #007800;">ifconfig_vlan1691</span>=<span style="color: #ff0000;">&quot;inet 192.169.1.2 netmask 255.255.255.0 vlan 1691 vlandev em1&quot;</span>
<span style="color: #007800;">ifconfig_vlan1692</span>=<span style="color: #ff0000;">&quot;inet 192.169.2.2 netmask 255.255.255.0 vlan 1692 vlandev em1&quot;</span>
<span style="color: #007800;">ifconfig_vlan1693</span>=<span style="color: #ff0000;">&quot;inet 192.169.3.2 netmask 255.255.255.0 vlan 1693 vlandev em1&quot;</span>
<span style="color: #007800;">ifconfig_vlan1694</span>=<span style="color: #ff0000;">&quot;inet 192.169.4.2 netmask 255.255.255.0 vlan 1694 vlandev em1&quot;</span>
<span style="color: #007800;">ifconfig_vlan1695</span>=<span style="color: #ff0000;">&quot;inet 192.169.5.2 netmask 255.255.255.0 vlan 1695 vlandev em1&quot;</span></pre></div></div>

<p>В нашем случае создается 7 vlan-интерфейсов &#8211; один на &#8220;входящей&#8221; сетевушке &#8211; для общежитской сети, и еще 6 на &#8220;выходящей&#8221; &#8211; часть из них используется для связи с модемами, часть &#8211; просто для мониторинга и управления.</p>
<p>Удалить влан интерфейс:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snake<span style="color: #000000; font-weight: bold;">@</span>snake <span style="color: #7a0874; font-weight: bold;">&#91;</span>snake<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;">#ifconfig vlan1692 destroy</span></pre></div></div>

<p>Не забываем настроить соответствующим образом порты коммутатора &#8211; порт, к которому подключается &#8220;выходящая&#8221; сетевая карта сервера, должен пропускать только тэгированный трафик, порты, к которым подключены модемы &#8211; нетэгированный (потому как модемы в большинстве своем про всякую экзотику типа vlan слыхом не слыхивали), причем PVID порта должен совпадать с номером нужного влана (а у нас длинк, к слову. у других производителей все может быть совсем по другому).<br />
Приведу простой пример &#8211; &#8220;выход&#8221; сервера подключен к 10 порту коммутатора. Модемы &#8211; соответственно к 11,12 и 13 портам. На 10 порту прописываются соответствующие вланы (для каждого модема отдельный, как мы помним) &#8211; все тэгированные, PVID не столь важен, потому что трафик будет пропускаться только тэгированный (от сервера либо с другого порта коммутатора).<br />
На портах, к которым подключены модемы (11,12 и 13) прописываем по влану с опцией untag, и назначаем этим портам PVID, соответствующий номеру влана &#8211; таким образом весь нетэгированный трафик на этом порту будет считаться трафиком данного влана.<br />
Если все настроено правильно &#8211; модемы должны пинговаться (если правильно настроены ип), и pppoe должен нормально подниматься. Если нет &#8211; смотрим, где и что недонастроили (например, интерфейс в настройках mpd).</p>
<p>Всяческие замечания, предложения и критика приветствуются.</p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2010/03/delaem-po-vzroslomu-izuchaem-vlany/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

