Редактирование: UNИX, осень 2008, 07 лекция (от 12 ноября)
Материал из eSyr's wiki.
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
ПРЕДУПРЕЖДЕНИЕ: Длина этой страницы составляет 41 килобайт. Страницы, размер которых приближается к 32 КБ или превышает это значение, могут неверно отображаться в некоторых браузерах. Пожалуйста, рассмотрите вариант разбиения страницы на меньшие части.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
* '''Диктофонная запись:''' http://esyr.org/lections/audio/uneex_2008_winter/uneex_08_11_12.ogg | * '''Диктофонная запись:''' http://esyr.org/lections/audio/uneex_2008_winter/uneex_08_11_12.ogg | ||
- | = Лекция = | ||
- | == Вступление == | ||
Лектор удивлен количеством народа. | Лектор удивлен количеством народа. | ||
Сегодня запланирован Internet Protocol (IP). | Сегодня запланирован Internet Protocol (IP). | ||
Строка 8: | Строка 6: | ||
Мы рассказали, как устроены идентификация и маршрутизация в Интернете. | Мы рассказали, как устроены идентификация и маршрутизация в Интернете. | ||
Поговорили про нестандартную маршрутизацию. | Поговорили про нестандартную маршрутизацию. | ||
- | Не говорили про IPv6 ( | + | Не говорили про IPv6 (был доклад о нем). |
Не говорили про протоколы уровня IP, которые существуют на этом уровне, не поднимаясь на транспортный уровень. | Не говорили про протоколы уровня IP, которые существуют на этом уровне, не поднимаясь на транспортный уровень. | ||
Строка 16: | Строка 14: | ||
На интерфейсном уровне есть привязка к железу, или к несуществующей сущности (например, VLAN). | На интерфейсном уровне есть привязка к железу, или к несуществующей сущности (например, VLAN). | ||
- | + | PPP (протокол интерфейсного уровня). | |
- | + | ||
Есть какая-то СПД, которая как-то передает данные. | Есть какая-то СПД, которая как-то передает данные. | ||
Мы знаем, что эта СПД, возможно, не предназначена для организации протокола верхнего уровня (IP). | Мы знаем, что эта СПД, возможно, не предназначена для организации протокола верхнего уровня (IP). | ||
Строка 28: | Строка 25: | ||
Может быть SSH-туннелирование, которое сводится именно к потоку байт. | Может быть SSH-туннелирование, которое сводится именно к потоку байт. | ||
- | Итак, PPP ( | + | Итак, PPP (Peer-to-peer). |
Это средство наладить передачу IP-пакетов поверх почти любой СПД. | Это средство наладить передачу IP-пакетов поверх почти любой СПД. | ||
Интерфейсный уровень. | Интерфейсный уровень. | ||
Или уровень Data Link (2) семиуровневой модели ISO/OSI. | Или уровень Data Link (2) семиуровневой модели ISO/OSI. | ||
- | === Проблемы === | ||
Какие проблемы? | Какие проблемы? | ||
У него всего два конца. | У него всего два конца. | ||
Это не проблема, если СПД — двунаправленный поток байтов. | Это не проблема, если СПД — двунаправленный поток байтов. | ||
Организуя PPP по Ethernet, мы не требуем всех свойств Ethernet. | Организуя PPP по Ethernet, мы не требуем всех свойств Ethernet. | ||
- | Нужен только | + | Нужен только потой байтов в обе стороны. |
Настраивая IP, мы присваиваем IP-адрес. | Настраивая IP, мы присваиваем IP-адрес. | ||
Команда ip addr может быть работать непохоже на стандартный режим. | Команда ip addr может быть работать непохоже на стандартный режим. | ||
Строка 87: | Строка 83: | ||
Для передачи необходима поддержка со стороны системы. | Для передачи необходима поддержка со стороны системы. | ||
Заворичиваем поток байт во фреймы. | Заворичиваем поток байт во фреймы. | ||
- | |||
- | === pty/ttyP === | ||
Есть eth0, из него лезут внутренние пакеты. | Есть eth0, из него лезут внутренние пакеты. | ||
Некоторые — пакеты PPPoE. | Некоторые — пакеты PPPoE. | ||
Строка 123: | Строка 117: | ||
Недостаток — ограничены одним Ethernet-сегментом. | Недостаток — ограничены одним Ethernet-сегментом. | ||
- | Еще одно часто встречающее место — pptp ( | + | Еще одно часто встречающее место — pptp (point-to-point protocol). |
Это семейство протоколов. | Это семейство протоколов. | ||
Для выдачи обычному пользователю доступа в Интернет используется еще чаще. | Для выдачи обычному пользователю доступа в Интернет используется еще чаще. | ||
- | === Туннелирование. GRE. === | ||
Задача — попробовать изобрести комплект протоколов уровнем выше. | Задача — попробовать изобрести комплект протоколов уровнем выше. | ||
Мы не можем воспользоваться интерфейсным уровнем, нужен сетевой, чтобы была хотя бы маршрутизация. | Мы не можем воспользоваться интерфейсным уровнем, нужен сетевой, чтобы была хотя бы маршрутизация. | ||
Строка 160: | Строка 153: | ||
Соединение на 1723 легко можно порезать файрволлом. | Соединение на 1723 легко можно порезать файрволлом. | ||
- | === L2TP (Level 2 Tunneling Protocol) === | ||
В качестве замены позиционируется L2TP (Level 2 Tunneling Protocol). | В качестве замены позиционируется L2TP (Level 2 Tunneling Protocol). | ||
Это часть стека IPv6 (по стандарту). | Это часть стека IPv6 (по стандарту). | ||
Строка 173: | Строка 165: | ||
Видимо, есть какие-то проблемы с невозможностью вставить в IP-пакет нужную информацию. | Видимо, есть какие-то проблемы с невозможностью вставить в IP-пакет нужную информацию. | ||
- | + | IPSec (IP Security). | |
Часть протокола IPv6. | Часть протокола IPv6. | ||
Часть стандарта. | Часть стандарта. | ||
Строка 179: | Строка 171: | ||
Лектор видел реализации. | Лектор видел реализации. | ||
В принципе, работает хорошо и достаточно надежно. | В принципе, работает хорошо и достаточно надежно. | ||
- | |||
RAME, Strong SWAN. | RAME, Strong SWAN. | ||
Две разные реализации одного и того же. | Две разные реализации одного и того же. | ||
Строка 186: | Строка 177: | ||
Разговоривать про настройку не будем. | Разговоривать про настройку не будем. | ||
Из название следует, что это возможность обеспечить защиту на уровне IP. | Из название следует, что это возможность обеспечить защиту на уровне IP. | ||
- | |||
Самая простая идея — взять каждый пакет и его зашифровать. | Самая простая идея — взять каждый пакет и его зашифровать. | ||
Вопрос как? | Вопрос как? | ||
Строка 193: | Строка 183: | ||
Если же заголовок не шифровать, какая тут защита, если видно, что мы залезли на сервер ICQ. | Если же заголовок не шифровать, какая тут защита, если видно, что мы залезли на сервер ICQ. | ||
Проблема нерешаемая. | Проблема нерешаемая. | ||
- | |||
Варианты решения: организовать туннель. | Варианты решения: организовать туннель. | ||
- | Мы полностью шифруем весь IP-пакет вместе с заголовками, к | + | Мы полностью шифруем весь IP-пакет вместе с заголовками, к ниму присобачивается IPSec-пакет и новый IP-заголовок. |
Все пакеты будут выглядеть как «это пакет IPSec». | Все пакеты будут выглядеть как «это пакет IPSec». | ||
Чем идея хороша? | Чем идея хороша? | ||
Это организация туннеля на уровне IP. | Это организация туннеля на уровне IP. | ||
IP over IP. | IP over IP. | ||
- | |||
Каждый пакет шифруется, снабжается достаточной информацией, посылается. | Каждый пакет шифруется, снабжается достаточной информацией, посылается. | ||
Проблемы: если раньше написано, что это аська, то сейчас неизвестно и никто не знает. | Проблемы: если раньше написано, что это аська, то сейчас неизвестно и никто не знает. | ||
Строка 212: | Строка 200: | ||
Но не шифруются поля IP-пакета, которые могут видоизменяться. | Но не шифруются поля IP-пакета, которые могут видоизменяться. | ||
Адрес отправителя не шифруется, вдруг проходит через NAT. | Адрес отправителя не шифруется, вдруг проходит через NAT. | ||
- | |||
Достоинства: такой пакет выглядит обычно. | Достоинства: такой пакет выглядит обычно. | ||
Любой маршрутизатор увидит обычный пакет с обычным типом протокола. | Любой маршрутизатор увидит обычный пакет с обычным типом протокола. | ||
- | |||
Проблемы две. | Проблемы две. | ||
Первая — утечка security, ибо открыты адрес отправителя, получателя. | Первая — утечка security, ибо открыты адрес отправителя, получателя. | ||
- | |||
Вторая более хитрая. | Вторая более хитрая. | ||
Все IPSecurity — не IPCrypt. | Все IPSecurity — не IPCrypt. | ||
Строка 224: | Строка 209: | ||
Поворачиваем башню танка на 90 градусов. | Поворачиваем башню танка на 90 градусов. | ||
Посылаем еще дважды, башня танка поворачивается еще на 180 градусов. | Посылаем еще дважды, башня танка поворачивается еще на 180 градусов. | ||
- | |||
Помимо этого нужно обеспечить возможность идентификации каждого пакета, какой абонент отправил пакет и так далее. | Помимо этого нужно обеспечить возможность идентификации каждого пакета, какой абонент отправил пакет и так далее. | ||
Способ идентификации. | Способ идентификации. | ||
Строка 245: | Строка 229: | ||
Сначала устанавливается соединение, затем происходит удостоверение личности друг друга. | Сначала устанавливается соединение, затем происходит удостоверение личности друг друга. | ||
- | + | Протокол ICMP (Internet Control Message Protocol). | |
На уровне IP есть еще один важный протокол. | На уровне IP есть еще один важный протокол. | ||
Предназначен для передачи служебной информации, в случае, если произошла ошибка, например, или эту информацию запросили. | Предназначен для передачи служебной информации, в случае, если произошла ошибка, например, или эту информацию запросили. | ||
Крайне простой протокол, около 20 типов того, что может присылать машина. | Крайне простой протокол, около 20 типов того, что может присылать машина. | ||
- | В основном — запросы и | + | В основном — запросы и овтеты. |
- | На всякие ситуации, связанные с той или иной | + | На всякие ситуации, связанные с той или иной неработоспобностью сетевого протокола, существует ICMP запросы. |
- | + | Пример — утилита ping. | |
- | + | ||
Не гарантирует. | Не гарантирует. | ||
«Системный администратор зарезал ping». | «Системный администратор зарезал ping». | ||
Строка 258: | Строка 241: | ||
Утилита посылает запрос вида «Жив ли ты?». | Утилита посылает запрос вида «Жив ли ты?». | ||
Адресат отвечает, если хочет, что он жив. | Адресат отвечает, если хочет, что он жив. | ||
- | |||
NAT. | NAT. | ||
Каждый ICMP-запрос сделан так, что когда мы получаем ответ, мы знаем, от кого ответ (пингуем несколько сайтов на одном сервере). | Каждый ICMP-запрос сделан так, что когда мы получаем ответ, мы знаем, от кого ответ (пингуем несколько сайтов на одном сервере). | ||
Строка 265: | Строка 247: | ||
Когда значение ttl равно 0, считается, что пакет не дошел и посылается соответствующее уведомление. | Когда значение ttl равно 0, считается, что пакет не дошел и посылается соответствующее уведомление. | ||
Пакет может зациклиться, так что в конце концов он все же сбросится. | Пакет может зациклиться, так что в конце концов он все же сбросится. | ||
- | |||
Что делать в случае, если закрыт ping? | Что делать в случае, если закрыт ping? | ||
- | Если на сервере есть сайт, можно попробовать | + | Если на сервере есть сайт, можно попробовать на 80 порт. |
tcping. | tcping. | ||
- | + | Программа traceroute. | |
Программа посылает ICMP-запрос. | Программа посылает ICMP-запрос. | ||
- | |||
Механизм работы следующий. | Механизм работы следующий. | ||
Первый пакет имеет ttl равный единице. | Первый пакет имеет ttl равный единице. | ||
Строка 278: | Строка 258: | ||
Следующий — с ttl равным 2. | Следующий — с ttl равным 2. | ||
Таким образом traceroute добивается ситуации, когда пакет все же доходит. | Таким образом traceroute добивается ситуации, когда пакет все же доходит. | ||
- | |||
Мы видим как бы путь, по которому шел пакет. | Мы видим как бы путь, по которому шел пакет. | ||
Реально пути мы не видим, мы видим конец пути, по которому шел первый пакет, второй пакет и т. д. | Реально пути мы не видим, мы видим конец пути, по которому шел первый пакет, второй пакет и т. д. | ||
Строка 284: | Строка 263: | ||
Маршрутизатор может изменить канал. | Маршрутизатор может изменить канал. | ||
Пакет, пришедший 6, может идти по другому пути, нежели 7 пакет. | Пакет, пришедший 6, может идти по другому пути, нежели 7 пакет. | ||
- | |||
Легенда о том, что если мы работаем с сайтом и параллельно пингуем, работа идет быстрее. | Легенда о том, что если мы работаем с сайтом и параллельно пингуем, работа идет быстрее. | ||
Может иметь место при оптимизации маршрутизаторами пути. | Может иметь место при оптимизации маршрутизаторами пути. | ||
- | === Need to fragment === | ||
Еще один тип ICMP-ответов, которые нельзя резать. | Еще один тип ICMP-ответов, которые нельзя резать. | ||
- | + | Need to fragment. | |
- | + | В IPv4 есть фрагментация пакета, если он не влезает. | |
- | + | В IPv6 нет фрагментации IP-пакета. | |
+ | Вместо этого клиенты обязаны использовать механизм MTU path discovery. | ||
Internet — от internetwork. | Internet — от internetwork. | ||
Среды могут иметь MTU разного размера. | Среды могут иметь MTU разного размера. | ||
- | Для того, чтобы не происходила ситуация, при которой фрейм приходит 1500, и нужно | + | Для того, чтобы не происходила ситуация, при которой фрейм приходит 1500, и нужно послать 1492 и 8 байт. |
Можно запретить маршрутизатору принимать такие пакеты, а можно посылать сообщение Need to fragment. | Можно запретить маршрутизатору принимать такие пакеты, а можно посылать сообщение Need to fragment. | ||
Отправитель должен получить и обработать. | Отправитель должен получить и обработать. | ||
Когда этому абоненту приспичит посылать туда же еще один пакет, его размер должен быть не больше указанного в сообщении Need to fragment. | Когда этому абоненту приспичит посылать туда же еще один пакет, его размер должен быть не больше указанного в сообщении Need to fragment. | ||
- | |||
Этот механизм замечательно работает. | Этот механизм замечательно работает. | ||
В IPv4 возможны ситуации. | В IPv4 возможны ситуации. | ||
На маршрутизаторе это включено для минимизации нагрузки на Интернет. | На маршрутизаторе это включено для минимизации нагрузки на Интернет. | ||
Такая фигня может увеличить вдвое количество фреймов. | Такая фигня может увеличить вдвое количество фреймов. | ||
- | + | ICMP зарезан. | |
- | + | ||
Мы заходим на сайт и видим несколько букв. | Мы заходим на сайт и видим несколько букв. | ||
Потом еще несколько букв. | Потом еще несколько букв. | ||
Строка 317: | Строка 293: | ||
- | + | Конспект eSyr: | |
<div style="font-size:50%"> | <div style="font-size:50%"> | ||
Отстутпление номер 1. | Отстутпление номер 1. |