Опубликован: 19.10.2005 | Уровень: специалист | Доступ: платный | ВУЗ: Европейский Университет в Санкт-Петербурге
Лекция 3:

Настройка и обслуживание сетевых соединений

Бесклассовая маршрутизация (CIDR)

В конце 80-х-начале 90-х годов XX века сеть Интернет росла очень быстрыми темпами. В результате стали проявляться серьезные недостатки в организации распределения адресного пространства, так как эта процедура не была рассчитана на лавинообразный рост потребителей адресов. Проблемы сводились к следующему:

  • нехватка IP-адресов. Размеры существующих классов сетей перестали отражать требования средних организаций. Количество компьютеров в сети организации часто оказывалось больше, чем количество адресов в сети класса С, но гораздо меньше, чем в сети класса В.
  • замедление обработки таблиц маршрутизации. Рост размеров таблиц маршрутизации в Internet-маршрутизаторах привел к тому, что их стало сложно администрировать, маршрутизаторы работали на пределе своих возможностей.

Чтобы разрешить эти проблемы, в июне 1992 года IETF (Internet Engineering Task Force) принял решение об использовании технологии бесклассовой междоменной маршрутизации (Classless Inter-Domain Routing - сокращенно CIDR). В 1994-1995 годах технология была внедрена Интернет-провайдерами для маршрутизации между их сетями. Термин "междоменная" относится к так называемым доменам маршрутизации, т.е. совокупностям сетей, объединенных общим администрированием и политикой маршрутизации. Домен маршрутизации обычно ограничен сетью крупного провайдера и его субпровайдеров.

Технология CIDR (описывается в RFC 1519) успешно применяется в любой группе сетей Интернет, построенных как на основе IPv4, так и на IPv6, и может взаимодействовать со старыми технологиями адресации. В основе CIDR лежит принцип использования маски сети переменной длины (VLSM -variable length subnet masks) и отказ от деления сети Интернет на сети классов А, В и С. При этом все организации, предоставляющие услуги Internet, будут разделяться не по классам своих сетей, а по маске предоставленного им адреса.

Согласно идеологии CIDR, провайдеры должны объединять в одну запись информацию о блоках адресов своих клиентов и анонсировать в Интернете свой блок адресов в целом. Анонсирование представляет собой передачу пакетов по протоколу динамической маршрутизации для уведомления соседних маршрутизаторов о том, что такая-то сеть теперь стала доступна через данный маршрутизатор. До 1994 года анонсировалась информация о каждой из сетей каждого класса в отдельности.

Например, провайдер Internet "Слон трафика", которому ICANN 3ICANN - www.icann.org - координационная структура, ответственная за распределение IP-адресов и имен доменов в Интернете. делегировал адреса с 198.24.0.0 по 198.31.255.255 (маска 255.248.0.0), может назначить своему клиенту фирме "Моська АО" группу адресов с 198.24.8.0 до 198.24.11.255 (маска 255.255.252.0). Ясно, что сеть "Моськи" не принадлежит ни к какому классу, и, тем не менее, может успешно работать в Internet. Очевидно, что новая структура адресного пространства позволит значительно сэкономить адреса для тех организаций, которым они действительно нужны, и взять лишние у других.

Без использования CIDR еще один клиент "Слона трафика", магазин "Успешный повар" был бы вынужден задействовать приватные адреса (192.168.0.0) или заказывать отдельную сеть класса C. Теперь же "Успешный повар" может уживаться с "Моськой АО" в пределах одного домена маршрутизации, например, использовать адреса с 198.24.12.64 до 198.24.12.127 (маска 255.255.255.192).

В настоящее время, при необходимости получить несколько адресов для своих компьютеров для работы в Internet, организация заказывает диапазон адресов в виде "адрес, маска", исходя из своих потребностей. Если, к примеру, ей нужно подсоединить к Internet 998 компьютеров, нет необходимости заказывать четыре сети класса С или одну класса В - достаточно заказать адрес и маску, позволяющие работать заданному количеству компьютеров, например "199.14.8.0, 255.255.252.0" - 1024 сетевых адреса4Для более короткой запаси маски часто указывают просто длину номера в сети в битах через слэш, или , что то же самое, количество двоичных единиц в маске, например, 199.14.8.0/22.

Такая схема помогает экономить на заказе адресов, так как за каждый адрес провайдер потребует вносить абонентскую плату, а платить за множество неиспользуемых адресов не придется. Благодаря CIDR стала легче жизнь системного администратора: больше не нужно хлопотать о настройке маршрутизации между группами интерфейсов, принадлежащих к сетям разных классов. Управление сетью с помощью CIDR также становится проще.

В настоящее время технология CIDR поддерживается некоторыми протоколами внутридоменной (OSPF, RIP-2,E-IGRP) и междоменной маршрутизации (BGP-4), большинство поставщиков сетевого оборудования внесли поддержку CIDR в свое программное обеспечение.

Настройка сетевых интерфейсов

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

ifconfig if_name plumb

После этого надо назначить адрес и маску:

ifconfig if_name IP-address broadcast broadcast-address 
	netmask netmask

Здесь if_name - это имя интерфейса (например, eri0), IP-address - адрес, который следует назначить этому интерфейсу, а необязательные параметры broadcast-address и netmask задают широковещательный адрес сети, к которой подключен интерфейс, и маску сети.

ifconfig if_name up

Все эти команды можно объединить в одну, указав таким образом, что следует выполнить низкоуровневую инициализацию интерфейса, назначить ему адрес и маску, после чего включить (сделать возможным получение и отправку IP-пакетов через него):

ifconfig if_name IP-address broadcast broadcast-address 
	netmask netmask plumb up

Как создать "ip alias" - несколько адресов на одном интерфейсе

Для присвоения одному интерфейсу нескольких сетевых адресов в Solaris используются псевдонимы. В отличие от других вариантов UNIX здесь не работает конструкция ifconfig alias. Вместо этого следует воспользоваться командами

ifconfig if_name:0 IP-address netmask netmask up
ifconfig if_name:1 IP-address netmask netmask up

Следует помнить, что if_name:0 обозначает сам оригинальный интерфейс, т.е. elxl0:0 - это то же самое, что elxl0. Кроме того, перед выполнением команд, назначающих адрес и другие параметры такому "виртуальному" интерфейсу, например, elxl0:1, следует создать этот виртуальный интерфейс командой

ifconfig if_name:1 plumb

Удаление такого интерфейса выполняется командой

ifconfig if_name:1 down

Например,

ifconfig le0:1 down

В Solaris до версии 7 не требуется выполнять команду

ifconfig if_name:1 plumb

для создания интерфейса. Для удаления интерфейса также можно применить

ifconfig if_name:1 unplumb

Это означает удаление интерфейса и связанных с ним структур данных из памяти, в то время как

ifconfig le0:1 down

обеспечивает только отключение интерфейса и "забывание" его настроек.

Для добавления постоянного виртуального (его иногда еще называют "логическим") интерфейса-псевдонима следует создать соответствующий файл /etc/hostname:

echo IP-адрес-псевдоним >/etc/hostname.if_name:1

Например,

echo 194.125.5.6 >/etc/hostname.le0:1

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

ndd -set /dev/ip ip_forwarding 0

позволяет отключить пересылку сетевых пакетов между интерфейсами системы.

За более детальной информацией о ndd следует обратиться к руководству ndd (1M).

Интерфейс-псевдоним может использоваться для организации "виртуальной маршрутизации ", когда в одном физическом сегменте сети устанавливаются компьютеры с адресами из разных сетей, и пакеты друг другу они могут пересылать через систему, сетевой адаптер которой имеет два адреса из разных сетей:

ifconfig -a
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MU<ICAST,IPv4> mtu 
		8232 index 1
	inet 127.0.0.1 netmask ff000000 
elxl0: flags=1000843<UP,BROADCAST,RUNNING,MU<ICAST,IPv4> 
		mtu 1500 index 2
	inet 192.168.5.33 netmask ffffff00 broadcast 192.168.5.255
	ether 0:60:8:cb:3b:c0 
elxl0:2: flags=1000842<BROADCAST,RUNNING,MU<ICAST,IPv4> 
		mtu 1500 index 2
	inet 198.16.1.1 netmask ffffff00 broadcast 198.16.1.255
Алексей Антипин
Алексей Антипин
Россия, Томск, ТУСУР, 2010
Игорь Тарасенко
Игорь Тарасенко
Россия