UNИX, осень 2008, 04 лекция (от 22 октября)

Материал из eSyr's wiki.

Версия от 15:48, 22 октября 2008; ESyr01 (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Сегодня по плану интерфейсный уровень.

Лектор напоминает, что на первой лекции он набросал происхождение TCP/IP, как он понимает, а на второй попытался углубитьсяв аппаратный уровень. Углубление было непрофессиональное, поск. пришлось стокнуться с большим еоличеством несист. документации, и не смог сделать из неё выжимку. Те, ктсо заглядывал в доку по Фастезернету, то там очень много уровней завязано на инт. уровень. Сам фастезернет имеет много подуровней, и одни из них проинадлежат совсем аппаратному уровню, есть подуровню, которым должен отвечать интерфейсный уровень, и тем самым принцип нез. уровней нарушается. Нарушается он не так сильно, можно провести границу, но производитель её не проводит. Также важно заметить, что именно с инт. уровня нач. разговор об ОС как таковой, поск. то, что кас. проводлолв, никак не контр. ОС, а вот что касается интерфейсов ... .

На самом деле, выглядит всё дост. просто. Раньше, когда расск. про инт. уровень, лектор упоминал про token ring, но сейчас ему лень про него рассказывать, да и оно нигде не исп. С другой стороны, то, что сейчас имеется, практ. невозм. изучать. ППоэтому приходиться довольствоваться разного рода мизами, которым и приходится в той или иной мере доверять, и это надо учитывать: то, что будет расск., это не точно фастэзеренет, это некий набор мифов, которые так и надо воспр.

Что имеем на инт. уровне: есть кабель, воткнули его разными концами в интерфейсы. СПД служит для общения, и через неё любое устр. может обр. к любому. Искл. довольно важные подр., лектор скажет, что данные, ходящие по сети, дост. любому устр. в среде. Это значит, что перед нами в полный рост сразу встают две проблемы:

  • Идентификация
  • Дисц. доступа к среде

С чего начать? С дисциплину, с того, каким обр. данные перед. в езернете. Передаются ои в виде пакетов (фреймов). (долька колбасы с бутербродом) С точки зр. дисц. всё более-менее понятно: мы должны данные нарезать на куски и по кусочку в СПД скармливать. Видимо, придётся вспомнить token ring, для того, как такая дисц. может быть реализована. Мы можем сделать как: Если у нас топология в виде кольца, то можно было бы принять следующее решение: у нас есть пропусканая способность сети, её можно изобр. в виде параовозика с вагончиками, которые ходят по кругу. И дисциплина тогда такая: ждём, пока пароавозик до на доедет, смотрит, есчть ли свободный вагон, кладёт туда данные с надписбю "на деревнб дедушке", и далее когда паровоз до него доходит, он проверяет данные и забирает их себе. Если перевести это на более прибл. к реальности язык, то по кругу ходит маркер, и за ним идут данные. Чем эта архитектура хороша? У нас есть гарант. время, за которое один паровоз довозит пакет до другого. Время дост. пакета, если не учитывать порчу по ходу, гарантировано. Это всё хорошо, но тут есть один недостаток: пропускная способность такого железнодорожного упражнения очень низкая. Кроме того, она надёжна настоллько, наск. надёжны её узлы.

Лектор просит заметить, что тут мы имеем дело в единой СПД.

Что же касается езернета, тут вс по-другому. Если нода хочет передавать данные, то он их передаёт. Чуть выше есть уровень MAC комплет протоколов, которые контроллируют передачу данных в СПД. Мы её запомним как MAC-адрес, окторый решает проблему идентификации. MAC-адрес сост. из 6 котетов, и первые несколько (3) соотв. производителю, последние три — апп. номер устройства. Тем самым произв. карт собл. один очень простой закон: любая карта имеет уник. MAC-адрес. Когда лектор работал в сетевой комп. помощи, был случай, когда клиентом были закуплены карты с одинаковыми маками. Мы взяли и одним махом решили проблему идент. устройств.

Помимо того, что MAC-адрес отв. конкр. устр. в сети, есть ещё широк. MAC-адрес, который сост. из 48 единиц и предн. всем устр. сети. Это адрес, посылая по котором eth-фрейм мы можем расч., что его получат и обр. все мащины в СПД. Бывают ситуации, когда MAC-адрес адресата неизвестен, и нам нужно MAC-адрес выяснить, или у нас широковещание происходит. Во всенх этих случаях, если польз. езернетом, посыл. широк. запрос. Если же польз. TCP/IP поверх этого, то оно исп. ражве что для ARP и DHCP/BOOTP. Мы говорили, что если бы интернет базировался на одной СПД, то тут всё уже есть. И в сетях базир. на лок. сетях, очень часто исп. широковещание.

Пакет уровняинт. помимо разл. слю полей имеет два обяз.ю поля: MAC отпр. и получателя. В случае, если MAC получателя известен, то там будет стоят его мак. Сетевые карты устроены так, что они могут отбп. те пакеты, которые содержат чужие адр. получателя. В какой-то момент, стало понятно, что это не всегда удобно, и аоявились карты, которые у меют фильтр., а умеют и не фильтровать (promiscuous mode). Если наша задача — разгл. все данные в сети, то сетевая карта способна расск. компьютеру о том, какие пакеты ходят все. Зачем это бывает нужно: в отладочных целях и подгл. чужие пароли. И уж если у нас есть карточка, просм. все пакеты в сети, то мы можем посмотреть все пароли и обогатимся. Есть утилита tcpdump, она нужна для первого. Более интересно смотреть на выдачу tcpdump, когда идёт обмен tcp/ip, но и про езернет там есть.

Есть метод выявления компьютеров, которые сканируют сеть. Методика очень простая: берёте и заст. генерировать некий компьютер фреймы, которые предн. несущ. абоненту, и потом меряете скорость отклика.

Возвращаясь к идентификации. Задача уже решена. Мы решили идент. все сетевые устр., работающие с данным типом СПД. Какое бы устр. к СПД не подц., оно всегда найдёт общий язык с другими.

Замечательно, в начале мы описали способ орг. кольца, когда есть маркер. А если маркера нет? Что делать в этом случае? Выраб. некую дисц. доступа, которая в случа eth закл. в следующем: СПД ethernet должна поддерж. опр. занятости: карта должна уметь опр., идут данные по сети или нет (определение занятости, carrier sense). Это самое "оно смотрит" должно иметь поддержку именно на апп. уровне. Для нас важно, что это опр. занятости проходит. Тут есть два пути:

  • Мц посм., что среда не занята и начали перед. пакет
  • Среда занята, и надо что-то делать, напр., дожидаться конца занятости.

Давайте выясним, что будет, если увидим, что не занята, и начнём передавать пакет. Сущ. проблема, что одновр. два компьютера проверили и начали предавать пакеты. То есть, возм. вероятность коллизии. Эту ситуацию тоже нужно аппаратно ловить, нужно место, где попытка передачи привела к коллизии, collision detection. В этом случае, необх. придумать алг., по которому будем работать.

Мы видим, что среда занята, и ждём. Видим, что освободилась, начинаем передавать. Видим, что коллизия, и прекр.ю передачу.

Понятно, что при таком алг. есть вероятность, что ис коллизии не выйдут. Поэтосу есть костыль: случайная задержка при повторе. Когда мы выясн. что СПД зщанята, мы ждём случ. время и след посылка будет по прохождении этого таймаута. Нсли вдруг повт. перед. данных приводит опять к конфликту, то максимум времени задержки увеличивается.

Дело даже не в том, какой алг. обр. ситуаций занятости и конфлю, днло в том, что произв. такого рода СПД при загрузке по времени 20 процентов, то это загруженнная сеть и выше поднимать щагрузку бесполезно.

Все видят единую СПД, елси езернет коаксиальный. Елси длины кабеля не хватало, то ставили репитер. Но при этом абонентам одного сегмента соверз. необяз видеть пакеты, идужие от одной машины к дурго другого сегмента. В случае же поставновки ретранслятора точно встаёт такой вопрос. По двум причинам:

  • Это администратор
  • Это злоумывшленник

Низачем другим на другие ноды трансл. трафик не нужно. В какой-то момент, устр., которые просто ретр., и устр., обл. свойством фильтрации, разл. по стоимости раз в 10: хабы стоили 30 долларов, а коммутаторы — 300 долларов.

Что кас. устр. под назв. свич.

Как сделать так, на сон. чего прин. решение, что на опр. соске нах. абонент, и ему не нужно видеть фрейм, идущиц от одной ноды к другой. Очевидно, такое устр. составляет карту мак-адресов. Мак-адреса берутся потому, что в каждом фрейме есть адр. отправителя. И свич. занимается поддержкой таблиц. Дальше кратина ясна: если широк. фрейм, то он идёт во все порты, елси он предн. изв. адр., то он транслируется в нуджный порт, если неизв. адрес, то во все, кроме того, откуда пришёл.

ТАким обр. мы можем подн. загшрузку сети до более серьёзных параметром. Поск. мы имеем не единую СПД, а довольно забавную вещь.

Если вы злоумышленник, и вшаа задача — подглядеть чужоё трафик, то можно сделать следующее: сгенерировать поток фреймов с разнообр. мак-адремами, их должно быть столько, чтобы у устр. кончилась память. После чего случится одно из двух: либо перестанет работать, либо перестанет фильтровать. Но всё это уже небезопасно.

Что к этому можно добавить отн. езернета: есть замечтаельная команда ip, у которой есть параметр link, и увидите, что всё не так просто, как лектор только что рассказал, поск. у этой команды много разных команд. Чем можно управлять: есть довольно забавный параметр у каждого интерфейса под названием...


Традиционно, со времён unix сетевые устр. не станд. в каталоге устройств, а соверш. отдельно явл. под собст. именапми. В линуксе принято наз.ывать eth-карточки именами ethN.

В выводе ip limk будет как минимум один интерфейс, lo. Он устр. след. обр: всё, что вы туда послыаете, немедленно оттуда получаете, очень удобно дляуст. соед. с самим собой.

В какой-то момент в линуксе появилась команда ifrename, которая позв. переименовывать интерфейсы. ip тоже умеет переименовывать: ip link set DEV name NEWNAME.

Интерфейс может быть поднят или опущен., это озн., явл. ли карта активная или нет. В случая, если она неакт., у неё нет видимых св-в и с неё нельзя получ. инф.

Ещё есть параметр MTU. Наша СПД огр. макс. размер одного пакета. Это вел-на управляемая, и для некоторых инт., польз. другими СПД, размер может быть другой. Если ваш марш. перекладывает пакеты из одной СПД в другую, то, для того, чтобы такое переложить, надо порезать фрейм на части и послать два.

(обсуждение нарезания пакетов)

Тут мы упомянули, что СПД могут быть не только провода и воздух, но и сам сетевой трафик. То есть, берёте eth-фрейм, складываете более высокоур. пакет, шифруете и посылаете по городам и весям. При этом есть довольно забавный маршрут пакета, но сам пакет об этом ничего не знает.

Осталось 15 минут про другие СПД.

Раз уж заговорили о свичах. Есть стандарт, которая в быту наз. VLAN. Это дост. простая модиф. Eth, которая позв. орг. такую штуку: можно орг. с помощью одного устр. неск. недост. друг другу eth-сегментов. Обмен данными между сетями, прин. разным VLAN-ам, запрещён. В такой форме никакого изм. в eth не нудно, это искл. мозги свича. Проблема возн. тогда, когда орг. каскад. В этом случае будут ходит не совсем eth-фреймы, а eth-фреймы, покрашенные в разные цвета. Это достигается добавлением 1 байта. Сейчас больше не вып. карты, которые не понимают, что такое VLAN. И на стороне компьютера можно орг. два разл. инт., базир. на одном настоящем, по которому приезжат пакеты, принадл. разным vlan. Это позв. орг. вот эти каскады. Чем это удобно? Это позв. соср. упр. сетью на одной железке. На факультете этих вланов дестяка полтора. Эти вланы разруливаются на центральном свиче. А приезжают они на bsd-машину, у которых подняыты все эти интерфейсы. VLAN --- это такая СПД, которая позв. разделить и гарант. непроникновение.

В след. раз договариваем про wi-fi. И начнём разговаривать про ip. Маршр. на через. 1.


UNИX, осень 2008


Лекции

01 02 03 04 05 06 07 08 09 10 11 12


Календарь

Октябрь
01 08 15 22 29
Ноябрь
05 12 19 26
Декабрь
03 10 17
Семинары

01 02


Календарь

Сентябрь
01
Ноябрь
02


Эта статья является конспектом лекции.

Эта статья ещё не вычитана. Пожалуйста, вычитайте её и исправьте ошибки, если они есть.
Личные инструменты
Разделы