Русский перевод Михаил Сгибнев
Содержание
21.1. Проверка конфигурации ядра
21.2. Обзор конфигурационных файлов
21.3. Подключение к Internet с помощью модема
21.3.1. Получение информации о соединении
21.3.2. resolv.conf
и nsswitch.conf
21.3.3. Создание каталогов для pppd
21.3.4. Сценарий соединения и файл конфигурации chat
21.3.5. Аутентификация
21.3.6. Опции pppd
21.3.7. Проверка модема
21.3.8. Установка соединения
21.3.9. Использование сценария для подключения и отключения
21.3.10. Выполнение команд после дозвона
21.4. Создание маленькой домашней сети
21.5. Настройка Internet шлюза с IPNAT
21.5.1. Настройка шлюза/межсетевого экрана
21.5.2. Конфигурирование клиентской машины
21.5.3. Некоторые полезные команды
21.6. Общая настройка LAN
21.7. Соединение двух компьютеров через последовательный кабель
21.7.1. Соединение NetBSD с BSD или Linux
21.7.2. Соединение NetBSD и Windows NT
21.7.3. Соединение NetBSD и Windows 95
21.1. Проверка конфигурации ядра
Прежде, чем мы начнем конфигурировать различные аспекты работы сети, нам необходимо проверить наличие некоторых необходимых параметров в ядре. Обратитесь к главе Глава 28, Компиляция ядра для получения дополнительной информации о конфигурации, компиляции и установке ядра. Здесь мы рассмотрим процесс конфирурирования ядра, касательно параметров сети. В качестве примера мы будем использовать файл конфигурации i386/GENERIC. Конфигурационный файл для других платформ содержат подробные комментарии и подсказки. Помимо представленной здесь информации, каждая опция содержит страницу руководства options(4) , так же как и драйверы устройств, например tlp(4).
Первая строка каждого файла конфигурации содержит версию. Вы можете использовать ее для сравнения с другими, используя CVS или для сообщения об ошибках.
options NTP # NTP phase/frequency locked loop
Если вы хотите запустить на машине Network Time Protocol (NTP), то для достижения максимальной точности советуем указать эту опцию. Впрочем, без нее NTP тоже будет работать. Для получения дополнительной информации, обратитесь к ntpd(8).
file-system NFS # Network File System client
Если вы хотите использовать жесткий диск другой машины с помощью Network File System (NFS), то вам необходима эта опция. Для того, чтобы узнать о NFS больше, обратитесь к Раздел 25.2, «Сетевая файловая система (Network File System — NFS)».
options NFSSERVER # Network File System server
С помощью этой опции включается серверное расширение протокола NFS. Включите ее, если хотите предоставить доступ к жесткому диску другим машинам сети. Более подробная информация о NFS находится в главе Раздел 25.2, «Сетевая файловая система (Network File System — NFS)».
#options GATEWAY # packet forwarding
Если вы хотите маршрутизировать пакеты между сетями или сетевыми интерфейсами, необходимо установить эту опцию. С помощью этой опции не только включается маршрутизация, но и увеличивается значение некоторых буферов. Смотрите options(4) , для получения более полной информации.
options INET # IP + ICMP + TCP + UDP
Эта опция включит код TCP/IPв ядро. Даже если вы не используете сеть, эта опция необходима для нормального функционирования связей внутри машины, например, для работы X Window System. Более подробно этот вопрос описан в inet(4).
options INET6 # IPV6
Если вы хотите использовать IPv6, то эта опция для вас. Она входит в состав NetBSD начиная с релиза 1.5. Если вам она не нужна, то просто закомментируйте ее. Для получения дополнительной информации смотрите inet6(4) и главу Раздел 20.7, «Интернет протокол следующего поколения — IPv6».
#options IPSEC # IP security
Опция включает поддержку протокола IPsec, в том числе управление ключами и правилами, аутентификацию и компрессию. Эта опция не требует обязательного использования INET6, вы можете использовать IPsec с IPv4. Обратитесь к ipsec(4) для получения более подробной информации.
#options IPSEC_ESP # IP security (encryption part; define w/IPSEC)
Эта опция необходима для шифрования IPSEC.
#options MROUTING # IP multicast routing
Если необходимо марштутизировать многоадресные сервисы, например MBone, то необходимо включить эту опцию. Обратите внимание на то, что маршрутизация контролируется демоном mrouted(8).
options NS # XNS #options NSIP # XNS tunneling over IP
Эта опция задействует семейство протоколов Xerox Network Systems(TM). Они не относятся к стеку протоколов TCP/IP и в настоящее время практически не используются. Дополнительная информация содержится в ns(4).
options ISO,TPIP # OSI #options EON # OSI tunneling over IP
Эта опция включает стек протоколов OSI, который долгое время был вероятным будущим развития сети. В настоящий момент это уже история :-). Для получения более подробной информации обратитесь к iso(4).
options CCITT,LLC,HDLC # X.25
Эта опция включает протокол X.25 для передачи данных через последовательные порты. Она используется обычно совместно с опцией OSI в сетях WAN.
options NETATALK # AppleTalk networking protocols
Включает поддержку стека протоколов AppleTalk. Для использования этого протокола необходимо наличие программного обеспечения. В качестве такового вы можете использовать pkgsrc/net/netatalk и pkgsrc/net/netatalk-asun. Дополнительная информация по протоколу AppleTalk содержится в atalk(4).
options PPP_BSDCOMP # BSD-Compress compression support for PPP options PPP_DEFLATE # Deflate compression support for PPP options PPP_FILTER # Active filter support for PPP (requires bpf)
Эти опции отвечают за реализацию протокола Point-to-Point. Первые две определяют алгоритмы сжатия, а третья обеспечивает поддержку пакетной фильтрации.
options PFIL_HOOKS # pfil(9) packet filter hooks options IPFILTER_LOG # ipmon(8) log support
Эти опции включают поддержку пакетной фильтрации в NetBSD с помощью IPfilter. Для получения дополнительной информации смотрите ipf(4) и ipf(8), для того, чтобы рассмотреть пример конфигурации, обратитесь к главе Раздел 21.5.1, «Настройка шлюза/межсетевого экрана».
# Compatibility with 4.2BSD implementation of TCP/IP. Not recommended. #options TCP_COMPAT_42
Эта опция необходима только в случае, если в сети есть машины, работающие под управлением 4.2BSD или стеком протоколов с этой ОС. Установка этой опции связана с наличием ошибки в реализации стека протоколов TCP/IP 4.2BSD, в результате которой неверно выставляется широковещательный адрес.
options NFS_BOOT_DHCP,NFS_BOOT_BOOTPARAM
Эта опция разрешает поиск данных по протоколам DHCP или BOOTPARAM, в случае, если ядру указано использовать NFS в качестве корневой файловой системы. Для получения дополнительной информации смотрите diskless(8).
# Kernel root file system and dump configuration. config netbsd root on ? type ? #config netbsd root on sd0a type ffs #config netbsd root on ? type nfs
Этими переменными указывается, где ядро будет искать корневую файловую систему и ее тип. Если вы хотите указать использовать NFS через интерфейс tlp0, то должны указать здесь «root on tlp0 type nfs
». Если указывается ?
вместотипа устройства, то ядро пробует найти параметр самостоятельно.
# ISA serial interfaces com0 at isa? port 0x3f8 irq 4 # Standard PC serial ports com1 at isa? port 0x2f8 irq 3 com2 at isa? port 0x3e8 irq 5
Если вы хотите использовать PPP или SLIP, то необходимо настроить последовательные (com) интерфейсы. Настройка интерфейсов USB, PCMCIA или PUC осуществляется таким же образом.
# Network Interfaces
Этот довольно длинный список содержит драйверы сетевых карт. Пожалуйста, выберите тот, который соответствует имеющимся у вас аппаратным средствам. Для большинства драйверов доступна страница руководства man, например tlp(4), ne(4) и т.д.
# MII/PHY support
Эта секция содержит независимые от среды передачи интерфейсы для сетевых карт. Выберите тот, который соответствует вашим аппаратным средствам. Если вы не уверены в правильности выбора, оставьте все и посмотрите, какое выберет ядро. Для получения более подробной информации обратитесь к mii(4).
# USB Ethernet adapters aue* at uhub? port ? # ADMtek AN986 Pegasus based adapters cue* at uhub? port ? # CATC USB-EL1201A based adapters kue* at uhub? port ? # Kawasaki LSI KL5KUSB101B based adapters
Адаптеры USB-ethernet не могут работать на скоростях, превышающих 2MBit/s, но они очень удобны в использовании. Конечно, для поддержки работы этих устройств вам необходимо иметь другие опции USB, которые мы не будем рассматривать.
# network pseudo-devices pseudo-device bpfilter 8 # Berkeley packet filter
Это псевдоустройство позволяет прослушивать пакеты всех типов. Это необходимо для работы утилиты tcpdump, демона rarpd и других приложений, которым необходимо анализировать сетевой трафик. Для получения дополнительной информации обратитесь к bpf(4).
pseudo-device ipfilter # IP filter (firewall) and NAT
Эта опция разрешает пакетному фильтру IPfilter использовать интерфейсы (NAT, фильтрация пакетов и т.д.). Смотрите ipf(4) и Раздел 21.5.1, «Настройка шлюза/межсетевого экрана» для поучения более подробной информации.
pseudo-device loop # network loopback
Это программный кольцевой сетевой интерфейс «lo0», на сегодняшний день используемый большим количеством программ, в том числе и для маршрутизации. Он обязательно должен присутствовать в системе. Для получения более подробной информации обратитесь к lo(4).
pseudo-device ppp 2 # Point-to-Point Protocol
Если вы хотите использовать PPP через последовательный интерфейс или ethernet (PPPoE), то вам необходима эта опция. Для получения более подробной информации обратитесь к ppp(4).
pseudo-device sl 2 # Serial Line IP
Serial Line IP является простой инкапсуляцией IP поверх последовательных линий. Она не включает в себя назначение IP адресов и другие опции, в настоящее время применяется все реже. Смотрите sl(4).
pseudo-device strip 2 # Starmode Radio IP (Metricom)
Если вы счастливый обладатель беспроводной сетевой карты Metricon Ricochet, то используйте это псевдоустройство. Для получения более подробной информации обратитесь к strip(4).
pseudo-device tun 2 # network tunneling over tty
Если сетевое устройство использует туннель, то оно обращается к файлу устройства /dev/tun*
. Пакеты, направляемые на интерфейс tun0 могут быть прочитаны с /dev/tun0
, а запись данных в /dev/tun0
отправит их с сетевого интерфейса tun0. Есть возможность использования QoS. Для получения более подробной информации обратитесь к tun(4).
pseudo-device gre 2 # generic L3 over IP tunnel
Инкапсуляция GRE используется для создания туннелей layer 3 поверх IP, с помощью нее возможна организация VPN. Для получения более подробной информации обратитесь к gre(4).
pseudo-device ipip 2 # IP Encapsulation within IP (RFC 2003)
Устройство инкапсуляции IP-in-IP. Для получения более подробной информации обратитесь к ipip(4).
pseudo-device gif 4 # IPv[46] over IPv[46] tunnel (RFC 1933)
Используя интерфейс GIF можно принимать туннели IPv6 поверх IPv4, которые могут использоваться в случае использования IPv6 через провайдера IPv4. Для получения более подробной информации обратитесь к gif(4).
#pseudo-device faith 1 # IPv[46] tcp relay translation i/f
Интерфейс faith обрабатывает трафик IPv6 TCP, что необходимо для реализации передачи IPv6-to-IPv4. Для получения более подробной информации обратитесь к faith(4).
#pseudo-device stf 1 # 6to4 IPv6 over IPv4 encapsulation
Это добавляет сетевое устройство, используемое для туннеля IPv6 через IPv4, при этом нет необходимости в конфигурировании туннеля ранее. Адрес источника исходящих пакетов содержат адрес IPv4, используемый при маршрутизации. Для получения более подробной информации обратитесь к stf(4) и Раздел 25.4, «IPv6 соединения и переход сквозь 6to4».
pseudo-device vlan # IEEE 802.1q encapsulation
Этот интерфейс предоставляет поддержку IEEE 802.1Q Virtual LANs, назначая теги на фреймы Ethernet. Используя в сети коммутаторы, поддерживающие 802.1Q и настроенные на его использование, можно создать независисимые сети, имея единую физическую среду передачи данных. Что бы узнать больше, обратитесь к vlan(4).
21.2. Обзор конфигурационных файлов
Нижеприведенный список содержит перечень файлов, еоторые отвечают за конфигурирование сети. Настройка этих файлов могла быть осуществлена и ранее, сейчас же мы рассмотрим их назначение.
/etc/hosts
- Файл, содержащий адреса удаленных машин. Каждая строка содержит адрес машины, ее имя и псевдоним. Маленькие сети могут использовать только этот файл, без задействования сервера имен.
/etc/resolv.conf
- В этом файле указываются параметры, отвечающие за операции с Internet Domain Name System. В общем случае, в нем указываются адреса DNS серверов.
/etc/ifconfig.xxx
- Этот файл используется для автоматической конфигурации сетевой карты во время начальной загрузки.
/etc/mygate
- Содержит IP адрес шлюза по умолчанию.
/etc/nsswitch.conf
- Файл, описывающий порядок обращения за разрешением имен. Он определяет порядок просмотра баз данных, в которых содержатся описания машин, пользователей, груп и т.д. Например, строка:
hosts: files dns
определяет, что адреса машин ищутся а двух местах: files (локальный файл
/etc/hosts
) и DNS, причем поиск сперва осуществляется в локальном файле.Обычно не требуется модифицировать этот файл.
21.3. Подключение к Internet с помощью модема
Есть много способов подключиться к Internet. В этом разделе мы рассмотрим подключение к провайдеру с помощью модема, используя протокол PPP и самые простые настройки. Для настройки удаленного доступа вам необходимы следущие данные:
- Получить данные учетной записи от провайдера.
- Отредактировать
/etc/resolv.conf
и проверить/etc/nsswitch.conf
. - Создать каталоги
/etc/ppp
и/etc/ppp/peers
если они еще не существуют. - Создать сценарий соединения, файл конфигурации chat и файл опций pppd.
- Создать файл, содержащий имя пользователя и пароль.
На первый взгляд, процедура очень сложная, но это только кажется, вся настройка заключается только в редактировании нескольких файлов. В следующем примере, мы представим, что модем подключен к /dev/tty01
(COM2 в терминологии DOS).
Скажем несколько слов о различии между com, COM и tty. Для NetBSD, «com» является драйвером последовательного порта (в чем можно убедиться, просмотрев вывод команды dmesg), где «tty» — имя этого порта. Нумерация начинается с 0, поэтому драйвер com0 управляет первым последовательным портом, имеющим имя tty00. В мире DOS, первому последовательному порту соответствует COM1 (0x3f8), второму порту соотвтетсвует COM2 и т.д. Поэтому, COM1 (DOS) и /dev/tty00
(NetBSD) — одно и то же.
Помимо внешних модемов, подключаемых на COM-порты (используя /dev/tty0[012]
на i386, /dev/tty[ab]
на sparc, …) могут использоваться USB модемы (/dev/ttyU*
) и pcmcia/cardbus модемы (/dev/tty0[012]
).
21.3.1. Получение информации о соединении
The first thing to do is ask the provider the necessary information for the connection, which means:
- Телефонный номер модемного пула.
- Метод аутентификации.
- Имя пользователя и пароль.
- IP адрес сервера имен.
21.3.2. resolv.conf
и nsswitch.conf
В файле /etc/resolv.conf
мы укажем данные, предоставленные нам провайдером. В этом примере DNS серверы имеют адреса «194.109.123.2» и «191.200.4.52».
Пример 21.1. resolv.conf
nameserver 194.109.123.2 nameserver 191.200.4.52
И теперь пример файла /etc/nsswitch.conf
.
Пример 21.2. nsswitch.conf
# /etc/nsswitch.conf group: compat group_compat: nis hosts: files dns netgroup: files [notfound=return] nis networks: files passwd: compat passwd_compat: nis shells: files
По умолчанию, поиск имени осуществляется в первую очередь в файле /etc/hosts
, после чего идет запрос к серверу DNS. Нет никаких причин изменять этот порядок.
21.3.3. Создание каталогов для pppd
Каталоги /etc/ppp
и /etc/ppp/peers
содержат конфигурационные файлы pppd. Их необходимо создать, так как после начальной установки NetBSD они не существуют. Права доступа на них должны быть выставлены в 700.
#
mkdir /etc/ppp
#
mkdir /etc/ppp/peers
21.3.4. Сценарий соединения и файл конфигурации chat
Сценарий соединения использует параметры командной строки pppd, он располагается в /etc/ppp/peers
и обычно называется по имени провайдера. Для примера, если имя провайдера BigNet , и имя вашей учетной записи у провайдера alan, то сценарий будет выглядеть следующим образом:
Пример 21.3. Сценарий соединения
# /etc/ppp/peers/bignet connect '/usr/sbin/chat -v -f /etc/ppp/peers/bignet.chat' noauth user alan remotename bignet.it
В предыдущем примере, для дозвона к провайдеру используется файл chat. О параметрах самого сценария подробнее можно узнать в странице руководства pppd(8).
Замечание
Если при установлении соединения возникают проблемы, то добавьте следующие две строки в сценарий:
debug kdebug 4
В результате вы получите журнальный файл, где будет отображен процесс соединения. Смотрите pppd(8), syslog.conf(5).
Сценарий соединения вызывает приложение chat для установки физического соединения (инициализация модема, набор номера и т.д.). Параметры, передаваемые chat могут быть определены непосредственно в сценарии или вынесены в отдельный файл. В этом примере, номер модемного пула провайдера 0299999999 и мы получаем следущее: The connection script calls the chat application to deal with the physical connection (modem initialization, dialing, …) The parameters to chat can be specified inline in the connection script, but it is better to put them in a separate file. If, for example, the telephone number of the POP to call is 02 99999999, an example chat script could be:
Пример 21.4. Файл конфигурации chat
# /etc/ppp/peers/bignet.chat ABORT BUSY ABORT "NO CARRIER" ABORT "NO DIALTONE" '' ATDT0299999999 CONNECT ''
Замечание
Если с дозвоном возникают проблемы, то проверить его можно вручную, воспользовавшись утилитой cu(1).
21.3.5. Аутентификация
В течении процесса аутентификации каждая из двух систем идентифицируют друг друга, хотя на практике, конечно же вам незачем проверять подлинность провайдера. Для аутентификации будет использоваться один из этих методов:
- PAP/CHAP
- по имени пользователя
Большинство провайдеров использует аутентификацию PAP/CHAP.
21.3.5.1. Аутентификация PAP/CHAP
Аутентификационная информация (по простоу: пароль) хранится в файле /etc/ppp/pap-secrets
для метода PAP и в /etc/ppp/chap-secrets
для метода CHAP.
user * password
Для примера:
alan * pZY9o
Для обеспечения безопасности файлы pap-secrets
и chap-secrets
должны быть доступны только пользователю root и иметь права доступа «600».
#
chown root /etc/ppp/pap-secrets
#
chown root /etc/ppp/chap-secrets
#
chmod 600 /etc/ppp/pap-secrets
#
chmod 600 /etc/ppp/chap-secrets
21.3.5.2. Аутентификация по имени пользователя
Этот тип аутентификации в настоящее время практически не используется. В этом случае, в файле chat вместо укаания на файлы PAP/CHAP должны указываться имя пользователя и пароль, так как chat может имитировать интерактивный вход в систему. Так же необходимо установить соответствующие права доступа к этому файлу.
Следующий пример показывает аутентификацию по имени пользователя:
Пример 21.5. Файл сhat с аутентификацией по имени пользователя
# /etc/ppp/peers/bignet.chat ABORT BUSY ABORT "NO CARRIER" ABORT "NO DIALTONE" '' ATDT0299999999 CONNECT '' TIMEOUT 50 ogin: alan ssword: pZY9o
21.3.6. Опции pppd
Для для размещения опций pppd нам потребуется создать файл /etc/ppp/options
(chmod 644).
Пример 21.6. /etc/ppp/options
/dev/tty01 lock crtscts 57600 modem defaultroute noipdefault
Для понимания значений этих опций, обратитесь к странице руководства pppd(8).
21.3.7. Проверка модема
Перед установкой соединения хорошей идеей будет провести маленькую проверку модема, которая позволит нам удостовериться в работоспособности модема и наличии физического соединения. Для этого теста мы будем использовать программу cu(1).
- Создадим файл
/etc/uucp/port
следующего содержания:type modem port modem device /dev/tty01 speed 115200
(укажите порт, используемый вами, вместо
/dev/tty01
). - Выполните команду cu -p modem для посылки команд на модем. Для примера:
#
cu -p modem
Connected.ATZ
OK~.
Disconnected.#
В предыдущем примере на модем была подана команда ATZ, на что тот ответил OK: мы можем сделать вывод о исправности модема. Для выхода из cu(1) наберите
~
(tilde) и потом.
(dot).
Если модем не работает, проверьте правильность его подключения к компьютер (в том числе и правильность указания порта утилите cu(1)).
Когда при запуске cu(1) появляется сообщение «Permission denied», проверьте владельца файла /dev/tty
, им должен быть «uucp». Для примера:##
$
ls -l /dev/tty00
crw------- 1 uucp wheel 8, 0 Mar 22 20:39 /dev/tty00
Если владельцем является root, то такое сообщение вы точно получите:
$
ls -l /dev/tty00
crw------- 1 root wheel 8, 0 Mar 22 20:39 /dev/tty00$
cu -p modem
cu: open (/dev/tty00): Permission denied cu: All matching ports in use
21.3.8. Установка соединения
Наконец, все готово и соединиться с провайдером можно командой:
#
pppd call bignet
где bignet
имя существующего сценария соединения. Просмотреть сообщения pppd, появляющиеся в ходе соединения, можно следующей командой:
#
tail -f /var/log/messages
Для отключения используйте команду kill -HUP для pppd.
#
pkill -HUP pppd
21.3.9. Использование сценария для подключения и отключения
Когда соединение установлено, наступило время написать несколько сценариев для автоматизации нашей работы. Эти два сценария мы назовем, для примера, ppp-start
и ppp-stop
.
ppp-start
используется для соединения с провайдером:
Пример 21.7. ppp-start
#!/bin/sh MODEM=tty01 POP=bignet if [ -f /var/spool/lock/LCK..$MODEM ]; then echo ppp is already running... else pppd call $POP tail -f /var/log/messages fi
ppp-stop
используется для закрытия соединения:
Пример 21.8. ppp-stop
#!/bin/sh MODEM=tty01 if [ -f /var/spool/lock/LCK..$MODEM ]; then echo -f killing pppd... kill -HUP `cat /var/spool/lock/LCK..$MODEM` echo done else echo ppp is not active fi
Эти два сценария предполагают, то когда pppd активен, то создается файл LCK..tty01
в каталоге /var/spool/lock
. Этот файл содержит идентификатор процесса (pid) pppd.
Они должны быть исполняемыми:
#
chmod u+x ppp-start ppp-stop
21.3.10. Выполнение команд после дозвона
Если вы обнаружили, что всегда после дозвона выполняете один набор команд, то вы можете поместить их в сценарий /etc/ppp/ip-up
, который вызывается pppd(8) после установления соединения. Соответственно, перед закрытием соединения, выполняется /etc/ppp/ip-down
. Сценарии должны быть выполняемыми. Для получения дополнительной информации, обратитесь к странице руководства pppd(8).
21.4. Создание маленькой домашней сети
Работа с сетью является одной из основных сил Unix вообще и NetBSD в частности. Настройка сети проста, непринужденна и нет никакой необходимости покупать дополнительное программное обеспечение, поскольку все необходимое уже входит в состав системы. В разделе Раздел 21.5, «Настройка Internet шлюза с IPNAT» рассматривается процесс конфигурирования NetBSD в качестве шлюза локальной сети, использующего IPNAT для предоставления доступа в Интернет машинам локальной сети через единственный IP адрес маршрутизатора. Единственным условием будет наличие поддерживаемых NetBSD сетевых плат (обратитесь к INSTALL.*
за списком поддерживаемого оборудования).
В начале, необходимо установить сетевую карту и подсоединить ее к хабу, концентратору, коммутатору или непосредственно к машине (смотрите Рисунок 21.1, «Сеть с шлюзом»).
Затем проверьте, что сетевая карта определена ядром, проанализировав вывод команды dmesg. В следующем примере показано сообщение об обнаруженной карте стандарта NE2000.
... ne0 at isa0 port 0x280-0x29f irq 9 ne0: NE2000 Ethernet ne0: Ethernet address 00:c2:dd:c1:d1:21 ...
Если карта не распознана ядром, то проверьте наличие необходимого драйвера в файле конфигурации ядра и правильность установки прерывания. Для примера, это строка isa NE2000 в файле конфигурации и карте назначено IRQ 9.
... ne0 at isa? port 0x280 irq 9 # NE[12]000 ethernet cards ...
Если конфигурация карты отличается, то возможно, она не будет работать. В этом случае, вам придется изменить параметры конфигурации, откомпилировать и установить новое ядро или изменить настройки карты (джамперы или установочный диск).
Следущая команда покажет текущую конфигурацию сетевой карты.
#
ifconfig ne0
ne0: flags=8822<BROADCAST,NOTRAILERS,SIMPLEX,MULTICAST> mtu 1500 address: 00:50:ba:aa:a7:7f media: Ethernet autoselect (10baseT) inet6 fe80::250:baff:feaa:a77f%ne0 prefixlen 64 scopeid 0x1
Программная конфигурация сетевой карты осуществляется довольно просто. Назначем ей IP адрес «192.168.1.1».
#
ifconfig ne0 inet 192.168.1.1 netmask 0xffffff00
Обратите внимание, что используемые здесь сети 10.0.0.0/8 и 192.168.0.0/16 принадлежат диапазону частных сетей.
Повторное выполнение предыдущей команды приведет к другому результату:
#
ifconfig ne0
ne0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500 address: 00:50:ba:aa:a7:7f media: Ethernet autoselect (10baseT) inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255 inet6 fe80::250:baff:feaa:a77f%ne0 prefixlen 64 scopeid 0x1
Вывод команды ifconfig изменился: теперь отображается IP адрес и появилось два новых флага «UP» и «RUNNING». Если статус интерфейса не «UP», то пакеты через него посылаться не будут.
Машине был назначен IP адрес 192.168.1.1, принадлежащий диапазону частных сетей и немаршрутизируемого в Internet. Конфигурирование закончено и его необходимо проверить. При наличии другой машины в сети, можно использовать утилиту ping. Для примера, адрес соседней машины 192.168.1.2:
#
ping 192.168.1.2
PING ape (192.168.1.2): 56 data bytes 64 bytes from 192.168.1.2: icmp_seq=0 ttl=255 time=1.286 ms 64 bytes from 192.168.1.2: icmp_seq=1 ttl=255 time=0.649 ms 64 bytes from 192.168.1.2: icmp_seq=2 ttl=255 time=0.681 ms 64 bytes from 192.168.1.2: icmp_seq=3 ttl=255 time=0.656 ms ^C ----ape PING Statistics---- 4 packets transmitted, 4 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 0.649/0.818/1.286/0.312 ms
После перезагрузки нам потребуется провести повторное конфигурирование сетевой карты. Для того, чтобы избежать этого, добавим следущие строки в /etc/rc.conf
:
auto_ifconfig=yes ifconfig_ne0="inet 192.168.1.1 netmask 0xffffff00"
В этом примере была установлена переменная ifconfig_ne0
, так как ядром была определена именно ne0. Если вы используете другуюю сетевую карту, то измените имя переменной.
Во время следующей загрузки сетевая карта будет настроена автоматически.
Если у вас есть маршрутизатор, подключенный к Интернет, то вы можете использовать его в качестве шлюза по умолчанию. Для этого необходимо указать в переменной defaultroute
IP адрес маршрутизатора в файле /etc/rc.conf
:
defaultroute=192.168.0.254
Не рекомендуется указывать вместо адреса маршрутизатора его доменное имя, так как в случае внешнего DNS сервера, вы не смошете разрешить в адрес его имя и споткнетесь о проблему «курицы-и-яйца».
Если в вашей сети немного машин, то можно использовать файл /etc/hosts
, который будет содержать соответствие адресов именам машин внутренней сети. Для примера:
Пример 21.9. /etc/hosts
# # Host Database # This file should contain the addresses and aliases # for local hosts that share this file. # It is used only for "ifconfig" and other operations # before the nameserver is started. # # 127.0.0.1 localhost ::1 localhost # # RFC 1918 specifies that these networks are "internal". # 10.0.0.0 10.255.255.255 # 172.16.0.0 172.31.255.255 # 192.168.0.0 192.168.255.255 192.168.1.1 ape.insetti.net ape 192.168.1.2 vespa.insetti.net vespa 192.168.1.0 insetti.net
Если вы соединяетесь через nternet Service Provider или используете локальный Domain Name Server (DNS), то можете использовать его для разрешения имен в IP адреса дополнительно к /etc/hosts
, который содержит список машин только локальной сети. Для конфигурирования системы на использование DNS необходимо отредактировать /etc/resolv.conf
, где будут указаны адреса DNS серверов и имена доменов, для машин, чьи имена будут расширяться до полных. Например, если у нас имеется DNS сервер 192.168.1.2 и имя домена «home.net», то файл /etc/resolv.conf
будет выглядеть следущим образом:
# /etc/resolv.conf domain home.net nameserver 192.168.1.2
Проверьте файл /etc/nsswitch.conf
, он должен ыглядеть подобно рассмотренному в разделе Пример 21.2, «nsswitch.conf
».
Подведем итог. Для настройки сети нам необходимо: установленный и подключенный к сети сетевой адаптер, который в последствии конфигурируется командой ifconfig и прописывается в /etc/rc.conf
. Файлы /etc/resolv.conf
и /etc/nsswitch.conf
должны быть настроены на использование DNS. Эта настройка подходит маленькой сети без дополнительных функций.
21.5. Настройка Internet шлюза с IPNAT
Таинственный акроним IPNAT раскрывается как Internet Protocol Network Address Translation и позволяет маршрутизировать внутреннюю сеть (такую, как описана в Раздел 21.4, «Создание маленькой домашней сети») в Интернет. Это означает то, что имея только один реальный (статический или динамический) IP адрес, назначенный шлюзу, можно предоставить одновременный доступ в Интернет всем машинам локальной сети.
Некоторые примеры использования IPNAT могут быть найдены в каталоге /usr/share/examples/ipf
, смотрите файлы BASIC.NAT
и nat-setup
.
НРеализация этого примера более подробно рассмотрена в разделе Рисунок 21.1, «Сеть с шлюзом»: The setup for the example described in this section is detailed in Рисунок 21.1, «Сеть с шлюзом»: host 1 подключен к провайдеру с помощью модема и получает динамический IP адрес. Машины host 2 и host 3 выходят в Интернет с помощью IPNAT, выполняющегося на host 1 и являющегося для остальных машин сети шлюзом по умолчанию.
Рисунок 21.1. Сеть с шлюзом
21.5.1. Настройка шлюза/межсетевого экрана
Для использования IPNAT в ядро должно быть включено псевдоустройство «pseudo-device ipfilter» и включена маршрутизация пакетов. Проверить это можно выполнив:
#
sysctl net.inet.ip.forwarding
net.inet.ip.forwarding = 1
Если результат равен «1», как в примере выше, то маршрутизация включена. Если нет, то есть два способа устранить данное упущение:
- Откомпилировать новое ядро, включив опцию GATEWAY.
- Включить эту опцию в текущем ядре следующей командой:
#
sysctl -w net.inet.ip.forwarding=1
Вы можете добавить эту опцию в файл
/etc/sysctl.conf
, для того, чтобы она устанавливалась во время начальной загрузки.net.inet.ip.forwarding=1
Остальная часть этой главы рассказывает , как создать конфигурацию IPNAT с автоматическим запуском после подключения к провайдеру. Имея таким образом настроенный маршрутизатор мы можем предоставить доступ в Интернет всем машинам локальной сети, даже если они работают под управлением операционной системы, отличной от NetBSD.
Для начала, нам необходимо создать файл /etc/ipnat.conf
, содержащий следующие правила:
map ppp0 192.168.1.0/24 -> 0/32 proxy port ftp ftp/tcp map ppp0 192.168.1.0/24 -> 0/32 portmap tcp/udp 40000:60000 map ppp0 192.168.1.0/24 -> 0/32
Диапазон адресов 192.168.1.0/24 принадлежит локальной сети. В первой строке конфигурационного файла включается поддержка активного режима работы ftp через маршрутизатор. Вторая используется для правильной обработки tcp и udp пакетов, так как мы используем портмаппинг (много машин локальной сети в один реальный адрес). Третья используется для работы ICMP, ping и т.д.
Создаем файл /etc/ppp/ip-up
, который будет вызываться после создания PPP сессии:
#!/bin/sh # /etc/ppp/ip-up /etc/rc.d/ipnat forcestart
Создаем файл /etc/ppp/ip-down
, который будет вызываться после закрытия PPP сессии:
#!/bin/sh # /etc/ppp/ip-down /etc/rc.d/ipnat forcestop
Файлы ip-up
и ip-down
должны быть выполняемыми:
#
chmod u+x ip-up ip-down
Маршрутизатор готов к работе.
21.5.2. Конфигурирование клиентской машины
Создаем файл /etc/resolv.conf
, в котором указываем адрес DNS сервера, тот же, что и на маршрутизаторе.
Затем, необходимо установить шлюз по умолчанию:
#
route add default 192.168.1.1
192.168.1.1 является адресом шлуза и был нами сконфигурирован выше.
Конечно, если вы не хотите выполнять эту команду каждый раз после перезагрузки, то стоит определить переменную «defaultroute» в файле /etc/rc.conf
.
Процесс настройки может отличаться, в зависимости от используемой операционной системы.
Эту настройку необходимо выполнить на всех машинах.
21.5.3. Некоторые полезные команды
Следующие команды могут использоваться для диагностики проблем:
- ping
- Используется для проверки доступности удаленной машины, путем отправки ICMP пакетов.
- netstat -r
- Отображает таблицу маршрутизации (аналогично route show).
- traceroute
- Показывает путь пакета до удаленной машины.
- tcpdump
- Используется на маршрутизаторе для нализа трафика TCP/IP.
21.6. Общая настройка LAN
Маленькая сеть, пример которой рассматривался выше, содержит много элементов. настраиваемых вручную. В больших сетях, где имеется централизованное управление используется DHCP сервер для автоматического назначения сетевых параметров клиентским машинам. Для настройки NetBSD на использование клиента DHCP необходимо активировать переменную:
dhclient=yes
в /etc/rc.conf
. В этом случае IP адрес будет получен автоматически, создастся файл /etc/resolv.conf
и пропишется маршрут по умолчанию.
21.7. Соединение двух компьютеров через последовательный кабель
Если есть необходимость передать файлы между двумя машинами, но отсутствует подключение к сети, то есть простой способ решить эту проблему: свяжем машины через последовательные порты исполдьзуя нуль-модемный кабель. В этом разделе мы опишем процесс конфигурирования.
21.7.1. Соединение NetBSD с BSD или Linux
Самый простой пример, когда обе машины работают под управлением NetBSD: создаем соединение по протоколу SLIP. На первой машине выполним команду:
#
slattach /dev/tty00
#
ifconfig sl0 inet 192.168.1.1 192.168.1.2
На второй машине выполним команду:
#
slattach /dev/tty00
#
ifconfig sl0 inet 192.168.1.2 192.168.1.1
Теперь вы можете проверить соединение с помощью команды ping, например, выполните со второй машины:
#
ping 192.168.1.1
Если связь налажена, то вы можете использовать команды типа ftp, telnet и все остальные обычным образом. Имя машн может быть записано в файл /etc/hosts
.
- В предыдущем примере мы использовали первый последовательный порт (
/dev/tty0
). В случае необходимости, замените не используемый вами. - IP адреса 192.168.x.xзарезервированы для использования во «внутренних» сетях. Первая машина имеет адрес 192.168.1.1, а вторая 192.168.1.2.
- Для увеличения скорости передачи данных, может использоваться опция
-s
speed
команды slattach. - ftp может использоваться, только если активно inetd и запущен сервер ftpd.
Linux
Если одна из машин работает под управлением Linux, то на ней необходимо выполнить следующие команды (предположим, что ее адрес 192.168.1.2):
#
slattach -p slip -s 115200 /dev/ttyS0 &
#
ifconfig sl0 192.168.1.2 pointopoint 192.168.1.1 up
#
route add 192.168.1.1 dev sl0
Не забудте «&» в первой команде.
21.7.2. Соединение NetBSD и Windows NT
NetBSD и Windows NT можно легко (почти) соединить используя все тотже нуль-модемный кабель. В теории всего лишь требуется создать « Подключение удаленного доступа» в Windows NT и запустить pppd в NetBSD.
Создайте файл .ppprc
в каталоге /root
и запустите pppd от пользователя root. В качестве примера используйте нижеследующее:
connect '/usr/sbin/chat -v CLIENT CLIENTSERVER' local tty00 115200 crtscts lock noauth nodefaultroute :192.168.1.2
Значение первой строки будет рассмотрено позже, далее указывается адрес 192.168.1.2, назначаемый Windows NT и указывается порт tty00
, к которому будет подключен кабель.
На стороне NT должно быть установлено устройство null modem из Панели управления и удаленное соединение должно использовать именно его. Драйвер, идущий в комплект поставки Windows NT 4 не является на 100% нуль-модемным: при создании соединения он посылает строку CLIENT, а ожидает ответ CLIENTSERVER. Эта проблема как раз и решается первой строкой файла .ppprc
. chat должен ответить NT, иначе соединение будет разорвано.
В конфигурации удаленного доступа используйте следущие параметры: нуль-модем, номер телефона «1» (все равно не используется), PPP сервер, использовать только протокол TCP/IP и получать IP адрес и адрес сервера DNS автоматически. Используйте для порта аппаратное управление потоком и настройки порта 115200 8N1.
Все готово для соединения.
- Соедините две машины используя нуль-модемный кабель.
- Запустите pppd на NetBSD. Для просмотра сообщений от pppd: tail -f /var/log/messages).
- Запустите соединение удаленного доступа на Windows NT.
21.7.3. Соединение NetBSD и Windows 95
Установка соединения с Windows 95 похожа на работу Windows NT: Удаленный доступ на Windows 95 и сервер PPP на NetBSD Большинство(если не все) выпусков Windows 95 не имеют драйвера null modem, поэтому его придется установить отдельно и повторить все настройки, указанные в разделе NT. Будет одно отличие в файле .ppprc
(строка вызова chat удалена).
Если вам не удалось найти нуль-модемный драйвер для Windows 95, то можно попробовать сделать так:
- Создайте подключение удаленного доступа как описано в Раздел 21.7.2, «Соединение NetBSD и Windows NT» используя «Standard Modem».
- В
.ppprc
укажите следущую строку chat:connect '/usr/sbin/chat -v ATH OK AT OK ATE0V1 OK AT OK ATDT CONNECT'
- Выполните соединение, как указано в Раздел 21.7.2, «Соединение NetBSD и Windows NT».
В этом случае, chat подражает ответам стандартного модема и Windows 95 может работать.