|
Метка: новое перенаправление |
(не показано 10 промежуточных версий 7 участников) |
Строка 1: |
Строка 1: |
| Краткое пособие для недавно «переехавших» на альт линукс, о том, как настроить вашу сетевую карту. Не рассматриваются графические конфигураторы, все изменения конфигурационных файлов производятся от имени пользователя '''root'''
| | #REDIRECT[[Настройка сети]] |
| | |
| == 1. Общая информация о сетевых настройках вашей системы ==
| |
| | |
| ВНИМАНИЕ, данный материал работает на alt desktop 4.1, вероятно работает на серверных версиях альт 4.х, на версиях 5.х некоторые настройки, в частности DNS, производятся несколько иначе
| |
| === Узнаём имя компьютера ===
| |
| Для вывода имени комьютера введите команду <tt>hostname</tt>
| |
| <pre># hostname
| |
| alt777.altdomain.local</pre>
| |
| либо
| |
| cat /etc/HOSTNAME
| |
| Для изменения имени компьютера откройте файл <tt>/etc/sysconfig/network</tt> и найдите там директиву HOSTNAME:
| |
| <pre>HOSTNAME=alt777.altdomain.local</pre>
| |
| Вместо сгенерированного программой установки впишите нужное имя в формате FQDN.
| |
| После записи нового имени сохраните изменения в файле и перезагрузите компьютер.
| |
| | |
| ''Примечания:''
| |
| # В процессе установки системы нужно было сразу назначить имя компьютера вида <tt>myhost.mydomain.tld</tt>, например, "lt777.altdomain.local" это поможет избежать возможных проблем, если в сети присутствует dns-сервер
| |
| # Если сетевые демоны ещё не сконфигурированы, вместо перезагрузки можно просто изменить значение hostname в ядре:
| |
| hostname myhost.mydomain.tld
| |
| Команду нужно выполнить с правами суперпользователя (с помощью su или sudo, либо из сеанса root).
| |
| | |
| === Какие сетевые карты есть в системе ===
| |
| Теперь выясним, есть ли вообще у нас сетевые карты в компьютере, введем команду <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 | 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> вы также можете изменять эти характеристики.
| |
| | |
| == Конфигурирование интерфейса ==
| |
| | |
| === Конфигурирование сетевой карты на получение статического адреса ===
| |
| Сеть в ALT Linux настраивается с помощью [[Etcnet]], более подробно про это можно [[Etcnet|почитать тут]]. Будем исходить из того, что при инсталляции системы был установлен режим конфигурирования сети «Получение адреса автоматически», если в вашей сети настроен и правильно функционирует 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 ([[Etcnet#cite_note-0|таблица для преобразования маски в CIDR]]), для этого создадим файл <tt>/etc/net/ifaces/eth0/ipv4address</tt> и запишем в него параметры соединения (файл именно с таким названием отвечает за настройку ip-адреса)
| |
| <pre>
| |
| # echo 192.168.0.48/24 > /etc/net/ifaces/eth0/ipv4address
| |
| </pre>
| |
| Если ваша сетевая карта предполагает наличие двух ip-адресов, то в файл ipv4address следует добавить ещё один адрес (обратите внимание на то, что используется ">>" вместо ">"; с ">" файл перезапишется, с ">>" вывод предыдущей команды будет дописан в конец файла):
| |
| <pre>
| |
| # echo 10.0.2.148/24 >> /etc/net/ifaces/eth0/ipv4address
| |
| </pre>
| |
| Теперь зададим шлюз соединения, например 192.168.0.10, для этого создадим файл <tt>/etc/net/ifaces/eth0/ipv4route</tt> и запишем в него имя шлюза по умолчанию (файл именно с таким названием отвечает за настройку шлюза)
| |
| <pre>
| |
| # 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>, которые соответственно гасят всю сеть и включают ее (на самом деле это касается только команды-сервиса "network", команда "service" только запускает скрипты из /etc/init.d/). Ваш IP, маску и шлюз Вы можете изменить командами <tt> ip addr {add|change|replace} ... </tt> и <tt> ip route { add | del | change } ... </tt>. Например
| |
| <pre>
| |
| # ip addr add 192.168.0.XX/24 dev eth0
| |
| # ip route add dev eth0 XX.XX.XX.XX
| |
| </pre>
| |
| добавят (но не удалят) IP адрес и маршрут. Синтаксис команды <tt>ip</tt> обширен и выходит за рамки этой статьи.
| |
| Однако эти команды изменяют конфигурацию сети до ближайшей перезагрузки компьютера. Для постоянного изменения Вам нужно отредактировать файлы, о которых говорилось выше.
| |
| Файл с описанием dns-сервера <tt>/etc/resolv.conf</tt> у Вас, по идее, должен быть, но если его нет, то создадим его и поместим туда адрес Вашего dns-сервера, например 192.168.0.9
| |
| <pre>
| |
| # 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
| |
| </pre>
| |
| Для прекращения ввода и сохранения файла следует нажать <tt>Сtrl+D</tt>. Так же можно добавить в resolv.conf список доменов по-умолчанию:
| |
| <pre>
| |
| # echo search mydom1.local domain2.ru >> /etc/resolv.conf
| |
| </pre>
| |
| Домены перечисляются в порядке предпочтения поиска в одну строку. В версиях 5.х настройки dns настоятельно рекомендуется делать в файле /etc/net/ifaces/имя_интерфейса/resolv.conf
| |
| Отличия <tt>echo</tt> и <tt>cat</tt> читайте '''man echo''' и '''man cat'''.
| |
| Запускаем скрипт <tt>resolv.all</tt> (чтобы система увидела новые настройки dns)
| |
| <pre>
| |
| /etc/chroot.d/resolv.all
| |
| </pre>
| |
| | |
| == Дополнения ==
| |
| | |
| === Переименование имени сетевого интерфейса ===
| |
| Если вы хотите дать имени вашего сетевого интерфейса какое-либо информативное имя (вообще является хорошей практикой переименовать ваш интерфейс из eth0 хотя бы в eth00), вам нужно выполнить следующий ряд действий.
| |
| Выполните команду ip a и запишите, какому сетевому интерфейсу какой mac-адрес соответствует.
| |
| Отключите интерфейс (где eth1 имя интерфейса)
| |
| <pre>#ip link set eth1 down</pre>
| |
| Переименуйте его (где eth1 старое имя, local новое имя)
| |
| <pre>#ip link set eth1 name local</pre>
| |
| Смените название папки с настройками eth1 на новое название
| |
| <pre>#mv /etc/net/ifaces/eth1 /etc/net/ifaces/local</pre>
| |
| Помня об ошибке 11786 делаем
| |
| <pre>#echo "MODULE=модуль_сетевушки" >> /etc/net/ifaces/local/options</pre>
| |
| В файле /etc/net/iftab сделайте запись
| |
| <pre>local mac 11:22:33:aa:bb:cc</pre>
| |
| где 11:22:33:aa:bb:cc мак-адрес карты, полученный ранее по команде ip a.
| |
| Перезапустите сеть.
| |
| | |
| === Закрепеление порядка загрузки сетевых карт ===
| |
| Данный материал может быть актуален дистрибутиве 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>
| |
| Вариант 3. На мой взгляд еще проще ('''Добавлено новичком''').
| |
| Создаем файл
| |
| <pre>#cat > /etc/iftab
| |
| inter mac 00:18:f3:bd:98:26
| |
| intra mac 00:c0:df:f9:58:35</pre>
| |
| или
| |
| <pre>#cat > /etc/net/iftab
| |
| inter mac 00:18:f3:bd:98:26
| |
| intra mac 00:c0:df:f9:58:35</pre>
| |
| Где inter и intra имена ваших сетевых интерфейсов.
| |
| Замечание 1: Использование /etc/iftab удобно, поскольку позволяет сохранять традиционные имена интерфейсов (например, eth0), но этот механизм не поддерживает расширенную функциональность /etc/net (в частности, профили /etc/net). Средством, позволяющим использовать все возможности etcnet, является файл /etc/net/iftab, обрабатываемый не утилитой ifrename, а непосредственно etcnet. Синтаксис этого файла совпадает с синтаксисом /etc/iftab. Ограничением же является невозможность использовать стандартные имена интерфейсом (ethX, pppX) (т.е. в случае использования /etc/net/iftab вы обязательно должны переименовать ваши сетевые интерфейсы из автоматически присваиваемых во что-либо более звучное).
| |
| Замечание 2: отличие приведенного выше метода udev в том, что он позволяет кроме привязки имени интерфейса к сетевой карте именно жестко назначить порядок загрузки сетевых карт.
| |
| Замечание 3: в версиях Desktop 5.0 переименование интерфейсов возложено на udev [http://lists.altlinux.org/pipermail/sisyphus/2009-June/340033.html в этом письме]
| |
| Замечание 4: плюс ко всему, этот способ будет работать только если etcnet сам будет загружать модули сетевушек. Тоесть в файле options какого либо интерфейса будет присутствовать строка наподобии:
| |
| <pre>#cat > /etc/net/ifaces/adsl/options
| |
| ...
| |
| MODULE=e100 </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'''. О работе[http://wiki.archlinux.org/index.php/Udev_(Русский) udev].
| |
| [[Категория:HOWTO]]
| |