IP-адреса устройства и сетевого интерфейса


11

Я пытаюсь понять отношения между:

  • «Сетевое» устройство Linux; а также
  • Физическая сетевая карта, расположенная на этом устройстве (что дает ему возможность быть «сетевым»); а также
  • Различные сети Ethernet Wi-Fi сети / интерфейсы ( eth0, eth1, wlan0и т.д.); а также
  • IP-адреса и порты

Из того, что я собрал, это кажется , что каждый интерфейс (опять же , eth0, eth1, wlan0и т.д.) присваивается свой собственный уникальный IP - адрес. Значение на моей машине eth0будет иметь другой IP , чем, скажем, wlan1.

Но это противоречит моему пониманию того, что сетевые устройства в целом получают один IP для всего устройства.

Так что это? Получает ли устройство 1 IP, используемый всеми интерфейсами, или каждый интерфейс фактически получает свой собственный IP? Если каждый получает свой, то что определяет, сколько портов доступно на этом интерфейсе?


От того, как / где подключен интерфейс, зависит, какой IP-адрес он должен иметь, например, 3 разных локальных сети Ethernet, поэтому разные интерфейсы имеют разные адреса. этот адрес также становится адресом источника по умолчанию.
Skaperen

Ответы:


10

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

Возьмем, к примеру, ваше маршрутизатор / модем, который есть в большинстве домов и / или небольших офисов.

На внутренней стороне маршрутизатора будет установлено соединение с вашими компьютерами / ноутбуками - будь то WiFi или Ethernet. Обычно они находятся в частных диапазонах адресов 191.168.0.0 - 192.168.255.254или иногда 10.0.0.0 - 10.255.255.254. Ваш рабочий стол / ноутбук / планшет будет подключаться к этой стороне устройства и иметь свой IP-адрес в том же диапазоне (но не идентично устройству).

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

Небольшие модемы / маршрутизаторы, подобные этим, могут сбивать с толку, поскольку у них может быть только один адрес - указанный в руководстве пользователя для администрирования устройства через веб-браузер (например http://192.168.0.1), - хотя у него много портов Ethernet. Это связано с тем, что устройство, по сути, имеет сетевой коммутатор, помеченный на маршрутизаторе, чтобы разделить один порт Ethernet маршрутизатора на множество портов и подключить мост WiFi.

В то же время внешняя сторона маршрутизатора / модема будет иметь свой IP-адрес, автоматически настраиваемый поставщиком услуг, поэтому вы можете его никогда не увидеть. (Введите мой IP-адрес в Google, чтобы узнать, что это такое).

Диаграмма может помочь:

                                                                 +--------+
                                                                 | laptop |
                                                                 +--------+
+-----+                +-------------+              +--------+       | 10.0.0.2
|     |98.23.45.61     |             |10.0.0.1      |        |-------+
| ISP |----------------+ modem/router|--------------| switch |
|     |     98.23.45.62|             |              |        |-------+
+-----+                +-------------+              +--------+       | 10.0.0.3
                                                                  +---------+
                                                                  | desktop |
                                                                  +---------+

Как видите, модем / маршрутизатор имеет два IP-адреса - по одному для каждого сетевого интерфейса. Рабочий стол и ноутбуки имеют одно - на сетевом устройстве, подключенном к вашему роутеру. Большинство модемов / маршрутизаторов имеют соединения WiFi и Ethernet, как и большинство ноутбуков. Если бы вам нужно было подключить кабель Ethernet к вашему ноутбуку, а также включить и настроить WiFi вашего ноутбука, то у него тоже было бы два IP-адреса - по одному для каждого устройства - оба в 10.0.0.xдиапазоне адресов. Это могло бы дать вам мысли о проблемах - не делайте этого.

Порт - это просто число, которое привязано к IP-адресу назначения. Это похоже на добавочный номер телефона в офисном коммутаторе и определяет, какая служба должна принимать ваш трафик. Это 16-битное число, что дает ему максимально возможное значение 65535. Однако используется только очень небольшое их подмножество. Некоторые из них предварительно выделены как хорошо известные порты, такие как трафик http на порт 80 и защищенная оболочка (ssh) на порт 22. Эти порты открыты и прослушивают трафик, только если на устройстве запущена соответствующая служба, установленная производителем устройства. ,

В случае модемного маршрутизатора, описанного выше, порт 80 будет прослушивать внутреннюю сторону, потому что работает веб-сервер, так что вы можете управлять устройством с помощью веб-браузера. Некоторые маршрутизаторы также имеют службу ssh, прослушивающую порт 22, чтобы вы могли управлять устройством с помощью клиента ssh. Вероятно, у них будет открыт порт 53, так как на маршрутизаторе также будет работать DNS-сервер.

Ваш ноутбук, вероятно (надеюсь) не будет прослушивать порты, если только вы не установили службу на этом устройстве. На приведенной выше схеме вы можете установить сервер ssh-сервера на настольном ПК, и в этот момент (и при наличии брандмауэров) на вашем рабочем столе будет открыт порт 22. После этого ваш ноутбук может подключиться к порту 22 компьютера и войти в систему.

Поэтому количество портов на устройстве уменьшается до количества служб, работающих на этом устройстве, конфигурации этой службы и конфигурации брандмауэра.

Если вы хотите, чтобы сервер ssh, работающий на вашем рабочем столе в приведенном выше примере, был доступен для удаленного пользователя из Интернета, вы столкнулись с небольшой проблемой, поскольку, хотя у вас много внутренних адресов, у вас есть только один external ( 98.23.45.62).

Чтобы решить эту проблему, вам нужно настроить на вашем маршрутизаторе функцию переадресации портов . Это указывает маршрутизатору принимать весь трафик, поступающий на определенный порт, и перенаправлять его на определенный внутренний хост и порт.

В этом случае весь трафик, поступающий на порт 22, перенаправляется на 10.0.0.2порт 22. Как вы, возможно, собрали, это означает, что вы можете перенаправить порт 22 только на один внутренний сервер.

Если вы хотите иметь возможность использовать ssh как для настольного компьютера, так и для ноутбука, вам необходимо настроить маршрутизатор на прослушивание альтернативного внешнего порта (например, 2022) и переслать его на ваш ноутбук через 10.0.0.2порт 22. Удаленный пользователь должен должны получить ssh 98.23.45.62доступ к рабочему столу и ssh -p 2022 98.23.45.62получить доступ к вашему ноутбуку.

Конечно, это не всегда так просто, так как внешний IP-адрес может измениться, если вы не запросите / не приобретете статический IP-адрес.


Спасибо @garethTheRed (я бы вам проголосовал, если бы у меня был представитель для этого). Несколько быстрых followups , если вы не возражаете: Можете ли вы подтвердить , что, используя свой отличный пример выше, если бы я пошел в Google « Каков мой IP » на как ноутбук и на рабочем столе, они оба видят их IP , как 98.23.45.62( в основном, их общий роутер внешний IP)? Если это так, то если я установил сервер, работающий на моем ноутбуке, и хотел, чтобы он был доступен из внешнего мира, как внешние / удаленные клиенты будут отправлять запросы этому серверу, если он имеет тот же IP-адрес, что и все другие устройства за маршрутизатором ?!? Еще раз большое спасибо!
Зак

Да, все внутренние устройства будут показывать один и тот же IP-адрес в Google - ваш единственный IP-адрес :-) Я отредактировал свой ответ, чтобы покрыть другой ваш вопрос.
garethTheRed 30.09.15

Еще раз спасибо @garethTheRed! Так справедливо ли говорить, что переадресация портов делает то же самое от внешнего к внутреннему, что и NAT от внутреннего к внешнему?
Зак

Смутно - NAT более динамичен в том смысле, что он «просто работает». Переадресация портов должна быть настроена администратором маршрутизатора, но по сути оба получают трафик через маршрутизатор.
garethTheRed 30.09.15

2

«Устройство» - это перегруженное слово. Иногда это означает машину, а иногда - периферию или интерфейс машины.

Каждый сетевой интерфейс имеет свой собственный адрес.

Каждая машина имеет ноль, один или несколько адресов в зависимости от того, сколько сетевых интерфейсов у нее есть.

В простых случаях каждый физический сетевой интерфейс имеет один IP-адрес, а ваша система также имеет петлевой интерфейс, который программы используют для связи с программами, работающими на той же машине. Каждый интерфейс имеет отдельный IP-адрес. Возможны многие, много сложных установок (связывание, наложение, локальные адреса и т. Д.), Но основная интуиция заключается в том, что каждый IP-адрес соответствует одному интерфейсу.

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


1

Ваше устройство может иметь несколько сетевых интерфейсов. Они могут соответствовать реальным устройствам ( NIC ) или быть виртуальными .

Для того, чтобы его можно было использовать (т.е. инициировать или прослушивать соединения), каждый интерфейс должен иметь IP-адрес. Обычно для каждого интерфейса используется один IP-адрес, но можно использовать несколько с помощью псевдонимов IP-адресов .

Отдельные соединения на каждом IP-адресе идентифицируются по номеру порта. Существует ограничение в 65536 портов на IP-адрес, налагаемое протоколом IP. Одной из причин псевдонимов IP является преодоление этого ограничения.

Таким образом, в конечном итоге ваше устройство может иметь столько IP-адресов, сколько вы хотите (в пределах разумного - я полагаю, что ядро ​​накладывает ограничения на количество интерфейсов и IP-адресов, которыми оно может управлять), что совершенно не зависит от количества сетевых интерфейсов. адаптеры у вас есть. С другой стороны, ваше устройство будет иметь как минимум столько же IP-адресов, сколько используемых сетевых интерфейсов .


0

Устройство - это физический элемент, который представлен меткой внутри системы. Таким образом, система может выполнять различные действия, такие как настройка / запрос / использование физического устройства. Метка создается драйвером, который управляет физическим оборудованием в системе ядра.

Таким образом, вы можете иметь несколько сетевых устройств, каждое из которых идентифицируется с помощью уникальной метки (давайте не будем сильно усложнять разговор о связывании).

Ваша проблема связана с IP-адресом.

Существует несколько разных классов IP-адресов. У вас есть общедоступный, доступ к которому можно получить из любой точки мира через Интернет и по частным адресам, которые обычно ограничены частной областью (например, домашней / деловой сетью).

Обычно домашняя или офисная сеть имеет несколько общедоступных IP-адресов и множество личных адресов (между ноутбуком / мобильным телефоном / планшетом / холодильником / тостером / всех членов семьи).

Вы можете назначить столько IP-адресов физическому оборудованию, но вы должны делать это красиво и уважать логику tcp / ip, если вы не хотите сталкиваться с неразрешимой проблемой :)

Например, в локальной сети (LAN) у вас не может быть двух устройств с одинаковым IP-адресом. Это происходит главным образом из-за протокола Ethernet, который основан на MAC-адресе (уникальный идентификатор оборудования), и существует взаимно-однозначное соотношение между MAC-адресом и IP-адресом в локальной сети.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.