Unbreakable Internet for Everyone?

The credit for this blog post goes to a friend of mine. In the middle of an access-management hardening exercise, he sent me into a state of pure networking euphoria with an inspiring LinkedIn chat.

Niklas brought up an old LinkedIn post of mine in which I commented about the internet connectivity setup at my remote office. You see, I spend my days in a sparsely populated area, and the internet is not only the most essential enabler of my work but also a vital connection to the outside world for many of my hobbies and interests. Consequently, I am not easily satisfied with the network capacity available to me.

Especially since you cannot get a proper connection out here in the back of beyond, no matter how much you are willing to pay.

First and foremost, I want to highlight the Swiss Army knife of connectivity in remote locations: Starlink. It is an absolutely killer solution for challenging connectivity conditions.

Starlink only requires a sufficiently unobstructed view of the sky—a factory’s flat roof is an excellent location. Finding a suitable installation site in a city may be more difficult unless you happen to live on the top floor of an apartment building. On an island, at the bottom of a remote peninsula or in the backwoods of Lohja, however, Starlink is practically guaranteed to provide decent bandwidth. RAN connections (Radio Access Networks, better known to us as 4G and 5G) can suffer from extremely poor coverage in places like these.

You may need to clear away a few obstructing trees or mount the dish on top of a proper pole, but download speeds of around 300 Mbps are achievable anywhere in Finland. The only significant drawback is the relatively high latency.

For ordinary use, like web browsing, Teams meetings, streaming and email, it is hardly noticeable. Latency is poison for gaming, however, and it may also become irritating when working through RDP or SSH if the destination is far enough away—for example, on another continent.

My own problem is one annoyingly dynamic pine tree. It has grown enough (over 1 m!) since the installation that my connection now experiences a three-to-six-second packet loss time roughly once every five minutes. Looks like I need to raise the Starlink pole on the roof by another metre. Apparently, getting rid of the tree is not an option, as the “the headmaster” has threatened to make me sleep in the garage.

But What About Reliability?

When there is no perfect option, you have to make do with the least imperfect solutions available. The problems usually come from two directions.

First, the performance of the available connections does not meet demanding requirements, so you have to settle for whatever is available. That said, Starlink provides a level of connectivity that is perfectly sufficient for professional use, even deep in the countryside.

The second problem is trickier: connection stability does not match that of high-quality fibre. On the other hand, for someone working entirely remotely, I do not believe even a consumer fibre connection provides sufficient resilience on its own. Consumer connections are certainly not guaranteed to work continuously, and their SLAs are what they are. I have witnessed routing outages lasting more than 24 hours with several different operators.

Redundancy is relatively easy to arrange, however: use connections from multiple operators. Alongside a fibre connection, you could add even a moderately performing 4G or 5G connection. The more operators you use, the less likely it becomes that all their networks will fail simultaneously.

Finland has three nationwide mobile network operators: Telia, Elisa and DNA. In rural areas, it is extremely rare for several operators to provide sufficiently strong coverage at the same location. A prepaid 5G subscription is a good and inexpensive way to test an operator’s actual performance in your area.

My own solution is to use connections from all three mobile network operators with Starlink’s cheapest plan providing additional redundancy.

One of the mobile connections can theoretically provide excellent bandwidth. Its maximum speed has exceeded 500 Mbps in the early hours of a public-holiday morning. Unfortunately, the capacity of that mobile broadband has been heavily oversold, so during the day the available bandwidth fluctuates almost unbelievably.

The base station is also so far away that I had to use a highly directional, high-gain antenna. The other two operators provide considerably less bandwidth but also much less variation in speed. Their base stations are also close enough that an outdoor modem and careful alignment were sufficient.

This naturally costs money, but for a system that is critical to my business, the overall solution is relatively inexpensive. Starlink costs €35 per month, while the primary mobile connection costs €26.95 per month. I picked up the two backup connections through special offers. In an area with poor radio coverage there is little point paying for anything faster than 100 Mbps—because even that speed will rarely materialise.

In total, my connections cost less than €65 per month, excluding VAT. This setup has now delivered more than nine months of completely uninterrupted data connectivity. Very few enterprise-grade connections can match that.

My thinking has changed: I no longer consider a connection that relies on a single operator to be genuinely uninterrupted or resilient. It makes no difference whether you have fibre delivered through two physically separate routes, supplemented by a separate mobile backup connection. The operator still has to perform maintenance or may simply botch its routing.

The only way to achieve genuinely reliable connectivity is to distribute it across the networks of multiple operators. Modern SD-WAN technologies have made this ridiculously easy.

So, What About Bandwidth?

When several connections are used in parallel, the practical options are connection bonding and load balancing. These are two completely different ways of utilising multiple connections.

When I moved out here to the back of beyond, I initially had to bond several connections because none of the mobile operators could provide even respectable speeds with equipment installed indoors—and Starlink was not yet available. Maximum speeds were around 70 Mbps.

Bonding is often referred to as bandwidth aggregation. In plain language, this means combining the capacity of several separate connections into one larger connection. In the best-case scenario, the bandwidth available between locations X and Y will be roughly equal to the combined capacity of the individual connections.

For example, if you have connections providing 100 Mbps, 50 Mbps and 40 Mbps, you can combine them and potentially achieve close to 190 Mbps of bandwidth for a single data transfer.

Technically, the mechanism works by establishing a connection from the source to the destination through each available path. At the destination, there is a physical or virtual endpoint behind a fast internet connection. The VPN tunnels established between these points are combined (“bonded”) into a single logical connection.

For migrations and the replication of large volumes of data, this may be the only workable option if the capacity of each individual connection is too limited.

The challenge with combining tunnels is the additional latency it introduces. My aggregation point was initially hosted in Azure. We MCT’s (Microsoft Certified Trainers) receive complimentary Azure credits. However, I found myself in a situation where even a direct Starlink connection provided lower latency. Moving the aggregation point to a Finnish data centre improved the result.

In practice, bandwidth aggregation (aka bonding) is not the best solution for ordinary remote-office use. It is useful for operations that require substantial bandwidth, such as cloud migrations. Unfortunately, you have to decide at the application level which traffic should be routed through the bonded group of VPN tunnels. Teams traffic and ordinary web browsing, for example, are usually better routed elsewhere because sending them through the bonded connection may degrade the user experience. Eventually, the firewall’s routing rules become quite complicated.

Bandwidth bonding is also problematic when the underlying connections experience brief “blips.” It generally takes several seconds for the tunnels and routing to recover from an interruption. With poor-quality connections—the eternal curse of living in the woods—this can cause significant challenges.

If you nevertheless want to combine connections and achieve top-tier download speeds through aggregated bandwidth, consider a purpose-built commercial solution. Mushroom Networks and Peplink, for example, offer extremely easy-to-deploy mobile connection bonding solutions. Having tested both, I can recommend them. You really cannot go wrong. Naturally, a high-quality firewall such as a FortiGate or Palo Alto can also bond multiple WAN connections.

I have personally moved to load balancing. My firewall distributes traffic across four connections according to the following rules:

  1. Traffic from Teams and RDP sessions used by my wife and me—as we both work from here in the countryside—is always routed through the SD-WAN link with the lowest latency to the Teams service. PROVIDED that the link has no packet loss whatsoever and offers more than 70 Mbps of available download capacity and more than 20 Mbps of upload capacity. If those conditions are not met, the traffic is moved to the connection with the second-lowest latency.
  2. Web-browsing traffic is routed through the other SD-WAN members. This leaves the optimal amount of capacity on the lowest-latency connection for Teams and RDP traffic.
  3. Secondary traffic—we have more than 40 IoT devices, eight continuously reporting surveillance cameras, backup traffic and all sorts of other miscellaneous junk—is always routed through the weakest connection.
  4. After 5 p.m., gaming traffic is routed through the connection with the lowest latency.

In principle, the difference between bonding and load balancing is relatively insignificant in a multi-user environment. If you have two connections, each providing approximately 100 Mbps, shared by ten employees, it generally makes little difference to the users whether the router or firewall distributes their traffic between the two connections through load balancing or combines the connections into a single logical pipe.

Bonding becomes advantageous when an individual user or data transfer requires more capacity than a single connection can provide but is prepared to compromise on latency and resilience in return.

Two pictures from my setup. The first one contains Starlink antenna and then directional, high-gain 5G antenna. Next one is outdoor 5G modem – very easy to install and orient to right direction (easy App, takes just few minutes).

Haavoittumaton netti kaikille?

Tästä blogahduksesta kiitos kuuluu ystävälleni. Hän sai minut suorastaan tietoliikennehurmokseen kesken väsyttävän pääsynhallinnan koventamisen inspiroivalla Linkkari-chattisessiolla.

Niklas nosti esiin vanhan linkkarikirjoitukseni, jossa märisin etäkonttorini tietoliikennesetupista. Joo-o, kun päiväni kuluvat haja-asutusalueella ja internet edustaa paitsi kaikkein välttämättömintä työn mahdollistajaa myös useiden harrastusteni ja mieltymysteni kannalta olennaista yhteyttä ulkomaailmaan, en kovin helposti ole täysin tyytyväinen käytössä olevaan tietoliikennekapasiteettiin.

Etenkin kun tänne internetin selän taakse ei rahallakaan saa kunnon yhteyksiä. GlobalConnect kävi viime vuonna myymässä valokuituliittymän, mutta sen jälkeen heistä ei olekaan kuulunut mitään. Tämä on ollut yksi hämmästyttävimmistä asiakaspalvelukokemuksistani: ensin myyntiparivaljakko kiertää ovelta ovelle myymässä – mietipä asiakashankinnan kustannusta! – ja sitten asiakkaalle ei viestitä yhtään mitään. Vastauksiakin kyselyihin sai tivata monta kertaa: ”Toistaiseksi alueellenne ei ole tehty rakentamispäätöstä, eikä meillä tällä hetkellä ole antaa lisätietoja aikataulusta.”

Heti ensimmäisenä haluan nostaa esiin periferian datayhteyksien linkkuveitsen eli Starlinkin. Se on aivan killeri ratkaisu haastaviin yhteysolosuhteisiin.

Starlink tarvitsee vain riittävän esteettömän näkymän taivaalle – tehtaan tasakatto on tähän mitä mainioin paikka. Kaupungissa sopivan asennuspaikan löytäminen voi tuottaa haasteita, ellet asu kerrostalon ylimmässä kerroksessa. Saaressa, niemennotkossa tai Lohjan peräkylässä Starlink on kuitenkin sikäli takuuvarma, että kaistaa löytyy. RAN-yhteydet (Radio Access Network) eli tutut 4G- ja 5G-verkkomme voivat tällaisissa paikoissa kärsiä hyvinkin heikosta kuuluvuudesta.

Ehkä jokunen puu täytyy raivata varjostamasta – tai lautanen asentaa kunnon seipäännokkaan – mutta noin 300 Mbps latausnopeuksiin pääsee käytännössä kaikkialla Suomessa. Ainoa merkittävä miinus on kohtalaisen suuri latenssi. Tavanomaista käyttöä, kuten verkkoselailua, Teams-istuntoja, suoratoistoa tai sähköpostittelua, se ei juuri haittaa. Pelaamisessa latenssi on kuitenkin myrkkyä, ja päätetyöskentelyssä RDP tai SSH kautta se saattaa alkaa harmittaa, mikäli kohde sijaitsee riittävän kaukana – esimerkiksi toisella mantereella.

Itselläni ongelmana on yksi harmillisen dynaaminen mänty. Se on kasvanut asennuksen jälkeen sen verran, että yhteyteeni tulee nyt noin kerran viidessä minuutissa 3–6 sekunnin katkos. Pitäisi taas käydä nostamassa katolla olevaa Starlink-tolppaa metrillä. Puusta ei kuulemma saa luopua, sillä pääjohtaja uhkasi autotallimajoituksella.

Mutta entäpä toimintavarmuus?

Kun täydellistä vaihtoehtoa ei ole, täytyy pyrkiä pärjäämään välttävillä ratkaisuilla. Ikävyydet tulevat usein kahdesta suunnasta.

Ensinnäkään yhteyksien suorituskyky ei täytä vaativia kriteereitä, joten joudutaan tyytymään siihen, mitä on saatavilla. Tässä on toki todettava, että Starlink tarjoaa työkäyttöön täysin riittävän yhteystason hyvinkin syvällä böndellä.

Toinen ongelma on kimurantimpi: yhteyksien vakaus ei vastaa laadukasta valokuitua. Toisaalta puhtaasti etänä työskentelevälle kuluttajavalokuidunkaan toimintavarmuus ei mielestäni riitä yksin. Kuluttajayhteydet eivät todellakaan ole aina ja jatkuvasti toimivia, ja niiden SLA ovat mitä ovat. Olen todistanut useammankin operaattorin yli vuorokauden kestäneitä reitityskatkoja.

Redundanssi on kuitenkin suhteellisen helppo järjestää: ota käyttöön usean operaattorin yhteydet. Valokuituyhteyden rinnalle voi hankkia vaikka vain kohtalaisesti kuuluvan 4G- tai 5G-yhteyden. Mitä useamman operaattorin yhteyksiä käytät, sitä epätodennäköisempää on, että niiden kaikkien verkot pätkivät samanaikaisesti.

Tähän liittyy kuitenkin pieni varoituksen sana: DNA ja Telia käyttävät paikoitellen samaa yhteisverkkoa. Niitä ei siis kannata käyttää toistensa varayhteyksinä alueella, jolla ne operoivat samaa mobiiliverkkoa.

Suomessa on kolme valtakunnallista mobiiliverkko-operaattoria: Telia, Elisa ja DNA. Maaseudulla on erittäin harvinaista, että useamman operaattorin verkko yltää samaan sijaintiin riittävän vahvana. Prepaid-5G-liittymä on hyvä ja edullinen tapa testata operaattorin todellinen nopeus omalla alueella. Operaattoreiden sivustojen tarjoamat kartat ovat parhaimmillaankin vain suuntaa-antavia.

Oma ratkaisuni on käyttää kaikkien kolmen mobiiliverkko-operaattorin yhteyksiä ja Starlinkin edullisinta versiota lisävarmistuksena.

Yksi mobiiliyhteyksistä tukeutuu melko uuteen tukiasemaan ja tarjoaa teoriassa erittäinkin hyvän kaistan. Maksiminopeus on noussut juhlapyhän aamuyönä yli 500 Mbps. Tukiaseman kapasiteetti on kuitenkin ikävä kyllä ylimyyty moneen kertaan, joten päivisin kaistanleveys vaihtelee aivan käsittämättömästi.

Tukiasema sijaitsee lisäksi niin kaukana, että jouduin käyttämään voimakkaasti suuntaavaa ja vahvistavaa antennia. Kaksi muuta operaattoria tarjoavat selvästi heikomman kaistan mutta samalla vähemmän vaihtelua nopeuksissa. Niiden tukiasemat ovat myös sen verran lähellä, että ulkomodeemi ja hyvä suuntaus riittivät.

Kuluja toki syntyy, mutta liiketoiminnan kannalta kriittiseksi järjestelmäksi kokonaisuus on verrattain edullinen. Starlink maksaa 35 euroa kuukaudessa ja pääasiallinen mobiiliyhteys 26,95 euroa kuukaudessa. Kaksi varayhteyttä olen keräillyt tarjouslaarista. Niin kutsuttu tablettinetti on yleensä edullisin vaihtoehto, eikä heikon radioverkon alueella kannata maksaa yli 100 Mbps yhteydestä – sekään nopeus kun ei useimmiten toteudu.

Yhteyteni maksavat yhteensä alle 65 euroa kuukaudessa ilman arvonlisäveroa. Tällä kokonaisuudella on nyt kellotettu reilut yhdeksän kuukautta täysin katkeamatonta datayhteyttä. Harva yritystason datayhteys yltää samaan. Ainakin platina-SLA varustettu Telian Datanet on pätkäissyt asiakkaillani samassa ajassa, samoin kuin Elisan hieno, kahta fyysistä reittiä pitkin toteutettu datayhteys.

Oma ajatteluni on muuttunut siten, etten enää pidä yhden operaattorin varassa olevaa yhteyttä aidosti katkeamattomana tai haavoittumattomana. On aivan sama, vaikka käytössä olisi kahta fyysistä reittiä pitkin tuotu kuitu ja sen lisäksi erillinen mobiilivarmennus. Operaattori joutuu pitämään huoltoikkunoita – tai ryssii reitityksensä. Aidosti luotettavan yhteyden saa vain hajauttamalla sen usean operaattorin verkkoihin. Nykyiset SD-WAN -tekniikat ovat tehneet tästä naurettavan helppoa.

Kuinkas sitten kaistan kanssa?

Kun useita yhteyksiä käytetään rinnakkain, vaihtoehtoina ovat käytännössä yhteyksien bondaus tai kuormantasaus. Nämä ovat kaksi täysin erilaista tapaa hyödyntää useita yhteyksiä.

Kun muutin tänne Jumalan selän taakse, jouduin aluksi bondaamaan yhteyksiä, koska en saanut sisätiloihin sijoitetuilla laitteilla yhdeltäkään mobiilioperaattorilta edes säällisiä nopeuksia (eikä Starlink ollut vielä saatavilla). Maksimit olivat noin 70 Mbps luokkaa.

Bondauksesta käytetään usein termiä bandwidth aggregation eli kaistan yhdistäminen. Kansankielellä se tarkoittaa sitä, että useiden erillisten yhteyksien kapasiteetti yhdistetään yhdeksi suuremmaksi kokonaisuudeksi. Näin paikasta X paikkaan Y voidaan saada kaistaa parhaimmillaan suunnilleen yksittäisten yhteyksien yhteenlasketun kapasiteetin verran.

Jos käytössäsi on esimerkiksi 100 Mbps, 50 Mbps ja 40 Mbps yhteydet, voit yhdistää ne ja saavuttaa tiedonsiirrossa parhaimmillaan lähes 190 Mbps kaistanleveyden.

Teknisesti mekanismi toimii siten, että lähtöpäästä muodostetaan yhteys kutakin käytettävissä olevaa väylää pitkin kohdepäähän. Kohdepäässä on fyysinen tai virtuaalinen päätelaite nopean yhteyden takana. Näiden pisteiden välille muodostetut VPN-tunnelit yhdistetään eli bondataan yhdeksi loogiseksi yhteydeksi.

Esimerkiksi migraatioissa ja suurten tietomäärien replikoinnissa tämä voi olla ainoa käyttökelpoinen vaihtoehto, jos yksittäiset yhteydet ovat kapasiteetiltaan liian vaatimattomia.

Tunnelien yhdistämisen haasteena on siitä aiheutuva lisäviive. Minulla yhdistämispiste sijaitsi aluksi Azuressa – MCT kun saavat ilmaista Azure-kulutusta. Päädyin kuitenkin tilanteeseen, jossa jopa suoraan käytetty Starlink-yhteys tarjosi huomattavasti pienemmän latenssin. Kun siirsin kokoomapisteen suomalaiseen konesaliin, tulos parani.

Käytännössä bandwidth aggregation eli bondaus ei lopulta ole paras ratkaisu tavalliseen etäkonttorikäyttöön. Se on hyödyllinen suurta kaistanleveyttä vaativissa operaatioissa, kuten pilvimigraatioissa. Ikävä kyllä siinä täytyy sovellustasolla miettiä, millaista liikennettä bondatussa VPN-tunneliyhdistelmässä kannattaa ajaa. Esimerkiksi Teams-liikennettä tai tavallista verkkoselailua ei yleensä ole järkevää reitittää sen kautta, sillä käyttökokemus voi heikentyä.

Lopulta palomuurin reitityssäännöstöstä tulee varsin monimutkainen – ellet sitten osta jotain upeita automaatiokilkkeitä. Silloin tosin luovut osasta hallintaa ja maksat automaatiosta. Kaistan bondaus on ongelmallinen myös yhteyksien lyhyiden ”räpsyjen” kannalta. Kestää yleensä joitakin sekunteja, ennen kuin tunnelit ja reititys toipuvat katkoksesta. Heikkolaatuisten yhteyksien kohdalla – metsäasutuksen ainainen riesa – tämä voi aiheuttaa merkittäviä haasteita.

Jos kuitenkin tavoittelet yhteyksien niputtamista ja huipputason download-nopeuksia (yhdistettyjen kaistojen ansiosta), harkitse siihen tarkoitukseen suunniteltuja valmisratkaisuja. Esimerkiksi Mushroom Networks ja PEP Link tarjoavat erittäin helposti käyttöönotettavia mobiiliyhteyksien bondausratkaisuja. Molempia kokeilleena voin suositella – et voi epäonnistua. Toki laadukas muuri (esim. FortiGate tai Palo Alto) kykenee myös useiden WAN-yhteyksien bondaukseen.

Olen itse siirtynyt kuormantasaukseen. Palomuuri jakaa liikenteen neljälle yhteydelle seuraavan säännöstön mukaisesti:

  1. Minun ja rouvan Teams- ja RDP-liikenne – kun molemmat teemme töitä täältä böndeltä – ohjataan aina sille SD-WAN-liittymälle, jolla on lyhin latenssi Teams-palveluun. EDELLYTTÄEN, ettei kyseisessä liittymässä esiinny lainkaan pakettihävikkiä ja että latausnopeutta on käytettävissä yli 70 Mbps sekä lähetysnopeutta yli 20 Mbps (jos ei, kääntää sitten latenssin kannalta 2. parhaalle yhteydelle).
  2. Selausliikenne ohjataan muille SD-WAN-jäsenille. Näin Teams- ja RDP-liikenteelle jää optimaalinen kapasiteetti pienimmän latenssin yhteydellä.
  3. Sekundäärinen liikenne (meillä on muun muassa yli 40 IoT-laitetta, 8 jatkuvasti raportoivaa valvontakameraa sekä varmuuskopiointiliikennettä ja kaikenlaista muuta “silsaa”) ohjataan aina heikoimman linjan kautta.
  4. Kello 17 jälkeen peleihin liittyvä liikenne reititetään lyhimmän latenssin yhteydelle.

Periaatteessa bondauksen ja kuormantasauksen välinen ero on usean käyttäjän ympäristössä melko merkityksetön. Jos käytössä on kaksi yhteyttä, joista molemmat tarjoavat noin 100 Mbps nopeuden ja joita käyttää kymmenen työntekijää, käyttäjien kannalta ei yleensä ole suurta merkitystä sillä, jakaako reititin tai palomuuri liikenteen yhteyksille kuormaa tasaamalla vai yhdistetäänkö yhteydet yhdeksi loogiseksi putkeksi.

Bondaus on eduksi, mikäli yksittäinen käyttäjä tai tiedonsiirto tarvitsee enemmän kapasiteettia kuin yksi yhteys pystyy tarjoamaan, mutta on toisaalta valmis tinkimään latenssista ja haavoittumattomuudesta.

Pari kuvaa yhteyksistä – Starlink, 5G erillisellä, voimakkaasti suuntaavalla ulkoantennilla ja lopuksi äärihelppo vaihtoehto, ulkomodeemi 5G-yhteyksiin (laaja suuntauskiila ja helppo mobiili-Appi – suuntaus onnistuu parissa minuutissa).