Настройка подключения к Ethernet


Минимальные ставки в азартных играх от 1 копейки доступны после регистрации.

Прежде чем приступать к настройке системы для доступа к сети Ethernet, у вас должна иметься основная информация об IP-адресе. Если в сети используется протокол динамической настройки конфигурации хоста (Dynamic Host Configuration Protocol, DHCP) и ваш компьютер является клиентом этой службы, вы просто должны использовать ее для доступа к сети, как и любой другой клиент. Если компьютер играет роль сервера, для него больше подходит статический IP-адрес. Для каждого сервера необходимы:

  • IP-адрес сервера
  • Сетевая маска для этого IP-адреса
  • IP-адрес шлюза по умолчанию

Вооружившись этой информацией, вы сможете подключить свою систему к сети с помощью команд ifconfig(8) и route(8).

ifconfig(8)

Утилита ifconfig(8) выводит список сетевых интерфейсов компьютера и позволяет настраивать их. Начнем с исследования списка интерфейсов в системе, который выводит команда ifconfig(8) без аргументов:

# ifconfig

Первый сетевой интерфейс в списке — fxp0 (1), или это описание первой сетевой карты, для управления которой используется драйвер fxp(4). Страница руководства fxp(4) сообщает, что это сетевая карта Intel EtherExpress PRO. Далее следует ряд основных сведений об этой карте (2), включая слово UP, которое сообщает, что карта либо уже работает, либо пытается включиться в работу. Далее следует IP-адрес 198.22.63.43 (3), присвоенный этому интерфейсу, и сетевая маска 0xfffffff0 (4) (или 255.255.255.240, согласно табл. 6.2). Здесь также приводится МАС-адрес (5) и скорость соединения (6). Наконец запись status сообщает, что данная сетевая карта активна (7): кабель подключен и горит индикатор подключения.

Для второй сетевой карты rl0 утилита не выводит ничего подобного. Ключевым фактором здесь является отсутствие несущего сигнала (no carrier) (8): кабель не подключен и индикатор не горит. Эта карта не используется.

Последний сетевой интерфейс lo0 (9) — это петлевой интерфейс. Данному интерфейсу на любом компьютере присваивается IP-адрес 127.0.0.1. Этот адрес используется для организации взаимодействия сетевых приложений, исполняющихся на одной и той же машине. Это стандартный программный интерфейс, который не связан с каким-либо аппаратным обеспечением. Не пытайтесь удалить петлевой интерфейс или присвоить ему другой IP-адрес — в этом случае многие приложения не смогут работать. FreeBSD поддерживает и другие программные интерфейсы, такие как disc(4), faith(4), gif(4) и многие другие.

Назначение IP-адреса интерфейсу

В процессе установки системы выполняется настройка всех сетевых карт, имеющихся в компьютере. Если в ходе установки были настроены не все сетевые карты или если уже после установки были удалены существующие или добавлены новые сетевые карты, утилита ifconfig(8) позволит присвоить IP-адреса сетевым картам. Сетевой карте необходимо присвоить IP-адрес и сетевую маску.

# ifconfig interface-name IP-address netmask

Например, предположим, что сетевой карте fxp0 необходимо присвоить IP-адрес 192.168.1.250 и установить сетевую маску 255.255.255.0; в этом случае необходимо запустить такую команду:

# ifconfig fxp0 192.168.1.250 255.255.255.0

Сетевую маску можно указывать в точечной нотации, как это сделано выше, или в шестнадцатеричном формате (oxfffffff0). Но, пожалуй, самый простой способ состоит в том, чтобы указать маску через символ слэша:

# ifconfig fxp0 192.168.1.250/24

Утилита ifconfig(8) способна выполнять и любые другие настройки сетевых карт, такие как выбор типа носителя сигнала и установка дуплексного режима. Перечень поддерживаемых типов носителей сигнала и порядок установки дуплексного режима можно найти в странице руководства к драйверу карты. Выбор типа носителя производится с помощью ключевого слова media, а установка дуплексного режима — с помощью ключевого слова mediaopt. Некоторые комбинации сетевых карт и сетевых коммутаторов не в состоянии автоматически «договориться» о параметрах подключения, поэтому иногда возникает необходимость вручную устанавливать скорость подключения и дуплексный режим с той или с другой стороны. Некоторые сетевые карты поддерживают как полудуплексный, так и полнодуплексный режимы на скорости 100 Mbps, но на скорости 10 Mbps — только полнодуплексный режим. (Стандарт Ethernet со скоростями от 1 гигабита требует, чтобы устройства сами договаривались о выборе режима, поэтому принудительная установка — не самый лучший вариант.) Некоторые сетевые карты имеют несколько разъемов или допускают подключение носителей разных типов к одному и тому же разъему. Безусловно, все необходимые настройки можно объединить в одной команде.

# ifconfig fxp0 192.168.1.250/24 media 1000baseTX mediaopt full-duplex

Чтобы настройки сохранялись после перезагрузки, следует добавить строку, которая сообщит системе все необходимые настройки, в файл /etc/rc.conf. Строка имеет вид ifconfig_имя_интерфейса="аргументы ifconfig". Например, настройка сетевой карты re0 могла бы выглядеть примерно так:

ifconfig_re0="92.168.1.250 255.255.255.0 media 1000baseTX mediaopt full-duplex"

Как только будет найдена работающая конфигурация для интерфейса, достаточно просто скопировать аргументы ifconfig(8) в /etc/rc.conf.

Проверка интерфейса

Теперь, когда интерфейсу присвоен IP-адрес, попробуем выполнить ping, задав IP-адрес шлюза по умолчанию. Если ответ получен, как показано в следующем листинге, то машина успешно подключена к сети. Выполнение ping можно прервать, нажав клавиши Ctrl-C.

# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: icnp_seq=0 ttl=64 time=1.701 ms
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=1.436 ms
^C
--- 192.168.1.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 1.436/1.569/1.701/0.133 ms

Если ответ не был получен, следовательно, ваш сетевой интерфейс не работает. Дело либо в плохом соединении (проверьте кабель и свечение индикатора), либо в неверной настройке интерфейса.

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

Маршрут по умолчанию — это адрес, по которому система по умолчанию (т. е. если не указано иного для конкретных внешних адресов — прим. научн. ред.) посылает весь трафик, который отправляется за пределы локальной сети. Если в результате использования команды ping с адресом маршрутизатора по умолчанию был получен ответ, можно установить этот IP-адрес в качестве маршрута по умолчанию с помощью команды route(8).

# route add default 192.168.1.1

Вот и все! Теперь ping должен проходить по любому IP-адресу Интернета.

Если в ходе установки системы вы не указали используемые серверы имен, то вместо имен хостов вам придется указывать их IP-адреса. Настройка DNS будет рассматриваться в главе 14, а пока замечательным источником IP-адресов могут служить корневые серверы имен, перечисленные в файле /etc/namedb/named.root.

Маршрутизатор по умолчанию, устанавливаемый при начальной загрузке системы, можно задать оператором defaultrouter в /etc/rc.conf:

defaultrouter="192.168.1.1"

Несколько IP-адресов на одном сетевом интерфейсе

Одна система FreeBSD может отвечать на запросы по нескольким IP-адресам на одном интерфейсе. Такая возможность широко применяется в серверах Интернета, особенно для защищенных (SSL) веб-сайтов. Возможно, один сервер должен поддерживать сотни или тысячи доменов, и ему нужен IP-адрес для каждого из них. Дополнительные IP-адреса можно добавить с помощью команды ifconfig(8) и ключевого слова alias. Сетевая маска для псевдонима (alias) всегда устанавливается равной /32, независимо от количества адресов в сети с основным адресом.

# ifconfig fxp0 alias 192.168.1.225/32

После запуска предыдущей команды дополнительные IP-адреса появятся в выводе команды ifconfig(8). Основной IP-адрес всегда идет первым, а за ним следуют псевдонимы:

# ifconfig fxp0
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_MTU>
inet6 fe80::202:b3ff:fe63:e41d%fxp0 prefixlen 64 scopeid 0x1
inet 192.168.1.250 netmask 0xffffff00 broadcast 192.168.1.255
inet 192.168.1.225 netmask 0xffffffff broadcast 192.168.1.255
ether 00:02:b3:63:e4:1d
...

Остальные хосты, запустив команду ping с IP-адресами-псевдонимами, будут получать ответ от этого сервера.

Настроив псевдонимы, можно добавить еще один оператор ifconfig с параметрами их настройки в файл /etc/rc.conf:

ifconfig_fxp0_alias0=»192.168.1.225/32″

Единственное реальное различие между этой записью и стандартной записью rc.conf — это фрагмент alias0. Ключевое слово alias сообщает системе FreeBSD, что этот IP-адрес является псевдонимом, а 0 — это уникальный номер псевдонима. Каждый псевдоним, устанавливаемый в /etc/rc.conf, должен иметь уникальный номер, причем номера должны быть последовательными. Если пропустить какой-нибудь номер, то псевдонимы после пропуска не будут установлены при начальной загрузке. Это самая распространенная ошибка в конфигурировании интерфейсов; система FreeBSD требует перезагрузки так редко, что ошибки в /etc/rc.conf могут месяцами оставаться незамеченными!

Многие демоны могут выполнить привязку только одного IP-адреса, поэтому, чтобы иметь возможность обслуживать несколько IР-адресов, вам придется запускать несколько экземпляров программ. Например, named(8) (глава 14) способен привязать только один IP-адрес, но есть возможность запустить несколько экземпляров named(8) на одном компьютере, используя различные IP-адреса для каждого из экземпляров.

Псевдонимы и исходящие соединения

Все исходящие соединения используют действительные IP-адреса. К сетевой карте может быть привязано 2000 IP-адресов, однако когда вы соединяетесь с внешним сервером по ssh, соединение исходит с первичного IP-адреса. Об этом следует помнить при написании правил для межсетевого экрана и других фильтров, управляющих доступом к системе. Инициация соединений с адресов-псевдонимов блокируется, но об этом мы поговорим в главе 9.

Переименование интерфейсов

FreeBSD присваивает сетевым интерфейсам имена, исходя из названия драйвера устройства, который используется для обслуживания сетевой карты. Это старая добрая традиция в мире UNIX, и она соблюдается в большинстве промышленных операционных систем. Некоторые операционные системы дают имена сетевым интерфейсам, исходя из их типа, например в Linux интерфейсы Ethernet получают имена eth0, eth1 и т. д. Иногда появляется необходимость переименовать интерфейс — либо для обеспечения соответствия стандартам, либо для большей наглядности. Например, представим, что имеется устройство с двенадцатью сетевыми интерфейсами, каждый из которых подключен к отдельной сети. Каждая сеть имеет свои имена, такие как test, QA и т. д. Определенно имеет смысл переименовать сетевые интерфейсы, чтобы их имена наглядно говорили о том, к какой сети подключен каждый из них.

Система FreeBSD отличается высокой гибкостью в выборе имен интерфейсов, но некоторые программы предполагают, что имя интерфейса — это короткое слово, за которым следует число. Такое положение дел едва ли изменится в ближайшем будущем, поэтому для интерфейсов желательно выбирать короткие имена, оканчивающиеся цифрой. Для переименования сетевого интерфейса используется ключевое слово name команды ifconfig(8). Например, чтобы переименовать интерфейс fxp1 в test1, можно было бы запустить следующую команду:

# ifconfig fxp1 name test1

Запустив после этого команду ifconfig(8) без аргументов, можно убедиться, что интерфейс был переименован.

...
test1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_MTU>
...

Чтобы сохранить эти изменения, следует добавить параметр ifconfig_interface_name в файл /etc/rc.conf.

ifconfig_fxp1_name="test1"

Переименование интерфейсов во время загрузки FreeBSD должно производиться до назначения IP-адреса или других значений. То есть при настройке параметров интерфейса должно использоваться не старое, а новое имя. Полная настройка интерфейса, включая его переименование, может выглядеть примерно так:

ifconfig_fxp1_name="dmz2"
ifconfig_dmz2="192.168.1.2 netmask 255.255.255.0"
ifconfig_dmz2_alias0="192.168.1.3"

DHCP

Существуют такие сети, в которых назначение IP-адресов компьютерам, включая и серверы, выполняется посредством протокола DHCP. Сервер DHCP выполняет назначение IP-адресов, сетевых масок, серверов имен и шлюзов по умолчанию. Если в вашей сети конфигурирование серверов производится посредством DHCP, вам необходимо настроить сетевую карту так, чтобы она принимала всю необходимую информацию с помощью DHCP, например, так:

ifconfig_fxp0="DHCP"

Перезагрузка!

Теперь, когда все сетевые интерфейсы настроены, выполните перезагрузку системы, чтобы убедиться, что все параметры настройки, указанные в файле /etc/rc.conf, правильно устанавливаются во время загрузки. Если во время загрузки FreeBSD обнаружит ошибки в /etc/rc.conf, особенно в настройках сети, вы не сможете взаимодействовать с системой с удаленного рабочего места. Лучше все ошибки выявить сразу, пока имеется доступ к серверу, чем потом терять часы работы.

Комментарии запрещены.