Интерфейсный (канальный) уровень и сетевые интерфейсы Linux
Задачи:
- Организация процесса ПД
- Дисциплина использования среды
Фреймы (пакеты канального уровня)
- Сеть с разделением пакетов
- Борьба с шумом на аппаратном уровне: payload vs overhead
- Размер фрейма:
- Маркер начала, конца, межфреймовый заполнитель
- eth: 0x55*7 0xD5 (NB: 10101010*7 10101011)
- Паспорт
- Полезная нагрузка
- Маркер начала, конца, межфреймовый заполнитель
Ethernet
- Общая среда ⇒
- ID отправителя и получателя (MAC: 3*8 VENDOR + 3*8 ID [+ 4*8 VLAN])
- Аппаратная фильтрация MAC и promiscuous mode
- Широковещательный адрес
Алгоритм доступа: неодновременный
- определение коллизий (CD)
- определение идущей передачи (CSMA)
- вычисление задержки для повторной передачи / общий тайм-аут
- ID отправителя и получателя (MAC: 3*8 VENDOR + 3*8 ID [+ 4*8 VLAN])
⇒ нет гарантированного времени доставки
Wi-Fi
Например, IEEE 802.11g
- Воздух: затухание и вариабельность сигнала ⇒ избыточность
- Совместный доступ:
- Несколько «каналов»
OFDM (FDM+ортогональность)
(совместимость: Complementary_code_keying, DSSS)
- Воздух общий ⇒ авторизация/шифрование
- ESSID
- Короткие, предсказуемые пакеты ⇒ ухудшение стойкости ключа со временем
⇒ регулярное пересоздание ключей WPA2
Шифрование ⇒ сертификация
Туннели
Обычно вида «IP через что-то». PPP, L2TP и т. п. задействуют интерфейсный уровень.
И т. д.
Linux
- Сетевые интерфейсы (не только ethernet!)
ip link:
- имя интерфейса
- MAC, MTU
iwconfig, iw и wpa_supllicant
- TUN/TAP
Д/З
Ethernet
С помощью ip link узнать имена сетевых интерфейсов
- Сколько их?
С помощью ethtool посмотреть параметры Ethernet-интерфейсов. обратить внимание на различие скорости
[root@uneex ~]# ethtool enp0s3 | grep 100 [root@uneex ~]# ethtool enp0s8 | grep 100
С помощью ifdown enp0s8 «опустить» интерфейс. Что изменилось?
[root@uneex ~]# ip l show dev enp0s8 [root@uneex ~]# ifdown enp0s8 [root@uneex ~]# ip l show dev enp0s8
ifdown — это сценарий. Какой командой «опускается» интерфейс?
- заглянуть внутрь трафика:
(NB: вы можете использовать несколько консолей для работы, они переключаются по ALT-F1, ALT-F2 и т. д; также можно несколько раз подключиться по ssh)
# socat TUN:192.168.255.1/24,up,tun-type=tap - | hexdump -C
- Посмотреть с другой консоли на созданный виртуальный сетевой интерфейс:
[root@uneex ~]# ip l show dev tap0
- Посмотреть с другой консоли на созданный виртуальный сетевой интерфейс:
# ping 192.168.255.2 (также с другой консоли)
(трудно отчитаться) Наблюсти в выдаче MAC-адрес интерфейса tap0, широковещательный адрес ff ff ff ff ff ff и IP-адрес
- Это какого уровня трафик?
- ЗУН
Знать основную терминологию протоколов канального уровня, принципы работы протокола ethernet, иметь представление о формате фрейма, особенностям WiFi; иметь базовый навык в использовании команд ip link и ethtool; уметь находить сетевые интерфейсы Linux и изучать их параметры.