Як маршрутизатор вирішує, до якого пристрою слід перенаправляти дані, якщо на обох пристроях програми прослуховують один і той же порт?


0

Скажімо, у мене на маршрутизаторі є два пристрої, на яких обоє мають прослуховування програмного забезпечення на порту 999. Клієнт поза моєю локальною мережею намагається підключитися до моєї публічної IP-адреси через порт 999.

Як маршрутизатор знає, до якого пристрою направити запит на з'єднання? Обидва пристрої прослуховуються на порту 999, але трафік може в кінцевому рахунку закінчитися лише на одному з пристроїв, чи не так?

Я знаю, що переадресація портів буде правильним способом забезпечити потрапляння даних у правильний пристрій, але що робити, якщо не налаштована конфігурація переадресації портів? Чи відмовляється маршрутизатор пакет, оскільки він не знає, який пристрій є "правильним" пристроєм?

Відповіді:


0

Це залежить від налаштування маршрутизатора. Найпоширеніша конфігурація призведе до того, що пакет буде ігноровано або призведе до скидання з'єднання. Як правило, маршрутизатори SoHo, які виконують NAT, приймають тільки вхідні з'єднання, якщо переадресація порту спеціально налаштована або з'єднання здійснюється до самого маршрутизатора.

Одна зморшка буде, якщо маршрутизатор має призначення за замовчуванням або налаштований DMZ. У цьому випадку з'єднання буде переадресовано до пункту призначення за замовчуванням.

Ще одна зморшка буде, якби маршрутизатор підтримував UPnP. У цьому випадку з'єднання буде переадресовано тому, що хост спочатку попросив переадресувати цей порт, якщо такий є.

Нарешті, деякі маршрутизатори мають дозвільний NAT. У такому випадку маршрутизатор зробив би найкращу здогадку. Наприклад, якщо недавно був лише один пристрій, цей пристрій може отримати з'єднання. Або якщо один пристрій раніше спілкувався з IP-адресою, з якої це з'єднання, воно може отримати з'єднання.

Це повністю залежить від того, як налаштований роутер і які функції підтримує маршрутизатор.


Дякую купу. Раніше я чула терміни "запитувані" та "непотрібні" дані щодо пакетів маршрутизації. Де "витребувані" пакети - це пакети, які запитували в певній якості, і тому маршрутизатор знає, куди їх повернути. Чи грає це роль і в цьому рівнянні?
Руді

1
Здається, питання суворо стосується небажаних пакетів, тобто тих, які не є прямою відповіддю на раніше NAT-вихідний пакет. Пакети викликів відповідей NATET повертаються до відправника пакета, який їх запросив, якщо це не заборонено налаштуваннями брандмауера.
Девід Шварц

Готча. Я думав, що це так. Чи існує галузевий термін для "замовлених" та "непотрібних" пакетів? Я бачив, як вони називали це в кількох відео, де я намагався дізнатися більше про те, як обробляються пакети, але я не схильний знаходити багато фактичної документації, називаючи її "проситими" та "непотрібними" даними.
Руді

1
Принаймні, з мого досвіду, ці терміни не такі поширені. Я частіше чую вживаний термін "відповідь". Але я не думаю, що для пакету існує якийсь загальний термін, який не є відповіддю.
Девід Шварц

-1

Для вхідних з'єднань (зауважте, що я використовую слово з'єднання, а не пакети), без будь-якого налаштування переадресації порту / UPnP він би відхилив або відмовив пакет.

Для вихідних з'єднань (за допомогою SNAT) маршрутизатор буде зберігати "стан". Він перегляне всі вихідні з'єднання (для простоти, пакет TCP, що йде зсередини назовні з прапором SYN), переписать адресу / порт джерела на WAN-з'єднання і надішле пакет далі. Він знає, до чого він переписав адресу / порт джерела, і коли пакет повернеться, він поверне цей процес до вихідної адреси / порту.

Тому для мого NAT-маршрутизатора я отримав би таку таблицю:

TCP state codes: SS - SYN SENT, SR - SYN RECEIVED, ES - ESTABLISHED,
                 FW - FIN WAIT, CW - CLOSE WAIT, LA - LAST ACK,
                 TW - TIME WAIT, CL - CLOSE, LI - LISTEN

CONN ID    Source                 Destination            Protocol         TIMEOUT             
201805472  10.100.0.95:62110      83.69.0.50:42018       udp [17]         7                   
213891648  10.100.0.95:43327      176.68.233.117:53228   tcp [6] ES       4631                
213891928  10.100.0.95:38139      213.101.14.165:54764   tcp [6] ES       6995                
213223160  10.100.0.95:35725      176.68.233.117:53228   tcp [6] ES       386                 
215913952  10.100.0.1:38340       10.100.0.11:53         udp [17]         8                   
205319000  10.100.0.95:62110      95.22.94.199:22634     udp [17]         41                  
214931472  10.100.0.95:60500      213.101.14.165:5524    tcp [6] ES       6478                
205547536  10.100.1.26:37992      141.138.198.177:993    tcp [6] ES       7118                
387202720  10.100.1.26:58156      141.138.198.177:993    tcp [6] ES       7122                
[output omitted]

Якщо є пакет, що повертається з 176.68.233.117 з портом призначення 53228, він перепише адресу / порт призначення на 10 10.100.0.95:43327.


Це популяризує небезпечний міф про те, що дозвільного NAT не існує.
Девід Шварц

Це також робить близько 150 інших припущень, але ми тут не для того, щоб писати повні технічні посібники, сумісні з RFC ...
mtak

За винятком випадків, коли ОП спеціально запитувала про щось, на що впливає дозвільний NAT, таким чином, який може бути дивовижним та небезпечним.
Девід Шварц
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.