Существуют IP-подсети, позволяющие маршрутизаторам выбирать подходящие места назначения для пакетов. Вы можете использовать IP-подсети, чтобы разбить большие сети по логическим причинам (брандмауэр и т. Д.) Или по физической необходимости (небольшие широковещательные домены и т. Д.).
Проще говоря, IP-маршрутизаторы используют ваши IP-подсети для принятия решений о маршрутизации. Понять, как эти решения работают, и вы сможете понять, как планировать IP-подсети.
Считать до 1
Если вы уже свободно знакомы с двоичной системой счисления (база 2), вы можете пропустить этот раздел.
Для тех из вас, кто остался: позор вам за то, что вы не владеете двоичными данными!
Да, это может быть немного резким. Это действительно, очень легко научиться считать в двоичном виде, а также научиться использовать быстрые клавиши для преобразования двоичного числа в десятичное и обратно. Вы действительно должны знать, как это сделать.
Считать в двоичном виде так просто, потому что вам нужно знать только 1!
Подумайте о «одометре» автомобиля, за исключением того, что, в отличие от традиционного одометра, каждая цифра может считаться только от 1 до 0. Когда автомобиль только что с завода, одометр показывает «00000000».
Когда вы проехали свою первую милю, на одометре появится надпись «00000001». Все идет нормально.
Когда вы проехали вторую милю, первая цифра одометра возвращается к «0» (так как его максимальное значение равно «1»), а вторая цифра одометра возвращается к «1», делая показания одометра « 00000010" . Это выглядит как число 10 в десятичной записи, но на самом деле это 2 (количество миль, которые вы проехали на машине до сих пор) в двоичной записи.
Когда вы проехали третью милю, на одометре появится надпись «00000011», поскольку первая цифра одометра снова поворачивается. Число «11» в двоичной записи совпадает с десятичным числом 3.
Наконец, когда вы проехали свою четвертую милю, обе цифры (которые читались как «1» в конце третьей мили) возвращаются в нулевую позицию, а третья цифра сворачивается в позицию «1», давая нам « 00000100" . Это двоичное представление десятичного числа 4.
Вы можете запомнить все это, если хотите, но вам действительно нужно только понять, как маленький одометр «переворачивается», когда число, которое он считает, становится больше. Это то же самое, что и традиционная десятичная операция одометра, за исключением того, что каждая цифра может быть только «0» или «1» на нашем вымышленном «двоичном одометре».
Чтобы преобразовать десятичное число в двоичное, вы можете повернуть одометр вперед, отметив галочкой, считая вслух, пока вы не свернули его число, равное десятичному числу, которое вы хотите преобразовать в двоичное. Все, что будет отображаться на одометре после всех этих операций, будет двоичным представлением десятичного числа, которое вы посчитали.
Поскольку вы понимаете, как одометр катится вперед, вы также поймете, как он катится назад. Чтобы преобразовать двоичное число, отображаемое на спидометре, в десятичное, вы можете повернуть спидометр на одну отметку за раз, считая вслух, пока на спидометре не появится «00000000». Когда все эти подсчеты и перестановки будут выполнены, последним числом, которое вы произнесете вслух, будет десятичное представление двоичного числа, с которого начинался одометр.
Преобразование значений между двоичными и десятичными этим способом было бы очень утомительно. Вы могли бы сделать это, но это было бы не очень эффективно. Легче выучить небольшой алгоритм, чтобы сделать это быстрее.
Небольшое отступление: каждая цифра в двоичном числе называется «бит». Это «б» от «двоичного» и «это» от «цифры». Бит - это двоичная цифра.
Преобразование двоичного числа, например, «1101011», в десятичное - это простой процесс с небольшим удобным алгоритмом.
Начните с подсчета количества бит в двоичном числе. В этом случае есть 7. Сделайте 7 делений на листе бумаги (в вашем уме, в текстовом файле и т. Д.) И начните заполнять их справа налево. В крайнем правом слоте введите число «1», потому что мы всегда будем начинать с «1». В следующем слоте слева введите двойное значение в слоте справа (так, «2» в следующем, «4» в следующем) и продолжайте, пока все слоты не заполнятся. (В итоге вы запомните эти числа, которые являются степенями 2, так как вы делаете это все больше и больше. У меня все в порядке до 131 072 в голове, но после этого мне обычно нужен калькулятор или бумага).
Итак, у вас должно быть следующее на вашей бумаге в ваших маленьких слотах.
64 | 32 | 16 | 8 | 4 | 2 | 1 |
Переписать биты из двоичного числа под слотами, вот так:
64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 1 0 1 0 1 1
Теперь добавьте несколько символов и вычислите ответ на задачу:
64 | 32 | 16 | 8 | 4 | 2 | 1 |
x 1 x 1 x 0 x 1 x 0 x 1 x 1
--- --- --- --- --- --- ---
+ + + + + + =
Делая всю математику, вы должны придумать:
64 | 32 | 16 | 8 | 4 | 2 | 1 |
x 1 x 1 x 0 x 1 x 0 x 1 x 1
--- --- --- --- --- --- ---
64 + 32 + 0 + 8 + 0 + 2 + 1 = 107
Вот и все. «1101011» в десятичном виде - 107. Это просто простые шаги и простая математика.
Преобразование десятичного числа в двоичное такое же простое и является тем же базовым алгоритмом, работающим в обратном порядке.
Скажем, мы хотим преобразовать число 218 в двоичное. Начиная справа от листа бумаги, напишите число «1». Слева, удвойте это значение (так, «2») и продолжайте двигаться влево от бумаги, удваивая последнее значение. Если число, которое вы собираетесь написать, больше, чем преобразуемое число, прекратите запись. в противном случае продолжайте удваивать предыдущий номер и писать. (Преобразование большого числа, такого как 34 157 216 092, в двоичное с использованием этого алгоритма может быть немного утомительным, но, безусловно, возможно.)
Итак, вы должны иметь на бумаге:
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Вы перестали писать числа на 128, потому что удвоение 128, которое даст вам 256, будет больше, чем число, которое преобразуется (218).
Начиная с крайнего левого числа, напишите «218» над ним (128) и спросите себя: «218 больше или равно 128?» Если ответ «да», вычеркните «1» ниже «128». Выше «64» напишите результат 218 минус 128 (90).
Глядя на «64», спросите себя: «90 больше или равно 64?» Таким образом, вы должны написать «1» ниже «64», затем вычесть 64 из 90 и записать это выше «32» (26).
Когда вы добираетесь до «32», вы обнаруживаете, что 32 не больше или не равно 26. В этом случае напишите «0» ниже «32», скопируйте число (26) сверху 32 «выше» 16 ", а затем продолжайте задавать себе тот же вопрос с остальными числами.
Когда вы все закончите, вы должны иметь:
218 90 26 26 10 2 2 0
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 1 0 1 1 0 1 0
Числа в верхней части - это просто заметки, используемые в вычислениях, и они мало что значат для нас. Однако внизу вы видите двоичное число «11011010». Конечно, 218, преобразованный в двоичный файл, равен «11011010».
Следуя этим очень простым процедурам, вы можете конвертировать двоичные в десятичные и обратно без калькулятора. Математика очень проста, и правила могут быть запомнены с небольшой практикой.
Разделение адресов
Думайте о IP-маршрутизации как о доставке пиццы.
Когда вас попросят доставить пиццу на «123 Main Street», вам, как человеку, очень ясно, что вы хотите пойти в здание с номером «123» на улице с именем «Main Street». Легко понять, что вам нужно перейти на 100-квартал Мейн-стрит, потому что номер здания составляет от 100 до 199, а большинство городских кварталов исчисляются сотнями. Вы «просто знаете», как разделить адрес.
Маршрутизаторы доставляют пакеты, а не пиццу. Их работа такая же, как и у водителя пиццы: доставить груз (пакеты) как можно ближе к месту назначения. Маршрутизатор подключен к двум или более IP-подсетям (чтобы быть полезным). Маршрутизатор должен проверить IP-адреса назначения пакетов и разбить эти адреса назначения на их компоненты «название улицы» и «номер здания», так же как и драйвер пиццы, чтобы принять решение о доставке.
Каждый компьютер (или «хост») в IP-сети настроен с уникальным IP-адресом и маской подсети. Этот IP-адрес можно разделить на компонент «номер здания» (например, «123» в приведенном выше примере), называемый «идентификатор хоста» и компонент «название улицы» (например, «Главная улица» в приведенном выше примере), называемый "идентификатор сети". Нашим человеческим глазом легко увидеть, где находится номер здания и название улицы в «123 Main Street», но сложнее увидеть это разделение в «10.13.216.41 с маской подсети 255.255.192.0».
IP-маршрутизаторы «просто знают», как разделить IP-адреса на эти составные части, чтобы принимать решения о маршрутизации. Поскольку понимание того, как маршрутизируются IP-пакеты, зависит от понимания этого процесса, нам также необходимо знать, как разбивать IP-адреса. К счастью, извлечь идентификатор хоста и идентификатор сети из IP-адреса и маски подсети на самом деле довольно просто.
Начните с записи IP-адреса в двоичном формате (используйте калькулятор, если вы еще не научились делать это в своей голове, но запишите, как это сделать - это действительно очень легко и впечатляет противоположный пол в стороны):
10. 13. 216. 41
00001010.00001101.11011000.00101001
Также запишите маску подсети в двоичном виде:
255. 255. 192. 0
11111111.11111111.11000000.00000000
Написанные бок о бок, вы можете видеть, что точка в маске подсети, где «1» останавливается, «выстраивается» до точки в IP-адресе. В том-то и дело, что сетевой идентификатор и идентификатор хоста разделились. Итак, в этом случае:
10. 13. 216. 41
00001010.00001101.11011000.00101001 - IP address
11111111.11111111.11000000.00000000 - subnet mask
00001010.00001101.11000000.00000000 - Portion of IP address covered by 1's in subnet mask, remaining bits set to 0
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0
Маршрутизаторы используют маску подсети, чтобы «замаскировать» биты, покрытые 1, в IP-адресе (заменив биты, которые не «замаскированы», на 0), чтобы извлечь идентификатор сети:
10. 13. 192. 0
00001010.00001101.11000000.00000000 - Network ID
Аналогично, используя маску подсети для «маскировки» битов, покрываемых нулями в IP-адресе (заменяя биты, которые не «маскируются», снова на 0), маршрутизатор может извлечь идентификатор хоста:
0. 0. 24. 41
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0
Нашим человеческим глазом не так легко увидеть «разрыв» между идентификатором сети и идентификатором хоста, как между «номером здания» и «названием улицы» в физических адресах во время доставки пиццы, но конечный эффект - это такой же.
Теперь, когда вы можете разделить IP-адреса и маски подсетей на идентификаторы хоста и сети, вы можете маршрутизировать IP так же, как это делает маршрутизатор.
Больше терминологии
Вы увидите маски подсетей, написанные по всему Интернету и в остальной части этого ответа как (IP / номер). Эта нотация называется нотацией бесклассовой междоменной маршрутизации (CIDR). «255.255.255.0» в начале состоит из 24 битов единиц, и записать его как «/ 24» быстрее, чем как «255.255.255.0». Чтобы преобразовать число CIDR (например, «/ 16») в десятичную маску подсети с точками, просто запишите это число 1, разделите его на группы по 8 бит и преобразуйте в десятичное число. (Например, "/ 16" - это "255.255.0.0".)
Еще в «старые времена» маски подсетей не указывались, а были получены путем просмотра определенных бит IP-адреса. Например, IP-адрес, начинающийся с 0–127, имел подразумеваемую маску подсети 255.0.0.0 (называемую IP-адресом «класса A»).
Эти подразумеваемые маски подсетей сегодня не используются, и я не рекомендую больше о них узнавать, если только у вас нет неудачи иметь дело с очень старым оборудованием или старыми протоколами (такими как RIPv1), которые не поддерживают бесклассовую IP-адресацию. Я не буду больше упоминать эти «классы» адресов, потому что сегодня они неприменимы и могут сбивать с толку.
Некоторые устройства используют обозначение, называемое «подстановочные маски». «Маска подстановки» - это не более чем маска подсети со всеми 0, где будут 1, и 1, где будут 0. «Маска подстановки» в / 26:
11111111.11111111.11111111.11000000 - /26 subnet mask
00000000.00000000.00000000.00111111 - /26 "wildcard mask"
Как правило, в списках контроля доступа или правилах брандмауэра вы видите «маски подстановки», используемые для соответствия идентификаторам хоста. Мы не будем обсуждать их здесь дальше.
Как работает роутер
Как я уже говорил ранее, IP-маршрутизаторы работают аналогично водителю доставки пиццы в том, что им необходимо доставить свой груз (пакеты) к месту назначения. При представлении пакета, привязанного к адресу 192.168.10.2, IP-маршрутизатору необходимо определить, какой из его сетевых интерфейсов лучше всего приблизит этот пакет к месту назначения.
Допустим, вы являетесь IP-маршрутизатором, и у вас есть номера подключенных интерфейсов:
- Ethernet0 - 192.168.20.1, маска подсети / 24
- Ethernet1 - 192.168.10.1, маска подсети / 24
Если вы получаете пакет для доставки с адресом назначения «192.168.10.2», довольно легко сказать (вашими человеческими глазами), что пакет должен быть отправлен через интерфейс Ethernet1, поскольку адрес интерфейса Ethernet1 соответствует месту назначения пакета адрес. Все компьютеры, подключенные к интерфейсу Ethernet1, будут иметь IP-адреса, начинающиеся с «192.168.10.», Поскольку сетевой идентификатор IP-адреса, назначенного вашему интерфейсу Ethernet1, - «192.168.10.0».
Для маршрутизатора этот процесс выбора маршрута выполняется путем построения таблицы маршрутизации и обращения к таблице каждый раз при доставке пакета. Таблица маршрутизации содержит идентификатор сети и имена интерфейса назначения. Вы уже знаете, как получить идентификатор сети по IP-адресу и маске подсети, и вы уже на пути к созданию таблицы маршрутизации. Вот наша таблица маршрутизации для этого маршрутизатора:
- Идентификатор сети: 192.168.20.0 (11000000.10101000.00010100.00000000) - 24-битная маска подсети - интерфейс Ethernet0
- Идентификатор сети: 192.168.10.0 (11000000.10101000.00001010.00000000) - 24-битная маска подсети - Интерфейс Ethernet1
Для нашего входящего пакета, привязанного к «192.168.10.2», нам нужно только преобразовать адрес этого пакета в двоичный (как люди - маршрутизатор получает его как двоичный файл по проводам) и попытаться сопоставить его с каждым адресом в нашей маршрутизации таблица (до количества бит в маске подсети), пока мы не сопоставим запись.
- Пункт назначения входящего пакета: 11000000.10101000.00001010.00000010
Сравнивая это с записями в нашей таблице маршрутизации:
11000000.10101000.00001010.00000010 - Destination address for packet
11000000.10101000.00010100.00000000 - Interface Ethernet0
!!!!!!!!.!!!!!!!!.!!!????!.xxxxxxxx - ! indicates matched digits, ? indicates no match, x indicates not checked (beyond subnet mask)
11000000.10101000.00001010.00000010 - Destination address for packet
11000000.10101000.00001010.00000000 - Interface Ethernet1, 24 bit subnet mask
!!!!!!!!.!!!!!!!!.!!!!!!!!.xxxxxxxx - ! indicates matched digits, ? indicates no match, x indicates not checked (beyond subnet mask)
Запись для Ethernet0 точно соответствует первым 19 битам, но затем останавливается. Это означает, что это не правильный интерфейс назначения. Вы можете видеть, что интерфейс Ethernet1 соответствует 24 битам адреса назначения. Ах, ха! Пакет связан для интерфейса Ethernet1.
В реальном маршрутизаторе таблица маршрутизации сортируется таким образом, что самые длинные маски подсети проверяются сначала на совпадения (т. Е. На наиболее конкретные маршруты) и численно, так что, как только совпадение найдено, пакет может быть маршрутизирован и дальнейшие попытки сопоставления не требуются (это означает, что 192.168.10.0 будет указан первым, а 192.168.20.0 никогда не будет проверен). Здесь мы немного упрощаем это. Причудливые структуры данных и алгоритмы делают IP-маршрутизаторы быстрее, но простые алгоритмы дают те же результаты.
Статические маршруты
До этого момента мы говорили о нашем гипотетическом маршрутизаторе как о сети, напрямую подключенной к нему. Очевидно, это не так, как устроен мир. По аналогии с вождением пиццы, иногда водителю не разрешается заходить в здание дальше, чем на стойку регистрации, и он должен передать пиццу кому-то другому для доставки конечному получателю (приостановить свое неверие и терпеть меня, пока Я приведу аналогию, пожалуйста).
Давайте начнем с вызова нашего маршрутизатора из предыдущих примеров «Маршрутизатор A». Вы уже знаете таблицу маршрутизации RouterA как:
- Идентификатор сети: 192.168.20.0 (11000000.10101000.00010100.00000000) - маска подсети / 24 - Интерфейсный маршрутизатор A-Ethernet0
- Идентификатор сети: 192.168.10.0 (11000000.10101000.00001010.00000000) - маска подсети / 24 - интерфейсный маршрутизатор A-Ethernet1
Предположим, что есть еще один маршрутизатор, «Маршрутизатор B», с IP-адресами 192.168.10.254/24 и 192.168.30.1/24, назначенными его интерфейсам Ethernet0 и Ethernet1. Он имеет следующую таблицу маршрутизации:
- Идентификатор сети: 192.168.10.0 (11000000.10101000.00001010.00000000) - маска подсети / 24 - интерфейс RouterB-Ethernet0
- Идентификатор сети: 192.168.30.0 (11000000.10101000.00011110.00000000) - маска подсети / 24 - интерфейс RouterB-Ethernet1
В симпатичном искусстве ASCII сеть выглядит так:
Interface Interface
Ethernet1 Ethernet1
192.168.10.1/24 192.168.30.254/24
__________ V __________ V
| | V | | V
----| ROUTER A |------- /// -------| ROUTER B |----
^ |__________| ^ |__________|
^ ^
Interface Interface
Ethernet0 Ethernet0
192.168.20.1/24 192.168.10.254/24
Вы можете видеть, что маршрутизатор B знает, как «добраться до» сети, 192.168.30.0/24, о которой маршрутизатор A ничего не знает.
Предположим, что ПК с IP-адресом 192.168.20.13, подключенным к сети, подключенной к интерфейсу Ethernet0 маршрутизатора A, отправляет пакет маршрутизатору A для доставки. Наш гипотетический пакет предназначен для IP-адреса 192.168.30.46, который является устройством, подключенным к сети, подключенной к интерфейсу Ethernet1 маршрутизатора B.
С таблицей маршрутизации, показанной выше, ни одна из записей в таблице маршрутизации маршрутизатора A не соответствует назначению 192.168.30.46, поэтому маршрутизатор A вернет пакет отправляющему ПК с сообщением «Сеть назначения недоступна».
Чтобы маршрутизатор А «знал» о существовании сети 192.168.30.0/24, мы добавляем следующую запись в таблицу маршрутизации на маршрутизаторе А:
- Идентификатор сети: 192.168.30.0 (11000000.10101000.00011110.00000000) - маска подсети / 24 - доступ через 192.168.10.254
Таким образом, маршрутизатор A имеет запись в таблице маршрутизации, которая соответствует назначению 192.168.30.46 нашего примера пакета. Эта запись в таблице маршрутизации фактически гласит: «Если вы получите пакет, привязанный к 192.168.30.0/24, отправьте его на 192.168.10.254, потому что он знает, как с ним работать». Это аналогичное действие «Передай пиццу на стойке регистрации», о котором я упоминал ранее - передача пакета кому-то еще, кто знает, как доставить его ближе к месту назначения.
Добавление записи в таблицу маршрутизации «вручную» называется добавлением «статического маршрута».
Если Маршрутизатор B хочет доставить пакеты в сеть с маской подсети 255.255.255.0 192.168.20.0, ему также потребуется запись в его таблице маршрутизации:
- Идентификатор сети: 192.168.20.0 (11000000.10101000.00010100.00000000) - маска подсети / 24 - Доступен через: 192.168.10.1 (IP-адрес маршрутизатора A в сети 192.168.10.0)
Это создаст путь для доставки между сетью 192.168.30.0/24 и сетью 192.168.20.0/24 через сеть 192.168.10.0/24 между этими маршрутизаторами.
Вы всегда хотите быть уверены, что маршрутизаторы на обеих сторонах такой «промежуточной сети» имеют запись в таблице маршрутизации для сети «дальнего конца». Если маршрутизатор B в нашем примере не имеет записей в таблице маршрутизации для сети «до конца» 192.168.20.0/24 прикрепленной к маршрутизатору А наш гипотетический пакету с ПК на 192.168.20.13 бы добраться до устройства назначения на 192.168.30.46, но любой ответ, который 192.168.30.46 попытался отправить обратно, будет возвращен маршрутизатором B как «Сеть назначения недоступна». Одностороннее общение обычно нежелательно. Всегда думайте о трафике в обоих направлениях, когда вы думаете об общении в компьютерных сетях.
Вы можете получить много пробега из статических маршрутов. Протоколы динамической маршрутизации, такие как EIGRP, RIP и т. Д., На самом деле представляют собой не что иное, как способ для маршрутизаторов обмениваться друг с другом информацией о маршрутизации, которая фактически может быть настроена со статическими маршрутами. Однако одним из больших преимуществ использования протоколов динамической маршрутизации над статическими маршрутами является то, что протоколы динамической маршрутизации могут динамически изменять таблицу маршрутизации в зависимости от условий сети (использование полосы пропускания, интерфейс отключается и т. Д.) И, как таковые, с использованием динамического протокола. Протокол маршрутизации может привести к конфигурации, которая «обходит» сбои или узкие места в сетевой инфраструктуре. (Протоколы динамической маршрутизации ПУТЬ выходит за рамки этого ответа, хотя.)
Вы не можете добраться туда отсюда
В случае нашего примера маршрутизатора A, что происходит, когда приходит пакет, связанный с «172.16.31.92»?
Глядя на таблицу маршрутизации A, ни интерфейс назначения, ни статический маршрут не соответствуют первым 24 битам 172.18.31.92 (то есть 10101100.00010000.00011111.01011100, BTW).
Как мы уже знаем, маршрутизатор A будет возвращать пакет отправителю с помощью сообщения «Сеть недоступна».
Скажите, что есть другой маршрутизатор (Маршрутизатор C), сидящий по адресу «192.168.20.254». Маршрутизатор C имеет подключение к Интернету!
Interface Interface Interface
Ethernet1 Ethernet1 Ethernet1
192.168.20.254/24 192.168.10.1/24 192.168.30.254/24
__________ V __________ V __________ V
(( heap o )) | | V | | V | | V
(( internet )) ----| ROUTER C |------- /// -------| ROUTER A |------- /// -------| ROUTER B |----
(( w00t! )) ^ |__________| ^ |__________| ^ |__________|
^ ^ ^
Interface Interface Interface
Ethernet0 Ethernet0 Ethernet0
10.35.1.1/30 192.168.20.1/24 192.168.10.254/24
Было бы хорошо, если бы маршрутизатор A мог маршрутизировать пакеты, которые не соответствуют ни одному локальному интерфейсу, до маршрутизатора C, чтобы маршрутизатор C мог отправлять их в Интернет. Введите маршрут «шлюз по умолчанию».
Добавьте запись в конце нашей таблицы маршрутизации следующим образом:
- Идентификатор сети: 0.0.0.0 (00000000.00000000.00000000.00000000) - маска подсети / 0 - Маршрутизатор назначения: 192.168.20.254
Когда мы пытаемся сопоставить «172.16.31.92» с каждой записью в таблице маршрутизации, мы заканчиваем тем, что нажимаем эту новую запись. Сначала это немного сбивает с толку. Мы ищем, чтобы сопоставить ноль бит адреса назначения с ... подождать ... что? Соответствие нулевым битам? Итак, мы вообще не ищем совпадений. Эта запись в таблице маршрутизации говорит, в основном: «Если вы доберетесь сюда, вместо того чтобы отказаться от доставки, отправьте пакет на маршрутизатор в 192.168.20.254 и дайте ему обработать его».
192.168.20.254 - пункт назначения, в который мы ДЕЙСТВИТЕЛЬНО знаем, как доставить пакет. Когда мы сталкиваемся с пакетом, привязанным к пункту назначения, для которого у нас нет конкретной записи в таблице маршрутизации, эта запись «шлюз по умолчанию» всегда будет совпадать (поскольку она соответствует нулевым битам адреса назначения) и дает нам место «последнего средства», которое мы можем отправлять пакеты для доставки. Иногда вы будете слышать шлюз по умолчанию, который называется «шлюз последней инстанции».
Чтобы маршрут шлюза по умолчанию был эффективным, он должен ссылаться на маршрутизатор, который доступен с использованием других записей в таблице маршрутизации. Например, если вы попытались указать шлюз по умолчанию 192.168.50.254 в маршрутизаторе A, доставка к такому шлюзу по умолчанию не удалась бы. 192.168.50.254 не является адресом, который Маршрутизатор А знает, как доставлять пакеты, используя любой из других маршрутов в своей таблице маршрутизации, поэтому такой адрес был бы неэффективен в качестве шлюза по умолчанию. Это можно сформулировать кратко: шлюз по умолчанию должен быть настроен на адрес, который уже доступен при использовании другого маршрута в таблице маршрутизации.
Реальные маршрутизаторы обычно хранят шлюз по умолчанию как последний маршрут в своей таблице маршрутизации, так что он сопоставляет пакеты после того, как им не удалось сопоставить все другие записи в таблице.
Городское планирование и IP-маршрутизация
Разделение IP-подсети на более мелкие IP-подсети - это городское планирование. В городском планировании зонирование используется для адаптации к природным особенностям ландшафта (реки, озера и т. Д.), Для влияния на транспортные потоки между различными частями города и для разделения различных видов землепользования (промышленное, жилое и т. Д.) , IP-подсети действительно очень похожи.
Есть три основные причины, по которым вы бы подключили сеть:
Вы можете хотеть общаться через различные в отличие от средств коммуникации. Если у вас есть W1-соединение T1 между двумя зданиями, на концах этих соединений могут быть размещены IP-маршрутизаторы для облегчения связи через T1. Сети на каждом конце (и, возможно, «промежуточная» сеть на самом T1) будут назначены уникальным IP-подсетям, чтобы маршрутизаторы могли принимать решения о том, какой трафик должен передаваться по линии T1.
В сети Ethernet вы можете использовать подсети, чтобы ограничить объем широковещательного трафика в данной части сети. Протоколы прикладного уровня используют широковещательную способность Ethernet для очень полезных целей. Однако по мере того, как все больше и больше хостов упаковываются в одну и ту же сеть Ethernet, процент широковещательного трафика по проводам (или по беспроводной сети, в беспроводной сети Ethernet) может возрасти до такой степени, что создаст проблемы для доставки не вещательного трафика. (В прежние времена широковещательный трафик мог перегружать ЦП хостов, заставляя их проверять каждый широковещательный пакет. Сегодня это менее вероятно.) Чрезмерный трафик в коммутируемом Ethernet также может проявляться в виде «переполнения кадров в неизвестные места назначения». Это условие вызвано тем, что коммутатор Ethernet не может отслеживать каждый пункт назначения в сети, и является причиной, по которой коммутируемые сети Ethernet не могут масштабироваться до бесконечного числа хостов. Эффект переполнения кадров в неизвестные места назначения аналогичен эффекту избыточного широковещательного трафика для целей подсетей.
Возможно, вы захотите «контролировать» типы трафика, проходящего между различными группами хостов. Возможно, у вас есть устройства сервера печати, и вы хотите, чтобы только авторизованные серверы сервера очереди печати отправляли им задания. Ограничивая трафик, разрешенный для потоковой передачи на подсеть устройства сервера печати, пользователи не могут настроить свои ПК на прямой обмен данными с устройствами сервера печати для обхода учета печати. Вы можете поместить устройства сервера печати в подсеть самостоятельно и создать правило в маршрутизаторе или брандмауэре, подключенном к этой подсети, для управления списком хостов, которым разрешено отправлять трафик на устройства сервера печати. (Как маршрутизаторы, так и брандмауэры обычно могут принимать решения о том, как или следует ли доставлять пакет, на основе адресов источника и назначения пакета. Межсетевые экраны, как правило, являются подвидом маршрутизатора с навязчивой индивидуальностью. Они могут быть очень, очень обеспокоены полезной нагрузкой пакетов, тогда как маршрутизаторы обычно игнорируют полезную нагрузку и просто доставляют пакеты.)
Планируя город, вы можете планировать, как улицы пересекаются друг с другом, и можете использовать улицы с односторонним движением и тупиковые улицы, чтобы влиять на транспортные потоки. Вы могли бы хотеть, чтобы Главная улица была 30 блоков длиной, с каждым блоком, имеющим до 99 зданий каждый. Довольно просто спланировать нумерацию улиц таким образом, чтобы в каждом квартале на Мэйн-стрит диапазон номеров улиц увеличивался на 100 для каждого блока. Очень легко узнать, каким должен быть «начальный номер» в каждом последующем блоке.
При планировании IP-подсетей вам необходимо создать правильное количество подсетей (улиц) с правильным количеством доступных идентификаторов хостов (номеров зданий) и использовать маршрутизаторы для соединения подсетей друг с другом (пересечения). Правила о разрешенных адресах источника и назначения, указанных в маршрутизаторах, могут дополнительно контролировать поток трафика. Брандмауэры могут действовать как навязчивые гаишники.
Для целей этого ответа построение наших подсетей - наша единственная главная задача. Вместо того чтобы работать в десятичном формате, как в случае с городским планированием, вы работаете в двоичном формате, чтобы описать границы каждой подсети.
Продолжение: Как работает подсеть IPv4?
(Да ... мы достигли максимального размера ответа (30000 символов).)