Існують два пристрої в різних містах, причому обидва вони мають однакові приватні IP-адреси. Як я можу отримати їх комунікації (SSH, RDP, FTP, Telnet, і т.д.). Будь ласка, поясніть детально.
Дякую
Існують два пристрої в різних містах, причому обидва вони мають однакові приватні IP-адреси. Як я можу отримати їх комунікації (SSH, RDP, FTP, Telnet, і т.д.). Будь ласка, поясніть детально.
Дякую
Відповіді:
Я припускаю, що ви говорите про два стандартних житлових або комерційних інтернет-з'єднання (а не орендовану лінію або два сайти, пов'язані VPN або подібними).
У прикладі мережі нижче ми маємо дві будівлі та сервер (у будь-якій точці світу), які підключені через Інтернет. У нас є два маршрутизатори - R1
і R2
- кожен з яких має інший громадськості IP-адреса (або "" зовнішній " IP-адреса).
У будинках маршрутизатори та пристрої мають загальні IP-адреси - маршрутизатори ( R1
і R2
) використовувати a приватний IP of 192.168.0.1
та пристрої ( DA
і DB
) використовувати a приватний IP of 192.168.0.10
.
Зовні до будівель маршрутизатори мають різні громадськості IP-адреси - 203.0.113.5
і 203.0.113.219
. Сервер доступний на громадськості IP-адреса 203.0.113.42
.
Тут існує важлива відмінність між двома типами IP-адрес, додаткову інформацію можна знайти на вікі-сторінці " Зарезервовані IP-адреси ".
Для DA
доступу до сервера або хосту в Інтернеті (наприклад, 203.0.113.42
), йому потрібно отримати допомогу від маршрутизатора - тому що 203.0.113.42
недоступний у локальній мережі. Отже, він буде відправляти пакети до налаштованого маршрутизатора ( R1
), який потім пересилатиме пакети до Інтернету.
У цьому випадку маршрутизатор буде трохи переписати пакет, позначивши " Адреса джерела "as R1
Публічна адреса користувача ( 203.0.113.5
), замість DA
адреса користувача ( 192.168.0.10
). Коли пакет повертається R1
, він перевірить таблиці підключень, переписати пакет так, щоб призначення було DA
і переадресуйте пакет до локальної мережі.
Це називається Переклад мережевих адрес (NAT), і перезаписування вихідних пакетів для використання власної адреси маршрутизатора називається " Маскарад "- тобто: всі вихідні пакети, здається, походять від маршрутизатора, а не пристрою, що стоїть за ним.
Це дозволяє здійснювати зв'язок між пристроями в приватній мережі (наприклад: DA
і DB
) і публічний сервер в Інтернеті.
Щоб представити деякі послуги, що надаються в мережі будівлі A, ми повинні зробити R1
виглядає більше як сервер у 203.0.113.42
... Для цього ми вводимо перенаправлення портів .
Це техніка, яка дозволяє нам налаштовувати R1
прийняти вхідні запити на порт (наприклад 22
для SSH ), і пересилати їх іншому хосту в межах приватної мережі.
В цьому випадку, DA
на сервері працює сервер SSH 22
, так ми налаштовуємо R1
перенаправити порт 22 на його зовнішній інтерфейс (тобто: 203.0.113.5:22
) на сервер на його внутрішньому інтерфейсі (тобто: 192.168.0.10:22
).
Тепер, коли ми налаштували перенаправлення портів, DB
може отримати доступ DA
Сервер SSH для підключення R1
Публічна адреса ... яка є 203.0.113.5
, порт 22
. Примітка: DB
не використовує або ніколи не знає DA
приватна IP-адреса та навпаки.
Для вас піклуватиметься про переклад мережевої адреси, а повний ланцюжок буде виглядати приблизно так:
DB
посилає пакет R2
- Джерело: 192.168.0.10
, Призначення: 203.0.113.5
R2
переписує пакет - Джерело: 203.0.113.219
, Призначення: 203.0.113.5
R2
надсилає пакет через Інтернет і R1
отримує його R1
переписує пакет - Джерело: 203.0.113.219
, Призначення: 192.168.0.10
R1
надсилає пакет через локальну мережу і DA
отримує його Шлях повернення / відповідь є зворотним:
DA
посилає пакет R1
- Джерело: 192.168.0.10
, Призначення: 203.0.113.219
R1
переписує пакет - Джерело 203.0.113.5
, Призначення: 203.0.113.219
R1
надсилає пакет через Інтернет і R2
отримує його R2
переписує пакет - Джерело: 203.0.113.5
, Призначення: 192.168.0.10
R2
надсилає пакет через локальну мережу і DB
отримує його Як ви можете бачити, зіткнення приватних адрес не має значення взагалі - жоден пристрій ніколи не знаходиться в ситуації, коли 192.168.0.10
розглядається як джерело, так і призначення, або може бути досягнуто через два інтерфейси. Якби це було так, то посилання явно не спрацювало.
Деякі примітки: