
Как такие инструменты, как 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-адреса.