Команда ifconfig и маршрутизация
В качестве аргументов команда ifconfig использует имя интерфейса и IP-адрес. Кроме того, она имеет ряд опций. Команда ifconfig используется для того, чтобы присвоить заданному сетевому интерфейсу указанный IP-адрес. Таким образом она дает вашей системе знать о том, что данный интерфейс существует и что она обращается к нему по указанному IP-адресу. Кроме того, можно указать, каким адресом является IP-адрес — адресом хост-компьютера или адресом сети. Вместо IP-адреса можно использован доменное имя при условии, что оно указано вместе с IP-адресом в файле /etc/hosts . Команда ifconfig имеет следующий синтаксис:
# ifconfig интерфейс -хост_сеть_флаг адрес опции
Флаг -хост_сеть_флаг может принимать одно из двух значений — -host или -net. Флаг -host свидетельствует о том, что данный IP-адрес является адресом хост-компьютера, a -net означает, что данный IP-адрес являете адресом сети. По умолчанию принимается флаг -host. У команды ifconfig есть несколько опций, которые задают различные характеристики интерфейса, например максимальное число байтов, которое он может передать за один раз (mtu), широковещательный адрес и т.д. Опция up активирует интер фейс, а опция down деактивирует его. В следующем примере команда ifconfig используется для конфигурирования интерфейса Ethernet.
# ifconfig ethO 204.32.168.56
Для такой простой конфигурации, как эта, ifconfig автоматически создаёт стандартный адрес и маску сети. Стандартный широковещательный адрес — это сетевой адрес с машинной частью, указанной как 255. Напомним, что стандартная маска сети — 255.255.255.0. Если же вы подключены к сети с другой сетевой маской и конкретным широковещательным адресом, их необходимо указать в командной строке ifconfig . Широковещательный адрес указывается в опции broadcast, а маска сети — в опции netmask. В следующее примере ifconfig задает сетевую маску и широковещательный адрес.
# ifconfig eth0 204.32.168.56 broadcast 204.128.244.127 netmask 255.255.255.0
Интерфейсы типа «точка-точка», такие как PLIP (межсетевой протокол для параллельного канала), SLIP (межсетевой протокол для последовательного канала) и РРР (протокол «точка-точка»), требуют включения в команде ifconfig опции pointopoint. Имя интерфейса PLIP обозначается словом plip и номером; например, plip0 — это первый интерфейс PLIP. Интерфейсы SLIP имеют имена slip0, slip1 и т.д., а интерфейсы РРР — имена ррр0, ррр1 и т.д. Двухточечные интерфейсы — это интерфейсы, работающие, как правило, между двумя хост-компьютерами, например между двумя машинами, соединенными через модем. Устанавливая опциюpointopoint, необходимо указать IP-адрес хост-машины. Позже вы узнаете, как с помощью интерфейсов SLIP и РРР можно связываться по телефонной линии с провайдером Internet
и устанавливать с ним соединение.
В следующем примере показано, как конфигурируется интерфейс PLIP, который соединяет компьютер, имеющий IP-адрес 199.35.209.72, с компьютером, адрес которого 204.166.254.14. Если бы в файле/etc/hosts были указаны доменные имена этих систем, то вместо IP-адресов можно было бы использовать их доменные имена.
# ifconfig plip0 199.35.209.72 pointopoint 204.166.254.14
В случае необходимости можно с помощью команды ifconfig конфигурировать закольцовывающий интерфейс. Этот интерфейс имеет имя lо и специальный IP-адрес, 127.0.0.1. Процедура конфигурирования закольцовывающего интерфейса показана в следующем примере.
# ifconfig 1о 127.0.0.1
Команда ifconfig очень полезна для проверки статуса интерфейса. Если ввести ее только с именем интерфейса, то ifconfig выдаст информацию об этом интерфейсе.
# ifconfig eth0
Чтобы посмотреть, конфигурирован ли закольцовывающий интерфейс, нужно дать команду ifconfig с именем этого интерфейса, lо:
# ifconfig 1о lo Link encap:Local Loopback inet addr:127.O.O.1 Beast:127.255.255.255 Mask:255.О.О.О UP BROADCAST LOOPBACK RUNNING MTU:2000 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:12 errors:0 dropped:0 overruns:0
Маршрутизация
Пакет, на пути в пункт своего назначения проходит по определенному маршруту. В крупных сетях пакеты передаются из одного компьютера в другой до тех пор, пока не попадут к адресату. Маршрут определяет начальную точку процесса передачи пакета и показывает, в какой компьютер ваша система должна передать пакет, чтобы он достиг пункта назначения. В небольших сетях маршрутизация может осуществляться статически, т.е. маршрут, ведущий от одной системы к другой, строго фиксирован. В более крупных сетях и в Internet
маршрутизация осуществляется динамически. Ваша система знает, в какой компьютер пакет должен быть послан вначале. Этот компьютер принимает паке передает его в другой компьютер, который определяет, куда следует передать пакет дальше. При динамической маршрутизации ваша система должна знать очень мало. Статическая маршрутизация может быть очень сложной, поскольку необходимо отслеживать все сетевые соединения.
Маршруты содержатся в таблице маршрутизации, которая хранится файле /proc/net/route. Чтобы вывести ее на дисплей, нужно дать команду route без аргументов.
# route Kernel routing table Destination Gateway Genmask Flags MSS Window Use Iface loopback * 255.0.0. U 1936 0 12 lo pangol.train.com * 255.255.255.0 U 1936 0 0 eth0
Каждая запись таблицы маршрутизации состоит из нескольких полей содержащих такую информацию, как, например, конечный пункт маршрута и тип используемого интерфейса. Поля таблицы маршрутизации перечислены в следующей таблице.
Destination | IP-адрес конечного пункта маршрута |
Gateway | IP-адрес или хост-имя шлюза, используемого на данном маршруте; символ * говорит о том, что шлюз в сети не используется |
Genmask | Маска сети маршрута |
Flags | Тип или состояние маршрута: U=активный, Н=хост, С=шлюз, D=динамический, М=модифицированный |
MSS | TCP MSS (Maximum segment size) для маршрута — максимально количество данных, которое может быть передано за один раз |
Metric | «Стоимость» маршрута (количество переходов до шлюза) |
Ref | Количество использований маршрута на текущий момент |
Window | Размер окна приема. Наибольшее количество данных, которое принимающая сторона может принять |
Use | Количество пакетов, пересланных по данному маршруту |
Iface | Тип интерфейса, используемого на данном маршруте |
В таблице маршрутизации должна содержаться по крайней мере одна запись, предназначенная для закольцовывающего интерфейса, иначе это интерфейс придется конфигурировать командой route. IP-адрес интерфейс нужно ввести в таблицу до того, как этот интерфейс будет задействован. Адрес добавляется с помощью команды route с опцией add.
route add адрес
В следующем примере показано, как в таблицу маршрутизации вводится IP-адрес закольцовывающего интерфейса.
# route add 127.0.0.1
Опция add имеет несколько спецификаторов (они указаны на страницах диалогового руководства, посвященных команде route). Если вы добавляете конкретный статический маршрут, то эти спецификаторы понадобятся для ввода таких параметров, как маска сети, шлюз, интерфейс и адрес пункта назначения. Если же интерфейс уже конфигурирован командой ifconfig, то система может получить основную информацию из данных конфигурации интерфейса. Например, чтобы задать маршрут для Ethernet-соединения, которое уже конфигурировано командой ifconfig, нужно лишь ввести спецификатор -net и IP-адрес пункта назначения. С помощью этого адреса ifconfig находит соответствующий интерфейс и на основании этой информации организует маршрут. Задание маршрута для интерфейса Ethernet иллюстрируется следующим примером.
# route add -net 204.32.168.0
Если система подключена к сети, в таблице маршрутизации должна быть сделана по крайней мере одна запись, задающая маршрут по умолчанию. По этому маршруту пакет посылается в том случае, если все остальные маршруты не могут привести его в пункт назначения. Пункт назначения для такого маршрута задается ключевым словом default.
Если нужно удалить один из существующих маршрутов, следует вызвать команду ifconfig с опцией del и IP-адресом маршрута, например:
# route del -net 204.32.168.0
я правильно понимаю, что если мой сетевой интерфейс eth1, то конфигурируем его командой ifconfig ethO ?
Timur, да — все верно!