|
Методичка по компьютерным сетям и телекоммуникациям. ЛР_КСиТ. Методические указания по выполнению лабораторных работ по дисциплине (модулю) Компьютерные сети и телекоммуникации
Ethernet в ОС Linux
Цель работы
Изучить вопросы, которые связаны с сетевыми подключениями с использованием технологии Ethernet в ОС Linux.
Основы теории Подключение компьютера с ОС Linux к локальной вычислительной сети Ethernet возможно двумя способами:
без использования GUI; с использованием GUI (графического пользовательского интерфейса).
Вопросы подключения компьютера начнем с подключения компьютера к сети при помощи конфигурационных файлов и консольных утилит. В качестве операционной системы будем использовать Ubuntu Linux.
Для воспроизведения описанных далее действий подходит любой вариант установки системы. Наличие графического пользовательского интерфейса не обязательно. Все действия будем выполнять в консоли. Все команды, начинающиеся с символа $ - будем выполнять от пользователя, а начинающиеся с # - от суперпользователя (root).
Прежде чем начинать необходимо:
отключить все сетевые утилиты, предназначенные для автоматического конфигурирования сети; правильно настроить (лучше отключить) различные сетевые фильтры (например iptables), и утилиты их конфигурирования; получить у администратора все необходимые параметры для подключения (IP-адрес, маску подсети и шлюз по-умолчанию для соединения с использованием статического IP); обжать и подключить кабель.
Посмотреть подключенные сетевые устройства позволяет следующая команда:
$ sudo lshw -C network
В результате можно получить, например, следующее:
ubuntu@ubuntu:$ sudo lshw -C network
*-network
description: Ethernet interface # Тип устройства
product: L2 100 Mbit Ethernet Adapter # Название адаптера vendor: Attansic Technology Corp. # Производитель устройства physical id: 0
bus info: pci@0000:03:00.0
logical name: eth0 # Имя сетевого интерфейса version: a0
serial: 00:00:00:00:00:00 # Физический адрес устройства (mac-адрес) size: 100MB/s
capacity: 100MB/s width: 64 bits clock: 33MHz
capabilities: pm msi pciexpress vpd bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes
driver=atl2 # Используемый драйвер driverversion=2.2.3 # Версия драйвера duplex=full firmware=L2 ip=192.168.1.5 latency=0
link=yes # Наличие линка
module=atl2 multicast=yes port=twisted pair speed=100MB/s # Текущая скорость подключения. Необходимо обратить внимание на пункт:
logical name: eth0 # Имя сетевого интерфейса
Имя eth0 будет далее применяться для настройки именно данной сетевой карты. Где eth обозначает, что используется Ethernet интерфейс, а 0 - номер устройства. Если у нас установлено несколько сетевых устройств то соответственно им будет присвоено имена: eth0, eth1, eth2 и т.д.
Для настройки IP адреса, шлюза по умолчанию, маски подсети отредактируем файл конфигурации /etc/network/interfaces.
После вызова его следующей командой на редактирование:
$ sudo nano /etc/network/interfaces,
где nano - текстовый редактор).
Для статического IP допишем в него следующее:
iface eth0 inet static address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.254 auto eth0, где:
iface eth0 inet static
- указывает, что интерфейс (iface eth0) находится в диапазоне адресов IPv4 (inet) со статическим ip (static);
address 192.168.0.1 - указывает что IP адрес (address) нашей сетевой карты 192.168.0.1;
netmask 255.255.255.0 - указывает что наша маска подсети (netmask) имеет значение 255.255.255.0;
gateway 192.168.0.254 - адрес шлюза (gateway) по умолчанию 192.168.0.254;
auto eth0 - указывает системе, что интерфейс eth0 необходимо включать автоматически при загрузке системы с вышеуказанными параметрами.
eth0 - имя подключаемого своего интерфейса. Список интерфейсов можно посмотреть набрав:
$ ifconfig -a В итоге файл /etc/network/interfacesдля одного проводного соединения со статическим IP должен выглядеть примерно так:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo
iface lo inet loopback # Моя проводная сеть. iface eth0 inet static address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.254 auto eth0 Для сохранения файла и закрытия редактора необходимо нажать Ctrl+X, затем Y, и убедившись, что «Имя файла для записи» - /etc/network/interfaces и нажать
Enter.
Чтобы проверить работоспособность настроек надо перезагрузить компьютер или «поднять интерфейс» и использовать команду ping:
# ping 192.168.0.X,
где 192.168.0.X — адрес компьютера с которым необходимо проверить связь (X — его номер, например, 5). Для динамического IP файл конфигурации может быть, например, следующий:
iface eth0 inet dhcp auto eth0 Рассмотренные выше настройки применяются для ОС установленной на жесткий диск. В случае использования CD/DVD Live или использования временных настроек необходимо выполнить следующее:
запустить программу ifconfig (ее название происходит от "interface configuration") без аргументов (или с единственным аргументом -a ):
$ sudo ifconfig -a Она позволяет узнать, какие параметры установлены в данный момент для активных сетевых интерфейсов (в частности, для сетевой карты). Эту команду имеет смысл выполнить еще до подключения модулей: а вдруг поддержка интерфейсов встроена в ядро и необходимые настройки уже сделаны. Тогда в ответ мы сможем получить информацию о параметрах Ethernet-карты и так называемого "кольцевого интерфейса" или "обратной петли" - Local Loopback (интерфейс Ethernet при единственной сетевой карте обозначается как eth0, а кольцевой интерфейс - как lo). Если же по этой команде мы ничего не получили, то надо переходить к подключению модулей и настройке, и начинать надо с кольцевого интерфейса.
настроить локальный интерфейс. Этот интерфейс используется для связи программ IP-клиентов с IP-серверами, запущенными на той же машине, так что его необходимо настроить даже в том случае, если мы вообще не подключаем никаких сетевых устройств.
Локальный интерфейс настраивается очень просто:
# ifconfig lo 127.0.0.1
Чтобы проверить работоспособность локального интерфейса на машине, необходимо набрать команду:
# ping 127.0.0.1
Для того чтобы наш компьютер вошел в сеть с IP-адресом, полученным у администратора (пусть для примера это будет адрес 192.168.0.15), мы должны запустить команду ifconfig примерно следующим образом:
# ifconfig eth0 192.168.0.15 netmask 255.255.255.0 up
Если не указывать маску подсети, то по умолчанию устанавливается маска подсети 255.0.0.0.
Данные настройки пропадут после перезагрузки системы и не повлияют на файл /etc/network/interfaces
Проверить работоспособность протоколов TCP/IP на нашей машине позволяет команда ping.
Правила маршрутизации определяют, куда отправлять IP-пакеты. Данные маршрутизации хранятся в одной из таблиц ядра. Вести таблицы маршрутизации можно статически или динамически. Статический маршрут — это маршрут, который задается явно с помощью команды route. Динамическая маршрутизация выполняется процессом-демоном (routed или gated), который ведет и модифицирует таблицу маршрутизации на основе сообщений от других компьютеров сети. Для выполнения
динамической маршрутизации разработаны специальные протоколы: RIP, OSPF, IGRP, EGP, BGP и т. д.
Динамическая маршрутизация необходима в том случае, если у вас сложная, постоянно меняющаяся структура сети и одна и та же машина может быть доступна по различным интерфейсам (например, через разные Ethernet или SLIP интерфейсы). Маршруты, заданные статически, обычно не меняются, даже если используется динамическая маршрутизация.
Для персонального компьютера, подключаемого к локальной сети, в большинстве ситуаций бывает достаточно статической маршрутизации заданной ко- мандой route. Прежде чем пытаться настраивать маршруты, просмотрим таблицу маршрутизации ядра с помощью команды route -n. Мы должны увидеть что-то вроде следующего
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 10.10.1.254 0.0.0.0 UG 0 0 0 eth0 С помощью команды route можно добавить или удалить один (за один раз) статический маршрут. Вот ее формат:
# route [-f] операция [-тип] адресат шлюз [dev] интерфейс
Здесь аргумент операция может принимать одно из двух значений: add (марш- рут добавляется) или delete (маршрут удаляется). Аргумент адресат может быть IP- адресом машины, IP-адресом сети или ключевым словом default . Аргумент шлюз — это IP-адрес компьютера, на который следует пересылать пакет (этот компьютер должен иметь прямую связь с вашим компьютером). Команда
# route -f
удаляет из таблицы данные обо всех шлюзах. Необязательный аргумент тип принимает значения net или host . В первом случае в поле адресата указывается адрес сети, а во втором — адрес конкретного компьютера (хоста).
Как правило, бывает необходимо настроить маршрутизацию по двум интер- фейсам:
локальный интерфейс (lo), интерфейс для платы Ethetnet (eth0).
Локальный интерфейс поддерживает сеть с IP-номером 127.0.0.1. Поэтому для маршрутизации пакетов с адресом 127.... используется команда:
# route add -net 127.0.0.1 lo
Если у нас для связи с локальной сетью используется одна плата Ethernet, и все машины находятся в этой сети, то для настройки маршрутизации достаточно вызвать:
# route add -net 192.168.36.0 netmask 255.255.255.0 eth0
Если же мы имеем несколько интерфейсов, то надо определиться с сетевой маской и вызвать команду route для каждого интерфейса.
Поскольку очень часто IP-пакеты с нашего компьютера могут отправляться не в одну единственную сеть, а в разные сети (например, при просмотре разных сайтов в Интернете), то в принципе надо было бы задать очень много маршрутов. Очевидно, что сделать это было бы очень сложно, точнее просто невозможно. Поэтому решение проблемы маршрутизации пакетов перекладывают на плечи специальных компьютеров — маршрутизаторов, а на обычных компьютерах задают маршрут по умолчанию, который используется для отправки всех пакетов, не указанных явно в таблице маршрутизации. Маршрут по умолчанию настраивается следующей командой:
# route add default gw 192.168.1.1 eth0
Опция gw указывает программе route, что следующий аргумент - это IP-адрес или имя маршрутизатора, на который надо отправлять все пакеты, соответствующие этой строке таблицы маршрутизации.
|
|
|