Заметка

Internet Fundamentals: Как работает IP адрес. Нежное введение :)

Перед тем, как написать статью про networking в Linux, я хотел бы поделиться некоторой теорией, которую необходимо знать каждому пользователю Linux, ну.. почти каждому ;).

Тут же я начинаю новый цикл статей, посвященный изучению сети internet.

Представьте, что вы в Париже и вам срочно нужно добраться в Версаль. Оглядываясь вокруг по сторонам, вас бросает в холодный пот — вы абсолютно не знаете ничего по-французски! Как вы доберетесь до Версаля и что будет, если понадобится объезд? Это будет трудная борьба, и вы, вероятно, потеряетесь и вероятно провалитесь. Вот почему очень важно знать немного о языке страны, перед тем, как совершать путешествие (ладно, для Турции это не относится 🙂 ).

 

Этот же подход вы должны применить и к IT security. Только в этот раз вы не в Париже, а сидите на диване с ноутом в поиске открытых и уязвимых машин на некотором host диапазоне. Вы смотрите на IP адреса с небольшим замешательством — вы знаете, что такое IP адрес, но знаете ли вы что он делает и что фактически из себя представляет? Можете ли вы сказать, насколько большая сеть по ее IP? Это язык Internet`а.

В этой статье я предоставлю «мягкое» техническое введение в IP адреса, объясняя каким образом они представляют из себя больше, чем просто набор цифр, указывающих на ресурс. Эти networking статьи будут постепенно нарастать, и со временем все будет рассказано и сделано в этой серии, вы начнете чувствовать себя более комфортно у руля.

What Is an IP Address? Really?

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

Текущая версия Internet Protocol, или IP, является version 4. Эта версия позволяет четырем октетам (octets of data) представлять IP адрес. Каждый октет считается тем же самым, что и байт, и всего 8 бит в каждом октете, в итоге 32 бита. Бит может принимать только два значения, представляемые как 1 или 0. Напоследок, каждый октет отделяется точкой.

Более новый IP version 6 (IPv6) стандарт имеет  адреса длины 16 байт (128 бит), однако он не имеет еще широкой поддержки, и IPv4  до сих пор остается стандартом на сегодняшний день.

Существует две нотации для представления IPv4 адресов — десятичная и двоичная. Вы вероятно знакомы с примером 86.118.34.65. Вероятно меньше с бинарным адресом как 11000001 10000011 00011011 11111111

Хотите узнать больше о двоичных числах? Кликайте сюда, а также сюда.

IP Address Classes

Адреса также делятся на три класса; A, B, и C. В то время как есть еще два класса, они лежат вне нашей области рассмотрения сейчас, так как они выполняют специальные роли, как, например, multicasting. Эти три класса имеют фиксированное число IP адресов, как показано ниже. В каждом классе «закодированы» «class identifier», «network identifier» и «host identifier».

 

Как вы можете видеть, A-class network имеет большое количество возможных хостов (hosts), в то время как C-class network только 254 возможных.

Я знаю, вы возможно уже догадались, почему C-class имеет только 254 хост адресов, и не все 256. Если вы сосчитаете число хостов для B- и A- классов тоже, вы осознаете, что их тоже меньше на 2 хоста от теоретического максимума. Ответ состоит в том, что наименьший адрес (lowest address), тот, у которого все биты в host части равны 0, используется для адресации самой сети, и наибольший адрес (highest address), имеющий все биты в host части равные 1, используется как broadcast (широковещательный) адрес, обозначающий всех хостов в этой сети.

  • Бит может иметь одно из двух значений, обычно представляемых как 1 или 0.
  • Байт это 8 бит.
  • Как последовательность из восьми 0 или 1. Пример: 11001100
  • Как десятичное число. Например, к примеру выше десятичный эквивалент 204.
  • Так как 8 бит в байте, каждый байт может принимать 256 возможных значений.

Итак, бинарное представление 11111111.11111111.11111111.11111111 является 255.255.255.255, адресом, который вы видите.

Также, бинарный адрес 00000000.00000000.00000000.00000000 был бы 0.0.0.0.

Это все просто, но необходимо четко осознавать.

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

Domain Name System

Люди, в отличие от компьютеров, испытывают трудности в запоминании огромного количества похожих чисел. Работа с именами куда проще для нас и меньший шанс ошибок. Именно поэтому вы редко видете «голые» числа в Internet. По факту, когда вы вводите URL в ваш браузер, чтобы посмотреть веб-сайт, ваш запрос в первую очередь должен быть переведен из читаемого буквенного адреса в IP адрес, который может быть направлен. Domain Name System как раз делает этот перевод, в сокращении: DNS.

Если вы отправляете запрос (обычно говорят request) на соединение с конкретным веб-сайтом, скажем http://www.yahoo.com, вы фактически сначала посылаете request к DNS серверу просмотреть и перевести адрес в корректный IP адрес 98.138.253.109. С этим IP адресом вы можете осуществить фактическое соединение к веб-сайту. Это остается обычно за кадром и настолько быстро, что вы не замечаете.

 

Также заметьте, вас ничего не останавливает, чтобы просто написать IP адрес в строке вашего веб-браузера и нажать enter (по сути, отправить http запрос серверу).

Final Thoughts

Как только вы усвоите основные концепции сети, они будут основой для вашего хакерства более осмысленного использования интернет ресурсов. Когда вы лучше поймете архитектуру сети, вы поймете как работают некоторые атаки, и почему некоторые — нет. Я всегда думал, что собственно хакер хороший IT специалист должен обладать знаниями в области программирования, сети и операционных систем.

Commonly Used Addresses and Values

  • 127.0.0.1 — замыкающийся на себя адрес интерфейса или localhost. Все 127.x.x.x адреса используются localhost`ом, который копирует информацию из посылающего буфера в принимающий буфер, когда используется Ethernet-адаптер или NIC (network interface controller).
  • 0.0.0.0 — этот адрес зарезервирован для хостов, которые не знают свои адреса и используют BOOTP или DHCP , чтобы определить их.
  • 255 — Значение 255 никогда не используется как адрес ни в одной части IP адреса. Оно зарезервировано для broadcast адресации. Мы поговорим про это подробнее в дальнейших статьях.

Как всегда, если есть вопросы, оставляйте их в комментариях.

Internet Fundamentals: Как работает IP адрес. Нежное введение :): Один комментарий

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s