Новинки IT-индустрии, обзоры и тесты компьютеров и комплектующих
- ПК и комплектующие
- Настольные ПК и моноблоки
- Портативные ПК
- Серверы
- Материнские платы
- Корпуса
- Блоки питания
- Оперативная память
- Процессоры
- Графические адаптеры
- Жесткие диски и SSD
- Оптические приводы и носители
- Звуковые карты
- ТВ-тюнеры
- Контроллеры
- Системы охлаждения ПК
- Моддинг
- Аксессуары для ноутбуков
- Периферия
- Принтеры, сканеры, МФУ
- Мониторы и проекторы
- Устройства ввода
- Внешние накопители
- Акустические системы, гарнитуры, наушники
- ИБП
- Веб-камеры
- KVM-оборудование
- Цифровой дом
- Сетевые медиаплееры
- HTPC и мини-компьютеры
- ТВ и системы домашнего кинотеатра
- Технология DLNA
- Средства управления домашней техникой
- Гаджеты
- Планшеты
- Смартфоны
Портативные накопители- Электронные ридеры
- Портативные медиаплееры
- GPS-навигаторы и трекеры
- Носимые гаджеты
- Автомобильные информационно-развлекательные системы
- Зарядные устройства
- Аксессуары для мобильных устройств
- Фото и видео
- Цифровые фотоаппараты и оптика
- Видеокамеры
- Фотоаксессуары
- Обработка фотографий
- Монтаж видео
- Программы и утилиты
- Операционные системы
- Средства разработки
- Офисные программы
- Средства тестирования, мониторинга и диагностики
- Полезные утилиты
- Графические редакторы
- Средства 3D-моделирования
- Мир интернет
- Веб-браузеры
- Поисковые системы
- Социальные сети
- «Облачные» сервисы
- Сервисы для обмена сообщениями и конференц-связи
- Разработка веб-сайтов
- Мобильный интернет
- Полезные инструменты
- Безопасность
- Средства защиты от вредоносного ПО
- Средства управления доступом
- Защита данных
- Сети и телекоммуникации
- Проводные сети
- Беспроводные сети
- Сетевая инфраструктура
- Сотовая связь
- IP-телефония
- NAS-накопители
- Средства управления сетями
- Средства удаленного доступа
- Корпоративные решения
- Системная интеграция
- Проекты в области образования
- Электронный документооборот
- «Облачные» сервисы для бизнеса
- Технологии виртуализации
Наш канал на Youtube
Архив изданий
| 1999 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | |
| 2000 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2001 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2002 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2010 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2011 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
| 2013 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
- О нас
- Размещение рекламы
- Контакты
Популярные статьи
Моноблок HP 205 G4 22 AiO — одно из лучших решений для офисной и удаленной работы
В настоящем обзоре мы рассмотрим модель моноблока от компании HP, которая является признанным лидером в производстве компьютеров как для домашнего использования, так и для офисов.
Logitech G PRO X Superlight — легкая беспроводная мышь для профессиональных киберспортсменов
Швейцарская компания Logitech G представила беспроводную игровую мышь Logitech G PRO X Superlight. Новинка предназначена для профессиональных киберспортсменов, а слово Superlight в ее названии указывает на малый вес этой модели, который не превышает 63 г. Это почти на четверть меньше по сравнению с анонсированным пару лет тому назад манипулятором Logitech G PRO Wireless
Материнская плата для домашнего майнинга ASRock h210 Pro BTC+
Как показало недавнее исследование Кембриджского университета — количество людей, которые пользуются сегодня криптовалютами, приближается к размеру населения небольшой страны и это только начало, мир меняется. Поэтому компания ASRock разработала и выпустила в продажу весьма необычную материнскую плату — h210 PRO BTC+, которую мы и рассмотрим в этом обзоре
Верхняя панель клавиатуры Rapoo Ralemo Pre 5 Fabric Edition обтянута тканью
Компания Rapoo анонсировала в Китае беспроводную клавиатуру Ralemo Pre 5 Fabric Edition.
Новинка выполнена в формате TKL (без секции цифровых клавиш) и привлекает внимание оригинальным дизайном. Одна из отличительных особенностей этой модели — верхняя панель, обтянутая тканью с меланжевым рисунком
Изогнутый экран монитора MSI Optix MAG301 CR2 обеспечит максимальное погружение в игру
Линейку компьютерных мониторов MSI пополнила модель Optix MAG301 CR2, адресованная любителям игр. Она оборудована ЖК-панелью типа VA со сверхширокоформатным (21:9) экраном изогнутой формы (радиус закругления — 1,5 м). Его размер — 29,5 дюйма по диагонали, разрешение — 2560×1080 пикселов
Комплект SilverStone MS12 позволяет превратить SSD типоразмера M.2 2280 в портативный накопитель
Каталог продукции компании SilverStone пополнил комплект MS12. Он позволяет создать портативный накопитель на базе стандартного SSD типоразмера M.2 2280 с интерфейсом PCI Express
SSD-накопители ADATA XPG Spectrix S20G сочетают производительность с эффектным дизайном
Компания ADATA Technology анонсировала твердотельные накопители серии XPG Spectrix S20G.
Они предназначены для оснащения игровых ПК и, как утверждают их создатели, сочетают высокую производительность и эффектный внешний вид
Видеокарта ASUS GeForce RTX 3070 Turbo оснащена системой охлаждения с одним центробежным вентилятором
Линейку видеоадаптеров ASUS на базе графических процессоров NVIDIA пополнила модель GeForce RTX 3070 Turbo (заводской индекс TURBO-RTX3070-8G), предназначенная для оснащения игровых ПК. Одной из особенностей новинки является конструкция системы охлаждения
КомпьютерПресс использует
Маршрутизация в Linux — Losst
Эта статья одна из статей про работу сетей в Linux. Вы уже знаете, что все данные в сети передаются в виде пакетов, а чтобы компьютер знал куда нужно отправить тот или иной пакет используются IP адреса. Но пакету, перед тем, как он достигнет точки назначения нужно пройти множество компьютеров и маршрутизаторов.
Каждому из маршрутизаторов нужно знать на какой компьютер передавать пакет дальше.
Именно это мы и обсудим в этой статье. Сегодня нас будет интересовать маршрутизация в Linux, как это работает, как настроить правила и заставить все работать как нужно.
Содержание статьи:
Сетевые маршруты в Linux
Как я уже сказал, сетевые маршруты необходимы чтобы компьютеры могли определить по какой цепочке должен пойти пакет, чтобы достигнуть цели. Маршруты можно настроить на уровне интерфейса или маршрутизатора.
Когда компьютеру нужно отправить пакет в сеть он смотрит таблицу маршрутизации, в ней указанны ip адреса пунктов назначения и адреса интерфейсов и роутеров в домашней сети, которые могут отправить пакет по нужному адресу. Если для цели маршрут не указан то используется так называемый шлюз по умолчанию или маршрут по умолчанию. Точно такая же картина наблюдается на роутере. Устройство смотрит на IP адрес назначения и сверяет его со своей таблицей маршрутизации, а потом отправляет дальше.
Ниже мы рассмотрим как проверить текущие маршруты в системе, а также как настроить новые.
Как посмотреть таблицу маршрутизации
Перед тем как что-либо менять, нужно понять какие правила уже используются. В Linux для этого существует несколько команд. Чтобы посмотреть таблицу маршрутизации можно использовать команду route:
route
Вот так выглядит таблица маршрутизации linux. Тут выводится достаточно простая информация, которой не всегда достаточно чтобы понять суть дела. Более подробно можно посмотреть с помощью команды routel:
routel
Тут вы уже можете видеть IP адрес цели (target), IP адрес шлюза (gateway), IP отправителя (source), протокол, и даже сетевой интерфейс. Но самый удобный способ посмотреть таблицу маршрутизации linux — это команда ip:
ip route
Вывод похож на результат предыдущей команды, но выглядит не совсем привычно, это потому, что вывод команды можно использовать в качестве аргумента для ip route add или ip route del. Это очень удобно. Как вы видите, в качестве шлюза по умолчанию везде используется 192.
168.1.1. Рассмотрим подробнее что означает вывод этой команды:
- default — в данной строке означает вариант по умолчанию. Здесь должен быть ip адрес цели или маска подсети;
- via 192.168.1.1 — указывает через какой шлюз мы можем добраться до этой цели, у нас это 192.168.1.1;
- dev enp2s0 — сетевой интерфейс, с помощью которого будет доступен этот шлюз;
- proto static — означает, что маршрут был установлен администратором, значение kernel значит что он был установлен ядром;
- metric — это приоритет маршрута, чем меньше значение — тем выше приоритет.
А теперь рассмотрим выполняется настройка маршрутов Linux.
Настройка маршрутов в Linux
Вы можете настраивать таблицу маршрутизации с помощью команды ip. Например, чтобы изменить маршрут по умолчанию достаточно выполнить:
ip route add default via 192.168.1.1
Так вы можете добавить маршрут для любого IP адреса, например, для 243.
143.5.25:
sudo ip route add 243.143.5.25 via 192.168.1.1
Все очень просто, сначала указывается IP адрес цели, а затем шлюз в локальной сети, через который можно достичь этого адреса. Но такие маршруты будут активны только до перезагрузки, после перезагрузки компьютера они будут автоматически удалены. Чтобы маршруты сохранились их нужно добавить в файл конфигурации.
В операционных системах семейства Red Hat используются конфигурационные файлы /etc/sysconfig/network-scripts/route-ethX. Каждый файл может описывать несколько маршрутов, например:
GATEWAY=10.10.0.1
NETMASK=255.0.0.0
IPADDR=10.10.0.22
Здесь gateway — шлюз по умолчанию для этого интерфейса, netmask — маска сети, а ipaddr — ip адрес интерфейса. В Debian и основанных на нем дистрибутивах можно настроить маршруты в файле /etc/network/interfaces. Здесь команда route добавляется в секцию iface. Например:
up route add -net 10.10.0.0 netmask 255.0.0.0 gw 10.10.0.1
С помощью опции -net мы указываем целевую сеть, netmask — это маска сети, а gw — шлюз.
Все очень просто. Теперь добавленные маршруты останутся даже после перезагрузки.
Выводы
В этой небольшой статье мы кратко рассмотрели как работает маршрутизация в Linux, как выполняется настройка маршрутизации в linux, а также зачем это нужно. Надеюсь, эта информация была полезной для вас.
Как превратить сервер Linux в маршрутизатор для статической и динамической обработки трафика трафик статически и динамически с конкретными приложениями.
Сертифицированный инженер Linux Foundation — часть 10Знакомство с программой сертификации Linux Foundation
Прежде всего, давайте проясним некоторые определения:
- Проще говоря, пакет — это основная единица, используемая для передачи информации в сети. Сети, использующие TCP/IP в качестве сетевого протокола, следуют тем же правилам передачи данных: фактическая информация разбивается на пакеты, состоящие как из данных, так и из адреса, по которому они должны быть отправлены.

- Маршрутизация — это процесс « направления » данных от источника к месту назначения внутри сети.
- Статическая маршрутизация требует вручную настроенного набора правил, определенных в таблице маршрутизации. Эти правила являются фиксированными и используются для определения того, как должен проходить пакет при его перемещении от одной машины к другой.
- Динамическая маршрутизация или интеллектуальная маршрутизация (если хотите) означает, что система может при необходимости автоматически изменять маршрут, по которому следует пакет.
Advanced IP and Network Device Configuration
Пакет iproute предоставляет набор инструментов для управления сетью и трафиком, которые мы будем использовать в этой статье, поскольку они представляют собой замену устаревших инструментов, таких как ifconfig и
.0003 маршрут .
Центральная утилита в наборе iproute называется просто ip.
Его основной синтаксис выглядит следующим образом:
# команда ip object
Где объект может быть только одним из следующих (показаны только наиболее часто встречающиеся объекты — вы можете обратиться к man ip для получения полного списка):
- ссылка : сетевое устройство.
- addr : адрес протокола (IP или IPv6) на устройстве.
- маршрут : запись в таблице маршрутизации.
- правило : правило в базе данных политик маршрутизации.
Принимая во внимание, что команда представляет собой конкретное действие, которое может быть выполнено над объектом. Вы можете запустить следующую команду, чтобы отобразить полный список команд, которые можно применить к конкретному объекту:
# ip object help
Например,
# ip link helpСправка по IP-команде
На приведенном выше изображении показано, например, что вы можете изменить состояние сетевого интерфейса с помощью следующей команды:
# ip link set interface {up | вниз}
Дополнительные примеры команды « ip » см.
в разделе 10 полезных команд «ip» для настройки IP-адреса
Пример 1: отключение и включение сетевого интерфейса
В этом примере мы отключим и включим eth2 :
# ip ссылка показать # ip link set eth2 down # показывает ip ссылкуОтключить интерфейс eth0
Если вы хотите снова включить eth2,
# ip link set eth2 up
Вместо отображения всех сетевых интерфейсов можно указать один из них:
# ip link show eth2
Который вернет всю информацию для eth2.
Пример 2: Отображение основной таблицы маршрутизации
Вы можете просмотреть текущую основную таблицу маршрутизации с помощью любой из следующих 3 команд:
# ip route show # маршрут -n # netstat -rnПроверьте таблицу маршрутов Linux.
В первом столбце выходных данных трех команд указана целевая сеть. Выход ip route show (после ключевого слова dev ) также представляет сетевые устройства, которые служат физическим шлюзом для этих сетей.
Хотя в настоящее время команда ip предпочтительнее маршрута, вы все равно можете обратиться к man ip-route и man route для подробного объяснения остальных столбцов.
Пример 3: Использование сервера Linux для маршрутизации пакетов между двумя частными сетями
Мы хотим маршрутизировать icmp (ping) пакеты от dev2 к dev4 и наоборот (обратите внимание, что обе клиентские машины находятся в разных сетях). Имя каждой сетевой карты вместе с соответствующим IPv4-адресом указано в квадратных скобках.
Наша тестовая среда выглядит следующим образом:
Клиент 1 : CentOS 7 [enp0s3: 192.168.0.17/24] - dev1 Маршрутизатор : Debian Wheezy 7.7 [eth0: 192.168.0.15/24, eth2: 10.0.0.15/24] — dev2 Клиент 2 : openSUSE 13.2 [enp0s3: 10.0.0.18/24] — dev4
Давайте посмотрим таблицу маршрутизации в dev1 (CentOS box):
# ip route show
, а затем измените его, чтобы использовать сетевой адаптер enp0s3 и подключение к 192.
168.0.15 для доступа к хостам в сети 10.0.0.0/24:
# ip route add 10.0.0.0/24 через 192.168.0.15 dev enp0s3
Что по существу гласит: «Добавить маршрут к сети 10.0.0.0/24 через сетевой интерфейс enp0s3, используя 192.168.0.15 в качестве шлюза».
Сеть маршрутов в LinuxАналогично в dev4 (блок openSUSE) для проверки связи с хостами в сети 192.168.0.0/24:
# ip route add 192.168.0.0/24 через 10.0.0.15 dev enp0s3Сетевая маршрутизация в Linux
Наконец, нам нужно включить переадресацию на нашем маршрутизаторе Debian:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Теперь пропингуем:
Проверить сетевую маршрутизациюи
Статус пинга маршрутаЧтобы сделать эти настройки постоянными при загрузке, отредактируйте /etc/sysctl.conf на маршрутизаторе и убедитесь, что 0003 переменная net.ipv4.ip_forward устанавливается в значение true следующим образом:
net.ipv4.ip_forward = 1
Кроме того, настройте сетевые карты на обоих клиентах (ищите файл конфигурации в /etc/sysconfig/network в openSUSE и /etc/sysconfig/network-scripts в CentOS — в обоих случаях он называется ifcfg- enp0s3 ).
Вот файл конфигурации из коробки openSUSE:
BOOTPROTO=static ВЕЩАНИЕ=10.0.0.255 IP-АДРЕС=10.0.0.18 СЕТЕВАЯ МАСКА=255.255.255.0 ШЛЮЗ=10.0.0.15 ИМЯ=enp0s3 СЕТЬ=10.0.0.0 ONBOOT=да
Пример 4: Использование Linux-сервера для маршрутизации пакетов между частными сетями и Интернетом
Другой сценарий, в котором Linux-машина может использоваться в качестве маршрутизатора, — это когда вам нужно совместно использовать интернет-соединение с частной локальной сетью.
Маршрутизатор : Debian Wheezy 7.7 [eth0: общедоступный IP-адрес, eth2: 10.0.0.15/24] — dev2 Клиент : openSUSE 13.2 [enp0s3: 10.0.0.18/24] — dev4
Помимо настройки пересылки пакетов и таблицы статической маршрутизации в клиенте, как в предыдущем примере, нам нужно добавить несколько правил iptables в роутер:
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # iptables -A FORWARD -i eth0 -o eth2 -m state --state СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ # iptables -A FORWARD -i eth2 -o eth0 -j ПРИНЯТЬ
Первая команда добавляет правило в цепочку POSTROUTING в таблице nat (преобразование сетевых адресов), указывающее, что сетевая карта eth0 должна использоваться для исходящих пакетов.
MASQUERADE указывает, что этот сетевой адаптер имеет динамический IP-адрес и что перед отправкой пакета в « wild wild world ” из Интернета, частный исходный адрес пакета должен быть изменен на общедоступный IP-адрес маршрутизатора.
В локальной сети с большим количеством хостов маршрутизатор отслеживает установленные соединения в /proc/net/ip_conntrack , поэтому он знает, куда вернуть ответ из Интернета.
Только часть вывода:
# cat /proc/net/ip_conntrack
показано на следующем снимке экрана.
Маршрутные пакеты в LinuxГде выделены источник (частный IP-адрес openSUSE) и пункт назначения (Google DNS) пакетов. Это был результат запуска:
# curl www.tecmint.com
на коробке openSUSE.
Как вы, наверное, уже догадались, маршрутизатор использует адрес Google 8.8.8.8 в качестве сервера имен, что объясняет, почему адресат исходящих пакетов указывает на этот адрес.
Примечание : Входящие пакеты из Интернета принимаются только в том случае, если они являются частью уже установленного соединения (команда № 2), а исходящие пакеты разрешены « свободный выход »(команда №3).
Не забудьте сделать ваши правила iptables постоянными, выполнив шаги, описанные в части 8 — Настройка брандмауэра Iptables этой серии.
Динамическая маршрутизация с помощью Quagga
В настоящее время для динамической маршрутизации в Linux чаще всего используется инструмент quagga . Он позволяет системным администраторам реализовать на относительно недорогом сервере Linux те же функции, что и мощные (и дорогие) маршрутизаторы Cisco.
Инструмент сам не занимается маршрутизацией, а изменяет таблицу маршрутизации ядра, изучая новые оптимальные маршруты для обработки пакетов.
Так как это ответвление zebra, программа, разработка которой прекратилась некоторое время назад, по историческим причинам она поддерживает те же команды и структуру, что и zebra. Вот почему с этого момента вы увидите много ссылок на зебру.
Обратите внимание, что в рамках одной статьи невозможно охватить динамическую маршрутизацию и все связанные с ней протоколы, но я уверен, что представленное здесь содержание послужит вам отправной точкой для дальнейшей работы.
Установка Quagga в Linux
Чтобы установить quagga в выбранный вами дистрибутив:
# aptitude update && aptitude install quagga [в Ubuntu] # yum update && yum install quagga [CentOS/RHEL] # zypper Refresh && zypper install quagga [openSUSE]
Мы будем использовать ту же среду, что и в примере №3, с той лишь разницей, что eth0 подключен к основному шлюзу-маршрутизатору с IP-адресом 192.168.0.1.
Далее редактируем /etc/quagga/daemons с,
зебра=1 рипд=1
Теперь создайте следующие файлы конфигурации.
# /etc/quagga/zebra.conf # /etc/quagga/ripd.conf
и добавьте эти строки (замените имя хоста и пароль по вашему выбору):
перезапуск службы quagga имя хоста dev2 пароль квагга
# перезапуск службы quaggaЗапуск службы Quagga
Примечание : ripd.conf — это файл конфигурации для протокола информации о маршрутизации, который предоставляет маршрутизатору информацию о том, какие сети доступны и как далеко (с точки зрения количества переходов) они находятся.
являются.
Обратите внимание, что это только один из протоколов, которые можно использовать вместе с quagga, и я выбрал его для этого руководства из-за простоты использования и потому, что его поддерживает большинство сетевых устройств, хотя он имеет недостаток передачи учетных данных в виде простого текста. . По этой причине вам необходимо назначить соответствующие права доступа к файлу конфигурации:
# chown quagga:quaggavty /etc/quagga/*.conf # chmod 640 /etc/quagga/*.conf
Пример 5. Настройка quagga для динамической маршрутизации IP-трафика
В этом примере мы будем использовать следующую настройку с двумя маршрутизаторами (не забудьте создать файлы конфигурации для маршрутизатора № 2 , как описано выше):
Настройка QuaggaВажно : Не забудьте повторить следующую настройку. для обоих роутеров.
Подключиться к zebra (прослушивание порта 2601 ), которая является логическим посредником между роутером и ядром:
# telnet localhost 2601
Введите пароль, который был установлен в /etc/quagga/zebra.
conf , а затем включить конфигурацию:
включить настроить терминал
Введите IP-адрес и сетевую маску каждой сетевой карты:
inter eth0 IP-адрес 192.168.0.15 межэтн2 IP-адрес 10.0.0.15 Выход Выход писатьConfigure Router
Теперь нам нужно подключиться к терминалу демона RIP (порт 2602):
# telnet localhost 2602
Введите имя пользователя и пароль, указанные в /etc/quagga/ripd.conf , а затем введите следующие команды жирным шрифтом (комментарии добавлены для пояснения):
enable включает команду привилегированного режима. настроить терминал переходит в режим настройки. Эта команда является первым шагом к настройке router rip включает RIP. сеть 10.0.0.0/24 устанавливает интерфейс включения RIP для сети 10.0.0.0/24. выход выезд запись запись текущей конфигурации в файл конфигурации.Включить маршрутизатор
Примечание .
В обоих случаях конфигурация добавляется к строкам, которые мы добавили ранее ( /etc/quagga/zebra.conf и /etc/quagga/ripd.conf ).
Наконец, снова подключитесь к службе zebra на обоих маршрутизаторах и обратите внимание, как каждый из них « узнал » маршрут к сети, которая находится позади другого, и какой следующий прыжок для доступа к этой сети, путем запускаем команду показать IP-маршрут :
# показать IP-маршрутПроверьте IP-маршрутизацию
Если вы хотите попробовать другие протоколы или настройки, вы можете обратиться к сайту проекта Quagga за дополнительной документацией.
Заключение
В этой статье мы объяснили, как настроить статическую и динамическую маршрутизацию, используя маршрутизатор(ы) Linux box. Не стесняйтесь добавлять столько маршрутизаторов, сколько хотите, и экспериментировать столько, сколько хотите. Не стесняйтесь обращаться к нам, используя контактную форму ниже, если у вас есть какие-либо комментарии или вопросы.
Стать сертифицированным инженером по Linux
Учебное пособие Отзыв…
Была ли эта статья полезной? Если вы не нашли эту статью полезной или обнаружили устаревшую информацию, проблему или опечатку, оставьте ценный отзыв или предложения в комментариях, чтобы помочь улучшить эту статью…Router — ArchWiki
Эта статья руководство по превращению компьютера в интернет-шлюз/маршрутизатор. Для повышения безопасности он не должен запускаться любые службы , доступные для внешнего мира. В локальной сети запускайте только службы, специфичные для шлюза; особенно не запускайте httpd, ftpd, samba, nfsd и т. д., поскольку они принадлежат серверу в локальной сети, поскольку они представляют угрозу безопасности.
В этой статье не делается попытка показать, как настроить совместное подключение между двумя машинами с помощью перекрестных кабелей. Простое решение для совместного доступа к Интернету см. в разделе Общий доступ к Интернету.
Примечание: По всей статье стажер0 и extern0 используются в качестве имен сетевых интерфейсов. Обоснование этого далее объясняется в разделе #Persistent именования интерфейсов.
Требования к оборудованию
- Не менее 1 ГБ свободного места на жестком диске. Базовая установка займет около 500 МБ места, и если вы хотите использовать кеширующий веб-прокси, вам также потребуется зарезервировать место для кеша.
- Не менее двух физических сетевых интерфейсов: шлюз соединяет две сети друг с другом (на самом деле маршрутизатор можно сделать с использованием одного физического интерфейса, лежащего в основе двух интерфейсов VLAN и подключенного к коммутатору с поддержкой VLAN, так называемому router-on- a-stick, но в этой статье она не рассматривается). Вам нужно будет подключить эти сети к одному и тому же физическому компьютеру. Один интерфейс должен подключаться к внешней сети, а другой — к внутренней сети.
- Концентратор, коммутатор или кабель UTP: вам нужен способ подключения других компьютеров к шлюзу
Конфигурация сетевого интерфейса
Постоянное присвоение имен интерфейсам
Systemd автоматически выбирает уникальные имена интерфейсов для всех ваших интерфейсов.
Они являются постоянными и не изменятся при перезагрузке.
Однако вы можете переименовать свои интерфейсы, например. для того, чтобы выделить их различные сети, к которым они подключаются. В следующих разделах данного руководства используются следующие соглашения:
- intern0 : сетевая карта подключена к локальной сети. На реальном компьютере он, вероятно, будет иметь имя enp2s0, enp1s1 и т. д. .
- extern0 : сетевая карта подключена к внешней сети (или WAN). Вероятно, он будет иметь имя enp2s0, enp1s1 и т. д.
Вы можете изменить назначенные имена ваших устройств через файл конфигурации, используя Systemd-networkd, описанный в Systemd-networkd#Переименование интерфейса, или с помощью правила udev, следующего за конфигурацией сети. #Изменить имя интерфейса. Из-за того, что эта статья богата примерами, вы можете выбрать приведенные выше имена.
Конфигурация IP
С netctl
Теперь вам нужно настроить сетевые интерфейсы.
Один из способов сделать это — использовать профили netctl. Вам нужно будет создать два профиля.
Примечание: Если вы будете подключаться к Интернету только через PPPoE (у вас есть один порт WAN), вам не нужно для настройки или включения профиля extern0. Подробнее о настройке PPPoE см. ниже.
/etc/netctl/extern0-profile
Описание='Общий интерфейс.' Интерфейс=extern0 Соединение = Ethernet IP='dhcp'
/etc/netctl/intern0-profile
Описание='Частный интерфейс'
Интерфейс=интерн0
Соединение = Ethernet
IP='статический'
Address=('10.0.0.1/24') Примечание: В приведенном выше примере конфигурации предполагается полная подсеть. Если вы строите шлюз для небольшого количества людей, вам нужно будет изменить суффикс CIDR, чтобы он соответствовал меньшему диапазону. Например, /27 даст вам от 10.0.0.1 до 10.0.0.30 . Существует множество калькуляторов CIDR, онлайн и оффлайн, например sipcalc.
Совет: Используйте SkipNoCarrier=yes в профиле LAN, чтобы убедиться, что соединение включено, даже если гость в LAN еще не подключен.
Далее настраиваем интерфейсы с помощью netctl:
# netctl включить профиль extern0 # netctl включить профиль intern0
С помощью systemd-networkd
Прямой и простой способ настройки сетевых интерфейсов — через systemd-networkd.
- Применить конфигурацию DHCP-клиента для
внешний0интерфейс. - Применить статическую IP-конфигурацию для интерфейса
intern0.
См. systemd-networkd#Файлы конфигурации для получения сведений о конфигурации и обзора доступных параметров. Запустите networkctl reload , чтобы применить изменения конфигурации.
ADSL-соединение/PPPoE
Используя rp-pppoe, мы можем подключить модем ADSL к интерфейсу extern0 брандмауэра, и Arch будет управлять соединением.
Не забудьте поставить модем на 9Однако 0478 работает в режиме моста (либо полумост, либо RFC1483), в противном случае модем также будет действовать как маршрутизатор. Установите пакет rp-pppoe.
Следует отметить, что если вы используете только PPPoE для подключения к интернету (т.е. у вас нет другого WAN порта, кроме того, который подключается к вашему модему) вам не нужно настраивать extern0-профиль в качестве внешнего псевдоинтерфейса будет ppp0.
Конфигурация PPPoE
Вы можете использовать netctl для настройки соединения PPPoE. Для начала сделайте
# cp /etc/netctl/examples/pppoe /etc/netctl/
и приступайте к редактированию. Для конфигурации интерфейса выберите интерфейс, который подключается к модему. Если вы подключаетесь к Интернету только через PPPoE, это, вероятно, будет extern0 . Заполните остальные поля информацией о вашем провайдере. См. раздел PPPoE на справочной странице netctl.profile(5) для получения дополнительной информации о полях.
DNS и DHCP
Мы будем использовать dnsmasq в качестве DNS-сервера и, при необходимости, в качестве демона DHCP для локальной сети. Он был специально разработан для небольших сайтов. Установите его с пакетом dnsmasq.
Dnsmasq можно настроить как DHCP-сервер со следующей конфигурацией:
/etc/dnsmasq.conf
interface=intern0 # заставить dnsmasq прослушивать запросы только на intern0 (наша локальная сеть)
#no-dhcp-interface=intern0 # при желании отключите функцию DHCP dnsmasq и используйте вместо нее systemd-networkd
expand-hosts # добавить домен к простым именам хостов в /etc/hosts
domain=foo.bar # разрешить полное доменное имя для хостов DHCP (необходимо, когда
# используется "expand-hosts")
dhcp-range=10.0.0.2,10.0.0.255,255.255.255.0,1h # определяет DHCP-диапазон для локальной сети:
# от 10.0.0.2 до .255 с маской подсети 255.255.255.0 и
# Аренда DHCP на 1 час (измените на свои предпочтения)
Где-то ниже вы заметите, что вы также можете добавить «статическую» аренду DHCP, т.
е. назначить IP-адрес MAC-адресу компьютера в локальной сети. Таким образом, всякий раз, когда компьютер запрашивает новую аренду, он получит тот же IP-адрес. Это очень полезно для сетевых серверов с записью DNS. Вы также можете запретить определенным MAC-адресам получать IP-адрес.
Теперь запустите и включите dnsmasq.service .
DHCP через systemd-networkd
Чтобы использовать systemd-networkd вместо dnsmasq в качестве DHCP-сервера, добавьте [DHCPServer] в файл конфигурации для интерфейса intern0 . Доступные параметры см. в разделе Systemd-networkd#[DHCPServer].
Общий доступ к соединению
Пришло время связать вместе два сетевых интерфейса.
Manual
Прежде всего, нам необходимо разрешить переход пакетов с одного сетевого интерфейса на другой. Для этого в ядре должна быть включена пересылка пакетов через sysctl(8). Дополнительные сведения см. в разделе Общий доступ к Интернету#Включить переадресацию пакетов.
Предполагая, что net.**forwarding установлен правильно (т. е. равен 1 ), пакеты по-прежнему необходимо правильно отправлять и получать. Следовательно, необходимо преобразовывать IP-адреса между внешней сетью и локальной подсетью. Техника называется , маскирующаяся под . Нам также нужны два правила переадресации, чтобы поддерживать соединение и включить переадресацию из локальной сети в глобальную. Для этой задачи мы будем использовать iptables.
Обратитесь к разделу Общий доступ к Интернету # Включить NAT, чтобы узнать, как замаскировать extern0 интерфейс и пакеты от intern0 до extern0 . После этого сохраните вновь добавленные правила с помощью iptables-save -f /etc/iptables/iptables.rules , подробности см. в разделе iptables#Configuration and use.
Запустить и включить iptables.service . Теперь маршрутизатор должен быть полностью функциональным и направлять ваш трафик.
Поскольку он обращен к общедоступному Интернету, имеет смысл дополнительно защитить его с помощью простого межсетевого экрана с отслеживанием состояния.
С помощью systemd-networkd
Измените или создайте ранее обсуждавшуюся конфигурацию сети для intern0 , включив параметр IMasquerade=ipv4 в раздел [Сеть] . Эта конфигурация неявно активирует пересылку пакетов на всех интерфейсах, см. systemd.network(5). См. Systemd-networkd#[DHCPServer] для примера конфигурации.
Совместное использование соединения с Shorewall
Подробное руководство по настройке см. в Shorewall.
Советы по IPv6
Эта статья или раздел являются кандидатами на слияние с IPv6.
Примечания: Объединить в основную статью, тема не специфична для конфигурации маршрутизатора . Формулировку, вероятно, следует изменить по ходу дела. (Обсудить в Talk: Router)
Полезное чтение: IPv6 и википедия: IPv6.
Уникальные локальные адреса
Вы можете использовать свой маршрутизатор в режиме IPv6, даже если у вас нет адреса IPv6 от вашего интернет-провайдера. Если вы не отключите IPv6, всем интерфейсам должны были быть назначены уникальные fe80::/10 адрес.
Эта статья или раздел нуждается в дополнении.
Причина: Добавьте автономный метод для создания ULA. (Обсудить в Talk: Router)
Для внутренней сети зарезервирован блок fc00::/7 . Эти адреса гарантированно уникальны и не маршрутизируются из открытого Интернета. Адреса, принадлежащие блоку fc00::/7 , называются уникальными локальными адресами. Для начала создайте блок ULA/64 для использования в вашей сети. Для этого примера мы будем использовать fd00:aaaa:bbbb:cccc::/64 . Во-первых, мы должны назначить статический IPv6 на внутреннем интерфейсе. Измените созданный выше профиль intern0-profile , включив в него следующую строку:
Address6=('fd00:aaaa:bbbb:cccc::1/64')
Это добавит ULA во внутренний интерфейс.
Что касается маршрутизатора, это все, что вам нужно настроить.
Глобальные одноадресные адреса
Если ваш интернет-провайдер или глобальная сеть имеют доступ к Интернету IPv6, вы можете дополнительно назначить глобальные адреса ссылок для вашего маршрутизатора и распространить их через SLAAC во внутреннюю сеть. Глобальный префикс индивидуальной рассылки обычно равен статический или предоставляется через делегирование префикса .
Статический префикс IPv6
Если ваш интернет-провайдер предоставил вам статический префикс, отредактируйте /etc/netctl/extern0-profile и просто добавьте IPv6 и префикс IPv6 (обычно /64), которые вы предоставили
Адрес6=('2002:1:2:3:4:5:6:7/64')
Вы можете использовать это в дополнение к адресу ULA, описанному выше.
Получение префикса IPv6 через DHCPv6-PD
Если ваш интернет-провайдер обрабатывает IPv6 через делегирование префикса, вы можете следовать инструкциям в делегировании префикса IPv6# (DHCPv6-PD) по правильной настройке маршрутизатора.
Следуя соглашениям этой статьи, интерфейс WAN — это extern0 (или ppp0 , если вы подключаетесь через PPPoE) и интерфейс LAN intern0 .
Объявление маршрутизатора и автоконфигурация без сохранения состояния (SLAAC)
Чтобы правильно раздавать IPv6 сетевым клиентам, нам потребуется использовать рекламный демон. Следуйте подробностям основной статьи IPv6 о том, как настроить radvd . В соответствии с соглашением, принятым в этом руководстве, интерфейс, обращенный к локальной сети, имеет вид intern0 . Вы можете объявить все префиксы или выбрать, какие префиксы будут назначены для локальной сети.
Дополнительные дополнения
UPnP
Эта статья или раздел нуждается в дополнении.
Причина: Укажите альтернативный протокол переадресации портов NAT-PMP, поддерживаемый miniupnpd. (Обсудить в Talk:Router)
Приведенная выше конфигурация Shorewall не включает поддержку UPnP.
Использование UPnP не рекомендуется, так как это может сделать шлюз уязвимым для атак из локальной сети. Однако некоторые приложения требуют этого для правильной работы.
Чтобы включить UPnP на маршрутизаторе, необходимо установить демон протокола UPnP Internet Gateway Device (IGD). Чтобы получить его, установите пакет miniupnpd.
Дополнительные сведения см. в руководстве Shorewall по UPnP.
Удаленное администрирование
OpenSSH можно использовать для удаленного администрирования маршрутизатора. Это полезно для запуска в автономном режиме (без монитора или устройств ввода).
Кэширующий веб-прокси
См. Squid для настройки веб-прокси для ускорения просмотра и/или добавления дополнительного уровня безопасности.
Сервер времени
Сведения об использовании маршрутизатора в качестве сервера времени см. в разделе Системное время#Синхронизация времени для доступных реализаций сервера протокола сетевого времени (NTP).
Затем настройте Shorewall или iptables, чтобы разрешить входящий и исходящий трафик NTP.
