2

Я действительно запутался в том, как я могу подключиться к определенному компьютеру в моей сети на компьютере в другой сети через Интернет. Например, у меня дома постоянно работает кластер беовульф. Я использую его для сложных вычислений, таких как взлом паролей из списка слов. Теперь предположим, что я на своем ноутбуке, но где-то еще в чужой локальной сети. Я знаю внешний IP-адрес главного узла в кластере beowulf, и он является единственным, подключенным к Интернету из всех узлов. Однако, когда я получаю внешний IP-адрес на свой рабочий стол в той же локальной сети, что и кластер, я получаю тот же внешний IP-адрес. Из того, что я понимаю, внешний IP будет одинаковым для всех устройств в этой локальной сети. Внешний IP-адрес для главного узла кластера beowulf, моего рабочего стола и моего Smart TV (например) должен быть одинаковым, поскольку все они маршрутизируются через один и тот же модем, верно? И маска подсети определяет, с какого узла в локальной сети (внешний IP-адрес, общий для всех устройств) поступают данные, верно? Если да, как я могу подключиться к главному узлу кластера через SSH, чтобы отправить ему информацию для работы, если на моем рабочем столе также открыт SSH-порт 22? Если два или более компьютеров находятся в локальной сети, и на всех этих компьютерах работает SSH, и на эту локальную сеть может ссылаться только внешний IP, общий для двух компьютеров, как я могу указать, к какой машине в этой локальной сети я хочу подключиться?

2 ответа2

3

Маски подсети

Маска подсети используется только для группировки компьютеров в одной сети в подсети.

Адрес IPv4 содержит четыре октета, всего 32 бита. Допустим, у вас есть несколько компьютеров в локальной сети, и им назначены следующие IP-адреса и маски подсети:

  1. IP 192.168.0.1 , маска 255.255.255.0
  2. IP 192.168.0.6 , маска 255.255.255.0
  3. IP 192.168.1.1 , маска 255.255.255.248
  4. IP 192.168.1.6 , маска 255.255.255.248
  5. IP 192.168.1.12 , маска 255.255.255.248

Чтобы определить, какие компьютеры принадлежат какой подсети, мы должны применить маску к IP-адресам:

  • Конвертировать IP-адреса и маски в двоичный файл

    1. IP 11000000 10101000 00000000 00000001 , маска 11111111 11111111 11111111 00000000
    2. IP 11000000 10101000 00000000 00000110 , маска 11111111 11111111 11111111 00000000
    3. IP 11000000 10101000 00000001 00000001 , маска 11111111 11111111 11111111 11111000
    4. IP 11000000 10101000 00000001 00000110 , маска 11111111 11111111 11111111 11111000
    5. IP 11000000 10101000 00000001 00001100 , маска 11111111 11111111 11111111 11111000
  • Выполните логическую операцию "и", т.е. скопировать 1 бит, где и IP, и маска имеют 1 и заполнить дыры 0 с

    1.    11000000 10101000 00000000 00000001
        & 11111111 11111111 11111111 00000000
        -------------------------------------
        = 11000000 10101000 00000000 00000000
    
    2.    11000000 10101000 00000000 00000110
        & 11111111 11111111 11111111 00000000
        -------------------------------------
        = 11000000 10101000 00000000 00000000
    
    3.    11000000 10101000 00000001 00000001
        & 11111111 11111111 11111111 11111000
        -------------------------------------
        = 11000000 10101000 00000001 00000000
    
    4.    11000000 10101000 00000001 00000110
        & 11111111 11111111 11111111 11111000
        -------------------------------------
        = 11000000 10101000 00000001 00000000
    
    5.    11000000 10101000 00000001 00001100
        & 11111111 11111111 11111111 11111000
        -------------------------------------
        = 11000000 10101000 00000001 00001000
    
  • Конвертировать результаты обратно в десятичные

    1. 192.168.0.0
    2. 192.168.0.0
    3. 192.168.1.0
    4. 192.168.1.0
    5. 192.168.1.8
  • Это адреса подсетей наших компьютеров. Если компьютеры имеют идентичные адреса подсети, они принадлежат одной подсети.

    • Компьютеры 1 и 2 принадлежат одной подсети
    • Компьютеры 3 и 4 принадлежат другой подсети
    • Компьютер 5 принадлежит третьей подсети

Подсети имеют значение только внутри вашей локальной сети, т.е. компьютеры, подключенные к одному коммутатору. Затем коммутатор подключается к маршрутизатору, который маршрутизирует сетевые пакеты между коммутатором и модемом. Вы, вероятно, имеете все три из них в одном устройстве.

Коммутатор, роутер и модем

  • Переключатель - позволяет подключить более двух компьютеров вместе. Вы не можете просто спаять несколько сетевых кабелей вместе и подключить их ко многим компьютерам, вы должны использовать коммутатор.

  • Модем - обеспечивает двустороннее преобразование между различными сетевыми стандартами. Ваш провайдер использует другой сетевой стандарт, нежели обычные локальные сети, поэтому вам нужен модем, который будет транслировать свои сетевые пакеты в ваш формат, а ваши пакеты - в их формат.

  • Маршрутизатор - маршрутизаторы маршрутизации пакетов между двумя сетями. Вы не можете просто соединить два коммутатора в разных сетях друг с другом, вам нужен маршрутизатор между ними. Маршрутизатор имеет один IP-адрес в каждой сети, к которой он подключен.

Ваша сеть выглядит примерно так:

            +-----------------------------------------+        
            |                                         |        
    PC1 +---------+                                   |        
            |     |                                   |        
            |   +--------+   +--------+   +-------+   |        
    PC2 +-------+ Switch +---+ Router +---+ Modem +-------+ ISP
            |   +--------+   +--------+   +-------+   |        
            |     |                                   |        
    PC3 +---------+                                   |        
            |                                         |        
            +-----------------------------------------+        

Как работает маршрутизация?

Компьютеры слева имеют три IP-адреса, скажем:

  • 192.168.0.1
  • 192.168.0.2
  • 192.168.0.3

Там также адрес вашей локальной сети маршрутизатора.

Но с правой стороны у вас есть только один IP-адрес, так называемый "публичный IP". Это интернет-адрес маршрутизатора. Когда кто-то извне хочет поговорить с компьютером в вашей сети, как он определяет, с каким он хочет общаться?

Ответ: он не может. Вы не можете просто начать говорить с компьютером внутри вашей сети снаружи. Люди в Интернете могут общаться только с вашим роутером.

Подобные сети были бы совершенно бесполезны, и, очевидно, вы можете загружать данные из Интернета. Итак, как это работает? Это работает, потому что вы установили соединение. Когда компьютер внутри сети пытается установить связь с внешним миром, маршрутизатор назначает один из своих интернет-портов для порта этого компьютера. Если кто-то отвечает на этот порт, маршрутизатор знает, куда он должен переслать эти пакеты. Этот метод называется преобразованием сетевых адресов (сокращенно NAT).

Как вы подключаетесь к компьютерам внутри вашей сети снаружи?

Вы не можете без правильной настройки маршрутизатора, потому что именно компьютер в вашей сети должен инициировать соединение. Это будет работать, только если компьютер на другом конце имеет публичный IP, что маловероятно. Сеть, вероятно, выглядит так:

    +----------------+                            +-----------------------+
    |                |                            |                       |
    |  Your cluster  |                            |     Other network     |
    |                |                            |                       |
    |    PC1 +---+   |                            |   +---+ Other PC      |
    |            |   |     +----------------+     |   |                   |
    |            |   |     |                |     |   |     The computer  |
    |    PC2 +-------------+  THE INTERNET  +-------------+ you're using  |
    |            |   |     |                |     |   |     to connect    |
    |            |   |     +----------------+     |   |                   |
    |    PC3 +---+   |                            |   +---+ Other PC      |
    |                |                            |                       |
    +----------------+                            +-----------------------+

Обе эти сети имеют маршрутизаторы на своей границе, и оба эти маршрутизатора используют NAT, поэтому настройка обратного соединения не будет работать.

Как подключиться к вашему кластеру?

Вы должны настроить переадресацию портов в вашем маршрутизаторе.

Переадресация портов постоянно связывает один из интернет-портов маршрутизатора с каким-либо портом одного из ваших компьютеров.

Например, вы можете перенаправить порт 5432 вашего маршрутизатора на порт 22 (порт SSH по умолчанию) ПК1 в вашем кластере. Затем вы можете подключиться к вашему общедоступному IP-адресу через порт 5432 и подключиться к ПК1 через порт 22.

Если вы хотите подключиться к другому компьютеру в кластере, у вас есть два способа сделать это:

  • Переадресация другого порта на другую машину

  • Используйте ПК1. ПК1 подключен к вашей локальной сети и может общаться с другими компьютерами в локальной сети без маршрутизации или NAT. Вы можете подключиться по SSH к ПК1 через перенаправленный порт, а затем по SSH с ПК1 на ПК2. Это менее эффективно, чем прямое соединение, но не требует дополнительной настройки.

0

Я думаю, вы должны посмотреть, как работает подсеть IPv4, так как у вас неправильный конец флешки, а затем прочитать о NAT-PMP. Однако в двух словах:

У вас есть две сети, интернет и ваша сеть. Они полностью отделены, за исключением маршрутизатора NAT в середине. Если вы хотите подключиться к внешнему миру (то есть к подсети вне вашей собственной сети), ваш компьютер связывается со "шлюзом" или "маршрутом по умолчанию". Это будет ваш NAT-роутер. Затем маршрутизатор передает трафик назад и вперед между вашим компьютером и Интернетом, используя внутренний, временный набор правил, описывающих соединение.

Чтобы подключиться к вашей сети из внешнего мира, вы должны установить правила сопоставления портов NAT. Ваш внешний IP-адрес именно это; один IP-адрес, идентифицирующий порт WAN вашего маршрутизатора, его подключение к Интернету, которое все ваши компьютеры используют совместно с помощью NAT. Используя интерфейс вашего маршрутизатора, вы должны установить правила, позволяющие перенаправлять трафик на определенные порты интерфейса WAN вашего маршрутизатора на сервисы во внутренней сети.

Например, у вас есть три компьютера - 192.168.0.100, 192.168.0.101, 192.168.0.102, маска подсети 255.255.255.0. Все эти три компьютера работают по SSH через порт 22. Ваш внешний IP-адрес 123.4.5.6

Чтобы получить доступ к трем отдельным SSH-серверам, необходимо сопоставить три внешних порта с тремя комбинациями внутренних IP-адресов / портов. например

123.4.5.6:22222 -> 192.168.0.100:22
123.4.5.6:22223 -> 192.168.0.101:22
123.4.5.6:22224 -> 192.168.0.102:22

Эта функциональность встроена в ваш маршрутизатор NAT - вы должны быть в состоянии найти конкретные инструкции по настройке для вашей модели маршрутизатора. Я рекомендую, чтобы вы пошли и сначала почитали!

НТН!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .