2020. szeptember 16., szerda

NAT (Network Address Translation, azaz Hálózati Címfordítás)

Az egy hálózaton belül működő eszközök, mint az IP kamera is egy átjáró (gateway) segítségével kommunikálnak az internet más eszközeivel. Az adatcsomagokat ezek az átjárók továbbítják oda és vissza a két végpont közötti kommunikáció során. Otthonoi, irodai környezetben ezeket az átjárókat hívjuk rendszerint routereknek. A router konkrét jelentése magyarul "útvonalválasztó", vagyis egy olyan eszköz, amely a hálózatban szereplő eszközök számára utat biztosít az egymás, vagy az internet egyéb elemei közötti adatcserében. Fontos hangsúlyozni, hogy a router nem egyenlő a WiFi-vel (ennek a későbbiekben még lesz jelentősége). A router a hozzá csatlakoztatott, vagy vele egybeépített modem segítségével kapcsolódik az internethez. Korábbiakban az volt a bevett módszer, hogy ezeknek a modemeknek az internethez való csatlakozásuk alkalmával a szolgáltató kiosztott egy IPV4-es címet, amely a modemen található végpontot azonosította az internet világában. Sajnos ez a módszer ma már nem tartható fenn, mert az internetre kötött modemek száma meghaladja a rendelkezésre álló IPV4-es címtartományok kb. 4 milliárdos darabszámát. Ennek a problémának az orvoslására született meg a NAT (Network Address Translation, azaz Hálózati Címfordítás) által kínált megoldás. Ennek tartalmi lényege, hogy az internet szolgáltatók különböző méretű csoportokba szervezik az előfizetőiket, akik csoportonként mindössze egyetlen átjáróhoz rendelt IPV4-es címet kapnak és mindenki ezen az átjárón keresztül kommunikálhat az interneten oda és vissza egyaránt. Ennek eredménye, hogy az egy átjáró mögé szervezett előfizetők mindegyike ugyanezzel az IP címmel látszódik az internet felől. A NAT mögötti előfizetők internetes kommunikációjuk úgy működik, hogy a belülről indított kéréseikre az aktuális átjáró biztosítja a visszafelé történő kommunikációt is. Rákattintunk egy linkre és a weblap válaszát a szolgáltató átjárója elüldi a rendszer elemeink keresztül számítógépünk felé. A folyamat csak belülről kifelé indítható. Amikor az előfizető megnyit egy weboldalt, az átjáró felel a kiengedett csomagokra érkezett válaszok előfizető felé történő visszajuttatásáért is. A fordított kommunikáció nem működik NAT-olás esetén. Ugyanis ha az előfizetőnek lenne egy weblapja a NAT mögötti számítógépén, akkor azt egy NAT-on kívüli felhasználó nem láthatná, mert kívülről nem lenne megcímezhető a webodlal elérése. Hiába tudjuk a NAT átjárójának valós, publikus internetes IP címét, azon keresztül a weblap nem lenne elérhető, mert a felhasználó webszerveréig a kommunikáció nincs biztosítva a szolgáltató átjárójában, azaz routerében. Erre az internet előfizetőjének semmir ráhatása nincs, hiszen nem fér hozzá a szolgáltató saját átjárójának port átirányítási lehetőségeihez.

Amikor az internet felől szeretnék kamerát elérni, egy webszerveren/weblapon keresztül kommunikálunk az IP kamerával. Ahhoz, hogy elérhessük, tudnunk kell a weblap IP címét vagy hosztnevét, amely mögött természetesen egy valós publikus IP cím található. Ha a végponthoz tartozó IP cím NAT-olás miatt nem a sajátunk, nem fogjuk tudni elérni a kamerát. Ha viszont saját publikus IP címet kapott a modemünk, ami csak a sajátunk, lehetőségünk van elérni az IP kamerát a távolból. Ehhez persze a megfelelő port átirányítások routerünkben való beállítása elengedhetetlen.

Itt viszont elérkeztünk egy fontos momentumhoz, amelyről korábban írtuk, hogy még lesz jelentősége:

Az átjáró/router nem egyenlő a WiFi-vel!

Amikor jelátviteli problémák miatt egy-egy újabb plusz routert csatlakoztatunk az eredeti modemes kapcsolattal bíró routerünk mögé (LAN portból WAN portba való kábel csatlakoztatással) egy újabb WiFi hozzáférési pont létrehozásához, valójában saját NAT-olt hálózatunkat hozzuk létre. Ennek eredménye hasonló, mint a NAT-olást használó internet szolgáltatók által kivitelezett megoldás. A további routerek mögé rejtett eszközök nem kapnak saját internetes IP címet, ezért nem láthatók az internet irányából de sokszor még az első routerre csatlakoztatott eszközökről sem. Az ilyen módon kivitelezett hálózatok nem oldják meg a kamerák távoli elérhetőségét, csak rontanak rajta. Ennek megoldására érdemes olyan szakember segítéségét kérni, aki járatos a hálózat építésében, ugyanis az IP hálózatok tervezése és kivitelezése külön szakma még.

Segít-e a DDNS (DynDNS, NO-IP, MYFOSCAM) hosztnevek használata a NAT-olás esetén? A válasz egyszerű: NEM. A DDNS hosztnevek csak a saját publikus, de változó IP címmel rendelkező, azaz FIX IP címmel nem rendlekező végponti problémát oldja meg. Azzal nem tud mit kezdeni, ha a modemünkön semmilyen internetes IP címmel nem rendelkezünk. Csak akkor segít, ha nincs FIX IP címünk, de nem internetezünk NAT-olt hálózat mögül.

Mit tegyünk, ha NAT-olt hálózatba rakott a szolgáltatónk?

Nyilvánvalóan az a legegyszerűbb, ha megkérjük az internet szolgáltatónkat, hogy a NAT-olást azonnal szüntesse meg és adja vissz ezáltal a változó, de publikus IP címünket. Ekkor hívhatjuk segítségül a DDNS hosztneveket a távoli eléréshez. Hívjuk fel az internet szolgáltatónkat és mondjuk el neki a problémánkat, hogy IP kameránkat szeretnénk távolról használni, de nincs saját publikus IP címünk, ezért szüntessék meg a NAT-olást az internet előfizetésünkön. Ne kérjünk FIX IP címet, bár van olyan szolgáltató, ahol csak ezzel oldaható meg a probléma.

Nézzük meg konkrét példákkal a megoldásokat:

Digi internet esetén hívjük fel a 1272-es telefonszámot és a NAT kikapcsolását kérjük a hibabejelentő menü kiválasztása után. A mai napig működő megolás még.
T-Home esetén a 1414-es telefonszámon kövessük el ugyanezt
UPC esetén a 1221-es számon hívjük fel az ügyfélszolgálat hibabejelentő vonalát és kérdezzük meg a megoldásról őket. Máig ez volt a megoldás náluk: venni kell egy saját routert, az ő routerük LAN1 portjára kössük rá a saját routerünk WAN portját, majd a UPC routerét kapcsoljuk át modem/bridge módba. Csak így kaphatjuk vissza a publikus IP címünket. Egyelőre, mert náluk, bármi megtörténhet.
Telenor esetén használjuk a "NET" APN nevet a kapcsolat létrehozásakor
T-Mobile esetén esélyünk nincs saját IP címet kapni.
Vodafone esetén használhatjuk a "standardnet.vodafone.net" APN nevet, de a tűzfal blokkolása miatt gyakorlatilag esélyünk nincs a normális működésre
Minden más szolgáltatónál külön kell érdeklődni (de érdemes a felsoroltaknál is) a lehetőségekről. Vannak olyan helyi jellemzően kisebb szolgáltatók, akik a NAT-olás megtartása mellett tudnak saját port átirányítást beállítani nekünk, amikor ők mondják meg, hogy a kameráink milyen portokat fognak tudni használni a működésük során. De vannak olyanok is, akik csak FIX IP-re való elfizetéssel, esetleg díjcsomagváltással tudnak segíteni számunkra.

Ha minden kötél szakad és a NAT elkerülhetetlen, érdemes olyan IP kamerákat használni, amelyek egyrészt P2P kommunikációval is rendelkeznek, másrészt pedig biztonságosak is egyszerre. Sajnos tele az internet olyan olcsó, kideríthetetlen gyártótól származó kamerákkal, amelyek bár olcsón beszerezhetők, ám rajtunk kívül mindenki más is láthatja élőképüket egy kevés szakértelmet felhasználva hozzá. A biztonsági kamera azért legyen biztonságos is, hacsak nem áll szándékunkban életünk minden pillanatát online közvetíteni idegenek számára is.

Webkamera megjelenítése böngészővel

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Display Webcam Stream</title>
 
<style>
#container {
margin: 0px auto;
width: 500px;
height: 375px;
border: 10px #333 solid;
}
#videoElement {
width: 500px;
height: 375px;
background-color: #666;
}
</style>
</head>
 
<body>
<!Először deklaráljuk a video nevű változót, majd automatikus lejátszás> 
<div id="container">
<video autoplay="true" id="videoElement">
</video>
</div>
<script>
var video = document.querySelector("#videoElement");
<!Következik a getUserMedia API elérése >
if (navigator.mediaDevices.getUserMedia) {
  navigator.mediaDevices.getUserMedia({ video: true })
    .then(function (stream) {
      video.srcObject = stream;
    })
    .catch(function (err0r) {
      console.log("Something went wrong!");
    });
}<!Hiba esetén reset >
</script>
</body>
</html>
vagy 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>Gönyűi webkamera - 2.</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<img width="1280" height="720" src="http://gonyuweb.dyndns.org:8084/video.mjpg" />
<p>A webkamera megtekintéséhez ajánlott böngészők: Ms Edge (Chromium alapú), Firefox, Chrome</p>
</body>
</html>

Nincsenek megjegyzések:

Megjegyzés küldése