User Tools

Site Tools


ru:inbox:mesh.olsr

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ru:inbox:mesh.olsr [2012/11/27 03:53]
ru:inbox:mesh.olsr [2013/09/06 12:50] (current)
Line 2: Line 2:
 [[wp>​OLSR]] и [[http://​www.olsr.org/​]] [[wp>​OLSR]] и [[http://​www.olsr.org/​]]
  
-Сети с ячеистой топологией (mesh-сети) обладают самоорганизацией и автонастройкой на основе сведений об изменении топологии сети. ​ For example, the properly configured OLSR mesh will automatically arrange itself in cases where one node fails, or when a new route emerges, or when a low traffic route becomes available or disappears. ​ The concept of a mesh network is not new; the Internet itself is a huge mesh network. ​ So what's new?  Well, mesh networks with wireless technology on OpenWrt simply rocks! ;)+Сети с ячеистой топологией (mesh-сети) обладают самоорганизацией и автонастройкой на основе сведений об изменении топологии сети. ​
  
-OLSR - это один из нескольких протоколов маршрутизации, предназначенный ​для создания  ​[[http://​ru.wikipedia.org/​wiki/​MANET|Mobile Adhoc Networks (MANET)]], ​илипроще говорябеспроводные децентрализованные самоорганизующиеся сети.  [[http://​www.olsr.org|The OLSR code developed by Andreas Tønnesen]] is the best suited for our case as packages have been created for OpenWrt.+Для примера, ​правильно настроенная OLSR сеть автоматически конфигурируется в случаях когда одна нода повреждается или появляется новый маршрутили в случае ​появления или пропажи более быстрого маршрута.
  
-Эта страница содержит информацию,​ о том как создать mesh-сеть путём настройки OpenWrt и olsrd (процесс демона OLSR). ​ Если ваша цель - быстро запустить OLSR-сеть,​ возможно вам захочется взглянуть на прошивку которая была создана специально для этих целей. ​ Примером такой прошивки является[[http://​firmware.freifunk.net|Freifunk project]]. ​ Если вы настроены на запуск ​OLSR в OpenWrt без помощи готовых прошивок,​ продолжайте чтение))+Эта концепцияя mesh сетей не нова - Интернет сам представляет из себя огромную mesh сеть. Что-же нового?​ Ну, Wi-Fi mesh сети построенные на OpenWRT - это просто круто ;) 
 + 
 +OLSR - это один из нескольких протоколов маршрутизации,​ предназначенный для создания ​ [[http://​ru.wikipedia.org/​wiki/​MANET|Mobile Adhoc Networks (MANET)]], или, проще говоря,​ беспроводные децентрализованные самоорганизующиеся сети. ​ [[http://​www.olsr.org|OLSR код разработанный Andreas Tønnesen]] это лучшее решение для нашей сборки созданной для OpenWRT. 
 + 
 +Эта страница содержит информацию,​ о том как создать mesh-сеть путём настройки OpenWrt и olsrd (процесс демона OLSR). ​ Если ваша цель - быстро запустить OLSR-сеть,​ возможно вам захочется взглянуть на прошивку которая была создана специально для этих целей. ​ Примером такой прошивки является[[http://​firmware.freifunk.net|Freifunk project]]. ​ Если вы хотите запустить OLSR в OpenWrt без помощи готовых прошивок,​ продолжайте чтение :) 
 + 
 +^  olsrd  0.6.1-3 ​ ^^^ 
 +^ Name               ​^ ​ Size  ^ Description ​ ^ 
 +| olsrd                |  108257 | OLSR (Optimized Link State Routing) daemon ​ | 
 +| olsrd-mod-dyn-gw-plain ​ |  2902 | Dynamic internet gateway plain plugin ​ | 
 +| olsrd-mod-bmf ​        ​| ​ 12106 | Basic multicast forwarding plugin, dependece: ''​kmod-tun'' ​ | 
 +| olsrd-mod-httpinfo ​   |  23831 | Small informative web server plugin ​ | 
 +| olsrd-mod-quagga ​     |   5848 | Quagga plugin ​ | 
 +| olsrd-mod-dyn-gw ​     |   4348 | Dynamic internet gateway plugin ​ | 
 +| olsrd-mod-txtinfo ​    ​| ​  6201 | Small informative web server plugin ​ | 
 +| olsrd-mod-nameservice |  11511 | Lightweight hostname resolver plugin ​ | 
 +| olsrd-mod-dot-draw ​   |  4233 | Dot topology information plugin ​ | 
 +| olsrd-mod-mdns ​       |  5648 | Multicast DNS plugin ​ | 
 +| olsrd-mod-watchdog ​   |  2316 | Watchdog plugin ​ | 
 +| olsrd-mod-arprefresh ​ |  2703 | Kernel ARP cache refresh plugin ​ | 
 +| olsrd-mod-p2pd ​       |  8066 | Peer to Peer Discovery plugin ​ | 
 +| olsrd-mod-secure ​     |  9710 | Message signing plugin to secure routing domain ​ | 
 + 
 +===== Сеть ===== 
 + 
 +Есть бесчисленное количество вариантов конфигурации mesh сетей; ниже находится простой пример разрешающий роутинг подсетей 10.0.0.0/​255.0.0.0 через OLSR mesh. 
 + 
 +<​code>​ 
 + 
 +      WAN                                                 WAN 
 +       ​| ​                                                  | 
 +OpenWrt + OLSR Node 1 ---- wireless link ---- OpenWrt + OLSR Node 2 
 +       ​| ​                                                  | 
 +      LAN                                                 LAN 
 +       ​| ​                                                  | 
 +  Workstation A                                       ​Workstation B 
 + 
 +</​code>​ 
 + 
 +На всех узлах (в нашем случае используется [[toh/​linksys/​wrt54gl]]) должен быть установлен OLSR. В общем, OLSR должен быть установлен на любом узле который учавствует в создании маршрутизации между заданными OLSR подсетями. 
 + 
 +OLSR узлы должны быть ​сконфигурированы на прослушивание всех WiFi интерфейсах на роутере. Включение на проводных интерфейсах не обязательно,​ в некоторых случаях это может ​помешать работе других служб, например DHCP. 
 + 
 +Если проводные интерфейсы на роутере имеют подесть отличающуюся от WiFi то можно настроить OLSR для передачи //host и network association//​ (HNA) сообщений другим роутерам. В зависимости от использования IPv4 или IPv6 вы можете настроить опции Hna4 или Hna6 в файле ''/?/​olsrd.conf''​ 
 + 
 +{{page>​meta:​infobox:​outdated&​noheader&​nofooter&​noeditbtn}} 
 + 
 + 
 +===== HOW TO ===== 
 +  - Разделите WiFi и LAN интерфейсы в файле ''​[[doc:​uci:​network|/​etc/​config/​network]]'',​ по умолчанию они соеденены в мост. 
 +  - Настройте WNICs для работы в режиме //adhoc//. Файл ''​[[doc:​uci:​wireless|/​etc/​config/​wireless]]''​ должен выглядеть так:<​code>​ 
 +config wifi-device ​ wl0 
 +        option type     ​broadcom 
 +        option channel ​ 11 
 +        # disable radio to prevent an open ap after reflashing:​ 
 +        option disabled 0 
 + 
 +config wifi-iface 
 +        option device ​  wl0 
 +        # option network ​       lan 
 +        option mode     ​adhoc 
 +        option ssid     ​OLSR 
 +        option hidden ​  0 
 +        option encryption none 
 +</​code>​ 
 +  - Установите olsrd<​code>​ 
 +  opkg update 
 +  opkg install olsrd 
 +</​code>​ 
 +  - Измените ''/​etc/​olsrd.conf''​ и поменяйте "​Interface "​XXX"​ на WiFi интерфейс вашего роутера. Пример<​code>​ 
 +# olsr.org OLSR daemon config file 
 +# /​etc/​olsrd.conf 
 +
 +# Modified for sample OLSR network by Justin S. Leiteb 
 +# http://​justin.phq.org/​ Fri Jun  8 10:34:27 EDT 2007 
 +# Many comments and commented line from conf file distributed 
 +# with olsrd omitted for brevity in wiki. 
 + 
 +DebugLevel 0 
 +IpVersion 4 
 +ClearScreen ​    yes 
 + 
 +# On the second OLSR node (olsrd.conf not supplied for this node, since only one line is different),​ 
 +# which has a LAN interface on the 10.100.2.0/​255.255.255.0 network, the Hna4 entry is: 
 +# 10.100.2.0 255.255.255.0. ​ These Hna4 entries are what propagates information about how to route 
 +# to these subnets through the mesh. 
 +Hna4 
 +
 + # My home LAN 
 + 10.100.1.0 ​ 255.255.255.0 
 +
 + 
 +AllowNoInt yes 
 +UseHysteresis yes 
 + 
 +# Hysteresis parameters 
 +HystScaling 0.50 
 +HystThrHigh 0.80 
 +HystThrLow 0.30 
 + 
 + 
 +LinkQualityLevel 0 
 +Pollrate 0.05 
 +NicChgsPollInt ​ 3.0 
 + 
 +Interface "​wl0"​ 
 +
 +    AutoDetectChanges ​           yes 
 +
 + 
 +# Run http server with mesh information. ​ Won't work unless you've already installed 
 +# the olsrd_httpinfo plugin through ipkg. 
 +LoadPlugin "​olsrd_httpinfo.so.0.1"​ 
 +
 + PlParam "​port"​ "​1979"​ 
 + PlParam "​Net"​ "​0.0.0.0 0.0.0.0"​ 
 +
 +</​code>​ 
 +  - Файрвол - разрешите роутеру форвардинг пакетов между интерфейсами:<​code>​ 
 +#!/bin/sh 
 + 
 +# Copyright (C) 2006 OpenWrt.org 
 + 
 +iptables -F input_rule 
 +iptables -F output_rule 
 +iptables -F forwarding_rule 
 +iptables -t nat -F prerouting_rule 
 +iptables -t nat -F postrouting_rule 
 + 
 +# The following chains are for traffic directed at the IP of the 
 +# WAN interface 
 + 
 +iptables -F input_wan 
 +iptables -F forwarding_wan 
 +iptables -t nat -F prerouting_wan 
 + 
 +# Does anyone have a command to get the name of the WIFI interface on Kamikaze so 
 +# that it doesn'​t have to be hard-coded here?  This is a bit sloppy it seems. 
 +WIFI=wl0 
 + 
 +iptables ​       -A input_wan ​     -p tcp --dport 22 -j ACCEPT 
 + 
 +# Allow connections to olsr info port. 
 +iptables ​       -A input_wan ​     -p tcp --dport 1979 -j ACCEPT 
 + 
 +# OLSR needs port 698 to transmit state messages. 
 +iptables -A input_rule -p udp --dport 698 -j ACCEPT 
 + 
 + 
 +# Debugging... do we have WIFILAN and WAN appropriately defined? 
 +# These values are passed to us from /​etc/​init.d/​firewall,​ which 
 +# calls this script. 
 + 
 +# echo WIFI == $WIFI 
 +# echo LAN == $LAN 
 +# echo WAN == $WAN 
 + 
 +iptables -A forwarding_rule -i $WAN -o $WIFI -j ACCEPT 
 + 
 +iptables -A forwarding_rule -i $WIFI -o $WAN -j ACCEPT 
 + 
 +# For forwarding LAN & WIFI in nodes 
 +iptables -A forwarding_rule -i $LAN -o $WIFI -j ACCEPT 
 + 
 +# For WIFI clients to connect to nodes. 
 +iptables -A forwarding_rule -i $WIFI -o $WIFI -j ACCEPT 
 + 
 +# For connecting a wired lan client of node 1 to wired lan client of node 2 
 +iptables -A forwarding_rule -i $LAN -o $LAN -j ACCEPT 
 + 
 +# WIFI needs to go to LAN ports, too! 
 +iptables -A forwarding_rule -i $WIFI -o $LAN -j ACCEPT 
 +</​code>​ 
 +  - Запустите olsrd<​code>​ 
 +/​etc/​init.d/​olsrd start 
 +/​etc/​init.d/​olsrd enable 
 +</​code>​ 
 + 
 +Перезагрузите ​роутер пропингуйте интерфейсы на разных устройствах. Выпейте любимый напиток ​для ощущения праздника! 
 + 
 +===== После начальной конфигурации ===== 
 +Вы можете попробовать некоторые плагины которые легко настраиваются и могут показать простые статус вашей сети. В своей сети я запустил ''​olsrd-mod-httpinfo''​ который запускает простой http сервер показывающий статус mesh сети. 
 + 
 +===== Ссылки ===== 
 +  * [[http://​www.olsr.org|Master'​s thesis of primary developer of olsrd]] - Cледует ​читать перед установкой OLSR если вы не до конца понимаете фундаментальные осного его работы. 
 +  * [[http://​nbd.name/​openwrt|Manual for Kamikaze by one of the developers]] - Отличный справочник по настройке сетевых интерфейсов и других частей OpenWrt. 
 + 
 +{{tag>​mesh}}
ru/inbox/mesh.olsr.1353984832.txt.bz2 · Last modified: 2012/11/27 03:53 (external edit)