Почему IP-адрес указан как 172.18.0.150/24?

Почему IP-адрес указан как 172.18.0.150/24?

Почему IP-адрес указан с этой записью 172.18.0.150/24? Я имею в виду, что IP-адрес 172.18.0.150, только почему у него /24?, а затем, в какой подсети он находится, это должно заботить кого-то другого, не так ли?

3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether f8:b1:56:ba:ae:ee brd ff:ff:ff:ff:ff:ff
inet 172.18.0.150/24 brd 172.18.0.255 scope global eth0

Если я хочу достичь 172.18.0.150 на каком-либо интерфейсе (ethX) на другом компьютере, я могу добавить в таблицу маршрутизации этого компьютера:

добавить ip route 172.18.0.150/25 dev ethX
или
добавить ip route 172.18.0.150/24 dev ethX
или
добавить ip route 172.18.0.150/23 dev ethX
или
добавить ip route 172.18.0.150/8 dev ethX

верно? Так какое отношение /24 имеет к моему адресу на моей сетевой карте? Кажется, он имеет отношение только к маршрутизации, не так ли? Так зачем же его указывать в ip addr?

Находится ли 172.18.0.150/24 в той же «сети», что и 172.18.0.150/8, или это два совершенно разных IP-адреса?

решение1

Некоторые основы IP-адресов

IP-адреса внутренне представлены как 32-битное значение. Верхние N бит идентифицируют сеть, остальная часть числа идентифицирует хост в сети.

Давайте рассмотрим два примера IP-адресов. Сначала рассмотрим 32-битные:

10101100000100100000000010010110
10101100000100100000000110010110

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

сгруппированные:
10101100 00010010 00000000 10010110
10101100 00010010 00000001 10010110
сгруппированные и десятичные:
172.18.0.150
172.18.1.150

Теперь вопрос: "находятся ли эти IP-адреса в одной сети"? Это зависит от конфигурации сети. Возьмем для примера сетевую маску

11111111 11111111 11111111 00000000

(Единицы — для сети, нули — для хоста.)

Накладывая это на два IP, вы видите, что оба IP-адреса находятся в разных сетях. Если бы маска была 255.255.0.0, они были бы в одной сети.

Другая сеть:
11111111 11111111 11111111 00000000
10101100 00010010 00000000 10010110
10101100 00010010 00000001 10010110
Та же сеть:
11111111 11111111 00000000 00000000
10101100 00010010 00000000 10010110
10101100 00010010 00000001 10010110

Как и в случае с IP-адресами, сетевые маски также могут быть записаны в десятичном формате с точками: 255.255.255.0 или 255.255.0.0. Если вам теперь нужно записать полный IP и сетевую маску, например, 172.18.0.150/255.255.255.0 или 172.18.0.150/255.255.240.0, то это будет много всего. Более короткая запись не даст сетевую маску, а укажет количество единиц в сетевой маске: 172.18.0.150/24 или 172.18.0.150/20. Как вы знаете, единицы всегда являются самыми верхними битами, поэтому ясно, что означает "/24" или "/20".

Некоторые основы маршрутизации

Если вы еще не читали моюответ на использование MAC-адресовВозможно, вам стоит сделать это сейчас.

Короче говоря: если компьютер отправляет IP-пакет, он сначала проверяет, находится ли IP-адрес назначения в той же сети, что и сам компьютер (исходный IP-адрес). Если это так, компьютер может отправить пакет напрямую в сеть, а целевой компьютер может его получить. Если IP-адрес назначения не находится в той же сети, то компьютер не может напрямую достичь цели, а должен отправить пакет на следующий маршрутизатор. Таблицы маршрутизации сообщают маршрутизатору, для каких сетей он должен подключаться к какому маршрутизатору (например, «если сеть 172.18.0.0/24, то маршрутизатор 1.1.1.1»). Этот маршрутизатор снова проверит, может ли он напрямую достичь IP-адреса назначения или ему нужно переслать пакет на следующий маршрутизатор.

Если вы хотите посмотреть таблицу маршрутизации вашего компьютера, вы можете использовать ip route.

Имейте в виду, что на стороне получателя сетевая маска не имеет значения. 172.18.0.150/24 или 172.18.0.150/8 — это оба 172.18.0.150, и если компьютер получит пакет для 172.18.0.150, он его потребит. Сетевая маска используется только на стороне отправителя. Если компьютер A отправляет пакет с адреса aaaa/n на компьютер B с адресом bbbb/m, то отправитель A сравнит верхние n бит исходного адреса aaaa и верхние n бит bbbb. Если оба равны, то aaaa и bbbb находятся в одной сети (и n должно быть равно m), и пакет можно отправить напрямую. Если нет, то сети не равны (не имеет значения, что n может не быть равно m), и пакет должен быть отправлен маршрутизатору, который перешлет пакет.

Понимание вывода "ip route"

Возьмем для примера компьютер с двумя сетевыми картами:

по умолчанию через 192.168.178.3 dev eth1 proto статическая метрика 1024
10.0.0.0/8 через 172.16.1.1 dev eth0
169.254.0.0/16 dev eth1 область ссылки метрика 1000
172.16.0.0/16 dev eth0 proto ядро ​​область ссылки источник 172.16.126.31
192.168.178.0/24 dev eth1 proto ядро ​​область ссылки источник 192.168.178.21

Строки 3–5 получены из IP-адресов, настроенных на сетевых картах ( ip addr). Они сообщают компьютеру, что если отправляемый пакет соответствует, например, сети 172.16.0.0/16, он должен быть отправлен на eth0 (который в моем случае настроен на IP-адрес 172.16.126.31). Вторая строка — это определенный маршрут, который я добавил. В нем говорится, что пакеты на 10.0.0.0/8 должны быть отправлены на 172.16.1.1 на eth0. Первая строка указывает шлюз/маршрутизатор по умолчанию для пакетов, которые не соответствуют ни одной другой заданной сети.

Кто решает, что такое сеть?

На высшем уровнеRFC3330определяет, что не все IP-адреса предназначены для широкого использования, но некоторые диапазоны зарезервированы для специальных целей. Одним из примеров является сеть 127.0.0.0/8. Наиболее заметным адресом в этом диапазоне является 127.0.0.1 (имя: localhost), который идентифицирует ваш собственный компьютер. Этот IP, конечно, полезен только на вашем собственном компьютере, потому что каждый пакет, отправленный в эту сеть, никогда не покидает ваш компьютер. Взяв все возможные IP-адреса и удалив зарезервированные диапазоны, вы все равно получите пул доступных сетей. Этот большой пул управляется ICANN. Следующий уровень иерархии — пять региональных интернет-регистраторов (например, RIPE NCC). Они получают диапазоны IP-адресов от ICANN и продают их своим собственным клиентам — локальным интернет-регистраторам. Они продают их конечным клиентам (например, компаниям).

Решение о том, как разделить весь диапазон IP-адресов, принимает каждый менеджер пула. Допустим, вы ICANN и управляете диапазоном 50.0.0.0/8-100.0.0.0/8. Если сейчас RIPE NCC запросит некоторые IP-адреса, вы можете дать им 50.0.0.0/16 или 50.0.0.0/8 или 50.0.0.0/8 до 60.0.0.0/8. То же самое относится к RIPE NCC и локальным интернет-реестрам. Они могут предоставлять большие или маленькие сети. В старые добрые времена реестры были довольно неохотными, и поэтому все еще существуют крупные университеты или компании с широкими диапазонами адресов, которые им никогда полностью не были нужны. Некоторые университеты получили сети /8, поэтому у них есть 24 бита для хоста. Это означает, что они могут адресовать более 16 миллионов компьютеров. Если у них всего несколько тысяч компьютеров, то это означает, что миллионы IP-адресов зарезервированы для этого клиента, но никогда не используются - какая трата. Так что в последнее время вы больше не получаете большие диапазоны, вы должны спорить, действительно ли вам нужен большой диапазон.

В любом случае, как бы вы ни решили продавать диапазоны IP-адресов (сети), вы должны помнить, что крупные маршрутизаторы в Интернете должны знать, как достичь практически любой из существующих сетей. Если вы продаете очень маленькие сети, вы можете получить 10.0.0.0/24 и 10.1.0.0/24 в Европе, 10.0.1.0/24 и 10.1.1.0/24 в Азии и 10.0.2.0/24 и 10.1.2.0/24 в Африке. Это означает, что маршрутизатор в конечном итоге получит множество записей небольших сетей в таблице маршрутизации. Если бы вы давали 10.0.0.0/16 Европе, 10.1.0.0/16 Азии и 10.2.0.0/16 Африке, у вас было бы только три записи для больших сетей в таблице маршрутизации.

Но это все не наша проблема, это дело интернет-регистраторов. Не совсем, потому что...

Когда и как мне нужно настраивать сеть?

В случае, если вы используете маршрутизатор компании, вы можете получить диапазон 40.41.0.0/16 и назначить эти IP-адреса своим компьютерам по своему усмотрению. Но в этом случае все компьютеры должны находиться в одной физической сети (без маршрутизаторов между ними). ​​Это может привести к плохой производительности для больших сетей, поэтому вы можете захотеть разделить сети. Если у вас, например, два здания, то вы можете выделить 40.41.0.0/17 для здания один и 40.41.128.0/17 для здания два.

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

Если вы используете широкополосный маршрутизатор или маршрутизатор компании, вы могли видеть частные сетевые IP-адреса, такие как 172.16.0.0/12. IP-адрес, который вы указали (172.18.0.150), является таким частным IP-адресом (вы можете легко проверить это, используя свои новые знания о сетевых масках). Они используются, если вы получили N публичных IP-адресов (в случае обычного интернет-провайдера N=1) из вашего локального интернет-реестра, но у вас есть M>N устройств, которым нужен IP-адрес. В этом случае маршрутизатор имеет один публичный IP-адрес (используется для всего трафика в Интернет и из Интернета), а также частную сеть с частными IP-адресами. В вашем случае маршрутизатор просто взял частную сеть 172.18.0.0/24 и выдал IP-адреса из этой сети каждому из ваших ПК.

Но что, если чей-то маршрутизатор также занимает 172.18.0.0/24? Удивительно, но это не проблема. Это потому, что 172.16.0.0/12 — это частный диапазон адресов. Вы никогда не увидите IP-адреса этого диапазона в публичном Интернете. Если вы отправляете пакет в Интернет, указав 172.18.0.150 в качестве исходного адреса, то маршрутизатор заменит 172.18.0.150 на публичный IP-адрес, который вам дал интернет-провайдер. Если маршрутизатор получает пакет, отправленный на публичный IP-адрес, он определяет, на какой из ваших компьютеров он должен отправить пакет, и изменяет IP-адрес назначения на IP-адрес частной сети вашего компьютера.

решение2

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

Если вы сообщите своему компьютеру, что «все IP-адреса от 192.168.0.1 до 192.168.0.254 напрямую доступны по этому каналу» (192.168.0.X/24), он сможет использовать более эффективные транспортные протоколы локальной сети для прямого взаимодействия с пунктами назначения в той же сети.

решение3

это никогда не забота кого-то другого.

Полезно знать, к какой подсети принадлежит IP-адрес.

Представьте, что вы создаете подсеть, используя/25. В этом случае 172.18.0.127и, 172.18.0.128кажется, находятся в одной подсети, потому что они последовательны, но они находятся вразные подсети.

Необходимо указать адреса как 172.18.0.127/25и 172.18.0.128/25. Чтобы вы знали, где находится каждый из них.

Это простой пример, но ситуация может ухудшиться, если диапазон 172.18.0.128 to 172.18.0.255снова будет разделен на подсети, например, с помощью/26.

решение4

Часть после косой черты — это количество бит маски подсети, которые нужно использовать. Пример:

192.168.1.1/24 is 192.168.1.1 255.255.255.0

255.255.255.0используется 24для 32 bitsсоздания подсети.

В двоичном виде это выглядит так:

11111111.11111111.11111111.00000000

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

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