Автор Тема: Въпрос за NAT  (Прочетена 1019 пъти)

bonbon

  • Напреднали
  • *****
  • Публикации: 112
  • Distribution: Debian
  • Window Manager: Gnome
    • Профил
    • WWW
Въпрос за NAT
« -: Feb 04, 2005, 19:30 »
За много това сигурно е много-глупав въпрос, но съм наченаещ в Линукс.
Прочетох доста неща из нета, но така и не разбрах едно нещо:

Доколкота разбрах DNAT сменя IP адреса на источника с адреса на рутера
и запомня това. След това изпраща пакета към нета. Когато пакета се върне, рутера разбира че този пакет не е за него, сменя адреса с адреса на хоста на който е направил НАТ и му го доставя. До тук добре.
Ако два хоста напр: 192.168.1.1 и 192.168.1.2 поискат достъп до нета и то до една и съща страница напр: linux-bg.org, как рутера разбира кой от върнатите пакети за кой от двамата хоста е?
Неможе да е по времето по кето пристигат, защото ако първи 192.168.1.1 е подал заявка за нет, то може от нета покетите за вторият хост 192.168.1.2 да престигнат преди пакетите за първият хост.

 Благодаря на всички предварително
Активен

RedIce

  • Напреднали
  • *****
  • Публикации: 162
    • Профил
Въпрос за NAT
« Отговор #1 -: Feb 04, 2005, 20:03 »
такова нещо не съм нито чул, нито видял на някой да му се случи (освен ако не минава през прокси, но там вече проблема е от проксито а не от NAT)

не съм много на ТИ по темата, но образно казано нещата изглеждат горедоло така:

в случая, ако разсъждаваме по твоя начин, нямаше да има user, който да получи нормална страница, независимо дали е с NAT или без, защото нета, който вземаш минава през рутер, и така нататък.... все едно като пращат заявка към рутера и той да незнае към кой да го върне, а вътрешните IP-та за теб може да не са реални, но за рутера са
(искам да кажа че това за което питаш, няма значение дали си с реално или нереално IP)

поринцип във всеки пакет има адресация, за кой за каде е и каде трябва да иде... и като стигне до рутера, него не го е*е от кой саит идва пакета, а за кой е адресиран
нещо такова.... за по точна справка... питай някой специалист по мрежи...

бтв ако те интересува подробната структора, кое как става и защо става и каде трябва да иде, намери си едно клипче, мисля че се казваше Worrior Of The Net, дълго е около 15-20 мин, и по анимиран начин обесняват как патуват пакетите, как дейсват firewalls, рутери и t.t '<img'>

П.С аз го имам ама все ме е мързи да го изгледам '<img'>
Активен

angel_st

  • Новаци
  • *
  • Публикации: 2
    • Профил
Въпрос за NAT
« Отговор #2 -: Feb 04, 2005, 20:36 »
NAT (Network Address Translation) смяна на адресите.
По принцип това за което питаш е SNAT (Source NAT) а не DNAT (Destination NAT) защото се подменя адреса на Source(Източник). Рутера изгражда  TCP връзки за всяка заявка - от своя реален адрес към destination (linux-bg.org). Да речем че вътрешния адрес на рутера е 192.168.1.254 -  когато дойде заявка от 192.168.1.1 към PORT 80 (това е порта за www,http протокола) на linux-bg.org firewall прави връзка от реалния си адрес към linux-bg.org със source port да речем 32000 и знае че всичко което пристига от linux-bg.org на порт 32000 е за машината с IP 192.168.1.1 . Ако има други заявки от други машини (192.168.1.2..3...n) firewall изгражда нови TCP връзки със source prort 32001..2..n и приена на тези портове отговорите на  на linux-bg.org за съоветните машини ... след което ги прехвърля към тях .По този начин няма никакво объркване кои пакет за кого е '<img'>
За linux-bg.org всики пакети престигат от реалния адрес на firewall но от различни PORT-ове. Надявам се че вече ти е иасно как стават нещата ? ако искаш някъде на linux-bg.org имаше описание (tutоrial) за iptables - там нещата са описани доста подробно.
Активен

bonbon

  • Напреднали
  • *****
  • Публикации: 112
  • Distribution: Debian
  • Window Manager: Gnome
    • Профил
    • WWW
Въпрос за NAT
« Отговор #3 -: Feb 04, 2005, 20:57 »
Много благодаря.
Само още нещо, ако не е нахално.
До колкото знам (не че е много) жсеки сържър слуша на определен порт услугата, която предлага  наор 80-www 20/21-ftp и тн.
Как тогава като пристигнат пакетите до Linux-bg.org на порт 32000, веб-сържара разбира че трябва да обработи тези пакети, нали той слуша порт 80?
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Въпрос за NAT
« Отговор #4 -: Feb 04, 2005, 22:38 »
1) не е ясно къде стои уеб-сървера - на рутера (нека така наречем машината, която прави SNAT) или зад него ...

1.1) ако е в рутера, то тогава няма да се обръщаш към порт 32000, а направо към порт 80 (портовете от 0 до 1024 със сигурност не се използват при извършването на SNAT);

1.2) ако седи в машина зад рутера вече питаш за така нареченото port-mapping, при който вече ползваш DNAT. Нещо от сорта - ако нещо идва на порт ХХХ на рутера, то прехвърли тези пакети към порт УУУ на IP Z.Z.Z.Z.
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

bonbon

  • Напреднали
  • *****
  • Публикации: 112
  • Distribution: Debian
  • Window Manager: Gnome
    • Профил
    • WWW
Въпрос за NAT
« Отговор #5 -: Feb 04, 2005, 22:41 »
Много блзгодая '<img'>
Активен