Каждый интернет-хост обладает по крайней мере одним численным IP-адресом в виде
примечание
С технической точки зрения IP-адрес состоит из 4 байт (или 32 бит), abcd. Байты a и d являются числами от 1 до 254, а байты b и c — числами от 0 до 255. Компьютер обрабатывает IP-адреса в виде «сырых» байтов. Тем не менее человеку намного проще читать и записывать адрес в виде четверки чисел, разделенных точками, вроде 10.23.2.37, а не в виде неприглядного шестнадцатеричного числа 0x0A170225.
Рис. 9.2. Сеть с IP-адресами
IP-адреса напоминают почтовые адреса. Чтобы взаимодействовать с другим хостом, ваш компьютер должен знать IP-адрес этого хоста. Посмотрим на адреса в вашем компьютере.
9.3.1. Просмотр IP-адресов компьютера
У одного хоста может быть несколько IP-адресов. Чтобы увидеть адреса, которые активны на вашем компьютере с Linux, запустите такую команду:
$ ifconfig
Результат вывода окажется, вероятно, довольно обширным, но он должен содержать нечто подобное:
eth0 Link encap:Ethernet HWaddr 10:78:d2:eb:76:97
inet addr:10.23.2.4 Bcast:10.23.2.255 Mask:255.255.255.0
inet6 addr: fe80::1278:d2ff:feeb:7697/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:85076006 errors:0 dropped:0 overruns:0 frame:0
TX packets:68347795 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:86427623613 (86.4 GB) TX bytes:23437688605 (23.4 GB)
Interrupt:20 Memory:fe500000-fe520000
Вывод команды ifconfig включает множество деталей об интернет-уровне и о физическом уровне (иногда он даже совсем не содержит интернет-адреса!). Более подробно мы обсудим этот вывод позже, а сейчас сосредоточимся на второй строке, которая сообщает, что хост настроен на использование адреса IPv4 (inet addr) 10.23.2.4. В той же самой строке для параметра Mask указано значение 255.255.255.0. Это
примечание
Команда ifconfig, подобно некоторым другим, которые вы встретите в этой главе (такие как route и arp), на техническом уровне вытеснена более новой командой ip. Команда ip способна выполнить больше, чем старые команды, и она предпочтительнее при написании сценариев. Однако большинство пользователей по-прежнему использует старые команды при настройки сети вручную, и такие команды также могут быть применены в других версиях Unix. По этой причине мы будем применять команды «в старом стиле».
9.3.2. Подсети
Подсеть определяется с помощью двух фрагментов:
Не сразу понятно, каким образом префикс и маска работают совместно, чтобы дать вам все возможные IP-адреса в подсети. Выяснить это поможет просмотр данных чисел в двоичном представлении. Маска отмечает положения битов в IP-адресе, которые являются общими для подсети. Вот, например, двоичная запись адресов 10.23.2.0 и 255.255.255.0:
10.23.2.0: 00001010 00010111 00000010 00000000
255.255.255.0: 11111111 11111111 11111111 00000000
Теперь выделим жирным шрифтом те положения битов в адресе 10.23.2.0, которые являются единицами в адресе 255.255.255.0:
10.23.2.0: 00001010 00010111 00000010 00000000
Посмотрите на биты, которые
Собирая все воедино, можно понять, как хост с IP-адресом 10.23.2.1 и маской подсети 255.255.255.0 оказывается в той же подсети, что и любой другой компьютер, IP-адрес которого начинается с 10.23.2. Можно обозначить в целом эту подсеть как 10.23.2.0/255.255.255.0.
9.3.3. Распространенные маски подсети и нотация CIDR