Podmořské internetové kabely jsou dnes obrovské riziko, tvrdí experti

22. 10. 2024

Sdílet

Autor: Depositphotos
Dopady přerušení páteřních komunikačních kabelů se silně podceňují, varuje RETN, globální poskytovatel síťových služeb. Podle něj je načase přepracovat strategií dálkových komunikací.

RETN tvrdí, že z jeho diagnostiky vyplývá, že přerušení kabelů v Rudém moři v únoru 2024, které podle původních informací ovlivnilo čtvrtinu datového provozu mezi Evropou a Asií, naopak způsobilo mnohem větší narušení, než se původně odhadovalo.

Jste připraveni na globální výpadek internetu?

Analýza sítě včetně rozboru zpětné vazby od zákazníků z řad hlavních poskytovatelů internetových služeb v jihovýchodní Asii totiž ukázala, že úroveň narušení se blížila 70 %.

 „Nacházíme se v kritickém bodě, kdy současná síťová infrastruktura není vybavena tak, aby splňovala požadavky stále více propojeného světa,“ uvedl ve zprávě šéf společnosti RETN Tony O'Sullivan.

Za faktory, které mohou vést k významným rizikům pro globální sítě, označil geopolitické události, jako je pokračující nestabilita v Rudém moři a Arabském poloostrově, přírodní katastrofy a hrozby pro kybernetickou bezpečnost.

Co přináší nový Security World 3/2024? Přečtěte si také:

Co přináší nový Security World 3/2024?

Přerušení kabelů v těchto regionech odhalilo nebezpečí spoléhání se na jeden typ spoje pro kritický datový provoz a ukázalo, že diverzifikované síťové trasy jsou nezbytné, aby se zabránilo rozsáhlému narušení.

Přidejte si magazín Computerworld mezi své oblíbené zdroje na Google News.

„Celé země by mohly čelit digitální izolaci, pokud by došlo k poškození jednoho nebo dvou kabelů, které je spojují,“ uvádí O'Sullivan a zdůrazňuje, že pro zajištění odolnosti sítí jsou nezbytné dlouhodobé investice.

Jde podle něj především o to, aby se zajistil dostatek různorodých cest a byla dostupná síťová architektura, která umožní rychlé škálování v případě dlouhodobých výpadků jednotlivých tras.

Jde prý také o plánování kapacity a ujištění se, že síť se neustále neprovozuje na hranici svých možností.

Den bez internetu by přinesl obrovské ztráty, vyčíslili experti Přečtěte si také:

Den bez internetu by přinesl obrovské ztráty, vyčíslili experti

Zatím se toto odvětví zaměřovalo především na úsporu nákladů a krátkodobé plánování, což jej činí zranitelné. Běžné je prý spoléhat se na pouhé dva nebo tři podvodní kabely s ultravysokou kapacitou. 

Za těmito kabely navíc obvykle stojí klíčové technologické společnosti, které přitom mají jiné požadavky na síť než tradiční poskytovatelé telekomunikačních služeb.

Tato omezená rozmanitost infrastruktury zvyšuje podle O'Sullivana riziko rozsáhlých poruch.

linux_sprava_tip

Sama firma RETN zvýšila počet síťových tras, které využívá, zejména v regionech, kde hrozí vyšší geopolitická rizika.

Kromě toho začala více investovat i do pozemních tras a zvažuje diverzifikovanou síťovou strategii, která má zvýšit odolnost sítě tím, že umožní při poruchách provoz efektivně přesměrovávat, v ideálním případě přes různé regiony s rozdílnými rizikovými profily.

 

Securitytrends si můžete koupit i jako klasický časopis, buď v klasické tištěné formě nebo v elektronické verzi. Věnujeme se bezpečnosti počítačových systémů, ochraně dat, informací a soukromí.  Jsme jediný titul na českém a slovenském trhu, který oslovuje širokou čtenářskou obec – od ředitelů firem, přes odborníky na bezpečnost po koncové uživatele. Naším cílem je poskytnout ucelený přehled o bezpečnostních hrozbách a zejména o tom, proč a jak se jim bránit, případně proč respektovat a dodržovat nařízení IT manažerů ve firmách.

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }