Результаты команды traceroute могут быть непоследовательными. Например, на некотором шаге ответы могут прерваться, чтобы затем «заново возникнуть» на следующих шагах. Обычно причиной является отказ маршрутизатора на этом шаге вернуть отладочный вывод, который ожидает команда traceroute, но при этом маршрутизаторы следующих этапов благополучно возвращают результат. Более того, маршрутизатор мог бы назначить более низкий приоритет отладочному трафику по сравнению с нормальным.
9.5.3. Служба DNS и хост
IP-адреса трудно запомнить, к тому же они могут измениться. Именно поэтому мы обычно пользуемся вместо них именами вроде www.example.com. Библиотека службы DNS в вашей системе, как правило, автоматически выполняет это преобразование, но иногда вам может потребоваться вручную перевести имя в IP-адрес. Чтобы определить IP-адрес, стоящий за доменным именем, используйте такую команду host:
$ host www.example.com
www.example.com has address 93.184.216.119
www.example.com has IPv6 address 2606:2800:220:6d:26bf:1447:1097:aa7
Обратите внимание на то, что в этом примере есть как адрес версии IPv4 (93.184.216.119), так и более длинный адрес версии IPv6. Это означает, что данный хост обладает также адресом сети Интернет следующего поколения.
Можно также использовать команду host наоборот: введите IP-адрес вместо имени хоста, чтобы попытаться определить имя хоста, соответствующее данному IP-адресу. Не ожидайте, что это будет работать надежно. Многие имена хостов могут представлять один и тот же IP-адрес, и служба DNS не знает, как определить, которое из имен соответствует указанному адресу. Администратор домена должен вручную настраивать это обратное определение, но зачастую администраторы этого не делают. Помимо команды host, есть много других моментов, относящихся к службе DNS. Мы рассмотрим основную конфигурацию клиента позже, в разделе 9.12.
9.6. Физический уровень и сеть Ethernet
Об Интернете следует усвоить одну ключевую идею — он является сетью программного обеспечения. Ничто из рассмотренного нами до настоящего момента не привязано к какому-либо аппаратному средству, и даже более того: одной из причин успеха Интернета является его способность работать практически в любом типе компьютера, операционной системы и физической сети. Тем не менее по-прежнему необходимо помещать сетевой уровень поверх какого-либо аппаратного обеспечения, и такой интерфейс называется физическим уровнем.
В данной книге мы рассмотрим наиболее распространенный тип физического уровня — сеть Ethernet. Семейство стандартов IEEE 802 определяет различные типы сетей Ethernet, от проводных до беспроводных, но их все объединяют некоторые ключевые особенности.
• Все устройства сети Ethernet обладают адресом
• Устройства в сети Ethernet отправляют сообщения в виде
На самом деле сеть Ethernet не пытается выйти за рамки аппаратного обеспечения для одной сети. Если, например, у вас есть две различные сети Ethernet с одним хостом, подключенным к обеим сетям (и два различных устройства сетевого интерфейса), вы не сможете напрямую передать кадр из одной сети Ethernet в другую, если вы не настроите специальный Ethernet-мост. Именно здесь возникают более высокие сетевые уровни (такие как интернет-уровень). По договоренности каждая сеть Ethernet является обычно и подсетью Интернета. Даже если кадр не может покинуть физическую сеть, маршрутизатор способен извлечь данные из кадра, заново упаковать их и отправить хосту другой физической сети — именно это и происходит в сети Интернет.
9.7. Понятие о сетевых интерфейсах ядра
Физический и интернет-уровни должны быть соединены таким способом, который позволяет интернет-уровню сохранять свою не зависящую от аппаратных средств гибкость. Ядро Linux обеспечивает собственное разделение этих двух уровней и предоставляет стандарты коммуникации для их соединения под названием