Структура ip адрес: Что такое IP адрес?

Содержание

Сеть: IP-адреса, структуры, передача данных

К содержанию

 


Вот наконец та часть, в которой мы начнём говорить о коде!

Но сначала всё же давайте обсудим не-код. Итак. Для начала я хочу поговорить об IP-адресах и портах; для работы с ними нужно иметь представление, что же это такое. Затем мы поговорим о том, каким образом Socket API хранит и обрабатывает IP-адреса и другие данные.

IP-адреса, версии 4 и 6.

В старые добрые времена, когда Бена Кеноби всё ещё називали Оби Ван Кеноби, была чудесная система интернет-маршрутизации под названием Протокол Интернета Версии 4, также известная как IPv4. Адрес состоял из четырёх байтов (или четырёх «октетов»), и обычно писался в виде «Точек и цифр», например, так: 192.0.2.111

Вы, наверное, слышали о чём-то таком.
Фактически в данный момент каждый сайт в интернете использует IPv4.

Все, включая Оби Вана, были счастливы. Всё вокруг было чудесно, пока некто по имени Винт Серф не заявил, что у нас заканчиваются адреса IPv4!

(Кроме предупреждения всех о приближении Апокалипсиса IPv4, Винт Серф также известен как «Отец интернета». Поэтому у меня нет оснований сомневаться в его словах.)

Кончаются адреса? Как это может произойти? Я имею в виду, что есть миллиарды адресов IPv4. Неужели все они заняты компьютерами?

Да.

Кроме того, в начале, когда было всего несколько компьютеров, всем казалось, что миллиард — невероятно большое количество. Некотором организациям (например, IBM, Xerox, HP, Apple и др.) от всей души «отсыпали» миллионы IP-адресов для собственного использования.
Фактически, если бы не ряд временных мер, IP-адреса кончились бы уже давно.

Но сейчас мы живём в эпоху, когда IP-адрес приходится даже не на каждого человека, а на каждый калькулятор, телефон, стоянку (почему бы нет?) и (почему нет?) на каждого щенка.

Итак, родился IPv6. Поскольку Винт Серф, похоже, бессмертен (Даже если его физическое существование, не дай Бог, завершится, он, вероятно, уже существует где-нибуть в виде гипер-умного ИИ ELIZA в глубине Интернета-2), никто не хочет ещё раз услышать его фразу «я же вам говорил!», если вдруг нам не хватит и ipv6 через сколько-то лет.

Что из всего этого следует?

То, что нам нужно намного больше адресов. Не просто в два раза больше, даже не в миллиард и не в тысячу миллиардов раз, а В 79 МИЛЛИОНОВ МИЛЛИАРДОВ ТРИЛЛИОНОВ раз больше адресов! Это будет круто!

Вы скажете «Да ну, не может быть такого количества адресов». Хе-хе, разница между 32 и 128 битами не внушает трепета, это всего лишь дополнительные 96 бит, верно? НО: 32 бита дают нам около 4 миллиардов адресов, тогда как 128 бит дают миллиард миллиардов миллиардов адресов! Это всё равно, что миллион ipv4-адресов для каждой звезды во вселенной.

Забудьте о точках и цифрах в адресах IPv4. Теперь у нас только шестнадцатиричное представление, каждый кусок по два байта через двоеточие, например так:
2001:0db8:c9d2:aee5:73e3:934a:a5ae:9551.

Это ещё не всё! Часто могут встречаться IP-адреса с многими нулями, тогда вы можете пропускать 4 нуля между двоеточиями и писать просто «::». Также вы можете отбрасывать ведущие нули для каждой пары байт. Например, эти адреса эквивалентны:

2001:0db8:c9d2:0012:0000:0000:0000:0051
2001:db8:c9d2:12::512001:0db8:ab00:0000:0000:0000:0000:0000
2001:db8:ab00::0000:0000:0000:0000:0000:0000:0000:0001
::1

 

Адрес ::1 — лупбек (loopback) -адрес. Он всегда присутствует на каждой машине. В IPv4 такой адрес — 127.0.0.1.

Наконец, существует режим совместимости IPv4 и IPv6. Например, если вы хотите написать «192.0.2.33» в виде IPv6, получится «::ffff:192.0.2.33».

IPv6 настолько много, что создатели бесцеремонно обрезали нас зарезервировав триллионы и триллионы адресов. Но и без того у нас осталось их так много, что куда уж больше? Их осталось ещё очень и очень много на каждого мужчину, женщину, ребенка, щенка, стоянки на каждой планете в галлактике.

3.1.1. Подсети

По причинам удобства организации иногда заявляется, что «первая часть IP-адреса до такого-то бита содержит сетевую часть, а остальная часть адреса — хостовая часть«.
Например, в случае IPv4 у вас может быть адрес 192.0.2.12, и мы можем сказать, что первые три байта содержат адрес сети, а последний — адрес хоста. Или, другими словами, мы говорим о хосте 12 в сети 192.0.2.0.

А теперь немного устаревшая информация. В доисторические времена принято было делить сети на «классы». Разные классы сетей имели один, два и три байта для адреса сети и назывались «Класс А», «Класс B» и «Класс C» соответственно. Например, сеть «Класса А» содержит один байт сетевого адреса и может включать в себя 256*256*256 хостов. Сети «Класса B» — два байта адреса и 256*256 хостов, ну и сети «Класса C» — всего 256 хостов.

Сетевая часть IP-адреса описывается параметром, называемым «Маска подсети», биты которой указывают на число хостов в сети. Обычно она выглядит как-то так: 255.255.0.0. (То есть с адресом 192.0.2.12 в сети 192.0.2.0 у вас была бы маска подсети 255.255.255.0)

К сожалению, оказалось, что такого разделения недостаточно для потребностей Интернета. От разделения на классовые сети отказались почти сразу. Теперь маска может содержать произвольное число битов, а не только 8, 16 и 24. Так вы можете иметь маску, например, 255.255.255.252, что даёт нам 30-битную сеть, и два бита для хостов в сети (маска ВСЕГДА предусматривает два зарезервированных адреса: адрес сети и бродкаст-адрес).

Но использовать длинный набор цифр типа 255.192.0.0 в качестве маски — немного громоздко. Во-первых, люди не имеют интуитивного представления о том, сколько битов в этом выражении, а во-вторых это действительно просто громоздко. Пришедший следом за изменениями новый стиль написания маски намного приятнее. Необходимо просто поставить косую черту после IP-адреса, а за ней — число битов сети. Например так: 192.0.2.12/30

Или, для IPv6, как-то так: 2001:db8::/32 or 2001:db8:5413:4028::9db9/64.

3.1.2. Номера портов.

Если помните, ранее я описывал модель OSI, разделяющую интернет на слои протоколов: IP и TCP/UDP. Всмомните немного эту модель перед переходом к следующему пункту.

Оказывается, кроме Ip-адреса (используемого протоколом IP) есть ещё один адрес, используемый TCP (потоковыми сокетами) и UDP (дейтаграммными сокетами). Это номер порта. Это 16-разрядное число, что-то вроде локального адреса для связи.
Можно представить себе IP-адрес как адрес отеля, а номер порта — как номер комнаты в нём.
Скажем, вы хотите, чтобы один и тот же компьютер обрабатывал и входящую из интернета почту и веб-сервисы. Как вы различите их на одном и том же компьютере с одним IP-адресом?

Различные сетевые сервисы имеют различные номера портов. Протокол HTTP как правило использует порт 80, телнет — 23, SMTP — 25, и игра DOOM использует порт 666. И тк далее. Порты ниже 1024 считаются зарезервированными и как правило требуют для открытия особых прав в ОС.

Вот, собственно, и всё об этом.

3.2 Порядок следования байт

Нет простого способа объяснить, поэтому я просто ляпну: компьютер может хранить данные в обратном порядке.

Дело в том, что все в мире Интернета в целом согласились, что если вы, например, хотите передать двухбайтовое шестнадцатиричное значение, например b34f, то сначала передаём b3, а затем 4f. Думаю, следом за Уилфордом Бримли можно назвать этот принцип правильным. Порядок, при котором байты следуют «от старшего к младшему», называется Big-Endian.

К сожалению, парочка компьютеров, разбросанных там и сям по всему миру, а именно — что-нибуть с Intel или Intel-совместимым процессором, хранят байты в обратном порядке, так что b34f в памяти хранится так: сначала 4f, а затем b3. Такой способ хранения, когда байты следуют «от младшего к старшему», называется Little-Endian.

Погодите, ещё не всё с терминологией! Более очевидный порядок следования байт Big-Endian также называют «сетевой порядок следования байт» (network order), потому что именно так данные передаются по сети.

Итак, ваш компьютер хранит числа в машинной последовательности байт. Если процессор у вас Intel, эта последовательность — Big-Endian, а если, например, Motorola, то данные у вас хранятся в Little-Endian, или в сетевом порядке. Если у вас PowerPC, порядок следования байт у вас… Ну, там он может быть разным!

Множество раз, строя покеты или заполняя структуры данных, вам нужно убеждаться, что ваши двух- и четырёх-байтные числа построены в сетевом порядке следования. Но как же вам это делать, не зная, какая последовательность байт естесственна для вашей машины?

Хорошие новости! Нужно просто принять за аксиому, что поряток следования у вас неверен и просто прогонять необходимое значение через функцию, устанавливающую его в сетевой порядок следования байт. Эта функция магическим образом сконвертирует всё, если это необходимо, а если нет — оставит всё без изменений. Таким образом ваш код будет переносим на любые машины.

Всё верно. Есть два типа значений, которые вы можете конвертировать: short (два байта) и long (четыре байта). Есть функции для работы со всеми вариантами. Скажем, вы хотите сконвертировать short из машинного порядка следования байт в сетевой порядок. Начинается с «h» для «host», дальше «to», затем «n» для «network» и «s» для «socket»: h-t-o-n-s, или htons() (читается как «Host to network short»).

Всё почти что слишком просто…
Вы можете использовать любые вариации «n», «h», «s» и «l», исключая самые идиотские, конечно. Например, нет функции stolh() («Short to Long Host»). Но зато есть:

 

htons() host to network shorthtonl() host to network long

ntohs() network to host short

ntohl() network to host long

 

Собственно, вам нужно сконвертировать числа в сетевой порядок следования до того, как они выйдут наружу, и конвертировать обратно в машинный порядок после того, как они придут на вход.

Я не знаю подробностей о 64-битном варианте, извините. И если вам нужно передать число с плавающей точкой — см. раздел «Сериализация», который будет гораздо дальше.

Примем за факт, что числа в данном документе хранятся в машинном порядке следования байт, пока я не скажу иное.

3.3 Структуры данных

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

Сначала самое лёгкое: дескриптор сокета. Он имеет следующий тип:

int

 

Просто обычный int.

Моя первая структура™ — struct addrinfo. Эта структура — относительно недавнее нововведение, и используется она для подготовки адреса сокета для дальнейшего использования. Также она используется в разрешении имён хоста (днс) и имён сервисов. Вам всё это станет яснее далее, когда мы дойдём до фактического её использования, пока просто знайте, что это одна из первых вещей, необходимых при создании сетевого соединения.

struct addrinfo {
int              ai_flags;     // AI_PASSIVE, AI_CANONNAME, etc.
int              ai_family;    // AF_INET, AF_INET6, AF_UNSPEC
int              ai_socktype;  // SOCK_STREAM, SOCK_DGRAM
int              ai_protocol;  // use 0 for «any»
size_t           ai_addrlen;   // size of ai_addr in bytes
struct sockaddr *ai_addr;      // struct sockaddr_in or _in6
char            *ai_canonname; // full canonical hostnamestruct addrinfo *ai_next;      // linked list, next node
};

 

Вы слегка заполняете эту структуру, а затем вызываете ф-ю getaddrinfo(), которая вернёт вам указатель на новый связанный список этих структур, которые заполнены всем, что вам нужно.
Вы можете указать использовать IPv4 или IPv6 в поле ai_family, или оставить AF_UNSPEC, чтобы использовать что угодно. Это круто, потому что ваш код может быть IP-универсален.

Отметим, что это связанный список: ai_next указывает на следующий элемент — может быть несколько результатов на выбор. Я бы использовал первый работающий результат, но у вас могут возникнуть другие потребности, я не могу предвидеть всего, чувак!

Вы могли заметить, что поле ai_addr в struct addrinfo — указатель на структуру sockaddr. Это то место, где мы начинаем задавать все детали структуры IP-адреса.
Как правило, вам не нужно будет записывать что-то в эти структуры, зачастую вызов getaddrinfo() заполняет в них всё, что нужно. Однако вам нужно будет заглянуть внутрь этих структур, чтобы получить из них значения.
(Кроме того, весь код, написанный до изобретения структуры addrinfo, заполнял всё это вручную, так что вы увидите ещё немало дикого кода IPv4, делающего именно это. Например, в старых версиях этого учебника и т. д.)

Какие-то структуры могут быть IPv4, какие-то IPv6, а какие-то обоими сразу. Я буду указывать, какие что из себя представляют.

В общем, структура sockaddr содержит информацию об адресе сокета для множества типов сокетов.

struct sockaddr {
unsigned short    sa_family;    // address family, AF_xxx
char              sa_data[14];  // 14 bytes of protocol address
};

 

sa_family может принимать множество значений, но в этом документе мы затронем только AF_INET (IPv4) и AF_INET6 (IPv6).
sa_data содержит адрес получателя и номер порта для сокета. Это не столь важно, так как нет необходимости запихивать адреса в sa_data вручную.

Для работы со структурой sockaddr, программисты создали параллельную структуру: struct sockaddr_in («in» для «internet) для использования с IPv4.

Важно: указатель на структуру sockaddr_in может быть приведён к указателю на структуру sockaddr и наоборот. Поэтому даже если connect() требует в качестве аргумента sockaddr*, вы всё же можете передавать ему sockaddr_in.

// (IPv4 only — см. struct sockaddr_in6 для IPv6)

struct sockaddr_in {
short int          sin_family;  // Address family, AF_INET
unsigned short int sin_port;    // Номер порта
struct in_addr     sin_addr;    // Интернет-адрес
unsigned char      sin_zero[8]; // То же, что размер структуры sockaddr
};

 

Эта структура позволяет легко обращаться к элементам адреса сокета. Обратите внимание, что sin_zero должна быть инициализирована нулями с помощью memset(). Также заметьте, что sin_family соответствует sa_family в структуре sockaddr и должно быть установлено в AF_INET. Наконец, sin_port должен быть указан в сетевом порядке следования байт (с помощью htons()!).

Давайте копнём глубже! Поле sin_addr — это структура in_addr. Что это такое? Не хочется быть слишком драматичным, но это одна из самых страшных вещей за всё время:

// (IPv4 only — см. struct in6_addr для IPv6)

// Интернет-адрес (структура, сохранённая по историческим причинам)
struct in_addr {
uint32_t s_addr; // 32-битный int (4 байта)
};

 

Вау! Когда-то это использовалось как Объединение, но теперь эти дни ушли. Скатертью дорога. Так что если вы обьявили переменную ina как sockaddr_in, то ina.sin_addr.s_addr будет указателем на 4-байтовый IP-адрес (в сетевом порядке следования байтов). Отметим, что даже если ваша система по прежнему использует богопротивное объединение для структуры in_addr, вы всё ещё можете обращаться к 4-байтовому IP-адресу так, как я сделал выше (благодаря #дефайнам).

А что насчёт IPv6? Аналогичные структуры существуют и для него:

// (IPv6 only — см struct sockaddr_in и struct in_addr для IPv4)

struct sockaddr_in6 {
u_int16_t       sin6_family;   // address family, AF_INET6
u_int16_t       sin6_port;     // Номер порта, сетевой порядок следования байтов
u_int32_t       sin6_flowinfo; // IPv6 flow-информация
struct in6_addr sin6_addr;     // IPv6 адрес
u_int32_t       sin6_scope_id; // Scope ID
};

struct in6_addr {
unsigned char   s6_addr[16];   // IPv6 адрес
};

 

Обратите внимание: Ipv6 имеет адрес и номер порта точно так же, как и ipv4.
Также обратите внимание, что я не собираюсь ничего объяснять про поля flow-инфо и Scope ID… Это только начало гайда

Последнее по очередности, но не поважности: ещё одна простая структура, struct sockaddr_storage, которая призвана быть достаточно большой для хранения обоих структур — IPv4 и IPv6. (Например, вам нужно совершить несколько соединений, и вы не всегда знаете, с каким именно протоколом придётся работать. Тогда просто передаёте эту структуру, точно так же, как и остальные sockaddr_*:

struct sockaddr_storage {
sa_family_t  ss_family;     // address family// Всё это — специфика имплементации, игнорируйте это:
char      __ss_pad1[_SS_PAD1SIZE];
int64_t   __ss_align;
char      __ss_pad2[_SS_PAD2SIZE];
};

 

Важно то, что вы можете увидеть семейство адресов в переменной ss_family — она может быть AF_INET или AF_INET6. Затем вы можете привести структуру к sockaddr_in или sockaddr_in6.

3. 4 IP-адреса, часть два

К счастью для вас, есть куча функций, позволяющих манипулировать IP-адресами. Нет необходимости парсить их вручную и запихивать в long оператором <<.

Во-первых, скажем, у вас есть struct sockaddr_in ina, и у вас есть IP-адрес «10.12.110.57» или «2001:db8:63b3:1::3490», который вы хотите в неё сохранить. Функция, которой вы должны воспользоваться — inet_pton(), она конвертирует IP-адрес из «цифр и точек» в struct in_addr или struct in6_addr, в зависимости от того, что вы укажете — AF_INET или AF_INET6. («pton» — это «printable to network», так будет проще запомнить). Преобразование может быть сделано следующим образом:

struct sockaddr_in sa; // IPv4
struct sockaddr_in6 sa6; // IPv6inet_pton(AF_INET, «192.0.2.1», &(sa.sin_addr)); // IPv4
inet_pton(AF_INET6, «2001:db8:63b3:1::3490», &(sa6.sin6_addr)); // IPv6

 

(Небольшое примечание: старый способ того же преобразования — функции inet_addr() или inet_aton(); сейчас они считаются устаревшими и не работают с ipv6).

Фрагмент кода выше не слишком надёжен, так как не содержит обработки ошибок.
inet_pton() возвращает отрицательное значение и меняет значение переменной errno на EAFNOSUPPORT, если af не содержит правильного типа адреса. Возвращается 0, если src не содержит строку символов, представляющую правильный сетевой адрес (для указанного типа адресов). Если сетевой адрес был успешно преобразован, то возвращается положительное значение. Поэтому всегда проверяйте, положительное ли значение вернула функция прежде, чем продолжать работу.

Ладно, теперь вы умеете преобразовывать строковое представление IP-адреса в двоичное. А наоборот? Что делать, если у вас есть структура in_addr и вам нужно напечатать IP-адрес из неё в виде «цифр и точек»? В этом случае нужно использовать функцию inet_ntop() («network to presentation» или «network to printable»). Как-то так:

// IPv4:

char ip4[INET_ADDRSTRLEN];  // для сохранения строкового значения IP-адреса
struct sockaddr_in sa;

inet_ntop(AF_INET, &(sa. sin_addr), ip4, INET_ADDRSTRLEN);

printf(«The IPv4 address is: %s
«, ip4);

// IPv6:

char ip6[INET6_ADDRSTRLEN]; // для сохранения строкового значения IP-адреса
struct sockaddr_in6 sa6;

inet_ntop(AF_INET6, &(sa6.sin6_addr), ip6, INET6_ADDRSTRLEN);

printf(«The address is: %s
«, ip6);

 

Когда вы её вызываете, то передаёте тип адреса (ipv4/6), адрес, указатель на строку, в которую сохранится результат, и максимальную длинну строки. (Есть два удобных макроса, хранящих длинны адресов ipv4 и ipv6: INET_ADDRSTRLEN и INET6_ADDRSTRLEN).

(Ещё одно небольшое примечание: старый способ делать то же самое — функция inet_ntoa(). Она также устарела и не будет работать с IPv6).

Наконец, укажем, что эти функции работают только с числовыми IP-адресами — они не умеют делать DNS-запросов по имени хоста. Для этого нужно использовать функцию getaddrinfo(). Позже вы увидите, как именно.

3.4.1. Частные (или отключенные, disconnected) сети.

Есть много мест, отключенных от остального мира файерволом. И зачастую брендмауер транслирует «внутренние» IP-адреса во «внешние» (которые известны всему остальному миру). Этот процесс называется Network Address Translation, или NAT.

Вы уже нервничаете? «Куда он клонит, говоря эти странные вещи?»

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

Например, у меня дома есть файервол (роутер). У меня есть два внешних IP-адреса, которые мне дал провайдер, и семь компьютеров в домашней сети. Как это возможно? Ведь два компьютера не могут иметь один и тот же IP-адрес, иначе данные не будут знать, куда течь
А они и не используют одни и те же адреса. Они находятся в частной сети, для которой выделено 24 миллиона адресов. Все они — только для меня. Ну, для меня одного, пока ещё кто-то не подключился к моей сети. Вот как это работает:

Если я присоединяюсь к удалённому компьютеру, он говорит мне, что я зашел с адреса 192.0.2.3, который является публичным IP-адресом, который мне предоставил мой провайдер. Но если я спрошу свой компьютер, какой у него адрес, он мне скажет: 10.0.0.5. Кто же транслирует IP-адрес из одного в другой? Правильно, файервол! Это делает NAT!

10.xxx является одной из немногих зарезервированных сетей, которые могут быть использованы только в полностью изолированных сетях или сетях, скрытых за файерволом. Полный список зарезервированных сетей изложен в RFC 1918, но вот некоторые из них: 10.x.x.x, 192.168.x.x, 172.y.x.x (тут y может быть от 16 до 31).
Сети за брендмауером не обязаны быть в одном из этих диапазонов, но обычно именно их и используют.

(Забавный факт! Мой внешний IP-адрес на самом деле не 192.0.2.33. Сеть 192.0.2.x зарезервирована для псевдо-реальных адресов, которые должны использоваться в документации, точно как в этом учебнике! Круто!)

IPv6 тоже имеет приватные сети. Они начинаются с fdxx: (или, может быть в будущем, с fcxx:), согласно RFC4193. NAT и IPv6 как правило не смешиваются, потому что (если только вы не делаете шлюз ipv4->ipv6 — вещь, выходящая за рамки этого документа) — в теории у вас будет столько IP-адресов, что NAT вам будет больше просто не нужен.

К содержанию

что это такое – виды IP в интернете

Internet Protocol Address (ИП, айпи, IP) представляет собой уникальное число, идентифицирующее определенное устройство в компьютерной сети. Проще говоря, адрес айпи – это «имя» конкретного компьютера, отличающее его от других устройств, объединенных с ним в одну сеть.


Чтобы иметь возможность работать в Интернете, этот адрес должен быть уникальным в глобальных масштабах. Если же такой необходимости нет и предполагается работа только в пределах частной компьютерной сети, достаточно отсутствия совпадений в ее пределах.

На этой странице вики-словаря мы дадим расшифровку того, что такое IP-адрес, и ответим на популярные вопросы: в чем заключается функция этой цифровой комбинации, из каких частей состоит адрес компьютера, от чего зависит, каких видов бывает, что означают цифры, из которых он формируется, как получить информацию о своем ИП и т.  п.

Цифровой формат IP

В Интернете такой идентификатор может иметь два формата. Основная разница между ними состоит в том, сколько бит в адресе. Какой из вариантов используется в конкретном случае, определяется в зависимости от типа протокола.

  • Internet Protocol v. 6 (IPv6). Формат такого адреса 128-битный. Он выглядит как комбинация из 8 групп по 4 символа каждая, разделенных при помощи двоеточий. Получается довольно длинная цепочка, но ее можно немного сократить, исключив начальные группы нулей, расположенные подряд, с заменой на два двоеточия. Однако одну комбинацию можно упростить этим способом только раз. Пример IP-адреса такого формата: 3012:1eb9:22b5:09e7:2e95:9b4a:18b2:066f.
  • Internet Protocol v. 4 (IPv4). В этом случае формат 32-битный, адрес выглядит как последовательность из разделенных точками 8-битных чисел от 0 до 255. Адрес типа IPv4 может иметь следующий вид: 172. 199.13.255.

Принцип построения

По общему правилу правильная структура айпи-адреса представляет собой сочетание двух номеров ID, один из которых идентифицирует сеть, а второй – определенный узел в этой сети. В общей цифровой комбинации они различаются при помощи масок и классов.

Чтобы с компьютера можно было выйти в Интернет, у него должен быть айпи, относящийся к другому блоку, или еще можно использовать подключенный к локальной сети сервер, адрес которого с внутреннего заменен на внешний. Эта задача решается при помощи NAT или прокси. Отвечаем на ваш резонный вопрос, откуда ИП-адрес берется. Для выхода в Интернет его необходимо получить у интернет-регистратора в своем регионе или провайдера.

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

Виды айпи

Сетевые адреса можно классифицировать по нескольким критериям. Рассмотрим основные из них.

По цели использования
  • «Белый» IP (альтернативные названия – внешний, глобальный и публичный). Такой айпи нужен для выхода в Интернет. Он уникален и выступает в роли персонального имени компьютера, под которым устройство видно в сети. Решить проблему с ограниченным числом внешних адресов позволяет NAT. При помощи такой технологии происходит трансформация «серых» адресов в «белые». С этой целью используются разные виды маршрутизаторов. Онлайн-сервисы по публичным IP фиксируют появление новых пользователей и повторные посещения старых. Также с их помощью можно собирать статистические данные и анализировать важные для раскрутки сайта показатели.
  • «Серый» (внутренний, частный, локальный) айпи источника. Он не предназначен для выхода в Интернет, используется исключительно в рамках частной сети (функционирующей через провайдера или домашней), а значит, доступен только тем, кто в ней участвует. Такой адрес необязательно постоянный.

По способу определения
  • Динамический. Он выдается устройству автоматически при его присоединении к сети и действует определенный промежуток времени (в течение сессии). Это способ замаскироваться, чтобы было сложно определить, где находится пользователь.
  • Статический. Этот айпи не меняется и закрепляется за компьютером при подключении к сети в автоматическом режиме или пишется вручную.

Преимущества статического адреса
  • Есть возможность привязать компьютер пользователя к определенной сети.
  • Открывается доступ к сервисам, для работы с которыми требуется статический айпи.
  • Проще работать с торрентами и другими подобными сетями.
  • Оптимизируется использование сетевых сервисов.
  • Обеспечивается защита данных.
  • Можно решать IT-задачи.

Способы определения IP

Чтобы узнать об айпи своего компьютера, можно использовать такие методы, как:

  • Обращение к провайдеру. Свяжитесь с техподдержкой или зайдите в «Личный кабинет».
  • Использование специальных сервисов. Достаточно зайти на страницу одного из них, чтобы получить необходимые данные.

Пример расчета количества хостов и подсетей на основе IP-адреса и маски – Keenetic

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

Содержание:

Знакомство с IP-адресами
Маски подсети
Формирование подсетей
Пример расчета количества подсетей и хостов в подсети на основе IP-адреса и маски подсети

 

Знакомство с IP-адресами
Одна часть IP-адреса представляет собой номер сети, другая – идентификатор хоста. Точно так же, как у разных домов на одной улице в адресе присутствует одно и то же название улицы, у хостов в сети в адресе имеется общий номер сети. И точно так же, как у различных домов имеется собственный номер дома, у каждого хоста в сети имеется собственный уникальный идентификационный номер – идентификатор хоста. Номер сети используется маршрутизаторами (роутерами, интернет-центрами) для передачи пакетов в нужные сети, тогда как идентификатор хоста определяет конкретное устройство в этой сети, которому должны быть доставлены пакеты.

Структура
IP-адрес состоит из четырех частей, записанных в виде десятичных чисел с точками (например, 192.168.1.1). Каждую из этих четырех частей называют октетом. Октет представляет собой восемь двоичных цифр (например, 11000000, или 192 в десятичном виде).
Таким образом, каждый октет может принимать в двоичном виде значения от 00000000 до 11111111, или от 0 до 255 в десятичном виде.
На следующем рисунке показан пример IP-адреса, в котором первые три октета (192. 168.1) представляют собой номер сети, а четвертый октет (16) – идентификатор хоста.


Рисунок 1. Номер сети и идентификатор хоста

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

Частные IP-адреса
У каждого хоста в сети Интернет должен быть уникальный адрес. Если ваши сети изолированы от Интернета (например, связывают два филиала), для хостов без проблем можно использовать любые IP-адреса. Однако, уполномоченной организацией по распределению нумерации в сети Интернет (IANA) специально для частных сетей зарезервированы следующие три блока IP-адресов:

  • 10.0.0.0 — 10.255.255.255
  • 172.16.0.0 — 172.31.255.255
  • 192.168.0.0 — 192.168.255.255

IP-адреса указанных частный подсетей иногда называют «серыми».
IP-адреса можно получить через IANA, у своего провайдера услуг Интернет или самостоятельно назначить из диапазона адресов для частных сетей.

 

Маски подсети
Маска подсети используется для определения того, какие биты являются частью номера сети, а какие – частью идентификатора хоста (для этого применяется логическая операция конъюнкции – «И»).
Маска подсети включает в себя 32 бита. Если бит в маске подсети равен «1», то соответствующий бит IP-адреса является частью номера сети. Если бит в маске подсети равен «0», то соответствующий бит IP-адреса является частью идентификатора хоста. 

Таблица 1. Пример выделения номера сети и идентификатора хоста в IP-адресе

 1-ый октет: (192) 2-ой октет: (168) 3-ий октет: (1) 4-ый октет: (2)
IP-адрес (двоичный)11000000101010000000000100000010
Маска подсети (двоичная)11111111 11111111 1111111100000000
Номер сети11000000 10101000 00000001 
Идентификатор хоста    00000010


Маски подсети всегда состоят из серии последовательных единиц, начиная с самого левого бита маски, за которой следует серия последовательных нулей, составляющих в общей сложности 32 бита.

Маску подсети можно определить как количество бит в адресе, представляющих номер сети (количество бит со значением «1»). Например, «8-битной маской» называют маску, в которой 8 бит – единичные, а остальные 24 бита – нулевые.
Маски подсети записываются в формате десятичных чисел с точками, как и IP-адреса. В следующих примерах показаны двоичная и десятичная запись 8-битной, 16-битной, 24-битной и 29-битной масок подсети.

Таблица 2. Маски подсети

 Двоичная  
1-ый октет:
Двоичная 
2-ой октет:
Двоичная 
3-ий октет:

Двоичная 
4-ый октет:

Десятичная
8-битная
маска
11111111000000000000000000000000255.0.0.0
16-битная
маска
11111111111111110000000000000000255. 255.0.0
24-битная
маска
11111111111111111111111100000000255.255.255.0
29-битная
маска
11111111111111111111111111111000255.255.255.248


Размер сети
Количество разрядов в номере сети определяет максимальное количество хостов, которые могут находиться в такой сети. Чем больше бит в номере сети, тем меньше бит остается на идентификатор хоста в адресе.
IP-адрес с идентификатором хоста из всех нулей представляет собой IP-адрес сети (192.168.1.0 с 24-битной маской подсети, например). IP-адрес с идентификатором хоста из всех единиц представляет собой широковещательный адрес данной сети (192.168.1.255 с 24-битной маской подсети, например).
Так как такие два IP-адреса не могут использоваться в качестве идентификаторов отдельных хостов, максимально возможное количество хостов в сети вычисляется следующим образом:

Таблица 3. Максимально возможное число хостов

Маска подсети

Размер идентификатора хоста

 Максимальное
количество хостов
8 бит255.0.0.024 бит224 – 216777214
16 бит255.255.0.016 бит216 – 265534
24 бит255.255.255.08 бит28 – 2254
29 бит255.255.255.2483 бит23 – 26


Формат записи
Поскольку маска всегда является последовательностью единиц слева, дополняемой серией нулей до 32 бит, можно просто указывать количество единиц, а не записывать значение каждого октета. Обычно это записывается как «/» после адреса и количество единичных бит в маске.  

Например, адрес 192.1.1.0 /25 представляет собой адрес 192.1.1.0 с маской 255.255.255.128. Некоторые возможные маски подсети в обоих форматах показаны в следующей таблице. 

Таблица 4. Альтернативный формат записи маски подсети

Маска подсетиАльтернативный
формат записи
Последний октет
(в двоичном виде)
Последний октет
(в десятичном виде)
255.255.255.0/240000 00000
255.255.255.128/251000 0000128
255.255.255.192/261100 0000192
255.255.255.224/271110 0000224
255.255.255.240/281111 0000240
255.255.255.248/291111 1000248
255. 255.255.252/301111 1100252

 

Формирование подсетей
С помощью подсетей одну сеть можно разделить на несколько. В приведенном ниже примере администратор сети создает две подсети, чтобы изолировать группу серверов от остальных устройств в целях безопасности.
В этом примере сеть компании имеет адрес 192.168.1.0. Первые три октета адреса (192.168.1) представляют собой номер сети, а оставшийся октет – идентификатор хоста, что позволяет использовать в сети максимум 28 – 2 = 254 хостов.
Сеть компании до ее деления на подсети показана на следующем рисунке.

Рисунок 2. Пример формирования подсетей: до разделения на подсети

Чтобы разделить сеть 192.168.1.0 на две отдельные подсети, можно «позаимствовать» один бит из идентификатора хоста. В этом случае маска подсети станет 25-битной (255.255.255.128 или /25).

«Одолженный» бит идентификатора хоста может быть либо нулем, либо единицей, что дает нам две подсети: 192. 168.1.0 /25 и 192.168.1.128 /25.
Сеть компании после ее деления на подсети показана на следующем рисунке. Теперь она включает в себя две подсети, A и B.

>

Рисунок 3. Пример формирования подсетей: после деления на подсети

В 25-битной подсети на идентификатор хоста выделяется 7 бит, поэтому в каждой подсети может быть максимум 27 – 2 = 126 хостов (идентификатор хоста из всех нулей – это сама подсеть, а из всех единиц – широковещательный адрес для подсети).
Адрес 192.168.1.0 с маской 255.255.255.128 является адресом подсети А, а 192.168.1.127 с маской 255.255.255.128 является ее широковещательным адресом. Таким образом, наименьший IP-адрес, который может быть закреплен за действительным хостом в подсети А – это 192.168.1.1, а наибольший – 192.168.1.126.
Аналогичным образом диапазон идентификаторов хоста для подсети В составляет от 192.168.1.129 до 192.168.1.254.

Пример: четыре подсети
В предыдущем примере было показано использование 25-битной маски подсети для разделения 24-битного адреса на две подсети. Аналогичным образом для разделения 24-битного адреса на четыре подсети потребуется «одолжить» два бита идентификатора хоста, чтобы получить четыре возможные комбинации (00, 01, 10 и 11). Маска подсети состоит из 26 бит (11111111.11111111.11111111.11000000), то есть 255.255.255.192. 

Каждая подсеть содержит 6 битов идентификатора хоста, что в сумме дает 26 – 2 = 62 хоста для каждой подсети (идентификатор хоста из всех нулей – это сама подсеть, а из всех единиц – широковещательный адрес для подсети). 

Таблица 5. Подсеть 1

IP-адрес/маска подсетиНомер сетиЗначение
последнего октета
IP-адрес (десятичный)192.168. 1.0
IP-адрес (двоичный)11000000.10101000.00000001.00000000
Маска подсети (двоичная)11111111.11111111.11111111.11000000
Адрес подсети
192.168.1.0
Наименьший идентификатор хоста: 192.168.1.1
Широковещательный адрес
192.168.1.63
Наибольший идентификатор хоста: 192.168.1.62


Таблица 6. Подсеть 2

IP-адрес/маска подсетиНомер сетиЗначение
последнего октета
IP-адрес192.168.1.64
IP-адрес (двоичный)11000000.10101000.00000001.01000000
Маска подсети (двоичная)11111111.11111111.11111111.11000000
Адрес подсети
192. 168.1.64
Наименьший идентификатор хоста: 192.168.1.65
Широковещательный адрес
192.168.1.127
Наибольший идентификатор хоста: 192.168.1.126


Таблица 7. Подсеть 3

IP-адрес/маска подсетиНомер сетиЗначение
последнего октета
IP-адрес192.168.1.128
IP-адрес (двоичный)11000000.10101000.00000001.10000000
Маска подсети (двоичная)11111111.11111111.11111111.11000000
Адрес подсети
192.168.1.128
Наименьший идентификатор хоста: 192.168.1.129
Широковещательный адрес
192.168.1.191
Наибольший идентификатор хоста: 192.168.1.190


Таблица 8. Подсеть 4

IP-адрес/маска подсетиНомер сетиЗначение
последнего октета
IP-адрес192.168.1.192
IP-адрес (двоичный)11000000.10101000.00000001.11000000
Маска подсети (двоичная)11111111.11111111.11111111.11000000
Адрес подсети
192.168.1.192
Наименьший идентификатор хоста: 192.168.1.193
Широковещательный адрес
192.168.1.255
Наибольший идентификатор хоста: 192.168.1.254


Пример: восемь подсетей
Аналогичным образом для создания восьми подсетей используется 27-битная маска (000, 001, 010, 011, 100, 101, 110 и 111).
Значения последнего октета IP-адреса для каждой подсети показаны в следующей таблице.

Таблица 9. Восемь подсетей

ПодсетьАдрес подсетиПервый
адрес
Последний
адрес
Широковещательный
адрес
1013031
232336263
364659495
49697126127
5128129158159
6160161190191
7192193222223
8224225254255


Планирование подсетей
Сводная информация по планированию подсетей для сети с 24-битным номером сети приводится в следующей таблице.  
Таблица 10. Планирование подсетей для сети с 24-битным номером

Количество «одолженных» битов
идентификатора хоста
Маска подсетиКоличество
подсетей
Количество
хостов в подсети
1255.255.255.128 (/25)2126
2255.255.255.192 (/26)462
3255.255.255.224 (/27)830
4255.255.255.240 (/28)1614
5255.255.255.248 (/29)326
6255.255.255.252 (/30)642
7255.255.255.254 (/31)1281

 

Пример расчета количества подсетей и хостов в подсети на основе IP-адреса и маски подсети

Приведем пример расчета количества подсетей и хостов для сети 59. 124.163.151/27.

/27 — префикс сети или сетевая маска
В формате двоичных чисел 11111111 11111111 11111111 11100000 
В формате десятичных чисел 255.255.255.224

В четвертом поле (последний октет) 11100000 первые 3 бита определяют число подсетей, в нашем примере 2= 8.
В четвертом поле (последний октет) 11100000 последие 5 бит определяют число хостов подсети, в нашем примере 25 = 32.

Диапазон IP первой подсети 0~31 (32 хоста), но 0 — это подсеть, а 31 — это Broadcast. Таким образом, максимальное число хостов данной подсети — 30.
Первая подсеть: 59.124.163.0
Broadcast первой подсети: 59.124.163.31

Диапазон IP второй подсети с 59.124.163.32 по 59.124.163.63
Вторая подсеть: 59.124.163.32
Broadcast второй подсети: 59.124.163.63

Мы можем высчитать диапазон IP восьмой подсети с 59.124.163.224 по 59.124.163.255
Восьмая подсеть: 59.124.163.224
Broadcast восьмой подсети: 59.124.163. 255

В нашем примере IP-адрес 59.124.163.151 находится в пятой подсети.
Пятая подсеть: 59.124.163.128/27 
Диапазон IP пятой подсети с 59.124.163.128 по 59.124.163.159
Broadcast пятой подсети: 59.124.163.159

 

NOTE: Важно! В настоящее время для удобства расчета IP-адресов в подсети и сетевых масок существуют в Интернете специальные онлайн IP-калькуляторы, а также бесплатные программы/утилиты для быстрого и наглядного расчета.

 

Адрес выбыл в известном направлении – Газета Коммерсантъ № 225 (6705) от 06.12.2019

Как стало известно “Ъ”, незадолго до прекращения деятельности по распределению IP-адресов Российский научно-исследовательский институт развития общественных сетей (РосНИИРОС) перевел внушительный их массив в пользу чешской компании с российскими корнями. По данным регистратора RIPE NCC, Reliable Communications получила от РосНИИРОС примерно 490 тыс. IPv4-адресов. На рынке такой пул оценивается в $9,8–12,25 млн.

РосНИИРОС, в сентябре объявивший о прекращении деятельности локального интернет-регистратора (Local Internet Registry, LIR), за полгода до этого переписал несколько сотен тысяч этих адресов на чешскую компанию Reliable Communications s.r.o., рассказал собеседник “Ъ”, знакомый с ситуацией. Факт передачи пула IP-адресов подтверждается записями в реестре RIPE NCC — регионального интернет-регистратора.

Reliable Communications s.r.o. получила от РосНИИРОС примерно 490 тыс. IPv4-адресов, подсчитал “Ъ”.

Reliable Communications s.r.o., согласно чешскому реестру юридических лиц, учреждена в 2014 году, а в 2018-м получила статус LIR, свидетельствуют данные RIPE NCC. По последним данным, 50% в чешской компании принадлежат Алексею Солдатову, еще 50% — структуре Private Equity Center s.r.o., принадлежащей Алексею Шкиттину. Эта структура также владеет российским ООО «Релком Групп», которое предлагает ряд услуг, в том числе продажу IPv4-адресов.

Алексей Солдатов, совладелец Reliable Communications s. r.o.,— полный тезка одного из пионеров рунета Алексея Солдатова, совпадает и дата рождения. Алексей Солдатов возглавлял вычислительный центр ИАЭ им. И. В. Курчатова, в котором зарождался советский и российский интернет и на базе которого возникла компьютерная сеть «Релком», позднее ставшая акционерным обществом.

С 2008 по 2010 год господин Солдатов занимал пост замглавы Минкомсвязи, он отказался от комментариев по телефону. В «Релком Групп», преемнике АО «Релком», не ответили “Ъ”. «РосНИИРОС должен был ликвидироваться в мае 2019 года, с момента начала ликвидации весь LIR замораживается и передается в общий пул RIPE NCC. Учитывая эту ситуацию, руководство РосНИИРОС приняло решение передать клиентов и адреса другим LIR»,— сообщил “Ъ” Алексей Шкиттин. IP Адреса переданы по стандартной процедуре трансфера, предусмотренной соглашением с RIPE NCC, утверждает он.

IPv4-адреса — ценный ресурс, учитывая их исчерпание в RIPE NCC 25 ноября. На вторичном рынке стоимость одного адреса составляет $20-$25. Таким образом, весь пул IP-адресов, полученный Reliable Communications s.r.o. от РосНИИРОС, может стоить $9,8–12,25 млн.

Учрежденный в 1992 году РосНИИРОС долгое время был почти монополистом по многим вопросам, связанным с интернетом. Позднее институт начал передавать полномочия другим структурам, в числе которых Ru-Center и компания MSK-IX (контролируется структурой «Ростелекома»). В сентябре институт объявил, что с 1 ноября прекращает деятельность как LIR (см. “Ъ” от 27 сентября).

После передачи адресов и прекращения деятельности РосНИИРОС в качестве LIR его бывшие клиенты, среди которых госструктуры, оказались вынуждены платить за использование IPv4 по более высоким тарифам, утверждает собеседник “Ъ”.

Этот факт подтвердил источник “Ъ” в одной из таких компаний, сама она отказалась от официальных комментариев. Условия, на которых состоялась передача, неизвестны, это могла быть и продажа. Кроме того, как слышал собеседник “Ъ” в интернет-отрасли, по документам РосНИИРОС якобы предоставлял «провайдеро-независимые блоки IP-адресов», тогда как на деле они продолжали быть закрепленными за LIR, то есть РосНИИРОС. Именно поэтому клиенты вынуждены платить Reliable Communications s.r.o. «аренду» за их использование, поясняет собеседник “Ъ”. Другие источники “Ъ” в интернет-отрасли слышали об этой ситуации.

По рынку давно ходила информация о скором закрытии LIR РосНИИРОС, и было неясно, что делать с его клиентами, рассказывает исполнительный директор Общества защиты интернета Михаил Климарев: «Передача в чешский LIR как бы решает эту проблему, но, с другой стороны, ситуация выглядит не очень красиво по отношению к клиентам». Оценка переданного пула адресов в $9,8–12,25 млн «несколько лукавая», считает он: вряд ли провайдер сможет продать адреса по рыночным ценам.

Дмитрий Шестоперов


Почему сформировался вторичный рынок ключевых элементов сети

Читать далее

IP сети шаг за шагом

Делимся с вами серией видеоуроков об IP сетях для новичков: от структуры IP адреса до грамотной настройки IP сети и сетевого оборудования.

https://youtu. be/UVe2W_i0nUE

В первом уроке нам расскажут о структуре IP адреса на примере известного всем 192.168.0.1: какую информацию он в себе несет, и зачем нужна маска подсети.

Во втором уроке рассказывается, какой IP адрес используют в качестве номера IP сети, какой для работы маршрутизатора и широковещательной рассылки, а какие IP адреса распределяются между хостами (узлами-участниками) сети.

Что такое классовая IP адресация, какие IP адреса к какому классу относятся, как указывается вид маски сети каждого из классов и определяется примерное количество хостов, а также когда используется классовая, а когда бесклассовая IP-адресация? Развернутые ответы в третьем видео курса.

Подробнее узнаем о назначении IP адресов в узлах локальной сети. С чего начинается локальная сеть – вкратце о цепочке подключения к глобальной сети через сеть вашего провайдера.

https://youtu. be/ip7OQKDoKtU

Этот урок рассказывает, как строится процесс подключения из локальной сети к удаленному серверу через сети провайдера, рассматривается принцип работы шлюза по умолчанию.

В шестом уроке объясняются основные принципы работы системы DNS (Domain Name System) и то, каким образом происходит поиск сервера в интернете по его доменному имени.

С этого урока начинается цикл по описанию настройки сетевого оборудования. В первом уроке цикла рассматривается назначение сетевых интерфейсов маршрутизатора на примере D-Link DIR 300 и подробно рассказывается о каждом из них.

Из восьмого урока вы узнаете о процессе подключения к маршрутизатору на примере D-Link DIR 300. Принципы подключения аналогичны и для других похожих маршрутизаторов.

Для этого урока отснято приложение о правильной перезагрузке маршрутизатора:

https://youtu. be/Fbx5QgawyfE

В этом видео рассказывается о процессе смены IP адреса маршрутизатора на примере D-Link DIR 300 со значения по умолчанию на значение, присвоенное пользователем. Также рассматривается процесс отключения DHCP сервера, и почему в не настроенном виде он представляет угрозу безопасности сети.

Урок о настройке маршрутизатора на примере D-Link DIR 300 для подключения к интернету через сеть провайдера. Принцип работы статического IP адреса.

Структура и типы IP-адресов | Статьи

Общение узлов в сети обеспечивается протоколом сетевого уровня. Самым популярным протоколом сетевого уровня является протокол IP. Согласно этому протоколу, каждый узел в пределах сети обязан иметь свой уникальный IP-адрес. В наше время широко распространена четвёртая версия данного протокола, адресация в которой имеет вид 32-битного числа. Это число условно делится на четыре 8-битных, разделённых между собой точкой.

Сам же IP-адрес состоит из двух составляющих. Первая составляющая — это адрес сети, вторая составляющая — это адрес узла в пределах этой сети. Если организуется изолированная сеть, то администратор имеет полное право назначить IP-адреса в свободном порядке любому узлу сети. Однако выбрать для такой сети адреса администратор обязан из специальных диапазонов, предназначенных именно для сетей изолированного типа. Различают три таких сетевых диапазона: 10.0.0.0/8, 192.168.0.0/16 и 172.16.0.0/12. Если же сеть не изолирована, а представляет собой составную часть всемирной сети Интернет, то её адрес должен быть находится вне вышеприведенных рамок, и выдаёт его — либо вышестоящий провайдер, либо специальный интернет-регистратор данного региона. Узнать IP-адрес в этом случае довольно просто. Региональные регистраторы получают огромные блоки IP-адресов и диапазоны автономных систем у организации IANA. Полученные ресурсы региональные регистраторы раздают локальным регистраторам (или лирам), роль которых часто выполняют крупные Интернет-провайдеры.

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

Но каким образом определить, какое количество бит в IP-адресе должно трактоваться адресом сети, а какое — адресом узла? Раньше для этого использовалась классификация IP сетей. Так называемая, классовая адресация определяла, в зависимости от класса сети, сколько бит в адресе нужно использовать для её адреса и адреса узла в ней. Например, в классе А под адрес узла отводилось 24 последних бита адреса, а в классах B и C — 16 и 8 последних бит соответственно. Такой вид адресации является устаревшим и сегодня уже не используется. В нынешнее время популярной является безклассовая адресация узлов. Согласно ей, число бит, отводимых под адрес узла в сети, определяется маской подсети. Маска имеет вид, схожий с IP-адресом. Адрес сети при такой адресации получится в результате операции «побитового И» между IP-адресом и маской подсети. Иногда при написании IP-адреса используется несколько иное представление маски. Через косую черту после адреса записывается количество единичных разрядов в маске подсети.

Что такое URL-адрес? — Изучение веб-разработки

Данная статья описывает Единый локатор ресурсов или Uniform Resource Locators (URLs), объясняет, что это такое, и описывает его структуру. 

Наряду с понятиями гипертекста и протокола HTTP, понятие URL является одной из основных концепций Всемирной паутины. Это механизм, используемый браузерами для получения любого опубликованного во Всемирной сети ресурса.

URL обозначает Uniform Resource Locator. URL это лишь адрес, который выдан уникальному ресурсу в интернете. В теории, каждый корректный URL ведёт на уникальный ресурс. Такими ресурсами могут быть HTML-страница, CSS-файл, изображение и т.д. На практике, существуют некоторые исключения, когда, например, URL ведёт на ресурс, который больше не существует или который был перемещён. Поскольку ресурс, доступный по URL, а также сам URL обрабатываются веб-сервером, его владелец должен внимательно следить за размещаемыми ресурсами и связанными с ними URL.

Основы: анатомия URL

Вот несколько примеров URL:

https://developer.mozilla.org
https://developer.mozilla.org/ru/docs/Learn/
https://developer.mozilla.org/ru/search?q=URL

Каждый из этих URLs могут быть напечатаны в адресной строке браузера, чтобы заставить его загрузить связанную страницу (ресурс).

URL состоит из различных частей, некоторые из которых являются обязательными, а некоторые — факультативными. Рассмотрим наиболее важные части на примере:

http://www. example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument
http:// это протокол. Он отображает, какой протокол браузер должен использовать. Обычно это HTTP-протокол или его безопасная версия — HTTPS. Интернет требует эти 2 протокола, но браузеры часто могут использовать и другие протоколы, например mailto: (чтобы открыть почтовый клиент) или ftp: для запуска передачи файлов, так что не стоит удивляться, если вы вдруг увидите другие протоколы.
www.example.com это доменное имя. Оно означает, какой веб-сервер должен быть запрошен. В качестве альтернативы может быть использован и IP-адрес, но это делается редко, поскольку запоминать IP сложнее, и это не популярно в интернете.
:80 это порт. Он отображает технический параметр, используемый для доступа к ресурсам на веб-сервере. Обычно подразумевается, что веб-сервер использует стандартные порты HTTP-протокола (80 для HTTP и 443 для HTTPS) для доступа к своим ресурсам. В любом случае, порт — это факультативная составная часть URL.
/path/to/myfile.html это адрес ресурса на веб-сервере. В прошлом, адрес отображал местоположение реального файла в реальной директории на веб-сервере. В наши дни это чаще всего абстракция, позволяющая обрабатывать адреса и отображать тот или иной контент из баз данных.
?key1=value1&key2=value2 это дополнительные параметры, которые браузер сообщает веб-серверу. Эти параметры — список пар ключ/значение, которые разделены символом &. Веб-сервер может использовать эти параметры для исполнения дополнительных команд перед тем как отдать ресурс. Каждый веб-сервер имеет свои собственные правила обработки этих параметров и узнать их можно, только спросив владельца сервера.
#SomewhereInTheDocument это якорь на другую часть того же самого ресурса. Якорь представляет собой вид «закладки» внутри ресурса, которая переадресовывает браузер на «заложенную» часть ресурса. В HTML-документе, например, браузер может переместиться в точку, где установлен якорь; в видео- или аудио-документе браузер может перейти к времени, на которое ссылается якорь. Важно отметить, что часть URL после #, которая также известна как идентификатор фрагмента, никогда не посылается на сервер вместе с запросом.
Примечание:
Есть и другие составные части и правила, касающиеся URL, но обычно они не используются ни пользователями, ни разработчика. Поэтому не стоит о них беспокоиться, вам не обязательно их знать, чтобы формировать работоспособные URL.

Вам стоит представлять URL как обычный почтовый адрес: протокол обозначает почтовый транспорт, который вы собираетесь использовать,доменное имя — это город, порт — это почтовый индекс; адрес — это номер дома;параметры представляют собой дополнительную информацию, как, например, номер квартиры; и, наконец, якорь представляет собой конкретного получателя, которому вы адресуете своё письмо.

Как использовать URL

Каждый URL может быть напечатан напрямую в адресной строке браузера, чтобы сразу получить запрошенный ресурс. Но это только вершина айсберга!

Язык HTML — который будет обсуждать позже (en-US) — позволяет активно использовать URL для:

  • создания ссылок на другие документы с помощью тега <a>;
  • связывания документа с его дополнительными файлами, например с помощью тегов <link> или <script>;
  • отображения медиа-элементов, например изображений (с помощью тега <img>), видео (с помощью тега <video>), звуков и музыки (с помощью тега <audio>) и так далее;
  • отображения других HTML-документов внутри текущего с помощью тега <iframe> (en-US).

Примечание: При указании URL-адресов для загрузки ресурсов как части страницы (например, при использовании <script>, <audio>, <img>, <video>, и т. д.), следует использовать только URL-адреса HTTP и HTTPS. Использование FTP, например, не особенно безопасно и больше не поддерживается многими браузерами.

Другие технологии, такие как CSS или JavaScript, также активно используют URL, так что это реально основа веба.

Абсолютные и относительные URL

Все, что мы изучали выше — это абсолютные URL. Но так же существуют и относительные URL. Изучим их.

Обязательные части URL во многом зависят от контекста, в котором используется URL. В адресной строке браузера URL не имеет никакого контекста, так что приходится вводить полный (или абсолютный) URL, такие как мы рассматривали выше. Обычно вам не требуется вводить протокол (браузер подставляет HTTP по умолчанию) и порт (который нужен только в том случае, если сервер использует нестандартный порт), но остальные части URL всё равно необходимы.

Когда URL используется в документе, например в HTML-странице, ситуация отличается. Потому что браузер уже знает URL текущего документа и он может использовать эти сведения для дополнения недостающих частей любого адреса, указанного в документе. Простейший пример относительного URL — указание только адресной части URL. А если адрес в URL начинается с символа "/«, браузер запросит ресурс от корня сервера, без отсылки к контексту текущего документа.

Разберём это на примерах.

Примеры абсолютных URL
Полный URL (такой же, как обсуждали в начале статьи)
https://developer.mozilla.org/ru/docs/Learn
Скрыт протокол
//developer.mozilla.org/ru/docs/Learn

В этом случае браузер использует тот же протокол, что использовался для загрузки текущего документа.

Скрыт домен
/ru/docs/Learn

Это наиболее частый пример использования абсолютного URL в HTML-документе. Браузер использует тот же протокол и то же доменное имя, как у текущего документа. Примечание: не возможно скрыть домен, не скрывая при этом протокол, только вместе.

Примеры относительных URL

Для лучшего понимания следующих примеров, давайте договоримся, что мы обращаемся к URL из документа, который опубликован по адресу: https://developer. mozilla.org/ru/docs/Learn

Дочерние ресурсы
Skills/Infrastructure/Understanding_URLs
Поскольку URL не начинается с  /, браузер сделает попытку найти документ в поддиректории относительно текущего документа. В данном примере будет запрошен этот URL: https://developer.mozilla.org/ru/docs/Learn/Skills/Infrastructure/Understanding_URLs
Назад по дереву папок
../CSS/display

В этом случае, мы используем команду ../  — унаследованную из файловой системы UNIX — чтобы сказать браузеру, что он должен подняться на 1 директорию вверх. Соответственно, здесь мы хотим открыть URL: https://developer.mozilla.org/ru/docs/Learn/../CSS/display, который может быть упрощён до вида: https://developer.mozilla.org/ru/docs/CSS/display

Семантические URL

Помимо своего технического значения, URL представляют собой человеко-читаемые записи о местоположении документов на веб-ресурсе. Они могут быть запомнены и любой может ввести их в адресную строку своего браузера. Веб создавался для людей и распространённой практикой является принцип записи URL, который называется  семантические URL.  Семантические URL используют в своём составе слова, значение которых может быть понято любым человеком, даже тем, кто не разбирается в технических нюансах.

Семантика, разумеется, плохо распознаётся компьютерами. Вы наверняка видели URL, которые выглядят как куча случайных символов. Но у семантических URL есть много преимуществ:

  • Ими легче управлять.
  • Они дают понять пользователю, что находится по данному URL даже без перехода на страницу.
  • Поисковые системы могут использовать семантику для улучшения классификации страниц.

Общие сведения о семействе протоколов IPv4 и IPv6 | Руководство пользователя интерфейсов для устройств безопасности

IPv4-адреса — это 32-битные числа, которые обычно отображается в десятичном формате, разделенном точками. 32-битный адрес содержит два основные части: префикс сети и номер хоста.

Все хосты в одной сети имеют один и тот же сетевой адрес. У каждого хоста также есть адрес, который его однозначно идентифицирует. В зависимости от в зависимости от объема сети и типа устройства адрес уникальны либо глобально, либо локально.Устройства, которые видны пользователям вне сети (например, веб-серверы) должны иметь глобальный уникальный IP-адрес. Устройства, которые видны только в сети, должны иметь локально уникальные IP-адреса.

IP-адреса назначаются центральной системой нумерации, называемой Управление по распределению номеров в Интернете (IANA). IANA гарантирует, что адреса глобально уникальны там, где это необходимо, и имеют большой адрес пространство, зарезервированное для использования устройствами, не видимыми за пределами их собственных сетей.

Этот раздел содержит следующие разделы:

Классовая адресация IPv4

Для обеспечения гибкости в количестве распределенных адресов для сетей разного размера использовались 4-октетные (32-битные) IP-адреса. изначально разделены на три разные категории или классы: класс A, класс B и класс C.Каждый адресный класс определяет разные количество бит для его сетевого префикса и номера хоста:

  • Адреса класса A используют только первый байт (октет) чтобы указать префикс сети, оставив 3 байта для определения индивидуального номера хостов.

  • Адреса класса B используют первые 2 байта для указания префикс сети, оставляя 2 байта для определения адресов хоста.

  • Адреса класса C используют первые 3 байта для указания префикс сети, оставляя только последний байт для идентификации хостов.

В двоичном формате, где x представляет каждый бит в номере хоста три класса адресов могут быть представлены как следует:

 00000000 xxxxxxxx xxxxxxxx xxxxxxxx (класс A)
00000000 00000000 xxxxxxxx xxxxxxxx (класс B)
00000000 00000000 00000000 xxxxxxxx (класс C) 

Поскольку каждый бит ( x ) в номере хоста может иметь 0 или 1 значение, каждое представляет степень 2. Например, если только 3 бита доступны для указания номера хоста, только следующий хост возможны номера:

 111 110 101 100 011 0100 001 000 

В каждом классе IP-адресов увеличивается количество битов номера хоста в степени 2 указывает, сколько номеров хостов может быть создано для конкретный сетевой префикс.Адреса класса A имеют 2 24 (или 16 777 216) возможных номеров хостов, адреса класса B иметь 2 16 (или 65 536) номеров хостов, и адреса класса C имеют 2 8 (или 256) возможных номера хостов.

Десятичное представление IPv4 с точками

32-разрядные адреса IPv4 чаще всего выражаются с точками. десятичная запись, в которой каждый октет (или байт) рассматривается как отдельный номер. В октете крайний правый бит представляет 2 0 (или 1), увеличиваясь влево до первого бита. в октете 2 7 (или 128).Следующий IP-адреса в двоичном формате и их десятичные эквиваленты, разделенные точками:

 11010000 01100010 11000000 10101010 = 208.98.192.170
01110110 00001111 11110000 01010101 = 118.15.240.85
00110011 11001100 00111100 00111011 = 51.204.60.59
 

Разделение на подсети IPv4

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

На рисунке 1 показаны две подсети в сети.

Рисунок 1: Подсети в сети

На рисунке 1 показаны три подключенных устройства. в одну подсеть и еще три устройства, подключенных ко второй подсети. В совокупности шесть устройств и две подсети составляют большую сеть. В этом примере сети присвоен сетевой префикс 192.14.0.0 , адрес класса C. У каждого устройства есть IP-адрес, который падает внутри этого префикса сети.

Помимо общего префикса сети (первых двух октетов), устройства в каждой подсети совместно используют третий октет.Третий октет определяет подсеть. Все устройства в подсети должны иметь один и тот же адрес подсети. В этом случае альфа-подсеть имеет IP-адрес 192.14.126.0 , а бета-подсеть имеет IP-адрес 192.14.17.0 .

Адрес подсети 192.14.17.0 может быть представлен в двоичной системе счисления:

 11000000. 00001110. 00010001. xxxxxxxx 

Поскольку первые 24 бита 32-битного адреса идентифицируют подсети, последние 8 бит не имеют значения.Указывать подсети адрес записывается как 192.14.17.0/24 (или просто 192.14.17 / 24 ). /24 — маска подсети. (иногда отображается как 255.255.255.0 ).

IPv4 Маски подсети переменной длины

Традиционно подсети разделялись по классам адресов. Подсети имел 8, 16 или 24 значащих бита, соответствующих 2 24 , 2 16 или 2 8 возможных хостах. В результате вся подсеть / 16 нужно было выделить для сети, для которой требовалось всего 400 адресов, впустую 65136 (2 16 — 400 = 65136) адреса.

Для более эффективного распределения адресных пространств, переменная длина были введены маски подсети (VLSM). Используя VLSM, сетевые архитекторы может более точно выделить количество адресов, необходимых для конкретная подсеть.

Например, предположим, что сеть с префиксом 192.14.17 / 24 разделена на две меньшие подсети, одна из которых состоит из 18 устройств. а другой из 46 устройств.

Для размещения 18 устройств первая подсеть должна иметь 2 5 (32) номеров хостов.Имея 5 бит, назначенных на номер хоста оставляет 27 бит 32-битного адреса для подсеть. Таким образом, IP-адрес первой подсети — 192.14.17.128/27 или следующий в двоичной записи:

.
 11000000. 00001110. 00010001. 100xxxxx 

Маска подсети включает 27 значащих цифр.

Чтобы создать вторую подсеть из 46 устройств, сеть должна разместить 2 6 (64) номеров хостов. IP адрес второй подсети — 192.14.17.64 / 26 или

 11000000. 00001110. 00010001. 01xxxxxx 

Путем назначения битов адреса в большей подсети /24 mask, вы создаете две подсети меньшего размера, которые используют выделенный адрес пространство более эффективно.

IP-адресов

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

На прошлой неделе мы представили адреса Ethernet, которые привязаны к физическим устройствам: термин «физический адрес» всегда относится к Ethernet или аналогичному адресу уровня канала данных .Представьте себе гигантскую всемирную сеть Ethernet, состоящую из соединенных между собой коммутаторов. Чтобы каждый коммутатор мог переключать входящие кадры данных на правильный порт, коммутатор должен иметь какой-то список, в котором он может искать физический адрес каждого подключенного устройства в сети. Этот список был бы огромным, и он потребуется много памяти и процессорного времени, чтобы использовать его и поддерживать его в актуальном состоянии. И как бы система справилась, если бы устройство переместилось? А как насчет технологий, которые не используют адреса Ethernet? Это просто не сработает!

IP-адреса являются логическими адресами.

Вот почему была изобретена новая схема адресации: система IP-адресов.Как и почтовые адреса, IP-адреса — это логических адреса : они имеют логическую структуру и предоставляют набор инструкций для достижения пункта назначения. Возьмем, к примеру, этот почтовый адрес:
  • 12, Clooney Hill
  • Birmingham
  • UK
Его можно читать снизу вверх, поэтому письмо с этим адресом будет сначала отправлено в Великобританию, затем в Бирмингем, а затем на нужную улицу и номер дома. Когда в 1970-х годах были изобретены IP-адреса, было решено чтобы сделать их длиной 32 бита.32 бита позволяют использовать 4 миллиарда уникальных адресов, этого достаточно, чтобы каждый человек на Земле в то время мог иметь один. Мы не знали, насколько большой станет объединенная сеть или Интернет, которую мы строили! Этот 32-битный IP-адрес обычно не записывается в двоичном формате. Вместо этого он разбивается на четыре 8-битных фрагмента (байта), и каждый фрагмент преобразуется в десятичный. После этого адрес записывается в десятичной системе счисления , разделенной точками, , с четырьмя десятичными значениями, разделенными точками. Таким образом, IP-адрес 11000000101010000000111000010111 становится:
двоичный 11000000 10101000 000016 00016 000016 00016 Десятичный разделитель192 168 14 23
11000000 10101000 00001110 00010111 = 192.168.14.23

Логическая структура IP-адреса

Сетевые биты — это начальные биты в IP-адресе. Они идентифицируют конкретную сеть. Остальные биты называются битами хоста и идентифицируют устройство (или «хост») в этой сети. Первое значение IP-адреса указывает, что адрес разделен на биты сети и биты хоста. Есть три класса адресов, идентифицируемых этим начальным значением:
  • Класс A использует 8 сетевых битов и 24 бит хоста
  • Класс B использует 16 сетевых битов и 16 бит хоста
  • Класс C использует 24 сетевых бита и 8 бит хоста
Чем больше битов сети, тем больше сетей можно идентифицировать.Но большее количество сетевых битов означает меньшее количество битов хоста, что означает меньшие сети.

IP-адреса для мобильных устройств

Мобильным устройствам (включая портативные компьютеры) автоматически присваивается другой IP-адрес каждый раз, когда они присоединяются к другой сети, поскольку сетевые биты их адреса должны идентифицировать новую сеть. Позже вы узнаете, как автоматически распределяются IP-адреса.

IP-пакет

Отправка данных с использованием IP-адресов очень похожа на отправку данных с использованием MAC-адресов и кадров Ethernet: сначала отправляются исходный и целевой IP-адреса (вместе с некоторыми дополнительными полями, о которых вы узнаете позже).Затем следуют фактические данные, которые необходимо передать. Эта структура называется IP-пакетом и выглядит иначе, чем кадр Ethernet.

Частные IP-адреса

В каждом классе IP-адресов выделен определенный диапазон для частных IP-адресов . Это означает, что эти адреса могут использоваться много раз в разных сетях, пока эти сети не соединяются. В сетях класса C все сети, начинающиеся с 192.168.0. — частные.

Будущее уже здесь

Текущая версия IP — это версия 4 (IPv4).32 бита в IPv4 дают 4294967296 адресов, но мы на исходе. Поэтому была разработана IP версии 6 (IPv6) с выделением 128 бит для каждого адреса: колоссальные 3,4 × 10 38 (340 282 36920 938 463 463 374 607 431 768 211 456) адресов. записываются в шестнадцатеричном формате как 32 цифры в блоках по четыре, например: FE80: CD00: 0000: 0CDE: 1257: 0000: 211E: 729C IPv6 был разработан для сосуществования с IPv4, поэтому обе системы могут работать параллельно.

Следующий шаг

Мы представили IP-адреса и IP-пакеты — как они сосуществуют с адресами и фреймами Ethernet? На следующем этапе мы рассмотрим, почему нам все еще нужны кадры Ethernet уровня канала данных и как эти IP-пакеты транспортируются.

Вопросы

  • Неужели мы действительно использовали 4 миллиарда IP-адресов?
  • Сколько устройств мы можем иметь в сети 192.168.1.0?
  • Что вы можете сделать об устройстве с IP-адресом 130.16.200.11?
Присоединяйтесь к обсуждению ниже, чтобы поделиться своими мыслями.

Общие сведения об IP-адресации — Технологическое руководство Webopedia

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

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

Что такое IP-адрес?

IP-адрес — это идентификатор компьютера или устройства в сети TCP / IP. Сети, использующие протокол TCP / IP, маршрутизируют сообщения на основе IP-адреса пункта назначения.

Рекомендуемая литература: Подробнее о протоколе TCP / IP.

IP-адрес состоит из 32 битов, часто показываемых как 4 октета чисел от 0 до 255, представленных в десятичной форме вместо двоичной. Например, IP-адрес: 168.212.226.204 в двоичной форме — 10101000.11010100.11100010.11001100.

Но нам легче запоминать десятичные числа, чем двоичные числа, поэтому мы используем десятичные дроби для представления IP-адресов при их описании. Однако двоичное число важно, потому что оно определит, к какому классу сети принадлежит IP-адрес.

Две части IP-адреса

IP-адрес состоит из двух частей: одна идентифицирует сеть, а вторая — узел или хост.

Класс адреса определяет, какая часть принадлежит сетевому адресу, а какая — адресу узла. Все узлы в данной сети используют один и тот же сетевой префикс, но должны иметь уникальный номер хоста.

Сеть класса A

В сети класса A двоичный адрес начинается с 0, поэтому десятичное число может быть от 1 до 126.Первые 8 бит (первый октет) идентифицируют сеть, а оставшиеся 24 бита указывают хост в сети. Примером IP-адреса класса A является 102.168.212.226, где «102» идентифицирует сеть, а «168.212.226» идентифицирует хост в этой сети.

Сеть класса B

В сети класса B двоичные адреса начинаются с 10, поэтому десятичное число может быть от 128 до 191. Число 127 зарезервировано для обратной связи и используется для внутреннего тестирования на локальной машине.Первые 16 бит (первые два октета) идентифицируют сеть, а оставшиеся 16 битов указывают хост в сети. Примером IP-адреса класса B является 168.212.226.204, где «168.212» идентифицирует сеть, а «226.204» идентифицирует хост в этой сети.

Сеть класса C

Двоичные адреса начинаются с 110, поэтому десятичное число может быть от 192 до 223. Первые 24 бита (первые три октета) идентифицируют сеть, а оставшиеся 8 битов указывают хост в сети.Примером IP-адреса класса C является 200.168.212.226, где «200.168.212» идентифицирует сеть, а «226» — хост в этой сети.

Сеть класса D

В сети класса D двоичные адреса начинаются с 1110, поэтому десятичное число может быть от 224 до 239. Сети класса D используются для поддержки многоадресной передачи.

Сеть класса E

В сети класса E двоичные адреса начинаются с 1111, поэтому десятичное число может быть от 240 до 255.Сети класса E используются для экспериментов. Они никогда не документировались и не использовались стандартным образом.

Эта статья была первоначально опубликована 24 июня 2010 г.

Общие сведения об IP-адресах, подсетях и нотации CIDR для сетей

Введение

Понимание сетей — это фундаментальная часть настройки сложных сред в Интернете. Это имеет значение при попытке эффективно взаимодействовать между серверами, разработке политик безопасности сети и поддержании организации ваших узлов.

В предыдущем руководстве мы рассмотрели некоторую базовую сетевую терминологию. Вам следует просмотреть это руководство, чтобы убедиться, что вы знакомы с представленными в нем концепциями.

В этой статье мы обсудим некоторые более конкретные концепции, связанные с проектированием сетевых компьютеров или взаимодействием с ними. В частности, мы рассмотрим классы сетей, подсети и нотацию CIDR для группировки IP-адресов.

Общие сведения об IP-адресах

Каждое местоположение или устройство в сети должно быть адресуемым .Это просто термин, который означает, что до него можно добраться, сославшись на его обозначение в заранее определенной системе адресов. В обычной модели сетевого уровня TCP / IP это обрабатывается на нескольких разных уровнях, но обычно, когда мы ссылаемся на адрес в сети, мы говорим об IP-адресе.

IP-адресов позволяют получить доступ к сетевым ресурсам через сетевой интерфейс. Если один компьютер хочет связаться с другим компьютером, он может адресовать информацию на IP-адрес удаленного компьютера.Предполагая, что два компьютера находятся в одной сети или что разные компьютеры и устройства между ними могут транслировать запросы по сетям, компьютеры должны иметь возможность связываться друг с другом и отправлять информацию.

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

Разница между IPv4 и IPv6

Существует две версии протокола IP, которые сегодня широко используются в системах. IPv4, четвертая версия протокола, в настоящее время поддерживается большинством систем. Более новая, шестая версия, названная IPv6, внедряется с большей периодичностью из-за улучшений протокола и ограничений адресного пространства IPv4.Проще говоря, в мире сейчас слишком много подключенных к Интернету устройств для количества адресов, доступных через IPv4.

IPv4-адреса — это 32-битные адреса. Каждый байт или 8-битный сегмент адреса делится на период и обычно выражается числом 0–255. Несмотря на то, что эти числа обычно выражаются в десятичной форме для облегчения понимания человеком, каждый сегмент обычно называют октетом , чтобы выразить тот факт, что это представление 8 битов.

Типичный IPv4-адрес выглядит примерно так:

  192.168.0.5
  

Наименьшее значение в каждом октете — 0, максимальное — 255.

Мы также можем выразить это в двоичном формате, чтобы лучше понять, как будут выглядеть четыре октета. Мы разделим каждые 4 бита пробелом для удобства чтения и заменим точки тире:

  1100 0000 - 1010 1000 - 0000 0000 - 0000 0101
  

Признание того, что эти два формата представляют одно и то же число, будет важно для понимания концепций позже.

Хотя есть и другие различия в протоколе и фоновых функциях IPv4 и IPv6, наиболее заметным различием является адресное пространство.IPv6 выражает адреса как 128-битное число. Чтобы представить это в перспективе, это означает, что IPv6 имеет место для более чем 7,9 × 10 28 адресов, раз превышающих количество адресов IPv4.

Чтобы выразить этот расширенный диапазон адресов, IPv6 обычно записывается как восемь сегментов из четырех шестнадцатеричных цифр. Шестнадцатеричные числа представляют числа 0-15 с использованием цифр 0-9, а также числа a-f для выражения более высоких значений. Типичный IPv6-адрес может выглядеть примерно так:

  1203: 8fe0: fe80: b897: 8990: 8a7c: 99bf: 323d
  

Вы также можете увидеть эти адреса, записанные в компактном формате.Правила IPv6 позволяют удалять любые начальные нули из каждого октета и заменять один диапазон обнуленных групп двойным двоеточием (: :).

Например, если у вас есть одна группа в адресе IPv6, которая выглядит следующим образом:

  ...: 00bc: ...
  

Вместо этого вы можете просто ввести:

  ...: bc: ...
  

Чтобы продемонстрировать второй случай, если у вас есть диапазон в IPv6-адресе с несколькими группами в виде нулей, например:

 ...: 18bc: 0000: 0000: 0000: 00ff: ...
  

Вы можете сжать это так (также удалив ведущие нули группы, как мы сделали выше):

  ...: 18bc :: ff ...
  

Вы можете сделать это только один раз для каждого адреса, иначе полный адрес не может быть восстановлен.

Хотя IPv6 становится все более распространенным с каждым днем, в этом руководстве мы рассмотрим оставшиеся концепции с использованием адресов IPv4, потому что их легче обсуждать с меньшим адресным пространством.

Классы адресов IPv4 и зарезервированные диапазоны

IP-адреса

обычно состоят из двух отдельных компонентов. Первая часть адреса используется для идентификации сети, частью которой является адрес. Часть, которая идет после, используется для указания конкретного хоста в этой сети.

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

адресов IPv4 традиционно были разделены на пять различных «классов», названных от A до E, чтобы различать сегменты доступного адресуемого пространства IPv4.Они определяются первыми четырьмя битами каждого адреса. Вы можете определить, к какому классу принадлежит IP-адрес, посмотрев на эти биты.

Вот таблица трансляции, которая определяет адреса на основе их ведущих битов:

  • Класс A

    • 0–: если первый бит IPv4-адреса равен «0», это означает, что адрес является частью класса A. Это означает, что любой адрес от 0.0.0.0 до 127.255.255.255 относится к классу A .
  • Класс B

    • 10–: Класс B включает любой адрес от 128.0.0.0 до 191.255.255.255 . Он представляет адреса, у которых есть «1» для их первого бита, но нет «1» для их второго бита.
  • Класс C

    • 110-: Класс C определяется как адреса в диапазоне от 192.0.0.0 до 223.255.255.255 . Это представляет все адреса с «1» для их первых двух бит, но без «1» для их третьего бита.
  • Класс D

    • 1110 : Этот класс включает адреса, которые имеют «111» в качестве первых трех битов, но «0» для следующего бита. Этот диапазон адресов включает адреса от 224.0.0.0 до 239.255.255.255 .
  • Класс E

    • 1111 : этот класс определяет адреса от 240.0.0.0 до 255.255.255.255 . Любой адрес, начинающийся с четырех битов «1», включается в этот класс.

Адреса класса D зарезервированы для протоколов многоадресной передачи, которые позволяют отправлять пакет группе хостов за одно движение. Адреса класса E зарезервированы для будущего и экспериментального использования и в основном не используются.

Традиционно каждый из обычных классов (A-C) разделял сетевую и узловую части адреса по-разному, чтобы приспособиться к сетям разного размера. В адресах класса A оставшаяся часть первого октета используется для представления сети, а остальная часть адреса — для определения хостов.Это было хорошо для определения нескольких сетей с большим количеством хостов в каждой.

Адреса класса B использовали первые два октета (остаток от первого и весь второй) для определения сети, а остальные — для определения хостов в каждой сети. Адреса класса C использовали первые три октета для определения сети и последний октет для определения хостов в этой сети.

Разделение больших частей IP-пространства на классы теперь почти унаследовано. Первоначально это было реализовано как временное решение проблемы быстрого истощения адресов IPv4 (у вас может быть несколько компьютеров с одним и тем же хостом, если они находятся в разных сетях).Это было в значительной степени заменено более поздними схемами, которые мы обсудим ниже.

Зарезервированные частные диапазоны

Есть также некоторые части пространства IPv4, зарезервированные для определенных целей.

Одним из наиболее полезных зарезервированных диапазонов является диапазон обратной связи, определяемый адресами от 127.0.0.0 до 127.255.255.255. Этот диапазон используется каждым хостом для проверки своей сети. Обычно это выражается первым адресом в этом диапазоне: 127.0.0.1.

У каждого из обычных классов также есть диапазон, который используется для обозначения адресов частной сети.Например, для адресов класса A адреса от 10.0.0.0 до 10.255.255.255 зарезервированы для назначения частной сети. Для класса B это диапазон от 172.16.0.0 до 172.31.255.255. Для класса C диапазон от 192.168.0.0 до 192.168.255.255 зарезервирован для частного использования.

Любой компьютер, не подключенный к Интернету напрямую (любой компьютер, подключенный к маршрутизатору или другой системе NAT), может использовать эти адреса по своему усмотрению.

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

Маски и подсети

Процесс разделения сети на более мелкие участки сети называется разделением на подсети . Это может быть полезно для множества различных целей и помогает изолировать группы хостов вместе и легко справляться с ними.

Как мы обсуждали выше, каждое адресное пространство делится на сетевую часть и часть хоста. Объем адреса, который занимает каждый из них, зависит от класса, к которому принадлежит адрес.Например, для адресов класса C первые 3 октета используются для описания сети. Для адреса 192.168.0.15 часть 192.168.0 описывает сеть, а 15 описывает хост.

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

Каждый бит адреса, который считается значимым для описания сети, должен быть представлен в сетевой маске как «1».

Например, адрес, который мы обсуждали выше, 192.168.0.15 может быть выражен в двоичном формате следующим образом:

  1100 0000 - 1010 1000 - 0000 0000 - 0000 1111
  

Как мы описали выше, сетевая часть для адресов класса C — это первые 3 октета или первые 24 бита. Поскольку это значащие биты, которые мы хотим сохранить, сетевая маска будет:

  1111 1111 - 1111 1111 - 1111 1111 - 0000 0000
  

Это может быть записано в обычном формате IPv4 как 255.255.255.0 . Любой бит, который равен «0» в двоичном представлении сетевой маски, считается частью хостовой части адреса и может быть переменным. Однако биты со значением «1» являются статическими для обсуждаемой сети или подсети.

Мы определяем сетевую часть адреса, применяя побитовую операцию И между адресом и сетевой маской. Побитовая операция И в основном сохраняет сетевую часть адреса и отбрасывает часть хоста.Результатом этого в приведенном выше примере, который представляет нашу сеть, является:

  1100 0000 - 1010 1000 - 0000 0000 - 0000 0000
  

Это можно выразить как 192.168.0.0 . Тогда спецификация хоста представляет собой разницу между этим исходным значением и частью хоста. В нашем случае это « 0000 1111 » или 15 .

Идея разделения на подсети состоит в том, чтобы взять часть пространства хоста адреса и использовать ее в качестве дополнительной сетевой спецификации для повторного разделения адресного пространства.

Например, маска сети 255.255.255.0 , как мы видели выше, оставляет нам 254 хоста в сети (вы не можете заканчивать на 0 или 255, потому что они зарезервированы). Если бы мы хотели разделить это на две подсети, мы могли бы использовать один бит обычной хостовой части адреса в качестве маски подсети.

Итак, продолжая наш пример, сетевая часть:

  1100 0000 - 1010 1000 - 0000 0000
  

Хост-часть:

  0000 1111
  

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

  1111 1111 - 1111 1111 - 1111 1111 - 0000 0000
  

Кому:

  1111 1111–1111 1111–1111 1111–1000 0000
  

В традиционной нотации IPv4 это будет выражаться как 192.168.0.128 . Что мы здесь сделали, так это обозначили первый бит последнего октета как важный для адресации сети. Это фактически создает две подсети. Первая подсеть — от 192.168.0.1 до 192.168.0.127 . Вторая подсеть содержит хосты с 192.168.0.129 по 192.168.0.255 . Традиционно сама подсеть не должна использоваться в качестве адреса.

Если мы используем больше битов из пространства хоста для сети, мы можем получить все больше и больше подсетей.

Обозначение CIDR

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

Например, мы могли бы выразить идею, что IP-адрес 192.168.0.15 связан с сетевой маской 255.255.255.0 , используя нотацию CIDR 192.168.0.15/24 . Это означает, что первые 24 бита данного IP-адреса считаются важными для сетевой маршрутизации.

Это дает нам некоторые интересные возможности. Мы можем использовать их для ссылки на «суперсети». В этом случае мы имеем в виду более широкий диапазон адресов, что невозможно с традиционной маской подсети.Например, в сети класса C, как указано выше, мы не могли объединить адреса из сетей 192.168.0.0 и 192.168.1.0 , потому что сетевая маска для адресов класса C — 255.255.255.0 .

Однако, используя нотацию CIDR, мы можем объединить эти блоки, обозначив этот фрагмент как 192.168.0.0/23 . Это указывает на то, что для сетевой части, о которой мы говорим, используется 23 бита.

Итак, первая сеть (192.168.0.0) в двоичном формате можно представить так:

  1100 0000 - 1010 1000 - 0000 0000 - 0000 0000
  

В то время как вторая сеть (192.168.1.0) будет такой:

  1100 0000 - 1010 1000 - 0000 0001 - 0000 0000
  

Указанный нами адрес CIDR указывает, что первые 23 бита используются для сетевого блока, на который мы ссылаемся. Это эквивалентно сетевой маске 255.255.254.0 или:

  1111 1111 - 1111 1111 - 1111 1110 - 0000 0000
  

Как видите, в этом блоке 24-й бит может быть либо 0, либо 1, и он все равно будет совпадать, потому что сетевой блок заботится только о первых 23 цифрах.

По сути, CIDR позволяет нам больше контролировать адресацию непрерывных блоков IP-адресов. Это гораздо полезнее, чем то, о чем мы говорили изначально.

Заключение

Надеюсь, к настоящему времени у вас уже должно быть рабочее понимание некоторых сетевых аспектов протокола IP. Хотя работа с этим типом сети не всегда интуитивно понятна, и иногда с ней может быть трудно работать, важно понимать, что происходит, чтобы правильно настроить программное обеспечение и компоненты.

В Интернете есть различные калькуляторы и инструменты, которые помогут вам понять некоторые из этих концепций и получить правильные адреса и диапазоны, которые вам нужны, путем ввода определенной информации. Здесь вы можете найти калькулятор подсети, дальномер CIDR и преобразователь IP-адреса в двоичные октеты. Используйте эти инструменты, чтобы помочь вам при принятии сетевых решений.

Джастин Эллингвуд

Основы сетевых технологий Cisco: IP-адресация

Как обсуждалось в предыдущих главах, Интернет-протокол (IP) является протоколом уровня 3.Напомним, что основная функция уровня 3 — маршрутизация пакетов по разным подсетям. Каждый интерфейс, подключенный к сети, должен иметь IP-адрес для идентификации. Поскольку дизайн IP-адресации имеет решающее значение для любой сети, мы начнем с краткого обзора IP-адресации, а затем углубимся в соображения по планированию IP-адресов для сетей.

IP-адрес — это логический идентификатор интерфейса, подключенного к сети. В настоящее время используются две версии IP: IPv4 и IPv6.В этой книге мы сосредоточимся на IPv4.

IPv4-адресов

IP-адрес — это 32-битный идентификатор, который однозначно определяет конечную точку в IP-сети. Запоминание 32-битного IP-адреса было бы кошмаром, поэтому адрес представлен в виде десятичной записи с точками.

Во-первых, 32 бита сгруппированы в четыре октета по 8 бит каждый. Во-вторых, IP-адрес представлен в десятичном формате с точками, что означает, что четыре октета разделены десятичной дробью между ними, которая читается как точка при чтении адреса.В-третьих, октеты преобразуются в десятичное число для облегчения идентификации, а IP-адрес принимает форму A.B.C.D.

На следующем рисунке показаны этапы преобразования 32 бита IP-адреса в знакомую десятичную систему с разделительными точками:

IP-адрес — это логический адрес сетевого уровня хоста, подключенного к сети. Обратите внимание, что каждый интерфейс хоста имеет IP-адрес, и если у хоста есть два интерфейса, подключенных к двум разным сетям, он будет иметь два разных IP-адреса — по одному для каждого интерфейса.Хост также может иметь адрес для логического интерфейса, который отличается от физического интерфейса. Например, большинство устройств в сети будут иметь логический интерфейс, настроенный как интерфейс обратной связи. Это чисто логический интерфейс без отображения физического интерфейса. Это делается для идентификации устройства в сети через логический интерфейс, так как этот интерфейс никогда не выйдет из строя, пока какой-либо интерфейс устройства подключен к сети и стек TCP / IP на устройстве работает нормально.

Поскольку IP-адрес является логическим адресом, легко построить иерархию в схеме адресации, которая требуется для маршрутизации пакетов из одной сети в другую. Все интерфейсы, подключенные к одной сети, имеют общую сеть, которая является логическим идентификатором сети. Этот сетевой номер встроен в сам IP-адрес и может быть получен из IP-адреса с использованием сетевой маски. Другой способ взглянуть на сетевой номер, встроенный в IP-адрес, — это посмотреть на IP-адрес как на комбинацию номера сети и номера хоста.32 бита IP-адреса разделены на две части: Сетевые биты слева и биты хоста справа:

Число битов, обозначающих сетевые биты, представлено как значение, называемое сетевой маской. Сетевая маска обозначается числом от 1 до 32 после знака /. Он добавляется к IP-адресу в десятичном формате, разделенном точками. Например, поскольку количество сетевых битов в предыдущем примере равно 16, IP-адрес будет записан как 166.75.229.22 / 16. Это означает, что IP-адрес — 166.75.229.22, а маска сети — / 16.

Иногда маска сети также представлена ​​в десятичном формате с разделительными точками. Чтобы получить десятичное представление маски сети с точками, запишите первые n битов в 32 битах как 1, а оставшиеся конечные биты как 0. Затем преобразуйте полученное 32-битное число в десятичное представление с точками. Мы используем метод, показанный на следующем рисунке, чтобы преобразовать сетевую маску / 16 в десятичную систему с разделительными точками:

Если мы посмотрим только на сетевые биты и заменим все биты хоста на 0, результирующее 32-битное представление называется идентификатором сети.Для примера IP-адреса, который мы рассмотрели ранее, и предполагая, что маска сети равна / 16, идентификатор сети будет таким, как показано на следующем рисунке:

Идентификатор сети также может быть получен путем маскирования IP-адреса с помощью сетевой маски в десятичном формате с разделительными точками. Чтобы замаскировать IP-адрес с помощью маски подсети, просто выполните операцию логического И побитно для 32 бит. Обратите внимание, что логическое И между двоичным1 и двоичным x является самим x, а результат операции И между двоичным 0 и двоичным x всегда равен 0.Следовательно, логическая операция И для 32 бит даст нам тот же результат, как показано на следующем рисунке:

Все хосты в одной сети уровня 3 имеют одинаковый номер или идентификатор сети. Следовательно, если сеть имеет маску / n , первые n бит IP-адреса являются сетевыми битами. Остальные (32-n) бита из 32 бит адреса IPv4 представляют часть адреса хоста. Поскольку IP-адреса уникальны, максимальное количество адресов хоста в подсети составляет 2 (32-n) .Первый и последний адреса диапазона имеют особое назначение. Первый адрес будет там, где все биты хоста равны 0, и, как мы обсуждали ранее, это число представляет сетевой идентификатор для сети. Если все биты хоста IP-адреса установлены в 1, мы получаем адрес, который называется широковещательным IP-адресом или широковещательным идентификатором для сети, который представляет собой совокупность всех хостов / интерфейсов в сети. Следовательно, максимальное количество хостов / интерфейсов в подсети составляет 2 (32-n) -2.На следующем рисунке это объясняется на примере IPv4:

Когда IP-адреса были формализованы, IP-адресация были разделены на пять классов, от A до E, как показано на следующем рисунке. Классы A, B и C использовались для адресации пользователей, тогда как класс D использовался для многоадресной адресации, а адреса класса E были зарезервированы для экспериментального использования. Идентификация адреса была основана на битах более высокого порядка в двоичном представлении адреса. Если бит наивысшего порядка был 0, адрес был адресом класса А.Если 2 бита высшего порядка были 10, адрес был адресом класса B, а если 3 бита высшего порядка были 110, это был адрес класса C. Точно так же 4 бита высшего порядка для адресов класса D и класса E были 1110 и 1111 соответственно.

Обоснование было основано на том факте, что будут большие, средние и маленькие сети, и, следовательно, были разработаны три различных класса адресов, а именно A, B и C, соответственно. Адреса класса A предназначались для крупнейших сетей, в которых количество хостов было бы очень большим.Предполагалось, что в Интернете будет существовать очень мало сетей такого типа. Соответственно, 8 битов были зарезервированы в адресе класса A для сетевых битов в адресе класса A, а остальные 32 бита были зарезервированы для хостов. Поскольку первый бит уже был установлен в 0, это означало, что таких сетей может быть 128 (2 (8-1) ), и каждая сеть может иметь до 2 24 — по 2 хоста в каждой. Это также можно интерпретировать как сети класса A, имеющие маску сети / 8 или 255.0.0.0.

Точно так же сетевые биты в адресе класса B для средних сетей были 16, оставляя 16 битов для хостовой части.В сетях класса C 24 бита зарезервированы для сети и 8 для хостов:

В следующей таблице перечислены хосты и сети для различных классов адресов:

Обсуждаемая до сих пор структура адреса обычно называется классовой адресацией. Этот формат адресации имел серьезные ограничения, поскольку IP-сети быстро расширялись. Поскольку количество сетей было ограниченным, спрос на IP-адреса намного превышал доступный.

Кроме того, самые маленькие сети имели 254 адреса для хостов. Однако даже если бы в сети было 10 хостов, оставшиеся адреса нельзя было бы нигде использовать, номера сетей должны были быть уникальными, что приводило к большой потере доступных IP-адресов. Эта потеря IP-адресов стала серьезной причиной для беспокойства, и отрасль начала искать новые способы уменьшения этой потери и поиска эффективных способов использования доступного пространства IP-адресов. Это привело к введению бесклассовой адресации, когда концепция сегментирования всех сетей на малые, средние и большие и, следовательно, выделения адресов классов C, B или A была отменена.

При бесклассовой адресации количество сетевых битов не было фиксированным, как при классовой адресации, на 8, 16 или 24, но была возможность гибкости в том, что количество битов, зарезервированных для сети (маска сети), могло быть любым числом от 1 до 32. Следовательно, сети могут быть разделены на более мелкие сети, называемые подсетями, и использование IP-адресов значительно улучшится. Это означало, что любое количество битов может быть зарезервировано для битов хоста, а оставшиеся биты будут битами сети.Следовательно, каждая сеть может иметь адреса с гранулярностью, равной степени 2. Например, если бы бит хоста равнялся 4, могло бы быть 24 адреса, аналогично, если бы количество битов хоста было 5, могло бы быть 2 5 адресов. . Обратите внимание, что используемые адреса все равно будут на 2 меньше, чем фактическое число, по одному зарезервирован для идентификатора сети и широковещательного адреса.

В качестве примера рассмотрим ситуацию, когда было четыре разных сегмента или сети LAN, каждая из которых имела по 40 хостов для подключения.Если бы мы следовали классовой адресации, мы бы назначили адрес класса C каждому из 4-х сегментов LAN и использовали бы только 40 адресов из 254, доступных для использования в каждом сегменте, что привело бы к огромной потере адресов. При бесклассовой адресации адресация выполняется на основе требований к адресам.

В этом примере, поскольку нам нужно 40 адресов на сеть, и мы можем назначать адреса в степени 2 (2, 4, 8, 16, 32, 64, 128, 256 и т. Д.), Минимальное количество адресов, которые будут выполнить требование 40 адресов — это 64, что требует 6 бит для хостов.Следовательно, для одной сети класса C (/ 24) мы можем выполнить требование четырех таких сетей. Предположим, что нам выделен адресный блок 166.75.229.0/24.

Один и тот же адресный блок может быть разделен на четыре меньшие подсети для каждой подсети. Поскольку выделенный нам блок адреса имел маску подсети / 24, первые 24 бита являются фиксированными. Теперь нам нужно 40 адресов на сегмент LAN и, как обсуждалось ранее, нам нужно 6 бит в качестве битов хоста для каждой подсети. Количество битов, которые мы можем использовать в качестве битов подсети, составляет 32-24-6 или 2 бита.Используя 2 бита, мы можем получить 2 2 или 4 подсети. Это показано на следующем рисунке для адресного блока 166.75.229.0/24. Обратите внимание, что подсети теперь имеют маску подсети / 26 или 255.255.255.192, потому что каждая подсеть теперь имеет 26 бит, которые представляют подсеть:

Обратите внимание, что в новой схеме адресации маска подсети не фиксируется на границах октета, но может иметь любое значение, если она может быть представлена ​​как непрерывная строка двоичного 1, за которой следует непрерывная строка двоичного 0, а общая количество бит равно 32.Эта концепция разделения подсетей для создания меньших подсетей, где каждая подсеть может иметь разные маски подсети в зависимости от количества адресов, требуемых в подсети, называется маскированием подсети переменной длины (VLSM).

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

Это руководство представляет собой отрывок из книги Харприта Сингха «Внедрение сетевых решений Cisco», опубликованной компанией Packt. Используйте код ORNCC10 при оформлении заказа, чтобы получить электронную книгу всего за 10 долларов до 31 мая.

Общие сведения об IP-адресах и двоичных файлах

Кори Нахрейнер, CISSP, директор по стратегии безопасности и исследованиям

Любой, кто использовал сетевой компьютер, вероятно, имеет функциональное представление об адресах Интернет-протокола (называемых для краткости IP).IP — это числовой идентификатор, представляющий компьютер или устройство в сети. IP-адрес вашего компьютера подобен домашнему почтовому адресу.

Конечным пользователям действительно не нужно знать больше об IP. Однако почтальон должен знать о почтовом адресе больше, чем человек, отправляющий письмо. По аналогичным причинам сетевой администратор или любой, кто настраивает устройства WatchGuard XTM и Firebox, должны знать технические детали IP-адресов, чтобы распознать более широкие возможности в управлении сетью.

В статье «Основы безопасности» «Интернет-протокол для начинающих» описывается, что такое IP-адреса, но не технически. Напротив, в этой статье основное внимание уделяется математическому описанию IP-адреса вплоть до последних двоичных деталей. Если вы уже знакомы с техническими деталями IP-адресов, можете пропустить эту статью. Однако, если вам интересно, как компьютеры видят IP-адреса, или если вам нужно быстро освежить в памяти двоичную математику, читайте дальше.

Как мы видим IP-адреса

Вы знаете, что IP-адрес — это числа, которые представляют устройство в сети, так как почтовый адрес представляет местонахождение вашего дома.Но для того, чтобы действительно назначать и использовать IP-адреса, вы должны понимать формат этих «числовых идентификаторов» и правила, которые к ним относятся.

Давайте сначала сконцентрируемся на том, как люди читают и записывают IP-адреса. Для нас IP-адрес представляет собой четыре десятичных числа, разделенных точками. Например, вы можете использовать 204.132.40.155 в качестве IP-адреса какого-либо устройства в вашей сети. Вы, наверное, заметили, что четыре числа, составляющие IP, всегда находятся в диапазоне от 0 до 255. Вы когда-нибудь задумывались, почему?

Вы также могли слышать, как люди называют четыре числовых значения в IP-адресе «октетами». Октет — это фактически правильный термин для описания четырех отдельных чисел, составляющих IP-адрес. Но не кажется ли странным, что слово, корень которого означает «восемь», описывает число от 0 до 255? Какое отношение имеет «восьмерка» к этим ценностям? Чтобы понять ответы на эти вопросы, вы должны взглянуть на IP-адрес с точки зрения вашего компьютера.

Компьютеры думают в двоичном формате

Компьютеры видят все в двоичном формате.В двоичной системе все описывается с использованием двух значений или состояний: включено или выключено, истина или ложь, да или нет, 1 или 0. Выключатель света можно рассматривать как двоичную систему, поскольку он всегда либо включен, либо выключен. .

Какими бы сложными они ни казались, на концептуальном уровне компьютеры представляют собой не что иное, как коробки, заполненные миллионами «выключателей света». Каждый из переключателей в компьютере называется бит , сокращенно от b inary dig it .Компьютер может включать и выключать каждый бит. Ваш компьютер любит описывать включение как 1 и выключение как 0.

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

Двоичная арифметика

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

В двоичной арифметике каждый бит в группе представляет степень двойки. В частности, первый бит в группе представляет 2 0 [Примечание редактора для нематематических специальностей: математики оговаривают, что любое число, возведенное в степень нуля, равно 1], второй бит представляет 2 1 , третий бит представляет 2 2 и т. Д. Бинарный код легко понять, потому что каждый последующий бит в группе ровно на удвоенных значения предыдущего бита.

В следующей таблице представлено значение каждого бита в байте (помните, что байт равен 8 битам).В двоичной математике значения битов возрастают справа налево, как и в десятичной системе счисления, к которой вы привыкли:

8 th бит 7 th бит 6 th бит 5 th бит 4 th бит 3 rd бит 2 nd бит 1 st бит
128 (2 7 ) 64 (2 6 ) 32 (2 5 ) 16 (2 4 ) 8 (2 3 ) 4 (2 2 ) 2 (2 1 ) 1 (2 0 )

Теперь, когда мы знаем, как вычислить значение каждого бита в байте, создание больших чисел в двоичном формате — это просто вопрос включения определенных битов и последующего сложения значений этих битов.Так что же представляет собой 8-битное двоичное число, такое как 01101110? В следующей таблице анализируется это число. Помните, что компьютер использует 1 для обозначения «включено» и 0 для обозначения «выключено»:

128 (2 7 ) 64 (2 6 ) 32 (2 5 ) 16 (2 4 ) 8 (2 3 ) 4 (2 2 ) 2 (2 1 ) 1 (2 0 )
0 1 1 0 1 1 1 0

В приведенной выше таблице вы можете видеть, что все биты со значениями 64, 32, 8, 4 и 2 включены.Как упоминалось ранее, вычисление значения двоичного числа означает суммирование всех значений «включенных» битов. Итак, для двоичного значения в таблице 01101110 мы складываем 64 + 32 + 8 + 4 + 2, чтобы получить число 110. Двоичная арифметика довольно проста, если вы знаете, что происходит.

Как компьютеры видят IP-адреса

Итак, теперь, когда вы немного разбираетесь в двоичном коде (каламбур), вы можете понять техническое определение IP-адреса. Для вашего компьютера IP-адрес — это 32-битное число, разделенное на четыре байта.

Помните пример IP-адреса выше, 204.132.40.155? Используя двоичную арифметику, мы можем преобразовать этот IP-адрес в его двоичный эквивалент. Вот как ваш компьютер видит этот IP:

11001100.10000100.00101000.10011011

Understanding binary также предоставляет вам некоторые правила, относящиеся к IP-адресам. Мы задались вопросом, почему четыре сегмента IP-адреса называются октетами. Что ж, теперь, когда вы знаете, что каждый октет на самом деле является байтом или восемью битами, имеет смысл называть его октетом.И помните, как значения для каждого октета в IP-адресе находились в диапазоне от 0 до 255, но мы не знали почему? Используя двоичную арифметику, легко вычислить наибольшее число, которое может представлять байт. Если вы включите все биты в байте (11111111), а затем преобразуете этот байт в десятичное число (128 + 64 + 32 + 16 + 8 + 4 + 2 + 1), эти биты всего 255.

Почему меня это волнует?

Теперь, когда вы понимаете двоичный код и то, как компьютеры видят IP-адреса, вы можете подумать: «Это интересно, но в чем смысл?» Конечным пользователям действительно не нужно понимать двоичное представление IP.Фактически, мы намеренно записываем IP-адреса в десятичном формате, чтобы людям было легче их понять и запомнить. Однако сетевые администраторы должны технически знать, что происходит, чтобы реализовать что-либо, кроме простейшей сети.

В статье, состоящей из двух частей, «Общие сведения о подсетях» Рик Фэрроу описывает одну из наиболее важных концепций, необходимых для создания сетей TCP / IP, — подсети. Как вы увидите, понимание двоичного кода является фундаментальным требованием для разбиения на подсети. Подобно тому, как почтальон должен разбираться в системе почтовой доставки, чтобы каждое сообщение доходило до места назначения, вы обнаружите, что возможность просматривать IP-адреса так, как это делает ваш компьютер, поможет вам лучше выполнять свою работу в качестве сетевого администратора. — и еще проще.

Подробнее Основы безопасности »

Адресация TCP / IP и разделение на подсети — Windows Client

  • Читать 12 минут

В этой статье

Эта статья предназначена в качестве общего введения в концепции сетей Интернет-протокола (IP) и подсетей. Глоссарий включен в конце статьи.

Исходная версия продукта: Windows 10 — все выпуски
Оригинальный номер базы знаний: 164015

Сводка

При настройке протокола TCP / IP на компьютере под управлением Windows для параметров конфигурации TCP / IP требуется:

  • IP-адрес
  • Маска подсети
  • Шлюз по умолчанию

Чтобы правильно настроить TCP / IP, необходимо понимать, как сети TCP / IP адресуются и делятся на сети и подсети.

Успех TCP / IP как сетевого протокола Интернета во многом объясняется его способностью соединять вместе сети разных размеров и системы разных типов. Эти сети произвольно разделены на три основных класса (наряду с некоторыми другими), которые имеют предопределенные размеры. Системные администраторы могут разделить каждую из них на более мелкие подсети. Маска подсети используется для разделения IP-адреса на две части. Одна часть идентифицирует хост (компьютер), другая часть идентифицирует сеть, к которой он принадлежит.Чтобы лучше понять, как работают IP-адреса и маски подсети, посмотрите на IP-адрес и посмотрите, как он организован.

IP-адреса: сети и хосты

IP-адрес — это 32-битное число. Он однозначно идентифицирует хост (компьютер или другое устройство, например принтер или маршрутизатор) в сети TCP / IP.

IP-адресов обычно выражаются в десятичном формате с точками, с четырьмя числами, разделенными точками, например 192.168.123.132. Чтобы понять, как маски подсети используются для различения узлов, сетей и подсетей, изучите IP-адрес в двоичной записи.

Например, десятичный IP-адрес с точками 192.168.123.132 — это (в двоичной записи) 32-битное число 110000000101000111101110000100. Это число может быть трудным для понимания, поэтому разделите его на четыре части по восемь двоичных цифр.

Эти 8-битные секции называются октетами. Тогда пример IP-адреса станет 11000000.10101000.01111011.10000100. Это число имеет немного больше смысла, поэтому для большинства случаев преобразуйте двоичный адрес в десятичный формат с точками (192.168.123.132). Десятичные числа, разделенные точками, представляют собой октеты, преобразованные из двоичного представления в десятичное.

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

Чтобы этот процесс работал, IP-адрес состоит из двух частей. Первая часть IP-адреса используется как сетевой адрес, последняя часть как адрес хоста. Если взять пример 192.168.123.132 и разделить его на эти две части, получится 192.168.123. Network .132 Host или 192.168.123.0 — сетевой адрес. 0.0.0.132 — адрес хоста.

Маска подсети

Второй элемент, который требуется для работы TCP / IP, — это маска подсети.Маска подсети используется протоколом TCP / IP для определения того, находится ли узел в локальной подсети или в удаленной сети.

В TCP / IP части IP-адреса, которые используются в качестве адреса сети и хоста, не фиксированы. Если у вас нет дополнительной информации, указанные выше адреса сети и хоста не могут быть определены. Эта информация предоставляется в виде другого 32-битного числа, называемого маской подсети. В этом примере маска подсети 255.255.255.0. Не очевидно, что означает это число, если вы не знаете, что 255 в двоичной системе счисления равно 11111111.Итак, маска подсети 11111111.11111111.11111111.0000000.

Совместив IP-адрес и маску подсети вместе, можно разделить сетевую и узловую части адреса:

11000000.10101000.01111011.10000100 — IP-адрес (192.168.123.132)
11111111.11111111.11111111.00000000 — Маска подсети (255.255.255.0)

Первые 24 бита (количество единиц в маске подсети) идентифицируются как сетевой адрес. Последние 8 бит (количество оставшихся нулей в маске подсети) идентифицируются как адрес хоста.Он дает вам следующие адреса:

11000000.10101000.01111011.00000000 — Сетевой адрес (192.168.123.0)
00000000.00000000.00000000.10000100 — Адрес хоста (000.000.000.132)

Итак, теперь вы знаете, что для этого примера с использованием маски подсети 255.255.255.0 идентификатор сети 192.168.123.0, а адрес хоста — 0.0.0.132. Когда пакет прибывает в подсеть 192.168.123.0 (из локальной подсети или удаленной сети) и имеет адрес назначения 192.168.123.132, ваш компьютер получит его из сети и обработает.

Почти все десятичные маски подсети преобразуются в двоичные числа, состоящие из единиц слева и нулей справа. Некоторые другие распространенные маски подсети:

Десятичное двоичное 255.255.255.192 1111111.11111111.1111111.11000000 255.255.255.224 1111111.11111111.1111111.11100000

Internet RFC 1878 (доступный в InterNIC-Public Information относительно служб регистрации доменных имен в Интернете) описывает допустимые подсети и маски подсетей, которые могут использоваться в сетях TCP / IP.

Классы сети

Интернет-адреса выделяются InterNIC, организацией, которая управляет Интернетом. Эти IP-адреса делятся на классы. Наиболее распространенными из них являются классы A, B и C. Классы D и E существуют, но не используются конечными пользователями. Каждый из классов адресов имеет различную маску подсети по умолчанию. Вы можете определить класс IP-адреса, посмотрев на его первый октет. Ниже приведены диапазоны интернет-адресов классов A, B и C, каждый с примером адреса:

  • Сети класса A используют маску подсети по умолчанию 255.0.0.0 и имеют в качестве первого октета 0–127. Адрес 10.52.36.11 — это адрес класса А. Его первый октет равен 10, то есть от 1 до 126 включительно.

  • Сети класса B используют маску подсети по умолчанию 255.255.0.0 и имеют 128-191 в качестве первого октета. Адрес 172.16.52.63 — это адрес класса B. Его первый октет — 172, то есть от 128 до 191 включительно.

  • Сети класса C используют маску подсети по умолчанию 255.255.255.0 и имеют 192-223 в качестве первого октета.Адрес 192.168.123.132 — это адрес класса C. Его первый октет — 192, то есть от 192 до 223 включительно.

В некоторых сценариях значения маски подсети по умолчанию не соответствуют потребностям организации по одной из следующих причин:

  • Физическая топология сети
  • Количество сетей (или хостов) не соответствует ограничениям маски подсети по умолчанию.

В следующем разделе объясняется, как можно разделить сети с помощью масок подсети.

Разделение на подсети

Сеть TCP / IP класса A, B или C может быть дополнительно разделена или разбита на подсети системным администратором. Это становится необходимым по мере согласования схемы логических адресов Интернета (абстрактного мира IP-адресов и подсетей) с физическими сетями, используемыми в реальном мире.

Системный администратор, которому выделен блок IP-адресов, может управлять сетями, которые не организованы таким образом, чтобы легко соответствовать этим адресам. Например, у вас есть глобальная сеть со 150 хостами в трех сетях (в разных городах), которые соединены маршрутизатором TCP / IP.Каждая из этих трех сетей имеет 50 хостов. Вам выделена сеть класса C 192.168.123.0. (Для иллюстрации, этот адрес на самом деле относится к диапазону, который не выделен в Интернете.) Это означает, что вы можете использовать адреса с 192.168.123.1 по 192.168.123.254 для своих 150 хостов.

Два адреса, которые нельзя использовать в вашем примере, — 192.168.123.0 и 192.168.123.255, потому что двоичные адреса с частью узла, состоящей из единиц и всех нулей, недействительны. Нулевой адрес недействителен, потому что он используется для указания сети без указания хоста.Адрес 255 (в двоичной записи — адрес всех узлов) используется для широковещательной рассылки сообщения каждому узлу в сети. Просто помните, что первый и последний адрес в любой сети или подсети не может быть назначен какому-либо отдельному хосту.

Теперь вы можете давать IP-адреса 254 хостам. Он отлично работает, если все 150 компьютеров находятся в одной сети. Однако ваши 150 компьютеров находятся в трех отдельных физических сетях. Вместо того, чтобы запрашивать дополнительные блоки адресов для каждой сети, вы делите свою сеть на подсети, что позволяет использовать один блок адресов в нескольких физических сетях.

В этом случае вы делите свою сеть на четыре подсети, используя маску подсети, которая увеличивает сетевой адрес и уменьшает возможный диапазон адресов хоста. Другими словами, вы «заимствуете» некоторые биты, используемые для адреса хоста, и используете их для сетевой части адреса. Маска подсети 255.255.255.192 дает вам четыре сети по 62 узла в каждой. Это работает, потому что в двоичной записи 255.255.255.192 совпадает с 1111111.11111111.1111111.11000000. Первые две цифры последнего октета становятся сетевыми адресами, поэтому вы получаете дополнительные сети 00000000 (0), 01000000 (64), 10000000 (128) и 11000000 (192).(Некоторые администраторы будут использовать только две подсети, используя 255.255.255.192 в качестве маски подсети. Для получения дополнительной информации по этой теме см. RFC 1878.) В этих четырех сетях последние шесть двоичных цифр могут использоваться для адресов хостов.

Используя маску подсети 255.255.255.192, ваша сеть 192.168.123.0 становится четырьмя сетями: 192.168.123.0, 192.168.123.64, 192.168.123.128 и 192.168.123.192. Эти четыре сети будут иметь действительные адреса узлов:

.

192.168.123.1-62 192.168.123.65-126 192.168.123.129-190 192.168.123.193-254

Помните, еще раз, что двоичные адреса хоста со всеми единицами или всеми нулями недействительны, поэтому вы не можете использовать адреса с последним октетом 0, 63, 64, 127, 128, 191, 192 или 255.

Вы можете увидеть, как это работает, посмотрев на два адреса хоста: 192.168.123.71 и 192.168.123.133. Если вы использовали маску подсети класса C по умолчанию 255.255.255.0, оба адреса находятся в сети 192.168.123.0. Однако, если вы используете маску подсети 255.255.255.192, они в разных сетях; 192.168.123.71 находится в сети 192.168.123.64, 192.168.123.133 находится в сети 192.168.123.128.

Шлюзы по умолчанию

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

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

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

Поиск и устранение неисправностей

Сетевые проблемы

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

Неверная маска подсети: если сеть использует маску подсети, отличную от маски по умолчанию для своего класса адреса, и клиент по-прежнему настроен с маской подсети по умолчанию для класса адреса, связь с некоторыми соседними сетями будет невозможна, но не с удаленными. .Например, если вы создаете четыре подсети (например, в примере разделения на подсети), но используете неправильную маску подсети 255.255.255.0 в вашей конфигурации TCP / IP, узлы не смогут определить, что некоторые компьютеры находятся в разных подсетях, чем их. В этой ситуации пакеты, предназначенные для хостов в разных физических сетях, которые являются частью одного и того же адреса класса C, не будут отправлены на шлюз по умолчанию для доставки. Распространенным признаком этой проблемы является то, что компьютер может обмениваться данными с узлами, находящимися в его локальной сети, и может взаимодействовать со всеми удаленными сетями, кроме тех, которые находятся поблизости и имеют тот же адрес класса A, B или C.Чтобы решить эту проблему, просто введите правильную маску подсети в конфигурации TCP / IP для этого хоста.

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

Неверный шлюз по умолчанию: компьютер, настроенный с неправильным шлюзом по умолчанию, может связываться с хостами в своем собственном сегменте сети. Но он не сможет связаться с хостами в некоторых или во всех удаленных сетях. Хост может связываться с некоторыми удаленными сетями, но не с другими, если выполняются следующие условия:

  • Одна физическая сеть имеет более одного маршрутизатора.
  • Неправильный маршрутизатор настроен как шлюз по умолчанию.

Эта проблема часто встречается, если в организации есть маршрутизатор для внутренней сети TCP / IP и другой маршрутизатор, подключенный к Интернету.

Список литературы

Две популярные ссылки на TCP / IP:

  • «Иллюстрированный TCP / IP, Том 1: Протоколы», Ричард Стивенс, Эддисон Уэсли, 1994
  • «Межсетевое взаимодействие с TCP / IP, Том 1: Принципы, протоколы и архитектура», Дуглас Э.Комер, Прентис-Холл, 1995

Рекомендуется, чтобы системный администратор, ответственный за сети TCP / IP, имел хотя бы одну доступную ссылку.

Глоссарий

  • Широковещательный адрес — IP-адрес, часть которого состоит из единиц.

  • Хост — компьютер или другое устройство в сети TCP / IP.

  • Интернет — глобальная совокупность сетей, которые соединены вместе и имеют общий диапазон IP-адресов.

  • InterNIC — Организация, отвечающая за администрирование IP-адресов в Интернете.

  • IP — сетевой протокол, используемый для отправки сетевых пакетов через сеть TCP / IP или Интернет.

  • IP-адрес — уникальный 32-битный адрес хоста в сети TCP / IP или межсетевой.

  • Сеть. В этой статье термин «сеть» используется в двух случаях. Первый — это группа компьютеров в одном физическом сегменте сети.Другой — это диапазон IP-адресов сети, который назначается системным администратором.

  • Сетевой адрес — IP-адрес с нулевой частью хоста.

  • Октет — 8-битное число, 4 из которых составляют 32-битный IP-адрес. У них есть диапазон 00000000-11111111, который соответствует десятичным значениям 0-255.

  • Пакет — Единица данных, передаваемая по сети TCP / IP или глобальной сети.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *