Главная > Программы > ifconfig Дополнительные возможности ifconfigКогда интерфейс отмечен как down, система устанавливает передачу траффика на
интерфейсе. Если возможно, система так же сбрасывает интерфейс так, что бы не принимать любой входящий траффик. # ifconfig bge0 up [ Интерфейс отмеченный как down не обязательно с неактивным
физическим уровнем. Именно по этому вы будете видеть коммутационный порт активным, даже если он переведен
в down. С другой стороны, если видно что интерфейс отмечен как поднятый (up), это не
указывает на то что физический уровень активен. Поле status в выводе ifconfig указывает
актуальный статус физического уровня. ] ifconfig_fxp0="inet 10.2.0.1 netmask 255.255.255.192"
ifconfig_fxp0_alias0="inet 10.2.0.5 netmask 255.255.255.255"
Первая часть параметра - ifconfig_fxp0 указывает, что это значение установленное
ifconfig для интерфейса fxp0. Вам необходимо указать здесь значение для интерфейса
который вы желаете сконфигурировать. Вторая часть - в двойных кавычках, указывается значение ifconfig которые
необходимо использовать для данного интерфейса. Например, первая строка сопоставляет адрес
IPv4 10.2.0.1 с сетевой маской 255.255.255.192 сетевому
интерфейсу fxp0. # /etc/rc.d/netif restart При этом перезагрузится конфигурация сети и будут применены ваши изменения. Можно в этом убедиться использовав
утилиту ifconfig. # /etc/rc.d/routing restart[ Скрипт netif может удалять маршруты по умолчанию (и другие маршруты) из таблицы маршрутизации. Основываясь на этом факте, выполнять этот скрипт вручную не рекомендуется (например по ssh или telnet), поскольку можно потерять возможность удалённого доступа. Однако, риск значительно снижается, если вы находитесь в той же подсети, что и сервер. ] Конфигурирование IP адреса Для указания IP адреса сетевому интерфейсу можно использовать утилиту ifconfig со следующим синтаксисом: # ifconfig fxp0 inet 192.168.0.10 netmask 255.255.255.0 В данном случае IP адрес 192.168.0.10 с сетевой маской 255.255.255.0 будет установлен для интерфейса fxp0. Утилита ifconfig так же поддерживает CIDR-нотацию для назначения IP адреса интерфейсу. Для примера, вы можете использовать следующую команду, что бы получить результат предыдущего примера: # ifconfig fxp0 inet 192.168.0.10/24 Ключевое слово inet (называется семейство адресов) указывает, что интерфейсу назначается адрес
IPv4. Утилита ifconfig поддерживает различные семейства адресов, показанные в
следующем списке: # ifconfig fxp0 inet6 2001:db8:bdbd::123 prefixlen 48 Так же можно сократить синтаксис используя CIDR нотацию, вместо ключевого слова prefixlen. Эквивалент предыдущей строки с использованием CIDR будет выглядеть так: # ifconfig fxp0 inet6 2001:db8:bdbd::123/48
# ifconfig xl0 ether 00:01:02:ae:13:57 [ Изменение Ethernet адреса требует перезагрузки интерфейса, чтобы гарантировать, что MAC-адрес установлен правильно. Если вы связаны с сервером удалённо, изменение MAC-адреса может привести к потери связи. ] Конфигурирование IPXПоддержка протокола IPX не включена, по умолчанию, в ядро GENERIC, и для поддержки семейства адресов IPX необходимо скомпилировать специальное ядро. Для включения поддержки IPX, в конфигурационный файл ядра должна быть включена следующая строка: options IPX Функциональность IPX протокола станет доступна
только после перезагрузки с новым ядром. # ifconfig xl0 ipx 0x101 В данном примере IPX адрес 0X101 назначается интерфейсу xl0. IPX адрес может быть назначен в netnum[.nodenum] формате, где netnum - номер сети IPX (1-8 шетнадцатиричных разрядов), а nodenum - адрес узла (12 шестнадцатиричных разрядов). Для внесения постоянных значений, необходимо добавить следующую строку в файл /etc/rc.conf и этот адрес будет привязан к указанному интерфейсу после перезагрузки: ifconfig_xl0="ipx 0x101" Так же вы можете проверить, что IPX адрес назначен интерфейсу, используя утилиту ifconfig и указав семейство адресов IPX. При выводе на дисплей будет пропущена информация о прочих протоколах, которые включены на данном интерфейсе: # ifconfig xl0 ipx xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,M ULTICAST> metric 0 mtu 1500 options=9<RXCSUM,VLAN_MTU> ipx 101H.102ae1357 По умолчанию, система не поддерживает IPX шлюз, и не пересылает траффик IPX между интерфейсами. Для включения такой возможности необходим о добавить следующую строку в файл /etc/rc.conf: ipxgateway_enable="YES"
Если вы не желаете перезагружать систему для применения изменений, можно включит IPX форвардинг используя утилиту sysctl: # sysctl net.ipx.ipx.ipxforwarding=1 net.ipx.ipx.ipxforwarding: 0 -> 1 В базовой системе FreeBSD имеется демон IPX маршрутизации. Команда IPXrouted(8) - это демон протокола маршрутной информации (RIP) для протокола IPX. Для включения этого демона, вы должны добавить в файл /etc/rc.conf следующую строчку, чтобы демон стартовал при загрузке системы: ipxrouted_enable="YES"
Ручной запуск демона маршрутизации IPX, выполняется следующим rc скриптом: # /etc/rc.d/ipxrouted start Starting ipxrouted. Конфигурирование AppleTalk Подобно протоколу IPX, протокол AppleTalk не включен по умолчанию в системном ядре. Поддержка этого протокола может быть добавлена путем компиляции, и последующей перезагрузки, специального ядра в файл конфигурации которого добавлена строка: options NETATALK
Как только ваше новое ядро с поддержкой протокола AppleTalk будет запущено, можно назначить адреса AppleTalk вашему интерфейсу используя утилиту ifconfig(8): # ifconfig fxp0 atalk 725.40 range 725-727 atalk 725.40 range 725-727 phase 2 вы можете добавить следующую строчку в файл /etc/rc.conf для создания постоянных установок, и автоматического присвоения адреса в процессе перезагрузки: ifconfig_fxp0="atalk 725.40 range 725-727"
Для проверки присвоения адреса AppleTalk можно снова использовать утилиту ifconfig(8): # ifconfig fxp0 atalk fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,M ULTICAST> metric 0 mtu 1500 options=9<RXCSUM,VLAN_MTU> atalk 725.40 range 725-727 phase 2 broadcast 0.255 [ Для использования протокола AppleTalk для предоставления
общего доступа к файлам и принтерам, вы должны использовать программное обеспечение netatalk, доступное
в поддиректории системы портов /usr/ports/net/netatalk ]
Возможны различные варианты, когда вам могут понадобиться множество IP адресов (называемых псевдонимами) на одном сетовом интерфейсе. Это может быть, как запуск виртуальных web-хостов на одной машине с использованием различных IP адресов, или создание шлюза для различных подсетей. Теоритически, вы можете создавать неограниченное количество псевдонимов на интерфейсе. Псевдонимы могут быть добавлены или удалены с использованием утилиты ifconfig(8). Следующий пример показывает присвоение IP адреса интерфейсу fxp0 и добавления множества псевдонимов для этого интерфейса: # ifconfig fxp0 192.168.0.11/24 # ifconfig fxp0 10.0.1.33/24 alias # ifconfig fxp0 10.0.21.1/25 alias В этом примере, с интерфейсом fxp0 асоциированы три IP адреса. Первый IP адрес 192.168.0.11/24 назначается главным, а два других добавляются как псевдонимы или вторичные адреса. Для того, что бы сдеать эти изменения постоянными, вам необходимо добавить (обратите внимание на суффикс _alias) следующие строки в файл /etc/rc.conf: ifconfig_fxp0="inet 192.168.0.5/24"
ifconfig_fxp0_alias0="inet 10.0.1.33/24"
ifconfig_fxp0_alias1="inet 10.0.21.1/25"
Для удаления псевдонимов используется флаг -alias. Вы можете удалить любые назначенные алиасы используя утилиту ifconfig. Для примера, удалим вторичный адрес в предыдущем примере: # ifconfig xl0 10.0.1.33/24 –alias Данная команда удаляет специфический адрес с интерфейса, не смотря на способ, каким псевдонимы были добавлены. Существует одна вещь, о которой вы должны заботиться - вычисление маски подсети для псевдонимов своей же подсети. Следующий пример показывает как добавить множественные IP с одной подсети к интерфейсу, а также добавить адреса с других сетей тому же интерфейсу: # ifconfig bge0 192.168.10.1/25 # ifconfig bge0 192.168.10.2/32 alias # ifconfig bge0 192.168.10.3/32 alias # ifconfig bge0 172.16.31.12/24 alias Как видите, первый IP адрес имеет правильную подсетевую маску для своей сети, а вторичные
адреса из той же подсети используют маску /32 (или 255.255.255.255). Последний
псевдоним использует корректную сетевую маску, поскольку это адрес из другой подсети. Конфигурирование среды передачиРазличные сетевые интерфейсы имеют различные возможности, что обусловлено особенностями аппаратных средств и
возможностями драйвера. Список поддерживаемых интерфейсных сетевых карт с соответствующими названиями драйверов можно
найти в файле конфигурации ядра /sys/i386/conf/GENERIC. # ifconfig -m xl0 xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,M ULTICAST> metric 0 mtu 1500 options=9<RXCSUM,VLAN_MTU> capabilities=49<RXCSUM,VLAN_MTU,POLLING> ether 00:01:02:ae:13:57 inet 192.168.14.1 netmask 0xffffff00 broadcast 192.168.14.255 media: Ethernet autoselect (100baseTX <full-duplex>) status: active supported media: media autoselect media 100baseTX mediaopt full-duplex media 100baseTX media 10baseT/UTP mediaopt full-duplex media 10baseT/UTP media 100baseTX mediaopt hw-loopback В данном примере описываются возможности интерфейса xl0. Интерфейс в состояние использовать контрольные
суммы RX, поддерживает VLAN MTUs и опрос интерфейса. Он также
поддерживает 10baseT и 100baseT в полудуплексном и дуплексном режиме. О
конфигуррование определённых возможностей интерфейса мы поговорим далее в этой главе. # ifconfig xl0 media 100baseTX mediaopt full-duplex [ Изменение среды передачи интерфейса при связи с хостом через сеть, например посредством
ssh, может заблокировать доступ к хосту. Рекомендуется использовать физическую консоль или другой
локальный способ для изменения этих настроек. ] # ifconfig vlan0 create При этом будет создан виртуальный интерфейс, именованый как vlan0. Заметьте, что название интерфейса
должно начинаться с ключевого слова vlan и иметь назначеный номер. Если вы не определили номер
интерфейса, то ifconfig при создание устройства vlan автоматически назначит ему
первый свободный номер устройства и выведет название созданного устройства. # ifconfig vlan0 vlan 10 vlandev fxp0 Теперь, вам необходимо сконфигурировать параметры уровня 3 на VLAN, подобно тому, как это делается на физическом интерфейсе: # ifconfig vlan0 10.0.2.1/24 Так, как вы не назначаете IP адрес на физическй транк-интерфейс (родительский интерфейс), система не поднимет интерфейс и вам придется сделать это вручную: # ifconfig fxp0 up В данном примере конфигурируется устройство vlan0 c тэгом vlan 10 и назначается на интерфейс fxp0. Так так интерфейс VLAN - виртуальный, создаётся копия атрибутов родительского интерфейса, включающая аппаратный адрес и особенности оборудования: # ifconfig vlan0 vlan0: flags=8842<BROADCAST,RUNNING,SIMPLEX,MUL TICAST> metric 0 mtu 1500 ether 00:01:02:ae:13:57 media: Ethernet 100baseTX <full-duplex> status: active vlan: 10 parent interface: fxp0 Теперь родительский интерфейс (в нашем случае fxp0) будет являться транк-портом, и вы можете
инициализировать и конфигурировать VLAN и присваивать их транк-интерфейсу. # ifconfig vlan0 –vlandev Данная команда снимает ассоциацию интерфейса vlan0 с родительского интерфейса. Для повторного назначения порта VLAN другому интерфейсу, необходимо пройти тем же путём, что и при конфигурировании интерфейса VLAN: # ifconfig vlan0 vlan 10 vlandev bge1 Если вы больше не нуждаетесь в интерфейсе VLAN, можно удалить интерфейс полностью, используя опцию ifconfig destroy: # ifconfig vlan0 destory Чтобы отконфигурировать интерфейсы VLAN и назначить их на физические интерфейсы в процессе загрузки системы, необходимо добавить соответствующие строки к файлу /etc/rc.conf. Для создания VLAN необходимо добавить следующе строки: cloned_interfaces="vlan0 vlan1 vlan2"
ifconfig_vlan0="inet 10.0.2.1/24 vlan 10 vlandev fxp0"
ifconfig_vlan1="inet 192.168.3.1/24 vlan 20 vlandev fxp0"
ifconfig_vlan2="inet 172.16.0.1/24 vlan 30 vlandev fxp0"
ifconfig_fxp0="up"
В первой строке мы сообщаем системе, что необходимо создать три виртуальных интерфейса, с названиями vlan0, vlan1 и vlan2. Следующие три строки формируют псевдоинтерфейс VLAN, назначают IP адрес на каждый интерфейс, и определяют номер признака VLAN и родительский интерфейс (транк-порт). Последняя строка поднимает интерфейс. Дополнительные возможност ifconfigУтилита ifconfig имеет несколько опций для тонкой настройки дополнительных
возможностей сетевых интерфейсов. # ifconfig -m bge0 | grep cap capabilities=9b<RXCSUM,TXCSUM,VLAN_MTU,V LAN_HWTAGGING,VLAN_HWCSUM> В этом примере мы видим, что bge поддерживает RXCSUM и TXCSUM, то
есть контрольные суммы разгружаются соответственно для RX и TX направлений.
Чтобы позволить RXCSUM на данном интерфейсе можно использовать следующую команду: # ifconfig bge0 rxcsumИли для отключения RXCSUM: # ifconfig bge0 –rxcsumТо же самое относится к TXCSUM. Вы можете включить или отключить RXCSUM и TXCSUM одновременно используя флаг hwcsum. Например следующая команда включает RXCSUM и TXCSUM на интерфейсе bge0: # ifconfig bge0 hwcsum Разгрузка сегментации TCP (TSO) и разгрузка Large Receive (LRO), используемые в аппаратных средствах Intel, позволяют разгрузить сегментацию уровня 4 на оборудование сети. В настоящее время только драйвер em(4) поддерживает такие возможности. Что бы включить TSO и LPO на интерфейсе, можно использовать следующие команды: # ifconfig em0 tso # ifconfig em0 lro [ Вы должны использовать tso4 и tso6 для того, что
бы разгрузить сегментацию TCP4 или TCP6 соответственно, поскольку некоторые
карты не поддерживают tso и для IPv4 и для IPv6. Эти опции
можно использовать и в том случае, если вы не хотите включать разгрузку для определённого стэка
протокола.] # ifconfig bge0 vlanhwtag Данная команда включит VLAN таггинг на уровне физического интерфейса. Для отключения данной
опции используйте команду вида: # ifconfig bge0 –vlanhwtagНеразборчивый режим Включая неразборчивый режим, интерфейс перестаёт фильтровать поступающие кадры Ethernet, на основание MAC адреса. При этом весь траффик передаётся верхнему уровню TCP/IP, не зависимо от адреса назначения в заголовках 2-го и 3-го уровней. Данная возможность полезна для перехвата данных на интерфейсе. Специализированное программное обеспечение, вроде tcpdump, позволяет видеть всё движение сетевого траффика. Например при запуске tcpdump(1) на интерфейсе xl0, мы можем видеть статус интерфейса: # ifconfig xl0 xl0: flags=8843<UP,BROADCAST,RUNNING,PROMISC,S IMPLEX,MULTICAST> metric 0 mtu 1500 options=9<RXCSUM,VLAN_MTU> capabilities=49<RXCSUM,VLAN_MTU,POLLING> ether 00:01:02:ae:13:57 inet 192.168.14.1 netmask 0xffffff00 broadcast 192.168.14.255 media: Ethernet autoselect (100baseTX <full-duplex>) status: active В случае, когда вы хотите вручную отключить неразборчивый режим на интерфейсе, можно использовать следующую команду: # ifconfig xl0 -promiscMTU Вы можете установить значение MTU для интерфейса сети, используя утилиту ifconfig. По умолчанию MTU зависит от особенностей вашего интерфейса и различно для разных интерфейсов, но по умолчанию MTU для интерфейса Ethernet составляет 1500 байт. MTU используется для ограничения размера кадра передаваемого в физическую среду. Пакеты, большего размера чем значение MTU, будут фрагментированы в меньшие кадры если это разрешено битом df в заголовке пакета. В гигабитной сети, вы можете захотеть увеличить значение MTU, что бы получить более высокую производительность. Например, для установки размера MTU в 9000 (jumbo-кадр) на интерфейсе ti0, вы можете использовать следующую команду: # ifconfig ti0 mtu 9000 Как только вы измените значение MTU для интерфейса, рекомендуется перезгрузить интерфейс
используя команды ifconfig down и up. Это гарантирует, что все соединения будут использовать
новые значения MTU. # ifconfig fxp0 –arp В данном случае полностью отключается ARP на интерфейсе xl0 и вы можете увидеть флаг NOARP на интерфейсе где ARP отключен: # ifconfig xl0 | grep flag xl0: flags=88c3<UP,BROADCAST,RUNNING,NOARP,SI MPLEX,MULTICAST> metric 0 mtu 1500 [ Крайне редко необходимо отключать ARP - например, когда с вашей сетью
связано какое либо устройство которое не может работать с ARP-запросами. В противных
случаях не рекомендуется отключение ARP.] # arp -s 192.168.0.151 00:c0:91:30:ab:cd В данном примере показана статическая запись назначения IP - адреса для
MAC-адреса 00:c0:91:30:ab:cd. # ifconfig xl0 staticarp Таким образом отключается посылка ARP запроса неизвестным адресам на
интерфейсе xl0 и задействуется только статическая таблица записей ARP. # ifconfig xl0 | grep flags xl0: flags=88843<UP,BROADCAST,RUNNING,SIMPLEX,M ULTICAST,STATICARP> metric 0 mtu 1500 Для отключения статического ARP на интерфейсе, можно использовать утилиту
ifconfig с опцией -ststicarp. # ifconfig fxp0 monitor Эта команда перевод интерфейс fxp0 в режим монитора. Что бы убедиться что интерфейс находится в режиме монитора, найдите флаг monitor на интерфейсе: # ifconfig xl0 | grep flags xl0: flags=48843<UP,BROADCAST,RUNNING,SIMPLEX,M ULTICAST,MONITOR> metric 0 mtu 1500 Конфигурирование канала FastEther fec_interfaces="fec0"
fecconfig_fec0="bge0 bge1"
ifconfig_fec0="inet 192.168.21.4/24"
Первая строка говорит системе инициализировать виртуальный интерфейс с именем fec0. Вы можете определить множество FEC интерфейсов, разделяя их названия пробелом. В данном примере во второй строке определены участники FEC интерфейса. Вы не должны определять IP-адрес на физических интерфейсах, IP-адрес требуется задать для виртуального FEC-интерфейса. Материал взят с сайта:Главная > Программы > ifconfig |