Meeskond "Tartu rõõm"

From ICO wiki
Jump to navigationJump to search

Liikmed

  • Inger Romanenko
  • Sander Saveli
  • Sander Arnus
  • Kalmer Tart
  • Kristjan Rõõm

Meie eesmärk intensiivõppe raames

Automaatne võrguühenduste konfigureerimine erinevate võrkudega

Konfigureerida arvuti, millel on 3G, Wifi, Ethernet-over-Powerline ja Etherneti pordid ning mille operatsioonisüsteemiks on Ubuntu Linux. Võrguühendust vahetataks ühenduse olemasolu ja prioriteetide alusel üle erinevate tehnoloogiate võimalikult lihtsalt ja kiirelt. IP aadress ei pea samaks jääma. Wifi adapter valib ise parima avaliku võrgu, kui ei ole konfigureeritud teisiti. Kui Wifi ühendus kaob, proovib teisi ka taustal. Kõik ümberlülitamised logitakse. Näiteks: Prioriteetideks on Ethernet:1; EoP:2; Wifi:3; 3G:4. Ühendatakse kõikidesse võimalikesse võrkudesse ning kui Ethernet ära kukub ning pole võimalik ühenduda ka läbi EoP, toimub ühenduse ümberlülitamine Wifi võrku. Kui Wifi ära kukub, siis ühendutakse 3G võrku. Kui tuleb suvaline public wifi tagasi, ühendutakse sinna jne. Luua lihtne kasutajaliides Android telefonile, mis lubab üle bluetooth ühenduse erinevaid võrke ja prioriteete konfigureerida ning vaadata ühenduste ajalugu.

Ajakava/progress

Esmaspäev 26.03.2012

Eesmärgid:

  • Tutvuda olukorraga
  • Kohtuda Ericssoni inimesega
  • Otsida lahendusi, kuidas teha kindlaks erinevaid võrguliideseid

Küsimused Ericssonile:

  • Kuidas teha vahet eop-l ja ethernetil?
  • Kui valmis peame tegema?
  • Miks peab tegema läbi androidi?
  • etc/interface?

Edusammud:

  • Leidsime badVPN NCD ning proovime sellega prioritiseerida erinevaid võrguliideseid
  • Kohtusime Ericssoni inimesega ning arutasime, kuidas oleks võimalik ülesannet lahendada. Peaks määrama prioriteedid ning valima parima võrgu vastavalt prioriteedile. Wifi puhul võiks ühenduda public wifisse ning kui on mitu, proovima erinevaid. Võrgutegevust logitakse. Saime kaasa miniarvuti, G3 internetipulga, bluetooth adapteri, ethernet over powerline jms.

Küsimus: Kas kasutame enda leitud badVPN NCD-d või kasutame by default olemasolevat Network Manageri?

Materjalid badVPN NCD kohta:

Katsetame virtuaalmasinas. Hetkel suudab NCD switchida kahe etherneti vahel. Kui on prioriteet 1. olemas paneb 1. kui 1. pole paneb 2. Kui siis tuleb 1. tagasi ja 2. kaob paneb jälle 1. AGA kui 1 tuleb tagasi aga 2 ka alles, siis ei pane 1.

Avastasime, et olime valesti manuali lugenud ning kood oli vigane. Nüüd parandasime ära vea ning saime veast lahti. Kui tuleb 1. prioriteet tagasi võtab selle üle.

Otsustasime enda leitud lahenduse kasuks, sest on juba osa koodist tehtud ning saab seda muuta enda soovide järgi. Network Manageriga peaks kõik nullist tegema ning seda varianti tegi ka ericcsoni inimene, seega meie lahendus tundus meile huvitavam. Network Manageri panime kinni, et see ei segaks.

Proovisime installeerida arvutisse Ubuntu, kuid lõpuks jäime ikkagi Lubuntu juurde, mis juba oli olemas. Proovime päris arvutis teha seda, mis tegime virtuaalmasinas.

Hakkame modifitseerima badVPN-i, et saada tööle ka wifi ja 3G.

Tulemus: Saime tööle Wifi ning kui tekib Ethernet vahetab selleks ümber. Hetkel aga on probleem public võrkudega, sest ühendub ainult etteantud võrku. Samuti oleme alustanud 3G-ga, kuid hetkel see konfliktib NCD-ga ja vajab eraldi konfi.

Teisipäev 27.03.2012

Eesmärgid:

  • Saada valmis prioritiseerimine
  • Saada tööle 3G
  • Alustada logimisega ning androidiga

Hakkame uurima Network Manageri alternatiivvariandina, sest badVPN-il NCD ja 3G konfiguratsioonid võivad sattuda konflikti.

Selgus, et NCD-ga ei õnnestu meil ikkagi teha ülesannet, sest 3G-ga on keeruline funktsionaalsust luua. Võtsime kasutusele nm, millel algselt toimib prioritiwseerimne väga hästi, ainuke probleem on, et ei ole võimalik ise prioriteete määrata.

Kalmer hakkab tegema androidi bluetooth ühendust (javas), et saaks ühendada telefoni ja arvuti vahel.

Tegime skripti wifi jaoks, mis otsib kõik avalikud wifi võrgud, mis on läheduses ja koostab nende kohta individuaalfailid mida kasutab Network Maganager võrkudesse automaatseks ühendamiseks.

WiFi skript

#!/bin/bash
# Autor: Tartu Rõõm
# Kirjeldus, mida skript teeb
##
# Versioon 1.0

# Kontrollib kas juurkasutajana k2ivitati skript
export LC_ALL=C


if [ $UID -ne 0  ]
then
    echo "K2ivita skript $(basename $0) juurkasutaja 6igustes"
exit 1
fi

#Suvaline arv UUID lõppu
I=18290

#Leiame arvuti wlan seadme mac aadressi
MAC=$(ifconfig | grep wlan | cut -d " " -f10)
echo $MAC

# Otsime avalikud võrgud
for line in $(nmcli -p dev wifi | grep [--] | grep s | cut -d "'" -f2); do
    SSID=$line
    echo $SSID

    # Loome igale access pointile ssid faili
    touch /etc/NetworkManager/system-connections/$SSID

    I=$(($I+1))

cat > /etc/NetworkManager/system-connections/$SSID << LOPP

[connection]
id=$SSID
uuid=76e42b6b-a79d-4e7d-bd27-5d19f54$I
type=802-11-wireless

[802-11-wireless]
ssid=$SSID
mode=infrastructure
mac-address=$MAC

[ipv6]
method=auto

[ipv4]
method=auto

LOPP

    chmod 600 /etc/NetworkManager/system-connections/$SSID

done

service network-manager restart

Nüüd on vaja luua prioritiseerimine vastavalt meie vajadusele. Network Manageril on sisseehitatud kindlad prioriteedid ja selle raames toimib kõik väga hästi, aga probleem tekib sellestm et Network Manageris ei saa muuta prioriteete.

Leidsime Kristjan Kaldre abiga lahenduse: hakkasime meetrikute alusel määrama routing tables default gatewaysid, mille tulemusena saime prioritiseerida võrguühendused.

Probleem, mis tekkis oli see, et Network Manager hakkas ise oma tahtmist mööda käituma, kuid lahendasime probleemi Network Manageri skriptidega.

Kolmapäev 28.03.2012

Eesmärgid:

  • Teha bluetooth ühendus
  • Teha logimine
  • Korrastada dokumentatsioon
  • Valmistuda presentatsiooniks