- Шпаргалка по пробросу IP во внутреннюю сеть без моста и iptables в 4 команды
- Внешний и внутренний IP адрес: как это работает
- Что такое внешний IP-адрес?
- Поиск ваших внешних (общедоступных) и внутренних (частных) IP-адресов
- Разрешение доступа из Интернета к вашей сети
- Резюме
- Общие вопросы и ответы
- Общие вопросы и ответы
Шпаргалка по пробросу IP во внутреннюю сеть без моста и iptables в 4 команды
В статье будет рассмотрена маршрутизация внешнего IP-адреса внутрь локальной без пробрасывания ethernet-шлюза и переписывания адресов в iptables. В итоге на сетевой карте внутреннего сервера будет один правильный внешний IP-адрес, внутренние IP-адреса будут отсутствовать.
Практика применения: например маршрутизация IP-адресов с сервера на виртуальные машины, без необходимости подключать их к ethernet-сети физического сервера.
При этом на сетевой интерфейс может быть назначена как сеть адресов, так и разрозненные адреса, у которых этот сервер указан просто как следующий узел маршрутизации (так например Hetzner раздает свои отказоустойчивые IP-адреса).
Исходное состояние
Сервер S0 — шлюз в интернет, у него есть две сетевые карты eth0 — внешняя и brLAN — внутренняя (это может быть как физическая карта, так и просто мост для организации сети с виртуальными машинами).
1.1.1.1 — внешний IP-адрес сервера S0, в настройке никак не участвует.
1.2.3.4 — внешний IP-адрес, пакеты которого приходят на eth0 и который нужно пробносить на внутренний сервер
192.168.0.1 — IP-адрес сервера S0 на brLAN.
На S0 включена функция перенаправления IPv4
cat /etc/sysctl.conf | grep net.ipv4.ip_forward net.ipv4.ip_forward=1
Сервер S1 — сервер во внутренней сети или виртуальный сервер, для которого нужно пробросить внешний IP-адрес, у него есть один сетевой интерфейс — eth0, включенный в brLAN.
iptables на обоих серверах выключен
Краткая шпаргалка по командам
ip route add 1.2.3.4 dev brLAN # отправлять пакеты для адреса 1.2.3.4 на интерфейс brLAN
ip addr add 1.2.3.4 dev eth0 # Добавить адрес 1.2.3.4 на интерфейс, смотрящий в brLAN ip route add 192.168.0.1 dev eth0 # Пакеты на 192.168.0.1 отправлять в сеть brLAN ip route add default via 192.168.0.1 # Весь внешний трафик отправлять через 192.168.0.1
На этом всё: для S1 внутренних IP-адресов назначать не нужно — пакеты сразу отправляются с публичного адреса.
Настройка клиента через конфиги
На клиентской стороне эти правила можно настроить через конфигурационные файлы и настройки будут подниматься сразу вместе с сетевым интерфейсом, как обычно и происходит.
cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=1.2.3.4 NETMASK=255.255.255.255 SCOPE="peer 192.168.0.1" cat /etc/sysconfig/network-scripts/route-eth0 ADDRESS0=0.0.0.0 NETMASK0=0.0.0.0 GATEWAY0=192.168.0.1
Как настроить через конфиги сервер пока не нашел, но в целом это меньшая проблема — один шлюз контролировать просто и настройка элементарная — просто для каждого адреса (сети адресов) вызывать команду направления трафика во внутреннюю сеть — это можно хоть просто скриптом сделать и включить в автозагрузку.
Преимущества перед iptables с пробросом на внутренний IP
- Сохраняется адрес назначения пакета
- На интерфейсе внутреннего сервера виден правильный внешний IP
- Нет необходимости следить за зеркальными правилами iptables — чтобы исходящий трафик тоже шел с правильного IP
- При необходимости фильтрации трафика на шлюзе правила будут выглядеть нагляднее — указывать на реальный адрес сервера
- Отпадает необходимость поддерживать внутреннюю систему адресации
- Проще манипулировать маршрутами из скриптов
- При росте инфраструктуры можно будет перейти на динамическую маршрутизацию сохраняя уже существующие правила и логику работы
- Возможность обращаться к серверам по публичному адресу независимо от источника трафика. Для iptables в этом случае пришлось бы настраивать правила отдельно для случаев когда источник трафика на шлюзе, из внутренней сети, из внешней сети. Возможно есть еше какие-то тонкости
- Нагляднее вывод маршрутизации по ip route сразу видно какой трафик пойдет во внутреннюю сеть, в iptables правил было бы намного больше + были бы правила фильтрации и вывод нужно отдельно разбирать
- Два сервера из brLAN могут общаться между собой по публичным адресам напрямую, без участия шлюза
ping 1.2.3.4 PING 1.2.3.4 (1.2.3.4) 56(84) bytes of data. 64 bytes from 1.2.3.4: icmp_seq=1 ttl=64 time=1.18 ms From 192.168.122.1: icmp_seq=2 Redirect Host(New nexthop: 1.2.3.4) 64 bytes from 1.2.3.4: icmp_seq=2 ttl=64 time=0.386 ms 64 bytes from 1.2.3.4: icmp_seq=3 ttl=64 time=0.325 ms 64 bytes from 1.2.3.4: icmp_seq=4 ttl=64 time=0.262 ms 64 bytes from 1.2.3.4: icmp_seq=5 ttl=64 time=0.298 ms 64 bytes from 1.2.3.4: icmp_seq=6 ttl=64 time=0.344 ms arp Address HWtype HWaddress Flags Mask Iface 192.168.122.1 ether 52:54:00:91:b2:67 C eth0 1.2.3.4 ether 52:54:00:11:80:37 C eth0
Как избавиться от 192.168.0.1
P.S. в принципе адрес 192.168.0.1 тоже можно исключить и указывать вместо него любой IP-адрес сервера-шлюза, например его публичный IP, тогда трассировка пути будет смотреться красиво. При установках по умолчанию всё будет работать, но могут возникать ньюансы.
Например возможность отвечать по своим IP-адресам с любого интерфейса может иногда мешать и должна быть выключена. Или если сменится публичный IP-адрес шлюза (например виртуалка переехала на другой физический сервер) — нужно будет менять настройки внутреннего сервера. При использовании для шлюза отдельного, общего для всех подобных шлюзов адреса такой проблемы не возникает.
Внешний и внутренний IP адрес: как это работает
Хотя вы можете этого не знать, но у вас есть два IP-адреса: внутренний IP-адрес (Private) и внешний IP-адрес (Public).
Зачем вам нужны два IP-адреса и в чем разница между внутренним и внешним IP-адресом?
Что такое внешний IP-адрес?
Внешний IP-адрес или общедоступный IP-адрес — это IP-адрес интерфейса маршрутизатора, подключенного к Интернету.
Вот диаграмма, иллюстрирующая распределение IP-адресов в типичной домашней сети или сети малого бизнеса.
Маршрутизатор обычно имеет два сетевых интерфейса.
Каждый из этих интерфейсов будет иметь IP-адрес. IP-адрес, назначенный внешнему интерфейсу, будет иметь маршрутизируемый IP-адрес и будет назначен вашим интернет-провайдером.
Этот адрес также известен как публичный адрес.
Диапазоны общедоступных адресов назначаются интернет-провайдерам Управлением по присвоению номеров в Интернете (IANA.
В сетях домашнего офиса, использующих маршрутизатор NAT, внутренние IP-адреса используют специальный диапазон IP-адресов.
NAT позволяет тысячам компьютеров внутренней сети получать доступ к Интернету с использованием одного внешнего IP-адреса.
Этот диапазон адресов специально зарезервирован для внутренних адресов, и IP-адреса не будут перенаправляться маршрутизаторами в Интернете.
Внутренние адреса также называются частными адресами, поскольку они ограничены частными сетями.
Все устройства в моей домашней сети имеют адреса вроде 192.168.1. x но внешне у них адрес 109.155.209.167
В домашних сетях обычно используются адреса из диапазона адресов.192.168.0.* или.192.168.1.*.
Диапазон сетевых адресов 192.168.0.0 — это выделенный адрес частной сети, не поддерживающий маршрутизацию .
Однако это не единственные диапазоны частных адресов, не поддерживающие маршрутизацию, которые вы можете использовать. Другие диапазоны адресов, которые можно использовать:
См. частный IP адрес в вики для более подробной информации.
Примечание. Если вы не знакомы с сетевыми адресами, вы можете прочитать руководство по IP4-адресам и классам.
Поиск ваших внешних (общедоступных) и внутренних (частных) IP-адресов
Чтобы найти свой внешний IP-адрес, выполните поиск своего IP-адреса в Google, после чего вы, вероятно, увидите такой экран.
Google показывает IP-адрес:
109.155.209.167
Это ваш внешний IP-адрес.
Теперь откройте командную строку и введите:
Вы должны увидеть что-то вроде этого:
На этот раз ваш IP-адрес 192.168.1.64.
Это ваш внутренний IP-адрес.
Внутренний IP-адрес используется в вашей локальной внутренней сети, а внешний IP-адрес используется при общении с машинами в Интернете.
Разрешение доступа из Интернета к вашей сети
Из-за маршрутизатора NAT нет прямой связи между Интернетом и компьютером в локальной сети.
Вся связь между вашей внутренней сетью и Интернетом должна инициироваться устройством в вашей внутренней сети.
Как правило, это не проблема и является преимуществом безопасности.
Однако онлайн-геймеры и те, кто хотел бы разместить веб-сайт или другие службы в своей собственной сети, должны будут разрешить внешним устройствам в Интернете доступ к ним.
Для этого маршрутизаторы NAT можно настроить на использование метода, называемого переадресацией портов.
Переадресация портов позволяет внутреннему устройству иметь внешний IP-адрес и разрешает входящие подключения из Интернета.
Резюме
Домашние и корпоративные сети используют частные или внутренние адреса из зарезервированного диапазона немаршрутизируемых адресов.
В домашних сетях и сетях малого офиса маршрутизатор NAT соединяет внутреннюю сеть с Интернетом, используя один внешний или общедоступный IP-адрес с возможностью маршрутизации, назначенный провайдером из выделенного ему блока адресов.
Маршрутизатор NAT позволяет устанавливать соединения только из внутренней сети во внешнюю сеть, а не наоборот, если только не используются такие методы, как переадресация портов.
Общие вопросы и ответы
В. Мой внешний IP-адрес постоянно меняется. Это нормально? Могу ли я остановить это?
О. Большинство интернет-провайдеров выделяют своим клиентам динамические IP-адреса. Этот адрес станет внешним IP-адресом, назначенным вашему маршрутизатору, и, следовательно, он может измениться.
На этом снимке экрана показано, как за месяц изменился мой собственный внешний IP-адрес.
Некоторые интернет-провайдеры позволяют вам иметь статический IP-адрес, но обычно за дополнительную плату (широкополосный доступ для бизнеса).
Статические IP-адреса не меняются.
Если вы собираетесь предоставлять доступ к своей сети из Интернета, то вам действительно нужен статический внешний IP-адрес.
Однако альтернативой для домашних сетей и сетей малого бизнеса является использование службы динамического DNS.
Служба динамического DNS не препятствует изменению внешнего адреса, а вместо этого автоматически отслеживает эти изменения и автоматически обновляет записи DNS при изменении IP-адреса.
Общие вопросы и ответы
В. Можно ли использовать внутренний IP-адрес в Интернете?
О. Нет — указанные выше диапазоны внутренних IP-адресов блокируются интернет-маршрутизаторами.
В. Как сообщение достигает внутреннего IP-адреса с внешнего?
A. Это делается с помощью таблицы преобразования на маршрутизаторе NAT и рассматривается в понимании переадресации портов.
В. Есть ли разница, если я использую диапазон IP-адресов 10., а не диапазон адресов 192.168.0.0?
О. Вообще нет. Однако большинство домашних маршрутизаторов настроены на использование диапазона адресов 192.168.
В. Кто назначает мой внешний IP-адрес (общедоступный)?
О. Он назначается вашим провайдером.
В. Как я узнаю, изменился ли мой внешний адрес?
О. Вам нужно будет проверить это, используя технику, показанную ранее.
В. Могу ли я изменить свой внешний IP-адрес?
Насколько публикация полезна?
Нажмите на звезду, чтобы оценить!
Средняя оценка / 5. Количество оценок:
Оценок пока нет. Поставьте оценку первым.