Stel jo in browser foar dy't in HTTPS-side laadt wylst in SSH-klant in oare tsjinner berikt en in oplosser in fraach beäntwurdzje, allegear fia ien OpenVPN-sesje. Op de fysike ynterface sjogge jo ien petear; binnen de tunnel sjogge jo trije. Beide bylden binne korrekt, en witte wêrom is it ferskil tusken in nuttige opname en in betiizjende. Folgje ien binnenstream fan socket oant tried, dan hâldt de lagenbou op abstrakt te wêzen.

Ien bûtenste petear, in protte binnenstreamen

Elke applikaasje iepenet syn eigen socket, en de kearn jout it in fiif-tuple fan boarneadres, boarneport, bestimmingadres, bestimmingport en protokol. Dy tuples besteane earder as hokker tunnel dan ek yn it spul is. Dêrnei beslút it rûtsjen dat se allegear troch it tunnelapparaat fuortgeane, dus it pakket dat oan OpenVPN oerjûn wurdt, draacht noch altyd de oarspronklike koppen derbinnen. OpenVPN fersiferet dat binnenpakket en wikkelt it resultaat yn ien bûtenste UDP- of TCP-petear mei de peir. It bûtenste petear is dus ien, wylst de streamen derbinnen safolle binne as de applikaasjes iepene hawwe.

Neat stoart yn. De binnentuples oerlibje fan ein oant ein, en dêrom kin de fiere kant de trije streamen noch útinoar hâlde.

De poarte dy't fêst bliuwt

Wat konstant bliuwt is de bûtenste tuple: jo adres, de lokale poarte dy't de klant bûn hat, it adres fan de peir en de konfigurearre tsjinstpoarte. Just dy tuple moat in firewall of in NAT op it paad tastean, en just dy sil in opname op 'e uplink sjen litte. It is ek dy't feroaret nei in werferbining of in netwurkwiksel, om't de klant in oare lokale poarte bine kin. Ien tunnel betsjut net ien fêste boarneport foar altyd.

De binnenpoarten binne wat de einpunten skele. In HTTPS-stream hâldt bestimmingpoarte 443 binnen de tunnel, ek al sit it bûtenste ferfier op hokker poarte de operator ek konfigurearre hat. De einpunten fan de applikaasje hearre nea fan 'e bûtenste.

Wat dekapsulaasje oan de fiere kant feroaret

By de peir giet de bûtenste laach derôf, en it binnenpakket is wat oerbliuwt. Fan dêrôf jilde trochstjoering en tagongsbelied foar de binnenste bestimming en protokol. De webserver krijt noch altyd in HTTPS-ferbining, de SSH-daemon krijt noch altyd SSH, en de oplosser krijt noch altyd in fraach.

Dêrom is in regel dy't it bûtenste ferfier tastiet net deselde regel as it tastien fan in ynterne tsjinst. De earste beskriuwt in paad; de twadde beskriuwt in autorisaasje.

Bûtenste TCP betsjut ien stream, net ien ferbining

As it bûtenste ferfier UDP is, is it lot fan elke binnenstream ûnôfhinklik: in ferlerne datagram rekket ien oerdracht oant syn eigen werstjoering. As it bûtenste ferfier TCP is, diele alle binnenstreamen ien betroubere bytestream.

Dy dielde stream is it part dat minsken misse. Werstel bart ien kear, foar alles, dus ien ferlerne segmint fertraget ferkear fan elke applikaasje dy't derbinnen multiplexe is. It binne noch altyd in protte ferbiningen by de einpunten en ien ferbining op 'e tried, en op 'e tried libbet it effekt fan 'e kop fan 'e rige. It oantal harkjende poarten fertelt jo hjir neat oer, en dêrom is poarten telle in minne manier om oer tunnelprestaasjes te redenearjen.

Beskriuw jo eigen opstelling krekt

Neam it selektearre binnenferkear en it spesifike bûtenste ferfier dat it draacht, ynstee fan te sizzen dat de masine alles troch ien poarte stjoert. Lokale tsjinsten, in twadde tunnel en de oare adresfamylje meitsje allegear streamen dy't nea yn dit petear komme. In opname op 'e uplink toant de bûtenste tuple; in opname binnen de tunnel toant de binnenste.

Nim beide, en set de tiidstimpels njonkeninoar. As jo bewize moatte hokker applikaasje hokker binnenstream makke hat, is de sockettabel op 'e host it bettere ynstrumint, om't dy poarten direkt oan prosessen keppelt. Skriuw dan de bûtenste tuple op dy't jo waarnommen hawwe en it momint dat jo dy waarnommen hawwe, om't de folgjende opname nei in werferbining legitimerwize oare sifers sjen litte kin.

Relatearre artikelen