Содержание


План перехода с Windows на Linux

Часть 7. Работа с сетью

Краткое руководство по работе с сетью в Linux

Comments

Серия контента:

Этот контент является частью # из серии # статей: План перехода с Windows на Linux

Следите за выходом новых статей этой серии.

Этот контент является частью серии:План перехода с Windows на Linux

Следите за выходом новых статей этой серии.

В наше время кажется почти невероятным работать на компьютере, не подключенном к сети. Электронная почта, просмотр веб-страниц и совместное использование файлов, это все настолько же привычно, как печать и просмотр информации на экране.

К счастью, Linux изначально создавался для работы с сетью. В сущности, работа с сетью -- это одна из сильных сторон Linux. Linux поддерживает популярные сетевые протоколы, такие как TCP/IP и SMB (NetBIOS), обладает усовершенствованными инструментами для мониторинга и фильтрации сетевого трафика. В Linux доступны такие службы как FTP, web-сервер, Windows файл- и принтсервер. Linux даже предоставляет возможность централизованного управления службами, Virtual Private Networking (VPN) и удаленного вызова процедур.

Сетевое оборудование

Linux может работать с любым сетевым оборудованием, для которого у него есть драйвер. Драйвера Linux либо встраиваются в ядро, либо компилируются как загружаемые модули. Многие распространенные сетевые карты по умолчанию поддерживаются ядром Linux. При выборе сетевого оборудования стоит использовать устройства, перечисленные в списке совместимых устройств "Hardware Compatibility List" (смотрите раздел Ресурсы ). Используйте самые последние версии дистрибутивов Linux.

Как правило, если вы используете совместимое сетевое оборудование, ваша карта будет автоматически распознана при инсталляции системы. Вы можете проверить сетевое оборудование, обнаруженное системой, используя команду ifconfig. По умолчанию ifconfig демонстрирует вам активные сетевые устройства. Для того чтобы увидеть все сетевые устройства, добавьте ключ -a:

Листинг 1. Использование ifconfig
refname: ifconfig-a

[root@cmw-t30 root]#  ifconfig -a 
eth0      Link encap:Ethernet  HWaddr 00:09:6B:60:8B:1E
          inet addr:9.41.209.160  Bcast:9.41.209.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:47255 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32949 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:22140365 (21.1 Mb)  TX bytes:13519623 (12.8 Mb)
          Interrupt:11 Base address:0xf000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1308081 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1308081 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:183376967 (174.8 Mb)  TX bytes:183376967 (174.8 Mb)

В выше приведенном примере в системе есть только одна сетевая карта, идентифицированная как eth0. Адаптер lo -- это loopback (адаптер обратной связи), используемый системой для обращения к самой себе. Позднее мы рассмотрим команду ifconfig подробнее.

Имена сетевых устройств

В процессе конфигурации сетевым устройствам Linux присваиваются имена, состоящие из наглядной аббревиатуры и номера. Первое устройство данного типа имеет номер 0, остальные нумеруются 1, 2, 3 и т.д. Используется следующее соглашение о наименовании. Информация взята из руководства для сетевых администраторов Linux Network Administrator's Guide (ищите ссылку в конце статьи в разделе Ресурсы).

  • eth0, eth1 ...
    Это интерфейсы Ethernet-карт. Используются для большинства Ethernet-карт, включая многие Ethernet-карты, подключаемые через параллельный порт.
  • tr0, tr1 ...
    Это интерфейсы карт Token Ring. Используются для большинства карт Token Ring, включая карты, произведенные не компанией IBM.
  • s10, s11 ...
    Это SLIP интерфейсы. SLIP интерфейсы связаны с последовательными портами в том порядке, в котором они назначаются для SLIP.
  • ppp0, ppp1 ...
    Это PPP интерфейсы. Подобно SLIP интерфейсам, PPP интерфейс связывается с последовательным портом, как только он переходит в PPP-режим.
  • plip0. plip1 ...
    Это PLIP интерфейсы. PLIP передает IP датаграммы через параллельные порты. Интерфейсы распределяются драйвером PLIP при загрузке системы и связываются с параллельными портами. В ядрах версий 2.0x существует прямая связь между именем устройства и портом ввода-вывода параллельного порта, а в ядрах более поздних версий имена устройств назначаются последовательно точно так же, как для SLIP и PPP устройств.
  • ax0, ax1 ...
    Это AX.25 интерфейсы. AX.25 -- основной протокол, используемый для любительской радиосвязи. AX.25 интерфейсы распределяются и отображаются аналогично интерфейсам SLIP.

Есть еще немало других типов интерфейсов для других сетевых драйверов. Мы перечислили лишь самые распространенные.

Мы остановимся подробно на Ethernet, поскольку это наиболее распространенная сетевая конфигурация. Ссылки на информацию о других типах соединения вы можете найти в разделе Ресурсы в конце статьи.

Настройка сети

Настройка сети производится в процессе инсталляции вашего дистрибутива Linux. В исходной конфигурации у вас уже, вероятно, будет активное устройство eth0. Эта конфигурация может удовлетворять вас первое время, однако впоследствии вам, возможно, потребуется внести в нее изменения. Мы рассмотрим различные аспекты конфигурации, связанные с IP-сетями, файлами и утилиты для работы с ними.

Webmin

Webmin содержит хороший набор инструментов для настройки сети (Network Configuration) в разделе Networking. Вы можете настраивать интерфейсы по отдельности и менять их текущие или сохраненные установки. Кроме того, вы можете менять настройки Routing and Gateways, DNS Client, а также статическую таблицу для поиска имён узлов. После окончания конфигурирования вы можете применить новые установки, щелкнув на Apply Configuration. Перезагружать систему при этом не обязательно.

Утилиты, включенные в дистрибутивы

Каждый дистрибутив содержит собственный набор инструментов для настройки сети. Чтобы узнать, какие именно утилиты содержит ваш дистрибутив, обратитесь к его документации. Все утилиты содержат, по сути, те же настройки, что и Webmin. Некоторые из них могут содержать так же опции, характерные для данного дистрибутива.

Рисунок 1. Утилита redhat-config-network из  Red Hat 8.x и 9.x
Рисунок 1. Утилита redhat-config-network из Red Hat 8.x и 9.x
Рисунок 2. SuSE и United Linux используют  утилиту YAST
Рисунок 2. SuSE и United Linux используют утилиту YAST

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

Средства анализа и мониторинга

В Linux предусмотрено множество средств мониторинга сетевых задач.

ifconfig
Выше мы рассматривали, как, используя команду ifconfig, узнать статус сетевой карты. Однако, команда ifconfig служит не только для вывода информации об устройствах, но так же и для их настройки. Предположим, вы хотите настроить некую временную конфигурацию для тестирования. Вы можете отредактировать настройки, используя встроенные в дистрибутив инструменты, однако при этом вам придется запомнить все исходные установки, чтобы восстановить их в конце. Используя же команду ifconfig, вы можете быстро сконфигурировать карту, не затрагивая сохраненные настройки:

ifconfig eth0 192.168.13.13 netmask 255.255.255.0 up

Команда выше задает для eth0 адрес 192.168.13.13 в сети класса C и активирует устройство, если оно было отключено.

ipconfig eth0 down

Команда выше отключает устройство eth0. Полное описание команды ifconfig вы можете найти на странице info ifconfig.

ifup/ifdown
Команды ifup и ifdown служат для того, чтобы активировать и дезактивировать сетевые устройства, используя их сохраненные настройки.

# Активирует eth0 используя сохраненные настройки
ifup eth0

# Отключает eth0
ifdown eth0

netstat
Консольная команда netstat используется для вывода сетевых подключений, таблиц маршрутизации, статистики интерфейсов, маскарадинга и вхождения в multicast. Для управления командой netstat служат несколько ключей командной строки. Ниже приведены некоторые из наиболее употребляемых:

Вывод состояния сети
netstat -pДля каждого сокета показывает PID и имя программы, которой данный сокет принадлежит
netstat -aПоказывает как прослушиваемые, так и непрослушиваемые сокеты
netstat -tПоказывает соединения TCP
netstat -uПоказывает соединения UDP
netstat -eОтображает дополнительную информацию; для максимальной детализации используйте эту опцию дважды

Пример netstat -tp:

Листниг 2. Использование netstat
[root@cmw-t30 root]# netstat -tp
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
PID/Program name
tcp        0      0 localhost.localdo:29000 *:*                     LISTEN
2389/attvpnctl
tcp        0      0 *:10000                 *:*                     LISTEN
5945/perl
tcp        0      0 *:x11                   *:*                     LISTEN
1120/X
tcp        0      0 *:ftp                   *:*                     LISTEN
724/xinetd
tcp        0      0 *:ssh                   *:*                     LISTEN
710/sshd
tcp        0      0 *:ipp                   *:*                     LISTEN
797/cupsd
tcp        0      0 *:505                   *:*                     LISTEN
1043/rcd
tcp        0      0 localhost.localdoma:ipp localhost.localdo:32772 ESTABLISHED
797/cupsd
tcp        0      0 sig-9-65-39-140.m:44916 sdoprods2.austin.i:1352 TIME_WAIT
-
tcp        0      0 10.100.100.101:33020    64.12.29.100:5190       ESTABLISHED
1433/gaim
tcp        0      0 localhost.localdo:44954 localhost.localdoma:ipp TIME_WAIT
-
tcp        0      0 localhost.localdo:44955 localhost.localdoma:ipp TIME_WAIT
-
tcp        0      0 localhost.localdo:44897 localhost.localdoma:ipp TIME_WAIT
-
tcp        0      0 localhost.localdo:44902 localhost.localdoma:ipp TIME_WAIT
-
tcp        0      0 localhost.localdo:44903 localhost.localdoma:ipp TIME_WAIT
-
tcp        0      0 localhost.localdo:44900 localhost.localdoma:ipp TIME_WAIT
-
tcp        0      0 localhost.localdo:44901 localhost.localdoma:ipp TIME_WAIT
-
tcp        0      0 10.100.100.101:44888    cs9336-61.austin.r:pop3 TIME_WAIT
-
tcp        0      0 localhost.localdo:32772 localhost.localdoma:ipp ESTABLISHED
1246/gnome-cups-man
tcp        1      0 localhost.localdo:32774 localhost.localdoma:ipp CLOSE_WAIT
1246/gnome-cups-man
tcp        0      0 10.100.100.101:33019    cs46.msg.sc5.yahoo:5050 ESTABLISHED
1433/gaim
tcp        0      0 sig-9-65-39-140.m:35061 d03nm119.boulder.i:1352 CLOSE_WAIT
1720/wineserver
tcp        0      0 10.100.100.101:33021    64.12.30.4:5190         ESTABLISHED
1433/gaim

Чаще всего я использую команду netstat, чтобы увидеть соединения, которые находятся в состоянии LISTEN или ESTABLISHED. LISTEN означает, что в вашей системе есть службы, которые ожидают соединения от других машин. ESTABLISHED -- это активное соединение между вашей и другими машинами. Убедитесь, что вы знаете все работающие программы, использующие соединение LISTEN. Если вы видите что-то неизвестное, это может быть небезопасным явлением. netstat обладает большим количеством опций. Для получения подробной информации наберите в командной строке info netstat.

route
С помощью консольной команды route можно вывести на экран таблицу маршрутизации IP и оперировать с ней.

Листинг 3. Использование route
[root@cmw-t30 plugins]# route|grep -v ipsec
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
204.146.24.42   10.100.100.1    255.255.255.255 UGH   0      0        0 eth1
10.100.100.0    *               255.255.255.0   U     0      0        0 eth1
127.0.0.0       *               255.0.0.0       U     0      0        0 lo
default         10.100.100.1    0.0.0.0         UG    0      0        0 eth1

При вызове route без ключей будет отражена текущая таблица маршрутизации. Используя route, вы можете вносить очень тонкие изменения в содержимое таблицы маршрутизации.

route add default gw 10.10.10.1

Приведенная выше команда добавляет маршрут по умолчанию (маршрут, который будет использован, если все другие указанные маршруты не подходят). Все пакеты, использующие маршрут по умолчанию, будут направлены через шлюз "10.10.10.1". Устройство, которое будет фактически использоваться для этого маршрута, зависит от того, как мы можем достичь "10.10.10.1" - поэтому статический маршрут "10.10.10.1" должен быть настроен прежде всего.

route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0

Приведенная выше команда добавляет маршрут к сети 192.56.76.x через устройство "eth0." В данном случае модификатор маски сети класса C не обязателен, так как адреса 192.* принадлежат сетям класса C. В этой команде "dev" может быть пропущено.

Маршрутизация -- это очень объемная тема. Полную информацию об опциях route можно получить, набрав info route.

Резюме

Linux с самого начала предназначался для работы с сетью. В него встроены сложные функции, которые раньше можно было найти только в высокотехнологичных системах, внедряемых в корпорациях. Тем не менее, несмотря на всю свою мощь, конфигурация сети в Linux не сложнее, чем в Windows. Такие инструменты, как Webmin, redhat-config-network и YAST предоставляют возможность конфигурации сети в графическом режиме. Средства ifconfig и route позволяют визуализировать и модифицировать сетевые параметры с помощью консоли или скрипта. С помощью netstat можно просмотреть отдельные сетевые подключения и их взаимодействие с запущенными процессами.


Ресурсы для скачивания


Похожие темы

  • Оригинал этого учебного пособия на developerWorks.
  • Ознакомьтесь с другими частями этой серии на английском Windows-to-Linux roadmap (developerWorks, ноябрь 2003) и на русском План перехода с Windows на Linux языках.
  • Linux Network Administrator's Guide, Second Edition -- это общее online руководство, предназначенное для сетевого администратора Linux. Как новички, так и опытные пользователи найдут здесь информацию практически по всем важным административным действиям, необходимым для управления Linux-сетью.
  • Linux Ethernet HOWTO содержит информацию о том, какие ethernet устройства могут быть использованы в Linux и об их настройке (с акцентом на вопросы, связанные с аппаратным обеспечением и низкоуровневыми драйверами карт ethernet).
  • Чтобы помочь вам быстро найти соответствующую документацию, Linux Documentation Project содержит список HOWTO по категориям.
  • Hardware Control Lists включают в себя Red Hat Hardware search page, SuSE Linux Component DataBase и UnitedLinux Certified and Compatible Hardware.
  • Системная безопасность -- это обширнейшая и сложная тема, но в современном мире этот вопрос затрагивает каждого. К счастью, никогда не поздно начать этим заниматься. В этом вам поможет документация Adding Security to Common Linux Distributions и Strategies for Keeping a Secure Server (это двенадцатая глава в упомянутом выше руководстве Linux Administration Made Easy).
  • Статья с сайта IBM developerWorks " Linux hardware stability guide" расскажет вам, как диагностировать и исправить большинство потенциальных проблем аппаратного оборудования.
  • Узнать больше о работе в сети можно в статьях с сайта developerWorks "Sharing computers on a Linux (or heterogeneous) network" и "Setting up a Local Area Network".
  • Смоделируйте Cisco систему, следуя статье IBM developerWorks "Build a network router on Linux".
  • Статья с сайта IBM developerWorks "Connect securely with ssh" поможет вам лучше настроить безопасность.
  • Дополнительную информацию можно найти в Linux-зоне сайта developerWorksresources for Linux developers .

Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux
ArticleID=207229
ArticleTitle=План перехода с Windows на Linux: Часть 7. Работа с сетью
publish-date=04052007