Существует несколько способов подключения к сети. Наиболее распространенные — это подключение через последовательный или USB порт и подключение через Ethernet.
1. Подключение через последовательный или usb порт.
Для доступа к сети (или Интернет) используется модем, будь то простой dialup, подключенный к телефонной линии, либо gsm модем.
Основной протокол для подключения — PPP. Соединение типа точка-точка (PPP) настраивается с помощью интерактивного скрипта: pppconfig, который при выполнении запрашивает необходимые данные (название подключения/имя провайдера, параметры DNS, метод аутентификации, имя пользователя, пароль, скорость порта модема, импульсный или тональный набор номера, номер телефона, порт модема). Повторным запуском pppconfig можно внести изменения в существующие настройки подключения, выбрав в меню настроек расширенные параметры можно даже задать строку инициализации модема и прочие опции. Команда pppconfig доступна после установки пакета pppconfig, который зависит от пакета ppp. Включать и отключать ppp интерфейс можно командами «pon name_conn» и «poff name_conn» (name_conn — название подключения или имя провайдера, которое задали во время настройки через pppconfig). При настройке ppp соединения через pppconfig используются следующие конфигурационные файлы:
«/etc/ppp/peers/<name_conn>» — сгенерированный pppconfig-ом файл для демона pppd
«/etc/chatscripts/<name_conn>» — сгенерированный pppconfig-ом файл, содержащий команды для диалога с модемом (AT команды, строку инициализации модема и прочее)
«/etc/ppp/options» — опции для демона pppd
«/etc/ppp/pap-secret» — данные для аутентификации по протоколу PAP
«/etc/ppp/chap-secret» — данные для аутентификации по протоколу CHAP
Альтернативным пакетом для настройки ppp является: wvdial, он настраивается командой wvdialconf.
2. Подключение через Ethernet.
Используется сетевая (Ethernet) карта. Сетевая плата может быть как для подключения по проводу так и беспроводной (Wi-Fi)
Основные протоколы: PPPoE, DHCP либо Static IP
Настройку сети Ethernet в Linux Debian можно произвести тремя способами:
1. На низком уровне, используя программы из net-tools (старые) или Linux iproute2 (новые). Многие программы net-tools на сегодня являются устаревшими, взамен используется iproute.
2. На высоком уровне, используя пакет ifupdown
3. В графическом интерфейсе (GUI), используя демон управления NetworkManager (NM) или Wicd (этим способом так же можно настроить и модемное PPP соединение)
Программы, для настройки сети, низкого уровня, являются достаточно мощными, но они не удобны и громоздки в использовании, поэтому были созданы программы высокого уровня. На настройке высокого уровня и остановимся подробнее.
Пакет ifupdown является стандартным для конфигурирования сети на высоком уровне в Linux Debian. Этот пакет использует конфигурационный файл: «/etc/network/interfaces» и содержит две команды «ifup» и «ifdown» для поднятия и отключения сетевого интерфейса. В качестве параметра передаётся имя сетевого интерфейса. Например команда «ifup eth0» поднимает интерфейс eth0 с заданными настройками в «/etc/network/interfaces»
Имя интерфейсу задаётся через механизм udev (если система смогла определить сетевую карту). Каждый сетевой интерфейс получает имя, и оно сохраняется при перезагрузке компьютера, так как привязывается к MAC адресу сетевой платы. Эта привязка записывается в файл: «/etc/udev/rules.d/70-persistent-net.rules», файл автоматически генерируется программой «/lib/udev/write_net_rules», используя правила описанные в «persistent-net-generator.rules». Таким образом, если на компьютере с Debian Linux заменить сетевую карту, то новой карте уже присвоится новое имя (например если имя интерфейса для старой карты было eth0, то новой будет назначено eth1, а имя eth0 будет ассоциированно с MAC адресом старой сетевой платы). Это нужно учитывать и следует произвести либо настройку в «/etc/network/interfaces» в соответствии с новым именем интерфейса, либо поменять правила привязки MAC адреса к имени в файле «/etc/udev/rules.d/70-persistent-net.rules». При редактировании «/etc/udev/rules.d/70-persistent-net.rules» каждое правило должно быть написано в одну строку, MAC адрес должен быть написан в нижнем регистре. Пример такого файла:
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:66:a4:c3", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:f7:43:bd", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:6a:e5:d0", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
Основная настройка сетевых параметров производится в файле «/etc/network/interfaces». Обобщённо синтаксис этого файла выглядит следующим образом:
«auto <interface_name>» — стартует (поднимает) интерфейс с именем interface_name во время загрузки системы
«allow-auto <interface_name>» — синоним «auto»
«allow-hotplug <interface_name>» — стартует интерфейс с именем interface_names, когда ядро обнаруживает hutplug событие от устройства
Строка начинающаяся с «iface <config_name> …» — определяет сетевую конфигурацию с именем config_name
Строка начинающаяся с «mapping <interface_name_glob>» — определяет какую из заданных конфигураций config_name применить на интерфейс с именем interface_name_glob. Каждая такая строфа должна содержать скрипт, который отправляет строку на стандартный вывод. В зависимости от того какую строку отправил скрипт и выбирается нужная конфигурация интерфейса.
Строка начинающаяся с «#» — коментарий (нельзя, что бы с неё начиналась последняя строчка в файле)
Строка начинающаяся с «\» — перенос конфигурации на следующую строку
Строфы начинающиеся с iface имеют следующий синтаксис:
« iface <config_name> <address_family> <method_name>
<option1> <value1>
<option2> <value2>
…»
где
<config_name> — имя конфигурации (например eth0-config)
<address_family> — семейстов адресов (inet — для IPv4, inet6 — для IPv6)
<method_name> — метод настройки.
<option1> <value1> — опция и её значение
Методы для семейства адресов inet (IPv4):
loopback — метод для определения интерфейса замыкания на себя (для этого метода нет опций)
static — метод используется для настройки интерфейса при статическом IP (Опции: address, netmask, broadcast, network, metric, gateway, pointopoint, media, hwaddress, mtu)
manual — метод для настройки интерфейсов, конфигурация которых не заданна. Интерфейсы настраиваются вручную во время команд up / down или с помощью скриптов в /etc/network/if-*.d
dhcp — метод получения настройки сети через DHCP сервер (Опции: hostname, leasehours, leasetime, vendor, client, hwaddress)
bootp — метод получения настройки сети через протокол BOOTP (Опции: bootfile, server, hwaddr)
ppp — метод использует pon/poff для конфигурации интерфейса (Опции: provider)
wvdial — метод использует wvdial для настройки интерфейса (Опции: provider)
Методы для семейства адресов inet6 (IPv6):
loopback — метод для определения интерфейса замыкания на имеющего адрес IPv6 (для этого метода нет опций)
static — метод используется для настройки интерфейса при статическом IPv6 (Опции: address, netmask, gateway, media, hwaddress, mtu)
manual — аналог метода manual для IPv4, только используется для IPv6 (для этого метода нет опций)
v4tunnel — метод для настройки тунеля IPv6 поверх IPv4 , необходима команда ip из пакета iproute (Опции: address, netmask, endpoint, local, gateway, ttl)
В обычной конфигурации строфа mapping не используется, а имя конфигурации интерфейса (<config_name>) совпадает с именем интерфейса (<interface_name>)
Пример настройки интерфейса в «/etc/network/interfaces» при статическом получении IP адреса (IPv4):
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.56.40
netmask 255.255.255.0
broadcast 192.168.56.255
gateway 192.168.56.254
lo — интерфейс замыкания на себя, нужен всегда
eth0 — основной сетевой интерфейс с IP адресом 192.168.56.40 маской 255.255.255.0 и шлюзом по умолчанию 192.168.56.254
Если IP адрес динамический и в сети используется DHCP сервер то настройка выглядит следующим образом:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
Для изменения конфигурации интерфейса, необходимо его сперва выключить командой ifdown (например ifdown eth0), затем внести изменения в файл «/etc/network/interfaces» и включить интерфейс командой ifup (например ifup eth0).
Можно использовать виртуальные интерфейсы (подинтерфейсы), если необходимо прописать несколько IP адресов на одном физическом интерфейсе. Пример такого использования:
iface eth0 inet dhcp
iface eth0:0 inet static
address 192.168.56.10
netmask 255.255.255.0
network 192.168.56.0
Здесь основной интерфейсе eth0 получает IP адрес от DHCP сервера. А подинтерфейсу eth0:0 адрес присваивается статически. Таким образом будет два IP адреса на одном физическом интерфейсе.
Посмотреть состояние интерфейсов можно командами «ip addr show» или «ifconfig«
Настройка распознавания имён.
Распознавание имён хостов поддерживается через механизм NSS (Name Service Switch). В конфигурационном файле «/etc/nsswitch.conf» имеется строфа:
hosts: files dns
Так задаётся порядок распознавания. В данном случае сперва будет произведён поиск имени в файле «/etc/hosts» и если имя не найдено, то будет отправлен DNS запрос.
Сервера DNS можно указать в файле: «/etc/resolv.conf». Пример файла:
domain example.com
search example.com
nameserver 192.168.56.100
nameserver 8.8.8.8
Если установлен пакет resolvconf , тогда DNS сервера можно задать в «/etc/network/interfaces». Пример файла:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.56.10
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
gateway 192.168.56.254
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 8.8.8.8
dns-search test.ru
Итак мы рассмотрели основные моменты настройки сети в Debian. Настройку Wi-Fi сети и соединение по протоколу PPPoE рассмотрим в других статьях (Настройка Wi-Fi в Linux Debian, Настройка PPPoE в Linux Debian).
Добавить комментарий