Freebsd не видит сеть. Сетевые настройки FreeBSD в VirtualBox

  • 06.05.2019

Для тех кто имеет хотя бы самые малейшие азы в сфере программирования, настройка сети FreeBSD, не представит большой проблемы и не вызовет трудностей. Самой популярной версией программы FreeBSD сегодня является FreeBSD 6.2.
Для того чтобы произвести настройку сетевой карты на базе FreeBSD, первоначально необходимо определить модель, тип самой сетевой карты, а также используемый чип. В этом поможет сама система, так как отличительной особенностью ее является способность самостоятельно определять типы сетевых карт, представленных самыми разными мировыми производителями.

Представленных в ядре «Generic» драйвера самых разнообразных сетевых карт, представляются следующим образом:

dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38

000ff irq 15 at device 11.0 on pci0

dc0: Ethernet address: 00:a0:cc:da:da:da

ukphy0: on miibus0

ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto

dc1: <82c169 PNIC 10/100BaseTX> port 0?9800-0?98ff mem 0xd3000000-0xd30

000ff irq 11 at device 12.0 on pci0

dc1: Ethernet address: 00:a0:cc:da:da:db

ukphy1: on miibus1

ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto

Если в «Generic» необходимого драйвера для сетевой карты не окажется, то можно скачать его из всемирной паутины. Однако для того чтобы установка таким образом прошла успешно, необходимо провести компилирование ядра операционной системы.
При настройки сетевой карты, важным элементом будет являться привилегии пользователя «root». Если в качестве пользователя выступает профессионал, то они могут использовать командную строку – ipconfig. Если пользователю понадобиться определить прошла ли установка сетевой карты, то необходимо выбрать листинг, набрав в командной строке ipconfig.

dc0: flags=8843 mtu 1500

inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255

ether 00:a0:cc:da:da:da

media: Ethernet autoselect (100baseTX)

dc1: flags=8843 mtu 1500

inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255

ether 00:a0:cc:da:da:db

media: Ethernet 10baseT/UTP

status: no carrier

lp0: flags=8810 mtu 1500

lo0: flags=8049 mtu 16384

inet 127.0.0.1 netmask 0xff000000

tun0: flags=8010 mtu 1500

После того как будет набран листинг, в обязательном порядке должны будут определиться все сетевые устройства. К примеру, так:
* lp0: интерфейс параллельного порта
* dc0: первый Ethernet интерфейс
* lo0: устройство loopback

* dc1: второй Ethernet интерфейс

* tun0: туннельное устройство, используемое ppp

Можно также настройку выполнять и с помощью sysinstall. Если сетевые устройства подключены, то появяться аналогичные признаки:
1. UP - карта готова к работе и настроена.

2. Карта имеет адрес (в данном случае 192.168.1.3).

3. Подсетевая маска инсталлирована (netmask; 0xffffff00, то же, что и 255.255.255.0).

4. Адрес широковещательный (в данном случае, 192.168.1.255).

5. Обозначение MAC адреса карты (ether) 00:a0:cc:da:da:da

6. Выбор необходимой физической среды передачи данных в режиме автовыбора ((media: Ethernet autoselect (100baseTX))).
7. Статус соединения (status) active, т.е. Для dc1, мы видим status: no carrier. Такое показание нормально в том случае, если кабель не подключен к карте. В том случае, если ipconfig обозначает след. листинг, то карта работает неверно и ее настройки необходимо исправить.
dc0: flags=8843 mtu 1500

ether 00:a0:cc:da:da:da
Для того, чтобы произвести настройку сетевой карты, необходимо обладать привилегиями пользователя root. Самым лучшим местом настройки сетевых карт, является файл /etc/rc.conf. после того момента как вы откроете строку /etc/rc.conf стоит произвести добавку следующего листинга:

ifconfig_dc0=”inet 192.168.1.3 netmask 255.255.255.0?

ifconfig_dc1=”inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP”

После этого стоит произвести замену dc0, dc1 требуется на соответствующие карты. Далее необходимо произвести редактирование файла /etc/hosts и добавление имени и IP адреса компьютеров, которые имеются в сети. Для того чтобы в дальнейшем была возможность получить необходимую информацию по сетевым настройкам, стоит обратиться за помощью интернет-адресу: man.hosts.5; и к /usr/share/examples/etc/hosts. Затем необходимо произвести перезагрузку системы и удостовериться, что сетевая карта теперь обладает ip – адресом. Для того чтобы произвести проверку, стоит пропинговать интерфейс или провести проверку в локальной сети. После успешной проверки, можно сказать, что настройка сети FreeBSD завершена.

В контексте данного мануала мы будем рассматривать адресацию IPv4. Настройки IP-адреса производятся через файл rc.conf, причем в нем мы прописываем как статический ip-адрес, так и в случае использования DHCP указываем о необходимости использования динамического.

Для начала определим какие сетевые интерфейсы используются на машине, сделаем это с помощью команды ifconfig.

Скриншот показывает результат выполнения команды ifconfig. На нем мы можем видеть одну сетевую карту с именем em0, а также виртуальный loopback интерфейс lo0. Наименование сетевого интерфейса зависит от производителя (Например для сетевых карт Realtek это будет re, у меня em это встроенная интеловская сетевая карта). В нашем случае мы видим наш сетевой интерфейс с присвоенным адресом 192.168.2.6. Сетевая маска написана в шестнадцатиричном виде

Установка статического ip-адреса.

Скажем я хочу поменять ip-адрес без перезагрузки машины. Это можно сделать с помощью одной команды через shell. Соответственно этот адрес измениться после перезагрузки, т.к. все настройке при загрузке берутся из файла /etc/rc.conf, а мы туда вносить ничего пока не будем.

Для примера я хочу поменять адрес на 192.168.2.78. Есть два варианта записи команды, оба они верны -

Ifconfig em0 192.168.2.78 netmask 255.255.255.0

Ifconfig em0 192.168.2.78/24

Обе команды сменят ай-пи адрес, различие состоит в формате записи, во втором случае мы указываем 24-ю подсеть, что соответствует маске сети 255.255.255.0. Для того, чтобы этот статический адрес стал постоянным (как ни сумбурно это звучит, в смысле сохранился после перезагрузки). Мы должны добавить запись в /etc/rc.conf

Указывать маску подсети можно также двумя путями:

Ifconfig_em0="192.168.2.78 netmask 255.255.255.0"

Ifconfig_em0="192.168.2.78/24"

После перезагрузуки Ваш сервер назначит интерфейс em0 ip-адрес 192.168.2.78 и маску 255.255.255.0

Получение динамического адреса от DHCP

В данном случае также существует два пути, первый временный (до перезаргузки), второй постоянный, то бишь получать адрес каждый раз после перезагрузки.

Соотвественно для первого пути, мы просто вводим команду

Dhclient em0 Для второго пути, добавляем строку в rc.conf

Ifconfig_em0="DHCP"

Установка шлюза по умолчанию.

Для установки шлюза по умолчанию, редактируем файл /etc/rc.conf, добавляем или изменяем строку -

Defaultrouter="192.168.2.254"

Также это можно проделать командами - route delete default route add default 192.168.2.254

Задание серверов DNS

Для указания DNS-серверов (например мы хотим установить публичные гугловские DNS), открываем на редактирование файл /etc/resolv.conf и прописываем - nameserver 8.8.8.8 nameserver 8.8.4.4

Дистрибутив фрюхи часто называют самым подходящим для решения прикладных сетевых задач в локальной сети. Сегодня мы займемся решением одной из сетевых задач — настройкой шлюза на Freebsd 10 для доступа в интернет из локалки. Это простой, популярный и востребованный функционал сервера, который можно расширять дополнительными возможностями.

Будем использовать следующую версию системы для решения нашей задачи по настройке шлюза:

# uname -v FreeBSD 10.2-RELEASE-p8 #0 r292756M: Sat Dec 26 22:49:34 MSK 2015 root@freebsd:/usr/obj/usr/src/sys/GENERIC

На сервере установлены 2 сетевые карты:

  • hn0 — внешний интерфейс, получает интернет от провайдера, настройки по dhcp
  • hn1 — локальная сеть, адрес 10.20.30.1, установлен вручную

В нашу задачу по настройке программного freebsd роутера будет входить настройка маршрутизации на сервере, установка и настройка ipfw, включение nat, настройка локального dhcp и dns сервера.

Подготовка сервера к настройке шлюза

Информацию о выданных leases dhcp сервера dnsmasq можно посмотреть в файле /var/db/dnsmasq.leases .

Анализ сетевой активности в freebsd с помощью iftop

Иногда хочется посмотреть, что происходит на роутере и кто использует интернет в данный момент. По-умолчанию, в системе нет готового средства для получения этой информации. На помощь нам придет простая программа iftop, которая позволяет в режиме реального времени посмотреть активность на сетевом интерфейсе.

Устанавливаем iftop на настроенный Freebsd шлюз:

# pkg install iftop

Запускаем iftop с указанием интерфейса и отображением используемых портов:

# iftop -i hn1 -P

Видим любопытную картину — кто, куда, по какому порту и с какой скоростью лезет.

Я для примера на одном из компьютеров запустил генератор трафика интернета. Он занял почти весь канал и это стало отлично видно на роутере с помощью iftop. Конечно, эта простая утилита не решает всех вопросов по мониторингу сетевой активности, но для представления текущей картины подходит, если вам не нужно что-то большее.

Заключение

Подведем итог того, что сделали. За короткое время настроили полноценный шлюз (по сути программный роутер) на базе Freebsd 10 для обеспечения выхода в интернет клиентов за сервером. При этом обеспечили автоматическое получение настроек. Даже на скромном виртуальном сервере такой шлюз способен переварить достаточно большой траффик.

Вся настройка занимает буквально 10-15 минут. Основное время уходит на сборку ядра. Чем выше версия Freebsd, тем дольше оно собирается, несмотря на то, что скорости железа существенно возрастают.

Пройдемся по пунктам и разберемся с тем, что конкретно мы сделали:

  1. Подготовили сервер к настройке шлюза.
  2. Пересобрали ядро с необходимыми параметрами.
  3. Настроили ipfw и nat, включили маршрутизацию.
  4. Установили и настроили dnsmasq для раздачи сетевых настроек по dhcp и dns сервера.
  5. Установили iftop для простейшего анализа сетевой активности на внешнем интерфейсе.

Этого достаточно для полноценной работы шлюза на Freebsd 10. Если есть необходимость подсчета пользовательского траффика или ограничения доступа к определенным ресурсам, можно к нему.

В этой статье будет рассмотрена реализация простой (офисной или домашней) локальной сети c выходом в Интернет на базе операционной системы FreeBSD. Рассмотренный в предыдуших статьях сервер (он же шлюз в Интернет) будет реализован именно на этой операционной системе. Здесь мы рассмотрим только базовую установку FreeBSD и настройку выхода в Интернет, а дополнительные сетевые сервисы (FTP, WEB и пр.) будут рассмотренны в соответствующих статьях. Дальнейший материал будет основан на статье "Простая офисная локальная сеть с подключением к Интернет ".

Базовая установка и настройка FreeBSD

Итак, после подготовительных действий, рассмотренных в статье , приступим к установке операционной системы FreeBSD 6.2.

Образы CD можно скачать с сайта www.freebsd.org (2 CD).

После загрузки компьютера с инсталляционного CD запускается программа sysinstall, которая предназначена для установки и настройки FreeBSD. С помощью этой программы можно произвести настройку операционной системы не только во время установки, но и после, в любое время, запустив ее из командной строки (# sysinstall).

Навигация в ней осуществляется с помощью следующих клавиш: стрелки курсора, <пробел> , , (причем <пробел> и > эквивалентны, а клавиша аналогична стрелкам влево-вправо ).
Чтобы вернуться на предыдущее меню, необходимо выбрать пункт Exit или . Омечать выбранные пункты можно или пробел ом или enter -ом. (Из меню выбора пакетов (packages ) можно выйти только, выбрав кнопку , даже если вы никаких пакетов не хотите устанавливать.)

Начинаем установку.

1. Выбираем из меню пункт Custom .

2. Далее в появившемся меню выбираем пункт Partition и попадаем в редактор слайсов (слайсы соответствуют первичным разделам в терминологии Windows и Linux; для установки FreeBSD достаточно одного слайса). Примечание: если в компьютере несколько жестких дисков, то сначала будет предложено меню выбора диска.
Например, на моей машине уже есть два раздела с Windows XP , а остальное место обозначено как unused (не занято):

Чтобы удалить какой-либо раздел, на него надо стрелками вверх-вниз подвести курсор и нажать клавишу , но если необходимо оставить существующие разделы, например с Windows, то тогда их трогать не надо.
Чтобы создать слайс для freebsd надо подвести курсор на раздел, помеченный как unused , и нажать клавишу (Create Slice). В появившемся окне надо ввести размер создаваемого слайса в блоках (или мегабайтах, добавив букву M после введенного числа, например - 1000M) или оставить значение по умолчанию для использования всего свободного пространства.
Далее соглашаемся с предложенным типом раздела (165 - для FreeBSD). В результате получаем слайс ad2s3 , где ad2s3 означает: a ta d isk 2 , s lice 3 .

Для завершения редактирования слайсов надо нажать клавишу (Finish).

3. В появившемся меню выбираем установку менеджера загрузки - BootMgr .

4. Выбираем пункт Label и попадаем в редактор разделов файловой системы FreeBSD. Здесь созданный ранее слайс можно "нарезать" на разделы файловой системы FreeBSD. Это разбиение можно произвести автоматически, нажав клавишу (Auto Defaults) или вручную. Попробуйте автоматическое разбиение. Удалить любой раздел можно клавишей . Но лучше вручную создать необходимые разделы.
Для создания раздела курсор ставим на "нарезаемый" слайс ad2s3 (или какой там у вас... в самой верхней строке) и нажимаем клавишу (Create), вводим размер создаваемого раздела (не забываем в конце числа букву M , если вводится размер в мегабайтах), выбираем тип "Swap " для swap раздела или "FS " - для всех остальных разделов и указываем точку монтирования. (Точка монтирования - это каталог, в который будет монтироваться раздел). Повторяем процедуру для всех создаваемых разделов. Размеры разделов необходимо хорошо спрогнозировать. Например в разделе /var будут находиться временные файлы, лог-файлы, файлы баз данных, очереди печати, почты и т.д.; в /usr (точнее в /usr/local) - все устанавливаемые дополнительно приложения; в /home - каталоги пользователей; размер раздела SWAP обычно выбирается равным одному-двум размерам RAM; для корневого раздела "/" достаточно 256MB.
У меня получилось так:

Как можно видеть, разделы файловой системы обозначаются добавлением буквы (a,b,...) к имени слайса.
Завершаем редактирование разделов, нажав (Finish), и возвращаемся в меню.

5. Переходим к пункту Distributions , где можно выбрать тип базовой установки, и отмечаем опцию Developer , которая означает, что будут установлены все основные бинарные файлы (системные утилиты, библиотеки, компиляторы), исходники и документация. Соглашаемся на установку коллекции портов (Ports Collection). Далее, выбрав пункт Exit , возвращаемся в предыдущее меню и выбираем Commit , выбираем источник установки (в нашем случае CD/DVD ) и отвечаем утвердительно на предупреждение о необратимости дальнейших действий. После этого идет процесс установки базовых компонентов системы. После завершения установки будет предложено вернуться в кофигурационное меню для продолжения установки/насройки. Выбираем и возвращаемся в меню.

6. В пункте Root Password устанавливаем пароль пользователя root (администратора). Пункт User Manager не трогаем - пользователей добавим потом.

7. Руссифицируем консоль (пункт Console ):

  • в пункте Font выбираем IBM 866 ,
  • в пункте Keymap выбираем Russia KOI8-R ,
  • в пункте Screenmap выбираем KOI8-R to IBM866 ,
  • в пункте Ttys выбираем KOI8-R (cons25r ).

8. Настраиваем мышь (пункт Mouse ):

  • в пункте Type выбираем auto (в большинстве случаев),
  • в пункте Port выбираем PS/2 (или COM1...),
  • в пункте Enable включаем поддержку мыши и проверяем ее работу.

9. В пункте Networking можно настроить сеть:

  • в пункте Interfaces можно выбрать из списка и настроить определившиеся сетевые интерфейсы (для некоторых сетевых карточек возможно потребуется перекомпилировать ядро или настроить их, прежде чем они появятся в списке). Настроить сеть можно позже, см. раздел "Настройка сети" ниже.;
  • отмечаем опцию ssh , чтобы иметь защищенный удаленный доступ к системе;
  • отмечаем опцию Gateway , чтобы разрешить маршрутизацию ip пакетов между сетевыми интерфейсами (если машина будет использоваться как маршрутизатор).

Но к настройке сети мы еще вернемся в одной из следующих статей.

10. Пункт Security не трогаем.

11. Выбираем пункт Packages , чтобы сразу установить несколько пакетов, хотя устанавливать приложения лучше из портов. В CD-ROM должен быть установлен инсталляционный CD. Пока выберем только командный интерпретатор bash. Его можно найти в группе shells . Ну, а далее по вкусу, например можно сразу выбрать установку XFree86-4.3, kde, moziila и т.д., хотя для сервера по большому счету иксы не нужны.
Отметив клавишей или необходимые пакеты, выбираем внизу пункт , затем , ждем окончания установки и выходим из sysinstall. Соглашаемся на перезагрузку, не забываем вынуть CD. На этапе загрузки из меню загрузчика выбираем FreeBSD (если используется несколько ОС).

12. Входим в систему под именем root .

13. Настраиваем консоль под себя. (Этот пункт выполнять необязательно).
Настроим и сделаем основным установленный нами командный интерпретатор bash (как в Linux).
Проверим, есть ли он в файле /etc/shells , если нет, то добавляем туда строку: /usr/local/bin/bash.
Сделать интерпретатор bash основным для суперпользователя root, можно командой:

# pw usermod root -s /usr/local/bin/bash

Копируем файлы .bash_profile , .bashrc , .bash_logout из директории /usr/compat/linux/etc/skel в /root и /usr/share/skel , но уже с именами dot.bash_profile , dot.bashrc , dot.bash_logout соответственно. Сделать это можно следующими командами:

# cp /usr/compat/linux/etc/skel/.bash_profile /root/.bash_profile # cp /usr/compat/linux/etc/skel/.bashrc /root/.bashrc # cp /usr/compat/linux/etc/skel/.bash_logout /root/.logout # cp /usr/compat/linux/etc/skel/.bash_profile /usr/share/skel/dot.bash_profile # cp /usr/compat/linux/etc/skel/.bashrc /usr/share/skel/dot.bashrc # cp /usr/compat/linux/etc/skel/.bash_logout /usr/share/skel/dot.logout

Теперь эти конфигурационные файлы при создании новых пользователей будут копироваться в их домашние каталоги.

Изменим настройки по умолчанию для интерактивной команды добавления пользователей adduser, запустив ее с ключом -C:

# adduser -C

(отвечаем class: russian, shell: bash, остальное оставляем по умолчанию).
Все. Теперь новые пользователи, созданные утилитой adduser , будут иметь руссифицированную консоль с командным интерпретатором bash.
И последний штрих. Для изменения приглашения командной строки в файлы .bashrc /usr/share/skel/dot.bashrc ) добавим строку: PS1="$ ", после чего приглашение будет выглядеть как [username@hostname currentdir]$ .
Отмечу, что редактировать конфигурационные файлы можно в простом
текстовом редакторе ee , например:

# ee /usr/share/skel/dot.bashrc

Далее можно создавать новых пользователей с помощью утилиты adduser . Чтобы пользователь имел в дальнейшем возможность получать права суперпользователя root по команде su, его надо включить в группу wheel.
Переключать раскладку клавиатуры можно клавишей . При нажатой клавише выполняет свою обычную функцию.

На этом начальная установка и настройка системы закончена.

Конфигурирование ядра

Здесь мы коротко затронем вопросы конфигурирования и компиляции ядра.

Наверно, многие содрагались, услышав устрашающую фразу - "компиляция ядра системы". Однако, если спокойно разобраться, ничего страшного здесь нет. С точки зрения обывателя ядро - это "прослойка" между прикладными программами и "железом". Прикладные программы не взаимодействуют с "железом" и между собой напрямую, все взаимодействие осуществляется через ядро, и взаимодействие это осуществляется через стандартный интерфейс системных вызовов. Кроме интерфейса системных вызовов ядро содержит файловую подсистему, подсистему управления процессами, подсистему ввода-вывода, драйверы устройств (модули ядра). Но нам пока важно лишь то, что ядро непосредственно взаимодействует с "железом", а FreeBSD позволяет нам сконфигурировать ядро под конкретное "железо". Устанавливаемое по умолчанию ядро поддерживает много неиспользуемого в нашем случае оборудования и обеспечивает лишь базовую функциональность.

Приступим к конфигурации ядра

Настройка ядра FreeBSD осуществляется путем редактирования в любом текстовом редакторе конфигурационного файла ядра. По умолчанию это /usr/src/sys/i386/conf/GENERIC . Но мы будем редактировать не его, а его копию/usr/src/sys/i386/conf/NEW_GENERIC .
Для этого выполняем следующие команды:

# cd /usr/src # cp sys/i386/conf/GENERIC sys/i386/conf/NEW_GENERIC # ee sys/i386/conf/NEW_GENERIC

В файле NEW_GENERIC удаляем поддержку оборудования, которого у нас нет, и функциональность, которая нам не нужна, просто комментируя или удаляя соответствующие строки. Если нет уверенности, то лучше ничего не удалять. Далее добавляем несколько параметров, чтобы включить NAT (трансляцию адресов - преобразование IP адресов локальной сети во внешний IP адрес), что даст возможность использовать в Интернете один внешний IP адрес всеми компьютерами локальной сети:

Ident NEW_GENERIC options IPFIREWALL options IPDIVERT options IPFIREWALL_VERBOSE options IPFIREWALL_VERBOSE_LIMIT=1000

Здесь ident NEW_GENERIC определяет имя нового ядра (можно любое задать).
options IPFIREWALL - включает FIREWALL.
options IPFIREWALL_VERBOSE - включает логи файрвола.
options IPDIVERT - разрешает перенаправлять пакеты с одного сетевого интерфейса на другой, опция необходима для трансляции адресов, для "расшаривания" Интернета.

Списки поддерживаемых устройств и опций можно найти в файлах:
/usr/src/sys/i386/conf/NOTES и /usr/src/sys/conf/NOTES .

Следующими командами выполняем компиляцию ядра:

# make buildkernel KERNCONF=NEW_GENERIC # make installkernel KERNCONF=NEW_GENERIC

Перезагружаем компьютер. Все. Старое ядро автоматически будет сохранено в каталоге /boot/kernel.old .

Не PnP устройства можно настроить, отредактировав файл /boot/device.hints . Требуемому устройству (по аналогии с другими) можно задать номера прерываний, портов и пр. Тамже можно запретить использование какого-либо устройства. Например, у меня в "маме" была "криво" реализованна поддержка acpi, из-за чего глючила мышь, а перепрошивать bios не хотелось. Поэтому я просто отключил поддержку acpi в ядре, добавив в файл /boot/device.hints следующую строку:

Hint.acpi.0.disabled="1"

Но это просто пример. Надеюсь у вас все заработает нормально и без этого.

Еще один момент. Все определившиеся ядром устройства имеют буквенно-цифровые обозначения, например pcm0 - звуковая плата. Какие устройства, под какими именами и насколько удачно ядро смогло определить их и сконфигурировать, можно увидеть при загрузке системы или по команде dmesg .

Настройка сети

Теперь можно приступить к настройке нашего сервера как шлюза в Интернет. Итак наш сервер имеет две сетевых платы: одна "смотрит" в Интернет, а вторая - в нашу локальную сеть. В сетевых настройках первой сетевой платы нам надо прописать IP адрес, шлюз, маску подсети и IP-адреса DNS-серверов, которые нам предоставил Интернет-провайдер. Пусть в нашем примере нам провайдер предоставил: внешний IP 195.34.10.134, шлюз провайдера 195.32.10.1, DNS серверы: 195.34.32.116 и 87.240.1.2).

В настройках второй сетевой платы надо прописать IP адрес 192.168.20.1, который принадлежит нашей локальной сети (см. "Простая офисная локальная сеть с подключением к Интернет" ).

Настройку сетевых интерфейсов можно произвести с помощью уже известной вам утилиты sysconfig (см. пункт 9 базовой установки выше) или путем прямого редактирования файла /etc/rc.conf .

Так или иначе для нашего примера файл /etc/rc.conf должен содержать следующие строки (сетевые настройки):

Ifconfig_rl0="inet 195.34.10.134 netmask 255.255.255.0" # внешний IP и маска подсети, предоставленные провайдером ifconfig_rl1="inet 192.168.20.1 netmask 255.255.255.0" # внутренний IP, который будет шлюзом по умолчанию для нашей локальной сети gateway_enable="YES" # режим маршрутизатора, позволяет пересылать пакеты между сетевыми интерфейсами natd_enable="YES" # включаем NATD демон, который занимается трансляцией адресов: внутренних во внешние и наоборот natd_interface="rl0" # natd демон работает на внешнем интерфейсе defaultrouter="195.34.10.1" # шлюз по умолчанию, который предоставил провайдер firewall_enable="YES" # включаем firewall firewall_type="OPEN" # пока ограничимся либеральным вариантом файрволла hostname="myoffice.ru" # имя этого сервера sshd_enable="YES" # для удаленного доступа к серверу

rl0 и rl1 - это имена сетевых интерфейсов в нашем примере (на чипе Realtek). Имена своих сетевых интерфейсов можете посмотреть командой ifconfig или через интерактивную утилиту настройки syscinstall .

Если у вас есть еще какие либо удаленные локальные сети, например 192.168.40.0/24 и 192.168.50.0/24, доступ к которым из нашей локальной сети осуществляется через шлюзы 192.168.20.101 и 192.168.20.102 соответственно, то статические маршруты маршруты к этим сетям при необходимости можно задать следующим образом (в файле /etc/rc.conf ):

Static_routes="net1 net2" routes_net1="192.168.40.0/24 192.168.20.101" # пакеты в подсетку 192.168.40.0/24 пойдут через шлюз 192.168.20.101 routes_net2="192.168.50.0/24 192.168.20.102" # пакеты в подсетку 192.168.50.0/24 пойдут через шлюз 192.168.20.102

Domain myoffice.ru nameserver 195.34.32.116 nameserver 87.240.1.2

Теперь чтобы изменения вступили в силу, выполним команду /etc/netstar t или перезагрузим сервер.

Проверяем работу сети.
Сначала пингуем до шлюза провайдера:

# ping 195.34.10.1

Потом до сервера DNS:

# ping 195.34.32.116

А потом до любых интернет-узлов:

# ping yandex.ru

Пингуем машины в своей локальной сети, например:

# ping 192.168.20.4

Если пакеты проходят, значит все нормально.

Настройка выхода в Интернет рабочих компьютеров (рабочих станций) в локальной сети

Теперь переходим к настройке рабочих компьютеров.
Если для рабочих компьютеров используются статические IP адреса (т.е. вводятся вручную, а не раздаются через сервер DHCP), то надо просто в настройках протокола TCP/IP у каждого рабочего компьютера прописать:

статический IP-адрес (уникальный для каждого компьютера в локальной сети, например 192.168.20.4),
маску подсети (255.255.255.0 в нашем случае)
шлюз по умолчанию (192.168.20.1, т.е. IP нашего сервера на FreeBSD, который и является шлюзом в Интернет)
DNS серверы (такие же как у сервера, предоставленные провайдером)

Делается это в Windows XP через:

Пуск-Панель управления-Сетевые подключения на значке сетевого подключения к локальной сети кликаем правой кнопкой мыши, выбираем "свойства" - Настройки TCP/IP.

Перезагружаем компьютер и проверяем работу сети:

Freebsd настройка сети.

Настройка сети FreeBSD не представляет особых затруднений и доступна всем пользователям, которые хотя бы немного знакомы с азами программирования.

Наиболее популярной версией FreeBSD на сегодняшний день является версия FreeBSD 6.2.

Для тог, чтобы начать настройку сетевой карты на базе сети FreeBSD необходимо определить тип сетевой карты (PCI или ISA), а также модель сетевой карты и используемый чип. Отличительной особенностью этой операционной системы является то, что сама система FreeBSD определяет различные типы сетевых карт от различных мировых производителей.

Драйвера различных сетевых карт могут быть представлены в ядре «Generic» следующим образом:

Dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38

000ff irq 15 at device 11.0 on pci0

Dc0: Ethernet address: 00:a0:cc:da:da:da

Miibus0: on dc0

Ukphy0: on miibus0

Ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto

Dc1: <82c169 PNIC 10/100BaseTX> port 0?9800-0?98ff mem 0xd3000000-0xd30

000ff irq 11 at device 12.0 on pci0

Dc1: Ethernet address: 00:a0:cc:da:da:db

Miibus1: on dc1

Ukphy1: on miibus1

Ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto

В том случае, если необходимого драйвера сетевой карты нет в «Generic», то можно загрузить подходящий драйвер из глобальной паутины. Однако при подобном способе установки необходимо компилировать ядро операционной системы.

Обязательным элементом настройки карты будут являться специальные привилегии пользователя «root». Разумеется, что профессиональные пользователи могут использовать и командную строку - ipconfig. Настройка сетевой карты прописывается в разделе /etc/rc.conf.

Если пользователю необходимо определить установлена ли сетевая карта, то следует выбрать следующий листинг, набрав в командной строке ipconfig.

Dc0: flags=8843 mtu 1500

Inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255

Ether 00:a0:cc:da:da:da

Media: Ethernet autoselect (100baseTX)

Dc1: flags=8843 mtu 1500

Inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255

Ether 00:a0:cc:da:da:db

Media: Ethernet 10baseT/UTP

Status: no carrier

Lp0: flags=8810 mtu 1500

Lo0: flags=8049 mtu 16384

Inet 127.0.0.1 netmask 0xff000000

Tun0: flags=8010 mtu 1500

После введения данного листинга должны определиться все сетевые устройства, например, так:

* dc0: первый Ethernet интерфейс

* dc1: второй Ethernet интерфейс

* lp0: интерфейс параллельного порта

* lo0: устройство loopback

* tun0: туннельное устройство, используемое ppp

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

1. UP - карта настроена и готова к работе.

2. Карта имеет (inet) адрес (в данном случае 192.168.1.3).

3. Маска подсети инсталлирована (netmask; 0xffffff00, то же, что и 255.255.255.0).

4. Широковещательный адрес (в данном случае, 192.168.1.255).

5. Обозначение MAC адреса карты (ether) 00:a0:cc:da:da:da

6. Выбор необходимой физической среды передачи данных в режиме автовыбора ((media: Ethernet autoselect (100baseTX))). Здесь можно увидеть, что dc1 была настроена для работы с 10baseT/UTP. В том случае, если необходима более подробная информация о доступных драйверу типах среды, необходимо воспользоваться специальным справочником.

7. Статус соединения (status) active, т.е. Для dc1, мы видим status: no carrier. Это нормально, в том случае, если Ethernet кабель не подключен к карте. Если ipconfig обозначает следующий листинг, то сетевую карту можно считать настроенной неверно.

Dc0: flags=8843 mtu 1500

Ether 00:a0:cc:da:da:da

Чтобы настроить сетевую карту, необходимо иметь привилегии пользователя root. Идеальное место для настройки сетевых карт является файл /etc/rc.conf. После того, как Вы откроете строку /etc/rc.conf необходимо добавить следующий листинг:

Ifconfig_dc0=”inet 192.168.1.3 netmask 255.255.255.0?

Ifconfig_dc1=”inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP”

Затем необходимо заменить dc0, dc1 необходимо на соответствующие имена карт, поставить соответствующие адреса. Далее следует отредактировать файл /etc/hosts и добавить имя и IP адреса всех компьютеров, которые находятся в сети. В том случае, если необходимо получить сопутствующую информацию по сетевым настройкам, необходимо обратиться по следующему интернет - адресу: man.hosts.5; и к /usr/share/examples/etc/hosts.

После выполнения всех манипуляций следует обратиться по адресу: man.hosts.5; и к /usr/share/examples/etc/hosts. Далее необходимо перезагрузить систему и проверить, что за ip - адрес назначен сетевой карте. Осуществить проверку можно пропинговав интерфейс и проверив компьютер в локальной сети. После этого, настройку сети FreeBSD можно считать завершенной.