главная

Ведущие производители коммутаторов:

Компания Asotel — производитель и поставщик телекоммуникационного оборудования. Широкий спектр устройств, предлагаемых компанией «Асотел», позволяет решить комплексные задачи по построению мультисервисных сетей передачи информации. Линейка продукции компании в 2007 году включает: оборудование xDSL (в том числе IP DSLAM), аналоговые модемы, VoIP-шлюзы и IP-телефоны, коммутаторы Ethernet (управляемые и неуправляемые), медиаконверторы,  маршрутизаторы, конверторы интерфейсов,  оборудование HomePNA и др. Стремясь не отставать от тенденций в отрасли, компания готовится выйти на рынок оборудования Wi-Fi и оборудования для предоставления сервиса IPTV в домашних сетях.
о нас
продукция
статьи
цены
контакты

 

Маршрутизация (англ. Routing) — процесс определения маршрута следования информации в сетях связи. В русском языке часто используется слово "роутинг". Надо заметить, что правильное произношение этого слова - "рутинг". (в США произносится "раутинг" соответственно маршрутизатор - "раутер")

Маршруты могут задаваться административно (статические маршруты), либо вычисляться с помощью алгоритмов маршрутизации, базируясь на информации о топологии и состоянии сети, полученой с помощью протоколов маршрутизации (динамические маршруты).

Статические маршруты могут быть:
маршруты не изменяющиеся во времени
маршруты изменяющиеся по расписанию
маршруты изменяющиеся по ситуации - административно в момент возникновения стандартной ситуации
Процесс маршрутизации в компьютерных сетях выполняется специальными программно-аппаратными средствами — маршрутизаторами. Название идёт от самого процесса (основной функции) - маршрутизации. В дополнение к маршрутизации, маршрутизаторы осуществляют и коммутацию каналов/сообщений/пакетов/ячеек, так же, как и коммутатор компьютерной сети выполняет маршрутизацию (определение на какой порт отправить пакет на основании таблицы MAC адресов), а называется в честь основной его функции — коммутации.


 

 

Принцип работы
Обычно маршрутизатор использует адрес получателя, указанный в пакетах данных и определяет по таблице маршрутизации путь, по которому следует передать данные. Если в таблице маршрутизации для адреса нет описанного маршрута, пакет отбрасывается.
Существуют и другие способы определения маршрута пересылки пакетов, когда, например, используется адрес отправителя, используемые протоколы верхних уровней и другая информация, содержащаяся в заголовках пакетов сетевого уровня. Нередко маршрутизаторы могут осуществлять трансляцию адресов отправителя и получателя, фильтрацию транзитного потока данных на основе определённых правил с целью ограничения доступа, шифрование/дешифрование передаваемых данных и т. д.

Таблица маршрутизации
Таблица маршрутизации содержит информацию, на основе которой маршрутизатор принимает решение о дальнейшей пересылке пакетов. Таблица состоит из некоторого числа записей — маршрутов, в каждой из которых содержится адрес сети получателя, адрес следующего узла, которому следует передавать пакеты и некоторый вес записи — метрика. Метрики записей в таблице играют роль в вычислении кратчайших маршрутов к различным получателям. В зависимости от модели маршрутизатора и используемых протоколов маршрутизации, в таблице может содержаться некоторая дополнительная служебная информация.
192.168.64.0/16 [110/49] via 192.168.1.2, 00:34:34, FastEthernet0/0.1

где 192.168.64.0/16 — сеть назначения,
110/49 — метрика маршрута,
192.168.1.2 — адрес следующего маршрутизатора, которому следует
передавать пакеты для сети 192.168.64.0/16,
00:34:34 — время, в течение которого был известен этот маршрут,
FastEthernet0/0.1 — интерфейс маршрутизатора, через который можно
достичь «соседа» 192.168.1.2.

Зачем это нужно?

Данная мана посвящена установке маршрутизатора на FreeBSD. Об этом уже написано много статей в интернете, и наверняка достаточно полное руководство можно найти на сайте opennet.ru

Кроме того, данное руководство предназначено для тех, кто не имеет опыта подобной установки. Оно для тех, кем когда-то был и я. Неопытный, но с большим желание понять как это делается. Я в свое время множество сведений собирал отрывками - по кусочкам, блоками, вопросами в "аську" к более грамотным "гуру". Буду рад, если эта мана поможет сэкономить кому-то немного времени, потому как в последнее время меня часто спрашиваю: "А как ...?".

Предвосхищяя вопрос "А почему FreeBSD, а не ..." могу лишь сказать, что это была первая(!) like Unix ОС, которую я стал использовать для этих целей. С отключенным графическим интерфейсом она не требует больших машинных ресурсов.

Для чего это нужно? Это дает возможность одновременного выхода в сеть множественного числа пользователей.

Я также использую маршрутизатор в качестве прокси-сервера, веб-сервера, почтового сервера одновременно, что, несомненно, очень удобно.

Далее будет описана установка маршрутизатора под NATD (NETWORK ADDRESS TRANSALTION DAEMON)/IPFW (IP FIREWALL), что является достаточно распространенным типом установки роутера.


Железо

Какое должно быть железо для него? Ответ прост - чем быстрее и новее, тем лучше. Но, как водится, отдавать хорошую машину под маршрутизатор жалко. Поэтому зачастую в этот критерий попадает "Бери Боже, что нам негоже." Сам я собирал роутер на совершенно разных машинах - это и первый "пень" с 16 Мегабайтами памяти с хардом на гигабайт, и на четвертый пень с 512 Мегабайтами памяти и хардом на 80 Гиг, и единственный совет, который можно тут дать таков: FreeBSD достаточно неприхотлива, работает на любых конфигурациях, поэтому не сильно принципиально, какая машина под него будт использоваться. Единственное, что необходимо сразу предусмотреть - это возможность установки на неё прокси-сервера (squid), который потребует достаточно дискового пространства. Опять же, если роутер так же будет использоваться как почтовый, и веб-сервер, то машину все ж таки взять побыстрее, чем 486-DX100, Итак, для маршрутизатора потребуется 1 (один) системник, с клавиатурой и CD-ROM-ом на время начальной установки оси, с 2-мя сетевыми картам. Сетевые карты лучше взять не какие-нибудь экзотические, а стандартные типа Realtek, хотя я лично предпочитаю 3Com. Одна карта будет смотреть с локальную сеть, а во вторую будет "заходить" выделенная линия от провайдера.(ISP)

Исходный данные и софт

Я буду описывать устновку FreeBSD на ветке 4-ой версии (Точнее, на версии 4.8), хотя с 5-ой веткой не должно возникнуть никаких проблем. Все ставится по аналогии. Для установки потребуется загрузочный диск FreeBSD версии 4.8 и набор софта, позволяющий конфигурировать роутер на начальном этапе. Конечно, все можно сделать средствами самой FreeBSD, но такие вещи как Midnight Commander и wget сильно облегчают жизнь. Так же потребуется доступ в интернет для возможной устновки софта из портов, если вдруг нужного не окажется под рукой. Ниже я перечислю, что необходимо иметь сразу же, как то:

mc
wget
expat
gettext
libiconv
libslang
pkgconfig

Все это можно скачать из портов www.FreeBSD.org
Для себя лично у меня давно "нарезана" еще одна пластинка со всем необходимым.
Также необходимо знать все исходные данные от провайдера: внешний ip-адрес, маску подсети, IP-адрес шлюза и адреса DNS-серверов.
Также хорошо, если есть собственнный домен второго уровня, но на крайний случай, в услуги провайдера, как правило, входит предоставление домена третьего уровня, который также может быть использован в качестве имени хоста.

Let the party begin!

Вставляем boot-CD и с его помощью загружаемся в ОС. ЕСли железо в порядке, то можно приступать к выбору конфигурации устновки.

Для этого нужно выбрать пункт "Skip kernal configuration and continue with installation". Появится окно выбора типа инстяллции - sysinstall Main Menu.

Новичкам я предлагаю выбрать "Standart", а затем перейти к окну разбиения жесткого диска на партиции.
 



 

Если кроме FreeBSD больше ничего устанавливаться не будет, то нужно выбрать "А" - Use Entire Disk, после чего будет создан раздел ad0s1 на весь диск и далее неюбходимо сделать его загрузочным. Для этого стрелкой вниз нужно перейти на нужный раздел и нажать "S" - Set Bootable. После этого нажать "Q" - выход и перейти к выбору устновки загрузчика. Т.к. кроме FreeBSD устанавливаться ничего не будет, то опять же выбираем "Standart (No Boot Manager)".

После этого появится выбор разбиения партиции на разделы.



 

Опять же, здесь выбираем "А - Auto Defaults", затем снова "Q"и переходим к выбору типа установки

Я выбираю уровень "Developer", и на мой взгляд, это более чем достаточно для установки маршрутизатора. После этого выбираю откуда будет происходить установка, в нашем случае это "CD/DVD". После нажатия на Enter, начнется установка ОС на жесткий диск.



 

После этого будет предложено сконфигурировать сетевой адаптер, хост, домен, маску подсети и шлюз.

Все исходные данные должны быть уже известны.



 

Дальше нужно будет указать тайм-зону и пароль для root. Если вдруг какие то настройки были пропущены, то впоследствии можно будет их исправить, внося изменения в конфигурационные файлы.

Устновку портов я пропущу, т.к. все необходимое, как я уже сказал, есть у меня на отдельной пластинке. И если дополнительного софта нет, то можно попробовать отыскать требуемое в портах и поставить все необходимое на начальном этапе. Если вдруг понадобится что-нибудь доставить из портов после установки, то это всегда можно сделать набрав "/stand/sysinstall" в командной строке.


Начальная устновка ОС завершена, выбираем "Exit" в Sysinstall Main Menu. Перезагружаемся, и получем приглашение "login"

Вводим root, пароль, попадаем в систему и переходим к этапу установки дополнительного софта.


Устанавливаем Midinight Commander и еще ряд полезных утилит.

Набираем в комадной строке:


# mount /cdrom

# cd /cdrom

# pkg_add mc-4.6.0_6.tgz

# midc



 

Для того, чтобы установленная конфигурация FreeBSD могла служить в качестве маршрутизатора, необходимо изменить конфигурацию ядра.



# cd /sys/i386/conf



Править будем конфиг ядра GENERIC, которое сейчас и стоит в качестве исходного. Ядро LINT содержит детальное описание всех опций конфига ядра.



# cp GENERIC NAT

# ee NAT



Примечание: Конфигурацию ядра можно назвать как угодно, в данном примере ассоциативно понятно, что было изменено или добавлено в конфиг. Добавляем строки необходимые для NATD/IPFW:




ident NAT


maxusers 256


options IPFIREWALL

options IPFILTER

options IPDIVERT

options IPFIREWALL_VERBOSE

options IPFIREWALL_VERBOSE_LIMIT=100



Далее идет поддержка всяческих плат и устройств. Будьте внимательны при комементировании ненужных строк. Я придерживаюсь следующего правила - если сомневаетесь, лучше оставить как есть. Здесь приведен конфиг достаточно стандартной машины с минимум железок.Обычно комментируются строки про различные экзотические устройства SCSI, редко используемые сетевые карты и т.д.

Сохраняем содержимое конфига, набираем в командной строке:



# config NAT

Don't forget to do a ''make depend''

Kernel build directory is ../../compile/NAT



Далее набираем:



# cd /usr/compile/NAT

# make depend

# make clean

# make all

# make install



В зависимости от конфигурации машины процедура сборки ядра заниает от 15 минут до нескольких часов. После того как ядро соберется, перезагружаемся:



# reboot



Если перезагрузка прошла неудачно (Бывают случаи, когда закомментировано то что не должно быть закомментировано). Можно попытаться загрузить старое ядро на начальном этапе загрузки ОС. Для этого нужно нажать пробел в поцессе загрузки ОС:



Hit [Enter] to boot immediately, or any other key for command prompt.


ok unload kernel

ok load kernel.GENERIC

ok boot



После этого снова исправить конфиг ядра и пересобрать его.


Далее необходимо сконфигурировать сетевые адаптеры и файл загрузки rc.conf. Ваш rc.conf может отличаться, ниже приведены только те строки, на которые бы я хотел обратить внимание:



# шлюз провайдера

defaultrouter="123.123.123.123"

gateway_enable="YES"

#название хоста!

hostname="gw.your_host.ru"

#если планируется использовать маршрутизатор в качестве почтового сервера

inetd_enable="YES"

#сетевые адаптеры

network_interfaces="xl0 xl1 lo0"

# IP адреса и маски подсети для сетевых адаптеров.

# наружная, в ISP

ifconfig_xl0="inet 123.123.123.10 netmask 255.255.255.248"

#внутренняя, в локальную есть

ifconfig_xl1="inet 192.168.0.254 netmask 255.255.255.0"

# задействуем NATD

natd_enable="YES"

# я обычно использую postfix. Если планируется использовать sendmail, то тогда "YES"

sendmail_enable="NONE"

# для возможности удаленного управления

sshd_enable="YES"



Настраиваем NATD/IPFW:


# cd /usr/local/etc/rc.d

# ee firewall.sh



Типовой конфиг ipfw; В самом файле пишем:



#!/bin/sh

/sbin/ipfw -q -f flush

/sbin/ipfw -q add pass all from any to any via lo0

/sbin/ipfw -q add deny all from any to 127.0.0.0/8

/sbin/ipfw -q add deny all from 127.0.0.0/8 to any

# делаем диверт пакетов

/sbin/ipfw -q add divert natd ip from 192.168.0.0/24 to any out via xl0

/sbin/ipfw -q add divert natd ip from any to 123.123.123.10 in via xl0

# рaзрешаем пинг

/sbin/ipfw -q add pass icmp from any to any

#закрываем telnet и ftp наружу

/sbin/ipfw -q add reset tcp from any to 123.123.123.10 23 in via xl0

/sbin/ipfw -q add reset tcp from any to 123.123.123.10 21 in via xl0

# разрешаем выход ftp,ssh,smtp,pop3, http

/sbin/ipfw -q add pass tcp from any to any 20,21,22,25,110,80

/sbin/ipfw -q add pass tcp from any 20,21,22,25,110,80 to any

# разрешаем выход http, squid,icq

/sbin/ipfw -q add pass tcp from any to any 119,5190,443,3128

/sbin/ipfw -q add pass tcp from any 119,5190,443,3128 to any

# разрешаем dns


/sbin/ipfw -q add pass udp from any to any 53,123

/sbin/ipfw -q add pass udp from any 53,123 to any

/sbin/ipfw -q add pass all from any to any via xl1



Здесь необходимо подумать и самостоятельно дописать необходимые правила для вашей подсети.


Делаем файл исполняемым:


# chmod +x firewall.sh



Пишем конфиг для NATD:



#!/bin/sh

/sbin/natd -f /etc/natd.conf -n xl0



Делаем файлы исполняемыми, из комадной строки набираем:



# chmod +x firewall.sh

# chmod +x natd.sh



Добавляем natd.conf в /etc:



# cd /etc

# ee natd.conf



В natd.conf пишем:


same_ports yes

use_sockets yes



После этого должна появиться возможность удаленного управления маршрутизатором. С любой машины, используя какого-либо ssh-клиента пробуем залогиниться на маршрутизатор, не забыв предварительно добавить пользователя в группу wheel.



# add_user [user_name]



В качестве ssh-клиента я обычно использую всем известный telneat или putty, Хотя telneat мне нравиться больше.


Далле в /etc создаем resolv.conf:



domain your_domain.ru

nameserver 123.123.123.249

nameserver 123.123.123.250



На этом установка маршрутизатора закончена. Необходимо прямо с него поверить, что пингуется шлюз провайдера и проверить разрешение DNS (nslookup).

Если все работает, значит устновка прошла успешно. Теперь одновремено в интернет может выходить несколько пользователей.