Как локальные IP-адреса отделяются от публичных?

Как локальные IP-адреса отделяются от публичных?

Как такие инструменты, как ping или любой другой инструмент, использующий протокол TCP/IP, узнают, что, например, 192.168.1.1 или 10.0.0.1 — это локальный IP-адрес, а 8.8.8.8 или 74.142.23.95 — публичный? Неужели 192.168.xx и 10.0.xx жестко закодированы для локального использования?

решение1

Ну, они естьсдержанныйкЗапрос предложений 1918для использования в частных сетях.

Но это на самом деле не имеет большого значения. Вы можете получить блок "публичных" IP-адресов от RIPE или чего-то еще и использовать его для своей частной сети, и все будет работать. Резервирование необходимо только по политическим причинам, чтобы позволить администраторам настраивать свои собственные частные сети без каких-либо проблем.

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

Например, при настройке карты Ethernet в Windows с IP-адресом 10.2.3.4/16(в формате маски сети: 255.255.0.0) и шлюзом 10.2.0.1в таблицу маршрутизации добавляются следующие записи:

  • 10.2.3.4/32(сетевая маска 255.255.255.255) для интерфейсаLoopback

    (Ваши собственные адреса всегда маршрутизируются через интерфейс обратной связи, они никогда не выходят в сеть.)

  • 10.2.0.0/16(сетевая маска 255.255.0.0) для интерфейсаLocal Area Connection

    (Адреса в вашей подсети по определению являются локальными.)

  • 0.0.0.0/0(сетевая маска 0.0.0.0) к шлюзу10.2.0.1

    (Все остальное не является локальным.)

Другими словами,вы сказали ОСчто все адреса в 10.2.0.0/16диапазоне являются локальными, и ОС обо всем позаботится.


Чтобы просмотреть таблицу маршрутизации:

  • на Linux, ip route(IPv4) и ip -6 route(IPv6)
  • в Windows route print(IPv4 на ≤XP, оба v4/v6 на ≥Vista)
  • в Windows XP, netsh interface ipv6 show route(IPv6)
  • в Windows, Linux, BSD и других Unix-подобных системах netstat -r -n(IPv4)
  • в Linux и некоторых Unix-подобных системах netstat -r -n -6(IPv6)

Редактирование таблицы маршрутизации можно выполнить теми же инструментами. Например, чтобы отметить все 172.16.0.0/16как локальные, можно использовать ip route add 172.16.0.0/16 dev eth0в Linux.

решение2

Публичные и частные IP-адреса определены в RFC. Это частные IP-адреса:

10.0.0.0/8

172.16.0.0/12

192.168.0.0/16

Также эти IP-адреса являются петлевыми:

127.0.0.0/8

Другие являются публичными.

Большинству инструментов не нужно знать публичные или частные IP-адреса.

Связанный контент