Настройка сетевой карты, краткое пособие для начинающих: различия между версиями

Материал из ALT Linux Wiki
(Перенаправление на Настройка сети)
Метка: новое перенаправление
 
(не показано 26 промежуточных версий 14 участников)
Строка 1: Строка 1:
Краткое пособие для недавно «переехавших» на альт линукс, о том, как настроить вашу сетевую карту. Не рассматриваются графические конфигураторы, все изменения конфигурационных файлов производятся от имени пользователя '''root'''
#REDIRECT[[Настройка сети]]
 
== 1. Общая информация о сетевых настройках вашей системы ==
 
ВНИМАНИЕ, данный материал работает на alt desktop 4.1, вероятно работает на серверных версиях альт 4.х, на версиях 5.х работоспособность не проверялась
=== Узнаем имя компьютера ===
Для вывода имени комьютера введите команду <tt>hostname</tt>
<pre># hostname
alt777.altdomain.local</pre>
Для изменения имени компьютера откройте файл <tt>/etc/sysconfig/network</tt> и найдите там строку
<pre>HOSTNAME=alt777.altdomain.local</pre>
После записи нового имени сохраните изменения в файле и перезагрузите компьютер.
''Примечание:'' лучше еще при инсталляции системы назначить имя компьютера вида <tt>myhost.mydomain.local</tt>, это поможет избежать возможных проблем, если в сети присутствует dns-сервер
 
=== Какие сетевые карты есть в системе ===
Теперь выясним, есть ли вообще у нас сетевые карты в компьютере, введем команду <tt>lspci -v</tt>, в ответ вы должны получить список многих ваших устройств, сетевой карте соответствуют примерно такой раздел
<pre>02:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit Ethernet Adapter (rev b0)
       Subsystem: ASUSTeK Computer Inc. Device 8226
       Flags: bus master, fast devsel, latency 0, IRQ 219
       Memory at fe9c0000 (64-bit, non-prefetchable) [size=256K]
       Expansion ROM at fe9a0000 [disabled] [size=128K]
       Capabilities: [40] Power Management version 2
       Capabilities: [48] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable+
       Capabilities: [58] Express Endpoint, MSI 00
       Kernel driver in use: atl1
       Kernel modules: atl1</pre>
Обратите внимание, последняя строка это ''модуль'', который использует ваша сетевая карта, иногда эта информация бывает нужна.
Если вы хотите увидеть только сетевую карту, примените фильтр <tt>grep</tt>
<pre># lspci -v | grep Eth
02:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit Ethernet Adapter (rev b0)</pre>
 
=== Получение информации о настройках сети ===
Узнаем сетевой адрес компьютера, воспользуемся командой <tt>ip addr show</tt> либо кратким вариантом этой же команды <tt>ip a</tt>, в ответ вы должны получить примерно следующее
<pre>ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
   link/ether 00:1e:8c:da:6a:1e brd ff:ff:ff:ff:ff:ff
   inet 192.168.0.20/24 brd 192.168.0.255 scope global eth0</pre>
'''eth0''' это имя вашего реального сетевого интерфейса, '''link/ether 00:1e:8c:da:6a:1e''' mac-адрес, обратите внимание, если сетевой кабель не будет физически подключен к разъему сетевой карты, в выводе команды появится слово '''NO-CARRIER'''
<pre>2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
   link/ether 00:1e:8c:da:6a:1e brd ff:ff:ff:ff:ff:ff
   inet 192.168.0.20/24 brd 192.168.0.255 scope global eth0</pre>
Команда <tt>ip route show</tt> (или ее краткий вариант <tt>ip r</tt>) покажет шлюз
<pre># ip route show
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.20
default via 192.168.0.10 dev eth0</pre>
Команда <tt>ethtool имя_интерфейса</tt> покажет вам некоторые характеристики, с которыми работает ваша сетевая карта
<pre># ethtool eth0
Settings for eth0:
       Supported ports: [ TP ]
       Supported link modes:   10baseT/Half 10baseT/Full
                               100baseT/Half 100baseT/Full
                               1000baseT/Full
       Supports auto-negotiation: Yes
       Advertised link modes:  10baseT/Half 10baseT/Full
                               100baseT/Half 100baseT/Full
                               1000baseT/Full
       Advertised auto-negotiation: Yes
       Speed: 1000Mb/s
       Duplex: Full
       Port: Twisted Pair
       PHYAD: 0
       Transceiver: internal
       Auto-negotiation: on
       Supports Wake-on: umbg
       Wake-on: d
       Link detected: yes</pre>
Посредством команды <tt>ethtool</tt> вы также можете изменять эти характеристики.
 
== Конфигурирование интерфейса ==
 
=== Конфигурирование сетевой карты на получение статического адреса ===
Будем исходить из того, что при инсталляции системы был установлен режим конфигурирования сети «Получение адреса автоматически», если в вашей сети настроен и правильно функционирует dhcp-сервер, ваш компьютер имеет динамически выделенный адрес, и в большинстве случаев на обычной рабочей станции никакое дополнительное конфигурирование не нужно.
ВНИМАНИЕ, если у вас есть '''ADSL-модем''', в нем может быть настроен '''внутренний dhcp-сервер''', и ваш компьютер по всей вероятности получит настройки сети от него. В этом случае не стоит конфигурировать вашу сетевую карту вручную. Но допустим, вам все-таки подребовался статический адрес, для этого отключим сетевой интерфейс eth0
<pre>#ip link set eth0 down</pre>
Файлы настройки сети в альт линукс находятся в папке <tt>/etc/net/ifaces</tt>, там, если у вас одна сетевая карта, должно быть четыре папки <tt>/default</tt>, <tt>/eth0</tt>, <tt>/local</tt>, <tt>/unknown</tt>. Непосредственное отношение к нашей сетевой карте имеет папка <tt>eth0</tt> (eth0 по умолчанию присваивоемое имя сетевого интерфейса вашей реальной сетевой карты), в ней будет лежать файл <tt>/etc/net/ifaces/eth0/options</tt>, в общем случае его содержимое будет примерно таким:
<pre>TYPE=eth
DISABLED=no
NM_CONTROLLED=no
BOOTPROTO=dhcp</pre>
Последняя строка отвечает за способ получения сетевой картой сетевого адреса.
Какие значения может принимать параметр <tt>BOOTPROTO</tt>:
static — адреса и маршруты будут взяты из файлов ipv4address и ipv4route (о них будет рассказано ниже).
dhcp — интерфейс будет сконфигурирован по DHCP.
ipv4ll — интерфейс будет сконфигурирован с помощью IPv4LL (link-local). Это значит, что из сети 169.254.0.0/16 (169.254.0.1-169.254.255.254) будет подобран ещё не использованный адрес и назначен на интерфейс.
Существует несколько комбинированных способов:
dhcp-static — если конфигурация по DHCP не удалась (не удалось получить сетевой адрес с помощью dhcp-сервера), конфигурировать методом static (получить адрес статически из файлов ipv4address и ipv4route). Данный метод бывает очень удобен, например на мобильных ПК (в корпоративной сети ноутбук получает адрес через dhcp-сервер, при отстутсвии оного (дома/в командировке/ets) получает статический адрес).
dhcp-ipv4ll — если конфигурация по DHCP не удалась, конфигурировать методом ipv4ll.
dhcp-ipv4ll-static — если конфигурация по DHCP не удалась, конфигурировать методом ipv4ll. Если и это не удалось, конфигурировать методом static. ВНИМАНИЕ, известна проблема, что в последних трех случаях запись через тире ('''-''') не работает, работает запятая (''',''') , т.е. например запись <tt>dhcp-static</tt> нужно записать как <tt>dhcp,static</tt>
Теперь изменим запись <tt>BOOTPROTO=dhcp</tt> на <tt>BOOTPROTO=static</tt>.
 
=== Настройка статического ip-адреса ===
Теперь нужно задать ip-адрес и маску сети, например 192.168.0.48/255.255.255.0, для этого создадим файл <tt>/etc/net/ifaces/eth0/ipv4address</tt> и запишем в него параметры соединения (файл именно с таким названием отвечает за настройку ip-адреса)
<pre>#echo -n>/etc/net/ifaces/eth0/ipv4address
#echo 192.168.0.48/24>/etc/net/ifaces/eth0/ipv4address</pre>
Теперь зададим шлюз соединения, например 192.168.0.10, для этого создадим файл <tt>/etc/net/ifaces/eth0/ipv4route</tt> и запишем в него имя шлюза по умолчанию (файл именно с таким названием отвечает за настройку шлюза)
<pre>#echo -n>/etc/net/ifaces/eth0/ipv4route
#echo default via 192.168.0.10>/etc/net/ifaces/eth0/ipv4route</pre>
Включаем интерфейс
<pre>#ip link set eth0 up</pre>
Перезапускаем сеть (после рестарта сети сетевая карта включится сама, так что вышеприведенную команду можно не выполнять, просто показано как это делать)
<pre>#service network restart</pre>
Также сеть можно перезапустить командой
<pre>#/etc/init.d/network restart</pre>
У двух последних команд есть флаги <tt>stop</tt> и <tt>start</tt>, которые соответственно гасят всю сеть и включают ее.
Ваш IP, маску и шлюз вы можете изменить командами
<pre>#ip addr add 192.168.0.XX/24 dev eth0
#ip route add dev eth0 XX.XX.XX.XX</pre>
Однако эти команды изменяют ip и шлюз до ближайшей перезагрузки компьютера, для постоянного изменения вам нужно отредактировать файлы, о которых говорилось выше.
Файл с описанием dns-сервера <tt>/etc/resolv.conf</tt> у вас по идее должен быть, но если его нет, то создадим его и поместим туда адрес вашего dns-сервера, например 192.168.0.9
<pre>#echo -n>/etc/resolv.conf
#echo nameserver 192.168.0.9>/etc/resolv.conf</pre>
Если у вас два dns (второй например 192.168.1.9), создать этот файл и внести туда адреса dns-серверов вы также можете следующим образом:
<pre>cat >>/etc/resolv.conf
nameserver 192.168.0.9
nameserver 192.168.1.9
сохранить (ctrl+d)</pre>
Отличия <tt>echo</tt> и <tt>cat</tt> читайте '''man echo''' и '''man cat'''.
Запускаем скрипт <tt>resolv.all</tt> (чтобы система увидела новые настройки dns)
<pre>/etc/chroot.d/resolv.all</pre>
 
== Дополнения ==
 
=== Переименование имени сетевого интерфейса ===
Если вы хотите дать имени вашего сетевого интерфейса какое-либо информативное имя (вообще является хорошей практикой переименовать ваш интерфейс из eth0 хотя бы в eth00), вам нужно выполнить следующий ряд действий.
Отключите интерфейс (где eth1 имя интерфейса)
<pre>#ip link set eth1 down</pre>
Переименуйте его (где eth1 старое имя, vykl новое имя)
<pre>#ip link set eth1 name vykl</pre>
Смените название папки с настройками eth1 на новое название
<pre>#mv /etc/net/ifaces/eth1 /etc/net/ifaces/vykl</pre>
Перезапустите сеть.
 
=== Закрепеление порядка загрузки сетевых карт ===
Данный материал может быть актуален дистрибутиве 4.1. Была замечена следующая проблема. При наличии в компьютере двух сетевых карт (одна из которых включена, но не используется) периодически менялись местами имена сетевых интерфейсов, соответственно изменялись параметры сетевой карты и как следствие сетевая карта оказывалась подключена не к той сети (грубое решение — вытащить сетевой кабель и подключить к другой карте)
Для жесткого закрепления порядка загрузки сетевых карт используем <tt>udev</tt>, который загружает все модули одновременно, поэтому устройства иногда инициализируются в различном порядке. Однако мы можем управлять правилами загрузки модулей.
Вариант 1. Самостоятельное указание порядка загрузки модулей сетевых карты с помощью параметра MODULES в файле <tt>/etc/rc.conf</tt>. Модули, добавленные в этот список, будут загружены перед стартом udev, так что вы имеете полный контроль над порядком их загрузки (откуда взять имя модуля, было сказано ранее в этой статье).
<pre># Модуль 8139too всегда будет загружаться перед e100
MODULES=(8139too e100)</pre>
Вариант 2. Создадим правило для управления порядком инициализации сетевых карт
<pre>#echo -n>/etc/udev/rules.d/10-network.rules</pre>
Впишите в него следующие строки (где eth0 имя первого сетевого интерфейса, vykl имя второго интерфейса)
<pre>SUBSYSTEM=="net", ATTRS{address}=="00:1e:8c:da:6a:1e", NAME="eth0"
SUBSYSTEM=="net", ATTRS{address}=="00:14:d1:13:8b:96", NAME="vykl"</pre>
'''ATTRS{address}''' это mac-адрес сетевой карты, для его получения введите команду
<pre>#udevadm info -a -p /sys/class/net/<имя_интерфейса> | grep address</pre>
Обратите внимание, mac-адрес записывается прописными буквами (маленькими). Также известно, что некоторые люди имели проблемы, именуя сетевые интерфейсы в старом стиле: <tt>eth0</tt>, <tt>eth1</tt>, и т.д. Попробуйте что-нибудь вроде <tt>lan</tt> или <tt>wlan</tt> или хотя бы <tt>eth00</tt>, если встретитесь с проблемами. Сохраните изменения, таким образом первым всегда будет грузиться первая карта в списке и получать нужное имя, в данном случае eth0.
Если названия ваших двух карт выглядят как eth0 и eth1, определиться какое имя принадлежит какому физическому устройству вам может помочь команда
<pre>#dmesg | grep -i eth</pre>
 
== Что еще почитать? ==
Более подробная информация о настройке сети в альт линукс находится в разделе [http://www.altlinux.org/Etcnet etcnet], а также '''man ip'''. О работе <tt>udev</tt> [http://wiki.archlinux.org/index.php/Udev_(Русский)].
[[Категория:HOWTO]]

Текущая версия от 18:02, 13 октября 2023

Перенаправление на: