2

Почему 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 add 172.18.0.150/25 dev ethX
или же
ip route add 172.18.0.150/24 dev ethX
или же
ip route add 172.18.0.150/23 dev ethX
или же
ip route add 172.18.0.150/8 dev ethX

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

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

5 ответов5

9

Некоторые основы 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, это очень много вещей для записи. Более короткая запись - это не маска сети, а число 1 в маске сети: 172.18.0.150/24 или 172.18.0.150/20. Как вы знаете, 1 всегда являются самыми старшими битами, поэтому ясно, что означает "/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 протостатическая метрика 1024
10.0.0.0/8 через 172.16.1.1 dev eth0
169.254.0.0/16 dev eth1 scope link метрика 1000
172.16.0.0/16 dev eth0 прото ядро область ссылка src 172.16.126.31
192.168.178.0/24 dev eth1 Прото-ядро область ссылки src 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), он может использовать более эффективные транспорты локальной сети для прямой связи с пунктами назначения в той же сети.

2

Нотация CIDR - это синтаксис для указания IP-адресов и связанного с ними префикса маршрутизации. Он добавляет символ косой черты к адресу и десятичному числу старших бит префикса маршрутизации, например, 192.168.2.0/24 для IPv4 и 2001:db8::/32 для IPv6.

IP/CIDR     Δ to last IP addr       Mask              Hosts (*)     Size    
a.b.c.0/24    +0.0.0.255         255.255.255.000        256          1 C    

Источник / Ссылка Здесь

1

это никогда не чужие заботы.

Хорошо знать, к какой подсети принадлежит 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.

1

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

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, но какой, и как к вам добраться ... и т.д ..

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .