- Как настроить интерфейс lo0
- pfSense: сценарии использования
- среда, 30 апреля 2014 г.
- Зачем нужен интерфейс loopback
- Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве
- Настройка сетевых интерфейсов
- 13.2. Настройка сетевых интерфейсов
- 13.2. 1 Расположение конфигурационных файлов
- 13.2.2 Команда ifconfig
- Настройка локального интерфейса lo
- Настройка интерфейса платы Ethernet локальной сети (eth0)
- Интерфейс для последовательного порта
- 13.2. 3 Настройка маршрутизации
- 13.2.4. Настройка службы имен
- 13.2.5. Тестирование сетевого соединения
Как настроить интерфейс lo0
Описание некоторых специальных логических интерфейсов активного оборудования Cisco.
Loopback — канал коммуникации с одной конечной точкой. Любые сообщения, посылаемые на этот канал, немедленно принимаются тем же самым каналом. Любые сообщения, которые отправляются с этого интерфейса, но у которых адрес не Loopback Interface, отбрасываются. В компьютерах таким адресом loopback interface является адрес 127.0.0.1, он фиксированный и изменению не подлежит. На Unix-like системах loopback interface называется lo или lo0.
На устройствах Cisco Loopback Interface относится к логическим интерфейсам, наряду с Null Interface и Tunnel Interface. Loopback Interface поддерживается на всех устройствах Cisco. Здесь можно создать Loopback Interface с произвольным адресом, это будет чисто программный интерфейс, эмулирующий работу физического. Он может использоваться для удаленного администрирования, и его функционирование не будет зависеть от состояния физических интерфейсов, он будет всегда поднят и доступен для BGP и RSRB сессий.
Если нужно обеспечить доступ к Loopback Interface снаружи, то необходимо указать маршрут до подсети, которой принадлежит Loopback Interface.
Null Interface. Cisco IOS поддерживает интерфейс «null». Этот псевдо-интерфейс работает так же, как и устройства null, доступные во многих операционных системах. Этот интерфейс всегда поднят и не принимает и не перенаправляет трафик. Для этого интерфейса доступна только одна команда:
Null-интерфейс обеспечивает дополнительный метод фильтрации трафика, позволяющий избежать перегрузок, связанных с обработкой access-листов:
Tunnel Interface. Туннелирование обеспечивает метод инкапсулирования произвольных пакетов внутри транспортного протокола. Эта возможность реализована как виртуальный интерфейс для того, чтобы упростить её настройку. Tunnel Interface не привязан к «passenger» или «transport» протоколам, точнее это архитектура, разработанная для реализации любой стандартной схемы инкапсуляции точка-точка. Поскольку туннелирование представляет собой соединение точка-точка, нужно конфигурировать туннель для каждого соединения.
Туннелирование состоит из 3-х основных компонентов:
1. Passenger protocol, протокол, который инкапсулируется и передается в туннеле (AppleTalk, Banyan VINES, CLNS, DECnet, IP, or IPX)
2. Carrier protocol, один из следующих протоколов инкапсуляции:
Generic route encapsulation (GRE), Cisco’s multiprotocol carrier protocol
Cayman, a proprietary protocol for AppleTalk over IP
EON, a standard for carrying CLNP over IP networks
NOS, IP over IP, совместимый с популярной программой KA9Q
Distance Vector Multicast Routing Protocol (DVMRP) (IP in IP tunnels, defined by RFC 20036)
3. Transport protocol, который используется для переноса инкапсулирующего протокола (только IP).
Туннелирование удобно применять в следующих случаях:
— для обеспечения работы многих несовместимых протоколов локальной сети через backbone-сеть с одним протоколом.
— для обеспечения рабочего окружения для сетей, содержащих протоколы с ограниченным количеством узлов — например, AppleTalk.
— для соединения прерывающихся подсетей
— для работы VPN через WAN.
При организации туннелей нужно принимать во внимание следующее:
— инкапсуляция и деинкапсуляция трафика на концах туннеля являются медленными операциями и сильно загружают процессор устройства Cisco (поддерживается только процессорная коммутация пакетов).
— туннелирование может создавать проблемы с протоколами, имеющими ограничивающие таймеры (например, DECnet) поскольку туннелинг увеличивает задержку пакетов (latency).
— самая большая проблема получается, когда информация роутинга туннелируемой сети смешивается с информацией роутинга транспортной сети. В этом случаем могут образовываться зацикливания маршрутов. Для решения проблемы нужно разделить роутинг туннелируемой и транспортной сетей:
— использовать для них разные AS номера;
— использовать разные протоколы роутинга;
— использовать статические маршруты для преодоления первого узла маршрута.
Конфигурирование туннеля состоит из трех обязательных этапов:
1. Указать интерфейс туннеля.
2. Указать Tunnel Source.
3. Указать Tunnel Destination.
Необязательные шаги для конфигурирования:
4. Указать Tunnel Mode.
5. Конфигурирование End-to-End Checksumming. Все пакеты с неправильной контрольной суммой будут отбрасываться.
6. Конфигурирование Tunnel Identification Key. Номера на концах туннеля должны совпадать. Используется только для туннеля GRE (tunnel mode gre ip).
7. Конфигурирование туннеля для отбрасывания Drop Out-of-Order Datagrams. Только для туннеля GRE.
8. Конфигурирование Asynchronous Host Mobility.
Источник
pfSense: сценарии использования
Привет. Я использую pfSense c давних-предавних пор и он меня полностью устраивает. Однако, как это часто бывает, с приходом опыта возникает желание заглянуть под капот и разобраться почему оно работает именно так, а не иначе. Ну или не работает как нужно.
Если вы уже не новичок в pfSense и былое чувство всемогущества начинает меняться пониманием, что вы чего-то не понимаете, приглашаю к чтению.
среда, 30 апреля 2014 г.
Зачем нужен интерфейс loopback
Если спросить гугл зачем нужен интерфейс loopback, можно узнать много удивительного. Конечно, как и некоторые другие полезные изобретения, loopback допускает разные варианты применения, но я хочу рассказать об основном его назначении, а так же о его использовании в pfSense.
Сетевая подсистема FreeBSD — это, как ни странно, средство взаимодействия между процессами. От других подобных средств (семафоры, очереди сообщений, разделяемая память) она отличается лишь большей универсальностью. Процессы могут исполняться на разных хостах по разные стороны океана, а могут соседствовать на одном компьютере даже не подключенном к сети и, не смотря на это, взаимодействовать между собой, используя одни и те же сетевые методы (API сокетов).
Интерфейс loopback, часто называемый также интерфейсом обратной петли, работает очень просто. Если для пакета, исходящего от локального процесса, на сетевом уровне выходным интерфейсом выбран loopback, то пакет не достигает ни канального ни физического уровня OSI, а немедленно подается обратно на вход системы, т. е. во входную очередь интерфейса loopback.
| Рис.1 Упрощенная схема движения пакетов в сетевой подсистеме FreeBSD |
Для системы это выглядит как появление данных из сети, которые должны быть обработаны. Интерфейс loopback таким образом позволяет процессам исполняющимся на одном хосте взаимодействовать через сетевую подсистему. Для того, чтобы наглядно представить это, рассмотрим таблицу маршрутизации pfSense:
Источник
Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве
Настройка сетевых интерфейсов
13.2. Настройка сетевых интерфейсов
Интерфейсом с точки зрения ОС является устройство, через которое система получает и передает IP-пакеты. Роль интерфейса локальной сети может выполнять одно (или несколько) из следующих устройств: Ethernet-карта, ISDN-адаптер или модем, подключенный к последовательному порту. Каждое устройство (не весь компьютер!) имеет свой IP-адрес. Для выхода в локальные сети используется, как правило, Ethernet-карта, что и будет предполагаться в настоящем разделе. Заодно мы рассмотрим и настройку модемного интерфейса, поскольку настраивается он вполне аналогично, и знания о методах его настройки будут необходимы нам при рассмотрении вопроса о выходе в Интернет в гл. 14
13.2. 1 Расположение конфигурационных файлов
Отметим сразу, что все приводимые ниже команды можно выполнять из командной строки, но тогда придется повторять эти операции при каждом перезапуске компьютера. Поэтому может быть удобнее записать их в один из инициализационных файлов, автоматически запускаемых при старте системы. В разных дистрибутивах процесс загрузки организован по-разному. В “Linux NET-3-HOWTO” приводится следующая таблица:
Таблица 13.1. Расположение конфигурационных файлов в основных дистрибутивах
Дистрибутив.
Настройка интерфейса и маршрутизации
Запуск демонов
/etc/init.d/netbase /etc/init.d/netstd_init /etc/init.d/netstd_nfs /etc/init.d/netstd_misc
Обратите внимание, что дистрибутивы Debian и Red Hat содержат отдельный каталог для скриптов запуска системных сервисов (хотя сами файлы настроек находятся в других местах, например, в дистрибутиве Red Hat они хранятся в каталоге /etc/sysconfig). Для понимания процесса загрузки ознакомьтесь с содержимым файла /etc/inittab и документацией по процессу init .
13.2.2 Команда ifconfig
После подключения драйверов вы должны настроить те интерфейсы, которые вы предполагаете использовать. Настройка интерфейса заключается в присвоении IP-адресов сетевому устройству и установке нужных значений для других параметров сетевого подключения. Наиболее часто для этого используется программа ifconfig (ее название происходит от “interface configuration”).
Запустите ее без аргументов (или с единственным аргументом -a ) и вы узнаете, какие параметры установлены в данный момент для активных сетевых интерфейсов (в частности, для сетевой карты). Кстати, имеет смысл выполнить эту команду еще до подключения модулей: а вдруг у вас поддержка интерфейсов встроена в ядро и необходимые настройки сделаны в процессе инсталляции системы. Тогда вы в ответ можете получить информацию о параметрах вашей Ethernet-карты и так называемого “кольцевого интерфейса” или “обратной петли” – Local Loopback (интерфейс Ethernet при единственной сетевой карте обозначается как eth0, а кольцевой интерфейс – как lo). Если же по этой команде вы ничего не получите, то надо переходить к подключению модулей и настройке, и начинать надо с кольцевого интерфейса.
Настройка локального интерфейса lo
Этот интерфейс используется для связи программ IP-клиентов с IP-серверами, запущенными на той же машине, так что его необходимо настроить даже в том случае, если вы вообще не подключаете никаких сетевых устройств.
Локальный интерфейс настраивается очень просто: командой
[root]# /sbin/ifconfig lo 127.0.0.1
Теперь, чтобы проверить работоспособность протоколов TCP/IP на вашей машине, дайте команду:
[root]# ping 127.0.0.1
Настройка интерфейса платы Ethernet локальной сети (eth0)
Для того чтобы ваш компьютер вошел в сеть с IP-адресом, полученным вами у администратора (пусть для примера это будет адрес 192.168.0.15), вы должны запустить команду ifconfig примерно следующим образом:
[root]# /sbin/ifconfig eth0 192.168.0.15 netmask 255.255.255.0 up
Если не указывать маску подсети, то по умолчанию устанавливается маска подсети 255.0.0.0.
В некоторых случаях необходимо бывает изменить адрес прерывания, используемого сетевой картой, порта ввода-вывода или типа соединения, используемого в сети. Это можно сделать, выполнив следующую команду:
root# /sbin/ifconfig eth0 irq 5 io_addr 220 media 10baseT
Не все устройства (платы) поддерживают динамическое изменение этих параметров (т. е. может потребоваться переустановить переключатели на плате).
Интерфейс для последовательного порта
Последовательный порт используется для подключения модема, через который осуществляется соединение с сетью по телефонной линии. Для настройки интерфейса этого типа тоже можно использовать программу ifconfig . Однако, такие программы как pppd и dip , используемые для соединения с сетью по модему, способны автоматически конфигурировать сетевой интерфейс, поэтому обычно для этого случая применять ifconfig не требуется.
13.2. 3 Настройка маршрутизации
Правила маршрутизации определяют, куда отправлять IP-пакеты. Данные маршрутизации хранятся в одной из таблиц ядра. Вести таблицы маршрутизации можно статически или динамически. Статический маршрут — это маршрут, который задается явно с помощью команды route . Динамическая маршрутизация выполняется процессом-демоном ( routed или gated ), который ведет и модифицирует таблицу маршрутизации на основе сообщений от других компьютеров сети. Для выполнения динамической маршрутизации разработаны специальные протоколы: RIP, OSPF, IGRP, EGP, BGP и т. д.
Динамическая маршрутизация необходима в том случае, если у вас сложная, постоянно меняющаяся структура сети и одна и та же машина может быть доступна по различным интерфейсам (например, через разные Ethernet или SLIP интерфейсы). Маршруты, заданные статически, обычно не меняются, даже если используется динамическая маршрутизация.
Для персонального компьютера, подключаемого к локальной сети, в большинстве ситуаций бывает достаточно статической маршрутизации командой route . Прежде чем пытаться настраивать маршруты, просмотрите таблицу маршрутизации ядра с помощью команды netstat -n -r. Вы должны увидеть что-то вроде следующего
[root]# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.72.128.101 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
10.72.128.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 10.72.128.254 0.0.0.0 UG 0 0 0 eth0
Если таблица пуста, то вы увидите только заголовки столбцов. Тогда надо использовать route . С помощью команды route можно добавить или удалить один (за один раз) статический маршрут. Вот ее формат:
[root]# /sbin/route [-f] операция [-тип] адресат шлюз [dev] интерфейс
Здесь аргумент операция может принимать одно из двух значений: add (маршрут добавляется) или delete (маршрут удаляется). Аргумент адресат может быть IP-адресом машины, IP-адресом сети или ключевым словом default . Аргумент шлюз — это IP-адрес компьютера, на который следует пересылать пакет (этот компьютер должен иметь прямую связь с вашим компьютером). Команда
[root]# /sbin/route -f
удаляет из таблицы данные обо всех шлюзах. Необязательный аргумент тип принимает значения net или host . В первом случае в поле адресата указывается адрес сети, а во втором — адрес конкретного компьютера (хоста).
Как правило, бывает необходимо настроить маршрутизацию по упоминавшимся выше трем интерфейсам:
- локальный интерфейс (lo),
- интерфейс для платы Ethetnet (eth0),
- интерфейс для последовательного порта (PPP или SLIP).
Локальный интерфейс поддерживает сеть с IP-номером 127.0.0.1. Поэтому для маршрутизации пакетов с адресом 127…. используется команда:
[root]# /sbin/route add -net 127.0.0.1 lo
Если у вас для связи с локальной сетью используется одна плата Ethernet, и все машины находятся в этой сети (сетевая маска 255.255.255.0), то для настройки маршрутизации достаточно вызвать:
[root]# /sbin/route add -net 192.168.36.0 netmask 255.255.255.0 eth0
Если же вы имеете насколько интерфейсов, то вам надо определиться с сетевой маской и вызвать команду route для каждого интерфейса.
Поскольку очень часто IP-пакеты с вашего компьютера могут отправляться не в одну единственную сеть, а в разные сети (например, при просмотре разных сайтов в Интернете), то в принципе надо было бы задать очень много маршрутов. Очевидно, что сделать это было бы очень сложно, точнее просто невозможно. Поэтому решение проблемы маршрутизации пакетов перекладывают на плечи специальных компьютеров — маршрутизаторов, а на обычных компьютерах задают маршрут по умолчанию, который используется для отправки всех пакетов, не указанных явно в таблице маршрутизации. С помощью маршрута по умолчанию вы говорите ядру “а все остальное отправляй туда”. Маршрут по умолчанию настраивается следующей командой:
[root]# /sbin/route add default gw 192.168.1.1 eth0
Опция gw указывает программе route , что следующий аргумент – это IP-адрес или имя маршрутизатора, на который надо отправлять все пакеты, соответствующие этой строке таблицы маршрутизации.
После настройки маршрутизации можно проверить, что у вас получилось. Для этого снова дайте команду
[root]# netstat -nr
Если вывод команды выглядит так, как это было показано выше, но не содержит строки, которая в графе Destination содержит 0.0.0.0 , а в графе Gateway указывает на маршрут, используемый для соединений по умолчанию, то вы, вероятно, не задали этот маршрут.
13.2.4. Настройка службы имен
С помощью команды ifconfig вы задали IP-адрес вашего компьютера, но он еще не знает своего имени (при инсталляции системы он получил обезличенное имя localhost). Существует команда hostname , которая позволяет установить (и узнать действующее в данный момент) имя компьютера и имя домена.
Однако установить только имя и только этой командой еще недостаточно, поскольку эта команда меняет имя только на текущий сеанс работы. Поэтому обычно эта команда вызывается в одном из инициализационных файлов, например, /etc/rc.d/rc или /etc/rc.d/rc.local. Вы можете попытаться найти ее там, чтобы изменить должным образом имя компьютера, которое задается в качестве параметра команды hostname . В таком случае требуется перезагрузиться для того чтобы изменения вступили в силу.
Другой способ изменения имени компьютера или домена состоит в том, что эти имена прописываются в файле /etc/sysconfig/network в виде двух строчек примерно следующего вида:
HOSTNAME=”new_host_name.localdomain.upperdomain”
DOMAINNAME=localdomain.upperdomain
Тогда в процессе инициализации системы эти имена будут восстанавливаться, потому что файл /etc/sysconfig/network вызывается из /etc/rc.d/rc.sysinit.
Кроме того, имя компьютера должно быть прописано в файле /etc/hosts, который связывает имя компьютера с его IP-адресом. Каждая строка файла /etc/hosts должна начинаться с IP-адреса, за которым следует имя данного узла. Следом за именем можно записать произвольное число псевдонимов этого узла.
Даже если ваш компьютер не подключен к сети, в файле /etc/hosts должна быть прописана хотя бы одна строка следующего вида.
127.0.0.1 localhost localhost.localdomain
Если же ваш компьютер подключен к TCP/IP сети, то в этом файле дополнительно нужно прописать строку вида
192.168.0.15 host_name host_name.localdomain
Файл /etc/hosts используется в механизмах разрешения имен. В больших сетях трудно было бы поддерживать в актуальном состоянии файлы /etc/hosts на всех компьютерах, если бы это был основной инструмент для определения IP-адресов по именам. Поэтому обычно для разрешения имен используются серверы DNS. Однако файл /etc/hosts все равно необходим, хотя бы для обращения к серверу DNS. Поэтому в нем имеет смысл указать IP-адреса и соответствующие имена шлюзов и серверов DNS и NIS. А чтобы все приложения использовали этот файл при разрешении имен, должен иметься файл /etc/hosts.conf, содержащий строку
order hosts,bind
которая говорит, что при разрешении имен сначала должен использоваться файл /etc/hosts, а затем должно происходить обращение к серверу DNS. В большинстве случаев в файле /etc/hosts.conf достаточно иметь две строки:
order hosts,bind
multi on
Эти параметры указывают системе преобразования имен, что надо просмотреть файл /etc/hosts перед тем, как посылать запрос к серверу, и что следует возвращать все найденные в /etc/hosts адреса для данного имени, а не только первый.
Но настройка механизма разрешения имен не ограничивается редактированием файлов /etc/hosts и /etc/hosts.conf. Необходимо еще указать компьютеру имена серверов DNS. Они прописываются в файле /etc/resolv.conf. Этот файл имеет весьма простой формат. Это текстовый файл, каждая строка которого задает один из параметров системы преобразования имен. Как правило, используются три ключевых слова-параметра:
- domain— задает имя локального домена.
- search— задает список имен доменов, которые будут добавляться к имени машины, если вы не укажете явно имени домена. Это позволяет ограничить область поиска и избежать некоторых ошибок (например, вы ищете компьютер linux.msk.ru, а механизм разрешения имен выведет вас на linux.spb.ru).
- nameserver — этот параметр, который вы можете указывать несколько раз, задает IP-адрес сервера преобразования имен, на который ваша машина будет посылать запросы. Повторяя этот параметр, вы можете задать несколько серверов.
Если вы не собираетесь заводить поддержку сервиса имен для своей сети (что является довольно сложной организационной и технической проблемой), и доверяете ведение своих имен администратору локальной сети или вашему IP-провайдеру, то вам достаточно задать файл /etc/resolv.conf примерно следующего вида:
search abcd.ru xyz.edu.ru
В этом примере машина находится в домене abcd.ru. Если вы зададите имя машины, не указывая домена, например “pc1” , то система преобразования имен попытается сначала найти машину “pc1.abcd.ru” , а в случае неудачи — “pc1.xyz.edu.ru” . Для преобразования имен ваша машина будет обращаться к серверам по адресам “192.168.10.1” и “192.168.12.1”.
13.2.5. Тестирование сетевого соединения
Чтобы проверить, соединяется ли ваш компьютер с сетью, попробуйте дать команду ping , указав ей в качестве параметра IP-адрес одного из компьютеров сети. Пусть, например, вам известно (узнайте реальный номер и имя у администратора сети), что в сети есть компьютер с IP-адресом 192.168.0.2 и именем pc1. Тогда вы должны дать команду:
[user]$ ping 192.168.0.2
или (тут вы одновременно проверяете и работу службы DNS)
[user]$ ping pc1
Если соединение с сетью установлено, должны появиться и периодически обновляться строчки примерно такого вида:
64 bytes from 192.168.0.2: icmp_seq=0 ttl=32 time=1.2 ms
64 bytes from 192.168.0.2: icmp_seq=1 ttl=32 time=1.0 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttl=32 time=1.0 ms
64 bytes from 192.168.0.2: icmp_seq=3 ttl=32 time=1.0 ms
64 bytes from 192.168.0.2: icmp_seq=4 ttl=32 time=1.1 ms
Это означает, что сетевое соединение работает. Для того чтобы прервать тестирование сети, нажмите комбинацию клавиш + .
Источник