Gentoo Linux сборник статей


Листинг 2: Установка iproute2# emerge sys-apps/iproute2



Pdf просмотр
страница28/79
Дата14.11.2016
Размер5.55 Mb.
Просмотров12589
Скачиваний1
1   ...   24   25   26   27   28   29   30   31   ...   79
Листинг 2: Установка iproute2
# emerge sys-apps/iproute2
# выбор iproute2, а не ifconfig, когда установлены оба
modules=( "iproute2" )
Так как и ifconfig и iproute2 делают очень сходные вещи, то мы сделали их базовую настройку взаимозаменяемой. Например, оба приведенных ниже примера работают не зависимо от того, какой модуль используется.
Листинг 3: Примеры ifconfig и iproute2
config_eth0=( "192.168.0.2/24" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0" )
# также можно указать широковещательный адрес config_eth0=( "192.168.0.2/24 brd 192.168.0.255" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" )
3.c. DHCP
DHCP — это способ получения сетевой информации (адреса IP, сервера
DNS, шлюза и т.д.) с сервера. Это значит, что если в сети запущен сервер DHCP, вам остается только сказать каждому клиенту, чтобы он использовал DHCP, и сеть настроится сама собой. Конечно, вам придется настраивать все остальное
(бесроводную сеть, подключение точка-точка и т.д.), если они должны работать до использования DHCP.
Поддержка DHCP обеспечивается dhclient, dhcpcd, pump или udhcpc. У каждого модуля DHCP есть свои плюсы и минусы: здесь мы быстренько рассмотрим их.
294

Настольная книга Gentoo Linux x86
Модуль
DHCP
Пакет
Плюсы
Минусы
dhclient net-misc/dhcp
Сделан ISC, теми же людьми, кто делает BIND
DNS. Гибок в настройке.
Настройка чрезмерно сложна, программа довольно «распухшая», не может получать данные о серверах NTP с
DHCP, по умолчанию не отправляет имя узла.
dhcpcd
net-misc/dhcpcd Давно в Gentoo по умолчанию, не зависит от внешних утилит.
Более не поддерживается разработчиком, может быть временами медленным, не становится демоном при неограниченном сроке аренды адреса.
pump
net-misc/pump
Компактный, не зависит от внешних утилит.
Более не поддерживается разработчиком, ненадежен, особенно по модему, не может получать данные о серверых NIS по DHCP.
udhcpc
net-misc/udhcp
Компактный; наименьший существующий клиент
DHCP, сделан для встроенных систем.
Не зарекомендовал себя
— ни в одном дистрибутиве не используется по умолчанию; не поддерживает длительность таймаута более 3 секунд.
Если у вас установлено больше одного DHCP клиента, вам нужно указать, какой использовать; иначе по умолчанию используется dhcpcd, если есть.
Чтобы передать определенные параметры модулю DHCP, используйте модуль_eth0="..." (замените модуль на имя используемого модуля DHCP, например, dhcpcd_eth0).
Мы попытались сделать DHCP относительным агностиком: по существу, мы поддерживаем следующие команды, с использованием переменной dhcp_eth0. По умолчанию не включена ни одна из них.
release — освобождать IP-адрес для повторного использования
nodns — не замещать /etc/resolv.conf
295

Настольная книга Gentoo Linux x86
nontp — не замещать /etc/ntp.conf
nonis — не замещать /etc/yp.conf
Листинг 4: Простая настройка DHCP в /etc/conf.d/net
# требуется только если у вас несколько модулей DHCP
modules=( "dhcpcd" )
config_eth0=( "dhcp" )
dhcpcd_eth0="-t 10" # прекращение после 10 секунд dhcp_eth0="release nodns nontp nonis" # только получать адрес
Примечание: По умолчанию, dhcpcd, udhcpc и pump передают текущее узла на сервер DHCP, поэтому его больше не требуется указывать.
3.d. Модем ADSL
Сначала нужно установить программное обеспечение для ADSL.
Листинг 5: Установка пакета rp-pppoe
# emerge net-dialup/rp-pppoe
Предупреждение: В baselayout-1.11.x поддерживается только PPPoE. Надеемся, что в будущих версиях появится поддержка PPPoA.
Сейчас нам нужно указать, что на eth0 будет ADSL-интерфейс, и ввести наше имя пользователя, обновив /etc/conf.d/net.
Листинг 6: Настройка eth0 для ADSL в /etc/conf.d/net config_eth0=( "adsl" )
adsl_user_eth0="имя-пользователя"
Наконец, нужно указать ваше имя и пароль в /etc/ppp/pap-secrets.
Листинг 7: Пример /etc/ppp/pap-secrets
# * обязательна "пользователь" * "пароль"
3.e. APIPA (автоматическая частная IP-адресация)
2APIPA пытается найти свободный адрес в диапазоне
169.254.0.0-169.254.255.255, проверяя отклик на интерфейсе произвольного адреса из этого диапазона по протоколу arp. Если отклика нет, адрес назначается интерфейсу.
296

Настольная книга Gentoo Linux x86
Это полезно только в локальных сетях, где нет сервера DHCP, нет прямого подключения к интернету, и все другие компьютеры используют APIPA.
Для поддержки APIPA установите net-misc/iputils или net-analyzer/arping.
Листинг 8: Настройка APIPA в /etc/conf.d/net
# сначала пробуем DHCP, при неудаче переходим на APIPA
config_eth0=( "dhcp" )
fallback_eth0=( "apipa" )
# использование только APIPA
config_eth0=( "apipa" )
3.f. Объединение интерфейсов
Для объединения каналов в ствол (bonding) установите net-misc/ifenslave.
Объединение используется для повышения пропускной способности сети. Если у вас есть две сетевых карты, выходящих в одну и ту же сеть, можно объединить их, так что ваши приложения увидят только один интерфейс, но реально будут пользоваться двумя сетевыми платами.
Листинг 9: Настройка объединения в /etc/conf.d/net
# объединение интерфейсов slaves_bond0="eth0 eth1 eth2"
# вы можете не захотеть назначать адрес IP объединенному интерфейсу config_bond0=( "null" )
# указание зависимости от eth0, eth1 и eth2, так как им может требоваться
# дополнительная настройка depend_bond0() {
need net.eth0 net.eth1 net.eth2
}
3.g. Образование моста (поддержка 802.1d)
Для поддержки мостов установите net-misc/bridge-utils.
Мосты используются для объединения сетей. Например, у вас может быть сервер, подсоединенный к интернету через ADSL-модем, и плата беспроводного доступа для предоставления доступа в интернет через ADSL модем другим компьютерам.
Чтобы соединить оба интерфейса, можно создать «мост».
Листинг 10: Настройка моста в /etc/conf.d/net
# настройка моста: подробности в "man btctl"
brctl_br0=( "setfd 0" "sethello 0" "stp off" )
# включаем порты в мост br0
bridge_br0="eth0 eth1"
297

Настольная книга Gentoo Linux x86
# устанавливаем порты в "null", чтобы не запускался dhcp config_eth0=( "null" )
config_eth1=( "null" )
# наконец, даем мосту адрес; можно использовать и DHCP
config_br0=( "192.168.0.1/24" )
# указываем зависимость от eth0 и eth1, так как им может требоваться
# дополнительная настройка depend_br0() {
need net.eth0 net.eth1
}
Важно: Для использования некоторых вариантов моста вам может потребоваться обращение к документации по именам переменных.
3.h. MAC-адрес
Для изменения MAC-адреса своего интерфейса вам не потребуется ничего устанавливать, если у вас sys-apps/baselayout-1.11.14 или новее, и вы собираетесь сменить MAC-адрес на какой-то определенный. Однако, если вам нужно сменить MAC-адрес на случайный, или ваш baselayout старше указанной версии, для смены адреса потребуется установить пакет командой emerge net-
analyzer/macchanger.
Листинг 11: Пример изменения MAC-адреса
# установка MAC-адреса интерфейса mac_eth0="00:11:22:33:44:55"
# случайная установка последних 3 байт адреса mac_eth0="random-ending"
# установка случайного адреса из диапазона для физического соединения
# того же типа (оптического, медного, беспроводного) любого изготовителя mac_eth0="random-samekind"
# установка случайного адреса из диапазона для любого типа физического
# соединения (оптического, медного, беспроводного) любого изготовителя mac_eth0="random-anykind"
# полностью случайный; ВНИМАНИЕ, некоторые MAC-адреса, сгенерированные
# таким образом, могут вести себя НЕ ТАК, как предполагается mac_eth0="random-full"
3.i. Образование тоннеля
Для образования тоннеля вам не нужно ничего устанавливать, поскольку на это способен сам обработчик интерфейса.
298

Настольная книга Gentoo Linux x86
Листинг 12: Настройка тоннеля в /etc/conf.d/net
# для тоннелей GRE
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"
# для тоннелей IPIP
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"
# для настройки интерфейса config_vpn0=( "192.168.0.2 peer 192.168.1.1" )
3.j. Виртуальные сети (поддержка 802.1q)
Для поддержки VLAN, установите net-misc/vconfig.
Виртуальная локальная сеть (VLAN) — это группа сетевых устройств, которые ведут себя, как будто подключены к одному сегменту сети, даже когда это не так.
Членам VLAN видны только члены той же VLAN даже если в той же физической сети присутствуют другие.
Листинг 13: VLAN configuration in /etc/conf.d/net
# указание номеров VLAN для интерфейса
# пожалуйста, убедитесь, что ваши номера VLAN НЕ дополнены нулем vlans_eth0="1 2"
# можно также настроить VLAN
# за подробностями обращайтесь к man vconfig vconfig_eth0=( "set_name_type VLAN_PLUS_VID_NO_PAD" )
vconfig_vlan1=( "set_flag 1" "set_egress_map 2 6" )
# настройка интерфейса как обычно config_vlan1=( "172.16.3.1 netmask 255.255.254.0" )
config_vlan2=( "172.16.2.1 netmask 255.255.254.0" )
Важно: Для использования некоторых вариантов VLAN вам может потребоваться обращение к документации по именам переменных.
4. Беспроводная сеть
4.a. Введение
В настоящее время поддерживается подключение к беспроводной сети с помощью wireless-tools или wpa_supplicant. Важно помнить, что подключение к беспроводным сетям настраивается глобально, а не для определённого интерфейса.

wpa_supplicant — лучший выбор, но он поддерживает не все драйверы.
Список поддерживаемых драйверов находится на сайте wpa_suppliant.
Кроме того, сейчас wpa_supplicant может подключаться только к тем сетям, на SSID которых настроен.
299

Настольная книга Gentoo Linux x86

wireless-tools поддерживает практически все платы и драйверы, но не способен подключаться к точкам доступа, работающим исключительно с
WPA.
Предупреждение: Драйвер linux-wlan-ng в данный момент не поддерживается в baselayout. Это из-за того, что в linux-wlan-ng своя собственная программа установки и настройки, которая ни на что не похожа. Разработчики linux-wlan-ng, по слухам, собираются перейти на установку как в wireless-tools; когда это произойдет, вы сможете использовать linux-wlan-ng с baselayout.
4.b. Запросчик WPA
Запросчик WPA (WPA Supplicant) — пакет, позволяющий подсоединяться к точкам доступа с протоколом WPA. Его настройка проходит достаточно гладко, и пакет работает достаточно стабильно, хотя находится на стадии бета- тестирования.
Листинг 1: Установка wpa_supplicant
# emerge net-wireless/wpa_supplicant
Важно: Для работы wpa_supplicant в ядре должен быть включен параметр
CONFIG_PACKET.
Теперь нам необходимо настроить
/etc/conf.d/net для предпочтения
wpa_supplicant по отношению к wireless-tools (по умолчанию, если обе программы установлены, работает wireless-tools).
Листинг 2: Настройка /etc/conf.d/net для wpa_supplicant
# выбор wpa_supplicant modules=( "wpa_supplicant" )
# важно указать wpa_supplicant, какой драйвер нужно использовать,
# так как программа пока не слишком хорошо угадывает сама wpa_supplicant_eth0="-Dбезумный-wifi"
Примечание: Если вы используете драйвер host-ap, то вам потребуется перевести плату в ведомый режим (managed mode), прежде чем она сможет правильно работать с
wpa_supplicant. Для этого можно указать iwconfig_eth0="mode managed" в /etc/conf.d/net.
Это довольно просто, не так ли? Однако, нужно настроить саму программу wpa_supplicant, что значительно сложнее. Сложность зависит от степени защиты точек доступа, к которым вы собираетесь подключаться. Следующий упрощенный пример взят из /etc/wpa_supplicant.conf.example, поставляемого в составе wpa_supplicant.
300

Настольная книга Gentoo Linux x86
Листинг 3: Пример /etc/wpa_supplicant.conf
# следующую строку нельзя изменять, иначе программа не сможет работать ctrl_interface=/var/run/wpa_supplicant
# ограничим доступ к настройкам WPA только для root ctrl_interface_group=0
# пусть wpa_supplicant заботится о сканировании и выборе точки доступа ap_scan=1
# простой случай: WPA-PSK, согласованный ключ - текстовая строка,
# принимать любой допустимый шифр network={
ssid="просто"
psk="очень тайный пароль"
# чем выше приоритет, тем скорее выбор priority=5
}
# как в предыдущем, но с запросом сканирования по определенному SSID
# (для точек доступа, отклоняющих широковещательный SSID)
network={
ssid="второй ssid"
scan_ssid=1
psk="очень тайный пароль"
priority=2
}
# использовать только WPA-PSK; принимать любое допустимое сочетание шифров network={
ssid="пример"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb priority=2
}
# открытое подключение без шифрования (не WPA, не IEEE #802.1X)
network={
ssid="тест-открытого-текста"
key_mgmt=NONE
}
# подключение с общим ключом WEP (не WPA, не IEEE #802.1X)
network={
ssid="тест-статического-wep"
key_mgmt=NONE
wep_key0="abcde"
wep_key1=0102030405
wep_key2="1234567890123"
wep_tx_keyidx=0
priority=5
}
301

Настольная книга Gentoo Linux x86
# подключение с общим ключом WEP (не WPA, не IEEE #802.1X),
# допуск c использованим общего ключа IEEE 802.11
network={
ssid="тест2-статического-wep"
key_mgmt=NONE
wep_key0="abcde"
wep_key1=0102030405
wep_key2="1234567890123"
wep_tx_keyidx=0
priority=5
auth_alg=SHARED
}
# сеть IBSS/ad-hoc с WPA-None/TKIP
network={
ssid="тест adhoc"
mode=1
proto=WPA
key_mgmt=WPA-NONE
pairwise=NONE
group=TKIP
psk="тайный пароль"
}
4.c. Утилиты Wireless tools
Начальная установка и режим ведомого
Wireless Tools обеспечивают общий способ настройки базовых беспроводных интерфейсов, вплоть до защиты WEP. Хотя WEP является слабым методом защиты, он наиболее распространен.
Для настройки Wireless Tools служат несколько основных переменных. В примере файла настроек, приведенном ниже, описано все, что вам потребуется.
Нужно помнить, что отсутствие настройки означает «подключаться к нешифрующей точке доступа с самым сильным сигналом». Программа будет всегда пытаться подключить вас к чему-нибудь.
Листинг 4: Установка wireless-tools
# emerge net-wireless/wireless-tools
Примечание: Хотя вы можете хранить свои параметры настройки беспроводной сети в /etc/conf.d/wireless, это руководство рекомендует хранить их в
/etc/conf.d/net.
Важно: Вам понадобится обратиться к документации по именам переменных.
Листинг 5: Пример настройки iwconfig /etc/conf.d/net
# приоритет использования iwconfig над wpa_supplicant modules=( "iwconfig" )
302

Настольная книга Gentoo Linux x86
# Настройка ключей WEP для точек доступа ESSID1 и ESSID2
# Можно указывать до 4 ключей WEP, но только 1 может работать в каждый
# момент, поэтому мы указываем индекс по умолчанию [1], чтобы сделать ключ [1],
# а впоследствии снова, чтобы изменить активный ключ на [1].
# Это нужно, если вы настраиваете другие ESSID на использование WEP-ключей,
# отличающихся от [1].
#
# Приставка s: перед ключом означает, что ключ текстовый, иначе -
# шестнадцатиричный
#
# enc open указывает открытую защиту (более безопасно)
# enc restricted указывает ограниченную защиту (менее безопасно)
key_ESSID1="[1] s:ваш-ключ-здесь key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"
#
# Нижеследующее работает только при поиске доступных точек доступа.
# Иногда видны несколько точек доступа, и требуется задать
# предпочтительный порядок подключения preferred_aps=( "ESSID1" "ESSID2" )
Настройка порядка выбора точки доступа
Можно указать несколько дополнительных параметров для уточнения порядка выбора точки доступа, но обычно этого не требуется.
Вам решать, подключаться ли только к указанным точкам доступа, или нет. По умолчанию, если подключение ко всем настроенным точкам доступа не удалось, и есть возможность подключиться к не шифрующей точке доступа, такое соединение произойдет. Этот порядок зависит от переменной associate_order.
Ниже приводится таблица значений и с описанием их действия:
Значение
Описание
any
поведение по умолчанию
preferredonly
соединяться только с видимыми точками доступа из списка
forcepreferred
принудительно подключаться к точкам доступа в заданной последовательности, если они не обнаружены при сканировании
forcepreferredonly
не сканировать точки доступа, просто пытаться подключиться к каждой по списку
forceany
так же, как в forcepreferred + подключаться к любой доступной точке доступа
Наконец, мы можем указать blacklist_aps и unique_ap. blacklist_aps работает подобно preferred_aps. unique_ap устанавливается в yes или no, указывая, можно ли подключать второй беспроводной интерфейс к той же точке доступа, что и первый.
Листинг 6: Пример blacklist_aps и unique_ap
303

Настольная книга Gentoo Linux x86
# иногда требуется полностью исключить возможность подключения
# к определенным точкам доступа blacklist_aps=( "ESSID3" "ESSID4" )
# если у вас несколько беспроводных плат, можно указать, можно ли им
# подключаться к одной и той же точке доступа
# значение - "yes" или "no"
# по умолчанию - "yes"
unique_ap="yes"
Режим отдельного и ведущего узла
Если вы хотите становиться отдельным узлом (ad hoc), когда не удается подключиться ни к какой точке доступа в ведомом режиме, это тоже возможно.
Листинг 7: Откат к режиму отдельного узла adhoc_essid_eth0="Этот отдельный узел"
Как насчет подключения к сетям Ad-Hoc или запуска в режиме ведущего (master), чтобы стать точкой доступа? Есть конфигурация и для такой работы! Вам может потребоваться определить WEP-ключи, как показано выше.
Листинг 8: Пример настройки ad-hoc/master
# установка режима: допускается managed (ведомый, по умолчанию),
# ad-hoc (отдельный) или или master (ведущий). Не все драйверы поддерживают
# каждый режим mode_eth0="ad-hoc"
# установка ESSID интерфейса
# в ведомом режиме заставляет интерфейс пытаться подключиться к указанному
# ESSID, и больше ничего essid_eth0="Этот отдельный узел"
# если не указан, используется канал 3
channel_eth0="9"
Важно: Следующий текст взят дословно из документации BSD wavelan, входящей в документацию NetBSD. «Существуют 14 каналов. Нам сообщили, что использование каналов с 1 по 11 является законным в Северной Америке, каналов с 1 по 13 — в большинстве стран Европы, каналов с 10 по 13 — во
Франции, и только канала 14 — в Японии. Если у вас есть сомнения, обратитесь к документации от вашей платы или точки доступа. Убедитесь что выбранный канал совпадает с каналом точки доступа (или другой платы в сети ad-hoc). По умолчанию на платах, продаваемых в Северной Америке и большинстве стран
Европы, настроен канал 3; на платах, продаваемых во Франции — канал 11; на платах, продаваемых в Японии — канал 14.»
Устранение неполадок в wireless tools
Существуют дополнительные переменные, которые можно использовать для запуска своего беспроводного оборудования и устранения неполадок, возникших
304

Настольная книга Gentoo Linux x86
из-за драйвера или проблем с сетевым окружением. Ниже приведена таблица прочих функций, которые можно перепробовать:
Переменная
Значение по
умолчанию
Описание
iwconfig_eth0
За подробными сведениями о параметрах iwconfig обращайтесь к странице справки iwconfig.
iwpriv_eth0
За подробными сведениями о параметрах iwpriv обращайтесь к странице справки iwpriv
sleep_scan_eth0
0
Время задержки в секундах перед попыткой сканирования. Требуется, когда драйверу или прошивке нужно дополнительное время для перехода в рабочий режим.
sleep_associate_eth
0
5
Время ожидания связи интерфейса с точкой доступа (в секундах) перед переходом к опросу следующей
associate_test_eth0
MAC
Некоторые драйверы не сбрасывают MAC- адрес, связанный с недоступной точкой доступа, при потере или попытки связи.
Некоторые драйверы не сбрасывают значение качества сигнала при потере или попытке соединения.
Допустимые значения: MAC, quality и all.
scan_mode_eth0
Некоторым драйверам необходимо сканировать в режиме ad-hoc. Если сканирование не удается, попробуйте указать здесь ad-hoc.
iwpriv_scan_pre_eth
0
Посылать интерфейсу некоторые команды iwpriv перед сканированием. За дополнительными сведениями обращайтесь к странице справки iwpriv.
iwpriv_scan_post_et
h0
Посылать интерфейсу некоторые команды iwpriv после сканирования.
За дополнительными сведениями обращайтесь к странице справки iwpriv.
4.d. Раздельная настройка сети по ESSID
Иногда необходим статический IP при соединении с ESSID1, и DHCP при соединении с ESSID2. На деле, большинство переменных модуля можно определять раздельно по ESSID. Вот как это сделать:
305

Настольная книга Gentoo Linux x86
Примечание: Это работает при использовании WPA Supplicant или Wireless Tools.
Важно: Вам потребуется свериться с документацией по именам переменных.
Листинг 9: Назначение сетевых настроек для ESSID
config_ESSID1=( "192.168.0.3/24 brd 192.168.0.255" )
routes_ESSID1=( "default via 192.168.0.1" )
config_ESSID2=( "dhcp" )
fallback_ESSID2=( "192.168.3.4/24" )
fallback_route_ESSID2=( "default via 192.168.3.1" )
# можно также указать сервера имен и др.
# ПРЕДУПРЕЖДЕНИЕ: DHCP переопределит настройки, если не указано иное dns_servers_ESSID1=( "192.168.0.1" "192.168.0.2" )
dns_domain_ESSID1="some.domain"
dns_search_domains_ESSID1="search.this.domain search.that.domain"
# перенастройка производится по МАС-адресу точки доступа;
# это полезно, когда в разных местах есть точки доступа с одинаковым ESSID
config_001122334455=( "dhcp" )
dhcpcd_001122334455="-t 10"
dns_servers_001122334455=( "192.168.0.1" "192.168.0.2" )
5. Дополнительные возможности
5.a. Стандартные функции-обработчики
Можно определить четыре функции, которые вызываются при операциях запуска (start) и останова (stop). При вызове функциям передается название интерфейса, так что одна и та же функция может управлять несколькими адаптерами.
Для указания на то, что запуск или останов интерфейса может продолжаться, возвращаемое значение функций preup() и predown() должно быть нулевым
(успешным). Если preup() возвращает ненулевое значение, запуск интерфейса прерывается. Если predown() возвращает ненулевое значение, не допускается продолжение останова интерфейса.
Возвращаемые значение функций postup() и postdown() игнорируется, так как показываемая ими ошибка не обрабатывается.




Поделитесь с Вашими друзьями:
1   ...   24   25   26   27   28   29   30   31   ...   79


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал