Опубликован: 26.07.2011 | Уровень: для всех | Доступ: свободно
Лекция 3:

Доступ к локальной сети средствами Linux

< Лекция 2 || Лекция 3: 12 || Лекция 4 >
Аннотация: Описаны базовые аспекты взаимодействия компьютеров в сети Ethernet. Приведены примеры команд настройки параметров сетевого адаптера в Linux на уровне сетевых интерфейсов.

Содержание:

  1. Взаимодействие компьютерных систем в сети Ethernet.
  2. Управление сетевыми интерфейсами в Linux.
  3. Настройка физических параметров сетевого подключения.

Взаимодействие компьютерных систем в сети Ethernet

Группа технологий Ethernet [ 20 ] , [ 7 ] предназначена для организации взаимодействия компьютеров на уровне сетевых интерфейсов (определяет характеристики среды передачи, типы соединений, способы коммуникации устройств и адресации, используемое оборудование и т. д.); чаще всего используется для построения локальных сетей.

В качестве среды передачи в настоящее время в Ethernet используется витая пара (несколько пар изолированных проводников, скрученных между собой) или оптоволоконный кабель. Полоса пропускания различных технологий Ethernet варьирует от 10 Мбит/c до 10 Гбит/c. Все новые стандарты Ethernet обратно совместимы с базовым стандартом (условно говоря, единица передачи данных - Ethernet-фрейм передается в любой среде без изменений). При этом, оборудование различных производителей, использующее различные технологии Ethernet, обычно, без проблем работает в одной сети.

Для подключения компьютера к среде передачи (витая пара) используется сетевой адаптер с разъемом RJ-45. В данном сегменте сети каждый сетевой адаптер имеет уникальный физический адрес (MAC-адрес), размером 48 бит, который принято записывать в виде последовательности шестнадцатеричных цифр (например, 00:1d:d9:43:0f:41). Принцип действия сетевого адаптера — в том, что обрабатываются те Ethernet-фреймы, у которых указан его MAC-адрес в адресе получателя (а также специальные широковещательные фреймы, у которых MAC-адрес равен FF:FF:FF:FF:FF:FF).

Сетевой адаптер компьютера подключается к коммутатору — многопортовому устройству, предназначенному для пересылки Ethernet-фреймов между портами. Коммутатор ведет таблицу коммутации (MAC-адресов), описывающую соответствие между MAC-адресами узлов и портами, к которым они подключены. Записи в таблице MAC-адресов имеют определенное время жизни, по истечению которого они удаляются из таблицы.

Для передаваемых фреймов коммутатор анализирует MAC-адреса

  1. Для передаваемых фреймов коммутатор анализирует MAC-адрес отправителя и получателя и содержимое таблицы коммутации (рис. 3.1.):
  2. Если MAC-адрес отправителя отсутствует в таблице, то он вносится туда с привязкой к порту.
  3. Если MAC-адреса отправителя и получателя привязаны к одному и тому же порту, то фрейм не пересылается (фильтрация).
  4. Если MAC-адреса отправителя и получателя привязаны к различным портам, то фрейм отправляется в порт получателя.
  5. Если MAC-адрес получателя неизвестен коммутатору, производится широковещательная рассылка фрейма по всем портам, за исключением порта источника.
  6. Фреймы, у которых в адресе получателя указан широковещательный адрес (FF:FF:FF:FF:FF:FF) также рассылаются по всем портам, кроме исходного.
 Коммутатор и таблица коммутации

Рис. 3.1. Коммутатор и таблица коммутации

Управление сетевыми интерфейсами в Linux.

Физический сетевой интерфейс — устройство, способное отправлять в физическую сеть и получать из сети атомарные единицы передачи — фреймы; предоставляется драйвером устройства и имеет определенное имя, которое используется для доступа к нему (например, драйвера Ethernet ядро именует как eth0, eth1 и т.д.). Фактически, чтобы использовать сетевой интерфейс, нужно настроить на нем какой-либо протокол сетевого уровня (например, протокол IP).

Для управления сетевыми интерфейсами на уровне доступа к сети можно использовать команду ip из пакета iproute2 с параметром link [ 22 ] .

# ip link show 
 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN  
       link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP 
       qlen 1000 link/ether 00:1d:72:01:ab:93 brd ff:ff:ff:ff:ff:ff 
 3: irda0: <NOARP> mtu 2048 qdisc noop state DOWN qlen 8 
       link/irda 00:00:00:00 brd ff:ff:ff:ff 
 4: vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN 
       qlen 1000 link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff 
 5: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc 
       pfifo_fast state UNKNOWN qlen 3 link/ppp
Листинг 3.1. Вывод информации о сетевых интерфейсах (ip link show):

Вывод данной команды содержит пронумерованный список интерфейсов, присутствующих в системе. Информация об интерфейсе содержит две строки: в первой указывается имя интерфейса, установленные флаги состояния, MTU (Maximum Transmission Unit, максимально допустимый размер фрейма в байтах), тип и размер очереди фреймов; во второй строке — тип соединения, MAC-адрес, широковещательный адрес и т. п.

Некоторые флаги состояния:

  • UP — устройство подключено и готово принимать и отправлять фреймы;
  • LOOPBACK — интерфейс является локальным и не может взаимодействовать с другими узлами в сети;
  • BROADCAST - устройство способно отправлять широковещательные фреймы;
  • POINTTOPOINT — соединение типа "точка-точка"
  • PROMISC — устройство находится в режиме "прослушивания" и принимает все фреймы.
  • NOARP — отключена поддержка разрешения имен сетевого уровня.
  • ALLMULTI — устройство принимает все групповые пакеты.
  • NO-CARRIER — нет связи (не подключен кабель).
  • DOWN — устройство отключено.

Можно также вывести информацию о данном интерфейсе, задав его имя в параметре dev:

# ip link show dev eth0

или просто:

# ip link show eth0

Примечаниепараметров команд пакета iproute2 есть сокращенный синтаксис, например, ip link show eth0 можно записать как ip l sh eth0.

Команда ip link также позволяет менять некоторые свойства сетевого интерфейса. Для этого используется параметр set.

# ip link set mtu 1400 eth1
 # ip link show eth1
 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state 
     UP qlen 1000 link/ether 08:00:27:66:6a:4f brd ff:ff:ff:ff:ff:ff
Листинг 3.2. Уменьшение MTU сетевого интерфейса с помощью ip link set mtu:

Примечание: Все произведенные изменения командами, описываемые в данном разделе, будут действительны до перезагрузки компьютера или перезапуска сетевой подсистемы скриптами инициализации. Как редактировать постоянные сетевые конфигурации, описано в "Постоянные сетевые конфигурации (на примере Debian/GNU Linux)" . "Постоянные сетевые конфигурации".

# ip link set address 00:11:11:12:FE:09 eth1
 # ip link show eth1
 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state
     UP qlen 1000 link/ether 00:11:11:12:fe:09 brd ff:ff:ff:ff:ff:ff
Листинг 3.3. Смена MAC-адреса сетевого интерфейса с помощью ip link set address

Используя ip link, можно включить или отключить сетевой интерфейс пример 3.4

# ip link set down eth1
 # ip link set up eth1
Листинг 3.4. Выключение (down) и включение (up) сетевого интерфейса с помощью ip link

Ниже приводится пример использования команды ifconfig из пакета net-tools для управления сетевым интерфейсом пример 3.5.

# ifconfig eth1 down 
 # ifconfig eth1 up 
 # ifconfig eth1 mtu 1400 
 # ifconfig eth1 hw ether 00:11:12:13:14:15 
 # ifconfig eth1 
 eth1      Link encap:Ethernet  HWaddr 00:11:12:13:14:15   
           inet6 addr: fe80::a00:27ff:fe66:6a4f/64 Scope:Link 
           UP BROADCAST RUNNING MULTICAST  MTU:1400  Metric:1 
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
           TX packets:9 errors:0 dropped:0 overruns:0 carrier:0 
           collisions:0 txqueuelen:1000  
           RX bytes:0 (0.0 B)  TX bytes:706 (706.0 B)
Листинг 3.5. Использование ifconfig для управления сетевым интерфейсом
< Лекция 2 || Лекция 3: 12 || Лекция 4 >
Нияз Сабиров
Нияз Сабиров
Стоимость "обучения"
Елена Сапегова
Елена Сапегова
диплом
Андрей Фомин
Андрей Фомин
Россия
Денис Ермаков
Денис Ермаков
Россия