пятница, 15 июля 2011 г.

Софт роутер своими руками.

     Есть мысль написать статью о том, как собрать софт роутер из подручного железа. Функции которые он будет выполнять:

  1. Подключение к  VPN тоннелю.
  2. Расшаривание интернета на пользователей внутренней сети.
  3. Пере направление multicast потока во внутреннюю сеть.
  4. (не реализованный мной) Связь внешней (городской) сети с внутренней (домашней).
Все это будем пробовать ставить без лишних программ на основе Windows Server 2008 R2.

----------------------------------------------------------------------------------------------------------------------------------

     Если это кому то интересно, оставляем пожелания в комментариях в низу, а я буду собираться с мыслями и писать потихоньку. И еще если у кого то будут какие то мысли по тому как реализовать еще пункт №4, то буду очень признателен вашей подсказке.
Вопрос вроле бы решен, в ближайшее время напигу как.
----------------------------------------------------------------------------------------------------------------------------------

P.S. В добавление к этой статье хочется обратить внимание, на программную точку доступа которую можно сделать средствами Windows server 2008 R2, и что очень будет полезно для домашнего софт роутера. Как ее сделать, читаем тут.


     Почему именно винда?

  • Нет ни малейшего желания изучать новые операционные системы типа Linux, Unix и прочее прочее. Может я становлюсь консерватором, но в мою задачу входило взять и сделать, а не читать тонны литературы или методом тыка идти к победе ковыряясь в закоулках альтернативных операционных систем. Опыт пользования виндой достаточно большой, и есть не большие представления о том какие настройки и где спрятаны.
  • Можно было бы поставить Windows Server 2003, но в нем не нашел места где можно настраивать IGMP протоколы. Если кто то мне подскажет буду признателен. Хотя все уже запустил на 2008 R2. 
Если еще придумаю разумные доводы то обязательно напишу.

=====================================================================
     Сейчас 25.03.2012, чтобы приблизить статью к финишу или хоть как то ее расшевелить, добавляю в нее скриншоты настроек с моего "сервера". Продолжение статьи решил обосновать просто напросто тем, что Windows который стоит на серваке был установлен чертовски давно, и до сих пор РАБОТАЕТ! И на самом деле я хотел продолжить писать эту статью настраивая сервак по новой, а не просто создавая скриншоты уже готовых настроек. Но раз уж Windows Server 2008 нас радует такой стабильностью, все же собрался с силами и решил "зарезервировать" настройки которые были сделаны мной в плане маршрутизации, сделав слепки истории.

=====================================================================

1. Пуск - Администрирование - Маршрутизация и удаленный доступ.



2. В маршрутизации и удаленном доступе видим что то типа этого.

3. В интерфейсах сети видим следующее.

4. IPv4

     Тут следует уделить внимание чтобы был пункт IGMP.

5. Смотрим что внутри в "Общие"
  • Подключение по локальной сети 2 - К адаптеру подключен провайдер со своими внутренними IP номерами начинающимеся на 10.251.x.x. (Змазал на всякий случай).
  • Подключение по локальной сети - Подключен кабель внутренней (домашней) сети. По умолчанию, расшаривая на этот адаптер интернет с любого другого соединения, винда ему автоматически присваевает айпишник 192.168.0.1. Но так уж сложилось что в просторах нашей не простой домашней сети закрался еще и "железный" маршрутизатор и при его периодическом  зависании и сбрасывании происходил конфликт айпи адресов в результате падало все сразу. По этому не мудря лишнего с маршрутизатором, было решено изменить айпишник на серваке с192.168.0.1 на 192.168.124.1. Почему именно 124, сказать не могу, т.к. это число просто с генерировал мой брат когда я из-за лени всего лишь руководил процессом настройки.
  • Остальное в этом разделе неважно.
6. В статических маршрутах все пусто. Видимо я не до рос еще до того, чтобы настраивать потоки между домашней сетью и сетью провайдера. А может так даже и лучше.

7. Раздел IGMP
По умолчанию тут пусто.
     В этот раздел необходимо добавить два подключения, тот с которого мы берем трафик и куда направляем. Кликаем мышкой на правую кнопку в любом пустом месте окна и в появившемся меню выбираем "Новый интерфейс..."
 =====================================================================
Внимание!
Если новый интерфейс добавляться не будет, значит скорее всего вы уже на него расшарили интернет в результате чего винда может выдать предупреждение о том что вы поступаете не хорошо. Чтобы все сделать правильно, не на какие интерфейсы не надо расшаривать ваши интернеты, VPN-ы и т.д. Все будет делаться дальше.
=====================================================================

     В нашем случае - это Подключение по локальной сети 2 и Подключение по локальной сети. Дальше вот не могу припомнить, но смысл такой. При добавлении нового подключения в раздел IGMP, или после добавления уже в настройках необходимо необходимо указать режим маршрутизации IGMP. Ну тут вроде бы все прозрачно, режима два:
  • IGMP - Маршрутизатор.
  • IGMP -Прокси.
     И дальше главное не перепутать подключения и все будет работать. Добавляем подключение Подключение по локальной сети 2 (Внешняя сеть), заходим в его свойства (вкладка Общие) и ставим галочку напротив "Разрешить IGMP для этого интерфейса" и ниже в режиме указываем IGMP - Проксти.
Вроде бы понятно...

Установив такой режим работы маршрутизатора во вкладке "Общие", на вкладке "Маршрутизатор" свойства IGMP будут не доступны. Таким образом, капитан очевидность нам подсказывает, что сетевая карта к которой подключен кабель провайдера будет работать в режиме Прокси и IGMP потоки будет пересылать через себя.


     Далее добавляем подключение Подключение по локальной сети (Домашняя сеть), заходим в его свойства (вкладка Общие) и ставим галочку напротив "Разрешить IGMP для этого интерфейса" и ниже в режиме указываем IGMP - Маршрутизатор. Версия протокола стоит третья, выбор основывал на выкладках из википедии по принципу что по новее.

Стандарты

Согласно Request for Comments (RFC), документу сообщества Internet Engineering Task Force (IETF), существует три версии IGMP. IGMPv1 определен в RFC 1112, IGMPv2 — в RFC 2236 и IGMPv3 — в RFC 3376.
Основным улучшением в IGMPv3 относительно IGMPv2 является поддержка фильтрации IP-адресов. С помощью этого механизма узел может сообщить, с каких адресов он хочет получать пакеты, а с каких нет.

      В таком режиме маршрутизации становится доступными много настроек во вкладке "Маршрутизатор". На самом деле настройка маршрутизации IGMP фактически уже настроена, но для сохранения нервной системы вкладку "Маршрутизация надо посетить".
На мой взгляд самый важный параметр в этом окне, это Интервал между запросами последнего члена. Этот параметр отвечает за время  через которое происходит опрос, не надумали ли вы сменить поток? Ну а проще говоря, решили вы переключить канал и посмотреть ДОМ2 и нажали на ТНТ, и канал переключится через то время которое указано в значении этого параметра! По умолчанию это значение ОЧЕНЬ БОЛЬШОЕ! 
Ковыряясь в настройках первый раз перебирая варианты и разбираясь во всяких интернет инструкциях, в которых каждый пишет всего по чуть чуть. И настроив все правильно (при этом еще не осознавая этого) я не как не мог понять, что же за фигня такая и почему ничего не работает!!!!! Потом жонглирование настройками мне надоело, и я пошел себе сделать чай оставив VLC проигрыватель включенным. Прихожу с чашкой чая, а у меня телек вещает на всю комнату :).
И на мой взгляд это значение нужно ставить минимально допустимым, т.е. 800мсек. В результате нервы целы, каналы переключаются даже быстрее чем на современных телеках с их функцией оцифровки и увеличения частоты. С остальными значениями тоже можно "поиграься", хотя я менял только те параметры которые завязаны на время, а все остальные переменные надежности и прочее прочее я не трогал.

Теперь телек работает, дело за интернетом. Но тут все просто.

8. Открываем сетевые подключения, открываем свойства VPN-подключения идем на вкладку "Доступ" и ставим галочку напротив "Разрешить другим пользователям сети использовать подключение к Интернету данного компьютера" и в окошке ниже указываем Подключение по локальной сети (Домашняя сеть).
На скринешоте почему то у меня стоит две галки...
 Не понимаю зачем я воткнул вторую галку напротив "Устанавливать телефонное подключение при попытке доступа к интернету", но комп сейчас далековато и делать повторно скриншот не хочется. Но сейчас я считаю, что вторая галочка НЕНУЖНА.

Жмем ОК. ВСЕ.

Дальше можно смотреть телевизор внутри сети на любом компе, если ваш провайдер не жлоб и предоставляет плейлист со списком каналов. А так же мы даже пробовали подключать мультимедийные боксы которых сейчас навалом, заливали в него плейлист провайдера и все работало. Правда каналы переключались медленно и с чем это связано я не разбирался.

=====================================================================

Ставить точку на этом не хочется и в ближайшую "пятилетку" (когда именно не знаю) буду собирать еще один домашний сервачек. В идеале все это видится так:
  • Сервак будет на базе MINI-ITX материнской платы
  • Средненький проц, не в коем случае не АТОМ - очень слаб. За название INTEL я платить не люблю и соотношение цена-производительность у AMD мне более чем достаточно. С количеством ядер я не определился, думаю что определяющим фактором будет в первую очередь цена. Но исходя их опыта эксплуатации сервака описанного выше, двух головый AMD Athlon 6000+ справляется с поставленными задачами на ура. Более того кулер на радиаторе проца еле крутится, и сам радиатор холодный. Так что если встанет вопрос тишины, считаю вполне реальным использование только пассивного охлаждения без жужалок и свистелок.
  • При выборе материнки приоритет будет отдаваться решениям с несколькими сетевыми адаптерами.
  • Все это предполагается организовать внутри 10' (десяти) дюймовой стойки.  Я не ошибся именно в ДЕСЯТИ дюймовой стойке. Вместе с расшитой патч-панелью и вероятнее всего с вайфай точкой доступа.
Все это будет проходить в рамках моего проекта "PRJ214" постараюсь фотографировать, документировать и выкладывать все своевременно. Выкладывать буду или тут, или на моем втором блоге, который более узко специализирован и называется Эскизная.
=====================================================================

     to be continued...

2 комментария:

  1. Не понятно как-то, на сервере поднята маршрутизация и далее указываете VPN соединение с инетом, тогда маршрутизация зачем нужна если у вас соединее осуществлется отдельно

    ОтветитьУдалить
    Ответы
    1. Маршрутизация перенаправляет IPTV телек во внутреннюю сеть.
      Сейчас вот у меня другой провайдер, который предоставляет инет без всяких VPN-ов. И хотелось построить все только исключительно через маршрутизацию и удаленный доступ. Так вот когда я в маршрутизации создаю IGMP протокол, IPTV начинает транслироваться во внутреннюю сеть (инет при этом еще не настроен). Затем я создаю NAT, и во внутренней сети появляется интернет НО ПРОПАДАЕТ IPTV.

      Как настроить все сразу без сторонних програм я ХЗ. Пришлось для маршрутизации IGMP пользовать отдельную прогу.

      У вас есть опыт работы в этой тематике? Может подскажите что нибудь?

      Удалить