Корректная работа всех интерфейсов конкретного сегмента сети требует одинаковой адресной маски. Значение сетевой маски для узлов crab и rodent -255.255.255.0, поскольку обе системы входят в одну подсеть. Но, хотя локальный и внешний сетевой интерфейсы узла crab сосуществуют на одном компьютере, они имеют разные сетевые маски, поскольку принадлежат к различным сетям.
Чтобы назначить адресную маску, укажите ее значение после ключевого слова netmask в командной строке ifconfig либо в качестве префикса, связанного с адресом. При записи в качестве префикса адресная маска представляется десятичным числом, определяющим число битов в адресной маске. Так, значение 172.16.12.2/24 задает 24-битную адресную маску. При записи в качестве аргумента ключевого слова netmask маска, как правило, представляется в десятнчной записи через точку, то есть в формате IP-адресов. Следующая команда назначает корректную маску подсети интерфейсу dnetO узла rodent:
|
Указание значения маски непосредственно в командной строке ifconfig - это самый распространенный, простой и оптимальный способ ручного назначения маски для интерфейса. Однако она редко задается вручную. Подобно адресам, адресные маски используются в настройке, выполняемой в процессе первичной установки системы, ifconfig, в целях упрощения настройки, может читать значение сетевой маски из файла. Такой способ схож с указанием имени узла вместо IP-адреса. Администратор может разместить значение маски в файле узлов (hosts) либо в файле сетей (networks), а затем ссылаться на маску по имени. К примеру, администратор сети books-net может добавить следующую запись в файл /etc/networks:
books-mask 255.255.255.0
Теперь имя books-mask в командной строке ifconfig может замещать значение маски. К примеру, так:
|
Имя books-mask отображается в значение 255.255.255.0, которое представляет корректную маску для систем из нашего примера.
Лично я стараюсь избегать косвенного указания значений масок в файлах, главное назначение которых в другом. Файл узлов (hosts) - вдвойне плохой вариант для хранения значений масок. Файл узлов постоянно используется многочисленными программами, и значение маски, хранимое в файле, может смутить какие-либо из этих программ. Вероятно, оптимальным подходом является указание маски непосредственно в командной строке либо хранение ее в специальном файле.
В системах Solaris под хранение масок подсетей отведен файл /etc/inet/net-masks. Файл состоит из однострочных записей; каждая запись содержит адрес сети, отделенный пробелом от маски.3 Если система Solaris сети books-net (172.16.0.0) содержит в файле /etc/inet/netmasks такую запись:
172.16.0.0 255.255.255.0
следующая команда ifconfig может применяться для указания адресной маски:
|
Знак «плюс» после ключевого слова netmask предписывает ifconfig прочитать значение маски из файла /etc/inet/netmasks.ifconfig ищет в файле адрес сети, соответствующий адресу настраиваемого сетевого интерфейса. Для настройки интерфейса используется маска, связанная с его адресом.
В большинстве систем Linux адресные маски также косвенно определяются в файлах. Файл ifcfg-eth0 из предыдущего раздела содержит такую строку:
NETMASK=255.255.255.0
Эта строка четко указывает значение маски, используемое командой ifcon-fig. Чтобы изменить адресную маску в данной системе Red Hat, отредактируйте строку в файле ifcfg-eth0.