Маршруты, которые необходимы для поставки пакетов до конечного назначения, настраиваются в интерфейсе или маршрутизаторе. Если перед компьютером стоит задача отправить пакет в сеть, он смотрит таблицу маршрутизации, в которой перечислены IP-адреса пунктов назначения и адреса интерфейсов и роутеров в домашней сети, которые могут отправить пакет по нужному адресу. Если для цели маршрут не указан, то в первую очередь задействуется так называемый шлюз по умолчанию или маршрут по умолчанию. Точно такая же картина наблюдается на роутере. Устройство смотрит на IP-адрес назначения и сверяет его со своей таблицей маршрутизации, а потом отправляет дальше. Дальше на примере рассмотрим, как настроить определенные маршруты и создать новые.
Прежде чем начать что-либо менять, необходимо понять, какие правила уже используются. Для этого в операционной системе Линукс предусмотрено несколько команд. Для этого используем специальную команду 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. Дальше поговорим, что означает вывод этой команды:
Дальше рассмотрим, как происходит настройка маршрутов 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, а также зачем это нужно.
< Лекция 9 || Лекция 10: 123 || Лекция 11 >
Аннотация: Даны краткие сведения об использовании компьютера с Linux в качестве маршрутизатора и расширенных возможностях маршрутизации, в частности маршрутизация по IP-адресу источника; описаны особенности выбора локального исходящего IP-адреса. Приведены примеры маршрутизации виртуальных локальных сетей, объединения локальных сетей на основе маршрутизаторов, задания локального исходящего IP-адреса и добавление альтернативного маршрута для узла-источника на шлюзе
Ключевые слова: операционная система, сетевой пакет, компьютер, удаление узла, ПО, параметр, таблица маршрутизации, локальный адрес, дамп, маршрутизация, балансировка нагрузки, расширение функции, множества, значение, команда, операции, TOS, таблица, table, Local, имя таблицы, адрес, порт, шлюз, маршрут, ARP, протокол arp, MAC-адрес, сеть, внутренняя сеть, анализ трафика, интерфейс, ICMP, ping
Операционная система Linux позволяет не только организовать сложные схемы обработки сетевых пакетов локального узла, но и использовать компьютер с несколькими сетевыми интерфейсами (физическими и/или логическими) в качестве маршрутизатора (для передачи трафика удаленных узлов и сетей).
Примечание: В данном пособии рассматривается статическая маршрутизация — такой способ маршрутизации, при котором все необходимые маршруты устанавливаются администратором вручную (с помощью команд и конфигурационных файлов).
По умолчанию сетевая подсистема Linux обрабатывает пакеты, предназначенные данному узлу или созданные данным узлом; функция обработки пакетов, в которых не указан IP-адрес данной станции как источник или приемник (forwarding, пересылка пакетов ) отключена. Для включения функции пересылки проходящих пакетов необходимо установить в 1 значение, записанное в файле ip_forward псевдофайловой системы proc:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Данная настройка будет действовать до перезагрузки компьютера. Для восстановления конфигурации нужно после перезагрузки выполнять указанную команду (указать ее в файле /etc/rc.local ) или лучше установить в файле /etc/sysctl.conf следующий параметр:
net.ipv4.ip_forward=1
Для того, чтобы в примере 5.6. «Постоянные сетевые конфигурации (на примере Debian/GNU Linux)» «Постоянные сетевые конфигурации» подсети 192.168.1.0/24 и 192.168.2.0/24 могли взаимодействовать друг с другом через указанный в примере компьютер Linux (выступает в качестве шлюза для данных подсетей) необходимо:
Таблица маршрутизации шлюза:
# ip route show 192.168.2.0/24 dev vlan2 proto kernel scope link src 192.168.2.4 192.168.1.0/24 dev vlan1 proto kernel scope link src 192.168.1.4
Эти записи добавляются в таблицу маршрутизации шлюза автоматически (например, если на интерфейсе vlan1 установлен IP-адрес 192.168.1.4/24, то система полагает, что сеть 192.168.1.0/24 непосредственно подключена к данному интерфейсу). Таким образом, если на интерфейс vlan1 шлюза приходят сетевые пакеты, в которых адрес назначения принадлежит второй подсети, то шлюз, согласно таблицы маршрутизации, передает эти пакеты в сеть с интерфейса vlan2.
Пусть необходимо обеспечить взаимодействие сетей 192.168.1.0/24 и 192.168.2.0/24 (рис. 10.1.), соединенных интерфейсами маршрутизаторов, установленных в каждой из сетей (интерфейсы маршрутизаторов в сетях имеют адреса 192.168.1.1 и 192.168.2.1 соответственно).
Рис. 10.1.
Для решения данной задачи ( рис. 10.1.) необходимо установить на интерфейсы, связывающие маршрутизаторы друг с другом адреса из одной произвольно выбранной подсети (192.168.3.0/24, на первый — 192.168.3.1, на второй — 192.168.3.2) и добавить статические маршруты в таблицы маршрутизаторов (для первого маршрутизатора — для сети 192.168.2.0/24 через узел 192.168.3.2, для второго — для сети 192.168.1.0/24 через узел 192. 168.3.1).
К примеру таблица маршрутизации первого маршрутизатора (при использовании Linux) будет иметь вид:
# ip route show 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.1 192.168.3.0/24 dev eth2 proto kernel scope link src 192.168.3.1 192.168.2.0/24 via 192.168.3.2 dev eth2
Последний маршрут здесь является статическим, так как должен быть задан администратором системы вручную.
Дальше >>
< Лекция 9 || Лекция 10: 123 || Лекция 11 >
 results match 
 results
Фильтры ( )
Все
0, ‘текст-белый’: checkbox.checked, ‘текст-серый-400’: !checkbox.checked && checkbox. count === 0 }» style=letter-spacing:.07px x-text=checkbox.title>
Добавить теги
Все
0, ‘текст-белый’: checkbox.checked, ‘текст-серый-400’: !checkbox.checked && checkbox.count === 0 }» style=letter-spacing:.07px x-text=checkbox.title>
Добавить авторов
Все
0, ‘текст-белый’: checkbox.checked, ‘текст-серый-400’: !checkbox.checked && checkbox.count === 0 }» style=letter-spacing:.07px x-text=checkbox.title>
Обновлено , от Linode
Traducciones al EspañolEstamos traduciendo nuestros guías y tutoriales al Español. Эс posible que usted esté viendo una traducción generada автоматический. Estamos trabajando con traductores profesionales пункт verificar лас traducciones де нуэстро ситио сети. Эсте проект es un trabajo en curso.
Создать учетную запись Linode чтобы попробовать это руководство с кредитом в долларах США.
Этот кредит будет применяться к любым действительным услугам, использованным во время вашего первого дней.
Компьютерная сеть представляет собой совокупность компьютерных систем, которые могут взаимодействовать друг с другом. Для связи с компьютером, находящимся в другой сети , системе нужен способ подключения к этой другой сети. Маршрутизатор — это система, которая действует как посредник между несколькими различными сетями. Он получает трафик из одной сети, который в конечном итоге предназначен для другой. Он может определить, куда должен быть доставлен конкретный пакет, а затем переслать этот пакет через соответствующий сетевой интерфейс.
Существует множество вариантов готовых маршрутизаторов как для дома, так и для предприятия. В большинстве случаев предпочтение отдается этим решениям, поскольку они относительно просты в настройке, имеют множество функций, как правило, имеют удобный интерфейс управления и могут поставляться с вариантами поддержки. Под капотом эти маршрутизаторы представляют собой урезанные компьютеры, работающие под управлением обычных операционных систем, таких как Linux.
Вместо того, чтобы использовать одно из этих готовых решений, вы можете создать свое собственное, используя любой сервер Linux, например экземпляр Linode Compute. Используя программное обеспечение для маршрутизации, такое как iptables, вы полностью контролируете настройку маршрутизатора и брандмауэра в соответствии с вашими индивидуальными потребностями. В этом руководстве рассказывается, как настроить систему Linux в качестве базового маршрутизатора, включая включение переадресации IP и настройку iptables.
Многие рабочие нагрузки выигрывают от настраиваемых решений маршрутизации или переадресации портов, включая рабочие нагрузки, размещенные на облачных платформах, таких как Linode. Например, для приложений, ориентированных на безопасность, обычной практикой является соединение большинства своих систем через частную сеть, такую как VLAN. Этим системам может потребоваться доступ к внешней сети, такой как другие VLAN или общедоступный Интернет. Вместо того, чтобы предоставлять каждому свой собственный интерфейс к другой сети, одна система в частной сети может действовать как маршрутизатор. Маршрутизатор настроен с несколькими сетевыми интерфейсами (один для частной VLAN и один для другой сети) и перенаправляет пакеты с одного интерфейса на другой. Это может значительно упростить мониторинг, контроль и защиту трафика, поскольку все это можно сделать из одной системы. Вычислительные экземпляры Linode могут быть настроены с использованием до 3 интерфейсов, каждый из которых подключается либо к общедоступному Интернету, либо к частной VLAN.
/56
.Для начала вы можете использовать платформу Linode для развертывания нескольких вычислительных экземпляров. Они могут имитировать базовое приложение, работающее в частной VLAN с одним маршрутизатором. Если у вас уже развернуто приложение и вы просто хотите узнать, как настроить переадресацию IP-адресов или iptables, вы можете пропустить этот раздел.
Разверните 2 или более вычислительных экземпляра и назначьте один из них в качестве маршрутизатора. Каждый из них должен быть развернут в одном и том же регионе. На странице развертывания вы можете пока пропустить раздел VLAN. См. Создание вычислительного экземпляра, чтобы узнать, как развернуть вычислительные экземпляры Linode.
На каждом вычислительном экземпляре , кроме маршрутизатора , отредактируйте профиль конфигурации экземпляра. Информацию о просмотре и редактировании профилей конфигурации см. в разделе Управление профилями конфигурации.
10.0.2.0/24
диапазон подсети, назначьте IP-адрес 10.0.2.1/24
. По соглашению маршрутизатору должно быть присвоено значение 1
в последнем сегменте. 10.0.2.2/24
и 10.0.2.3/24
).Убедитесь, что Network Helper включен, и перезагрузите каждый вычислительный экземпляр, чтобы изменения вступили в силу.
Проверьте подключение на каждом вычислительном экземпляре, чтобы обеспечить правильную конфигурацию. Войдите в каждый экземпляр и убедитесь, что верно следующее:
Пропингуйте IPv4-адрес VLAN другой системы в той же VLAN. Каждый вычислительный экземпляр должен иметь возможность пинговать IP-адреса всех других экземпляров в этой VLAN.
эхо-запрос 10.0.2.1
Пропингуйте IP-адрес или веб-сайт системы в общедоступном Интернете. Этот эхо-запрос должен быть успешным только для вычислительного экземпляра, настроенного в качестве маршрутизатора.
ping linode.com
Переадресация IP играет фундаментальную роль на маршрутизаторе. Это функция, которая позволяет маршрутизатору перенаправлять трафик с одного сетевого интерфейса на другой сетевой интерфейс. Таким образом, он позволяет компьютерам в одной сети подключаться к компьютеру в другой сети (при настройке вместе с программным обеспечением маршрутизации). Переадресация адресов IPv4 и IPv6 контролируется ядром Linux. Следующие параметры ядра используются для включения или отключения переадресации IPv4 и IPv6 соответственно.
net. ipv4.ip_forward
или net.ipv4.conf.all.forwarding
net.ipv6.conf .all.forwarding
По умолчанию переадресация отключен в большинстве систем Linux. Чтобы настроить Linux в качестве маршрутизатора, это необходимо включить. Чтобы включить переадресацию, соответствующий параметр должен быть установлен на 1
. Значение 0
указывает, что переадресация отключена. Чтобы обновить эти параметры ядра, отредактируйте файл /etc/sysctl.conf
, как показано в шагах ниже.
Войдите в систему Linux, которую вы собираетесь использовать в качестве маршрутизатора. Вы можете использовать SSH или Lish (если вы используете вычислительный экземпляр Linode).
Определите, включена или отключена переадресация IPv4 в данный момент. Команда ниже выводит значение данного параметра. Значение 1
указывает, что параметр включен, а 0
указывает, что он отключен. Если вы собираетесь настроить переадресацию IPv6, проверьте также этот параметр ядра.
судо sysctl net.ipv4.ip_forward
Если этот параметр отключен (или не находится в требуемом состоянии по другим причинам), продолжайте выполнять приведенные ниже инструкции.
Откройте файл /etc/sysctl.conf
с помощью предпочитаемого редактора командной строки, например nano.
судо нано /etc/sysctl.conf
Найдите строку, соответствующую типу переадресации, которую вы хотите включить, раскомментируйте ее и установите значение 1
. Кроме того, вы можете добавить строки в любом месте файла.
1 2 3 4 5 6 7 | ... ## Настроить переадресацию IPv4 net.ipv4.ip_forward = 1 ## Настроить переадресацию IPv6 net.ipv6.conf.all. forwarding = 1 ... |
После сохранения изменений примените их, выполнив следующую команду или перезагрузив компьютер.
судо sysctl -p
Утилита iptables может служить как брандмауэром (через стандартную таблицу filter
), так и маршрутизатором (например, при использовании таблицы nat
). В этом разделе рассказывается, как настроить iptables для работы в качестве базового маршрутизатора. При желании вы можете использовать любой другой брандмауэр или программное обеспечение для маршрутизации, например nftables или коммерческое приложение.
Войдите в систему Linux, которую вы собираетесь использовать в качестве маршрутизатора. Вы можете использовать SSH или Lish (если вы используете вычислительный экземпляр Linode).
Просмотрите существующие правила iptables. Если вы используете новую установку Linux и у вас нет предварительно настроенных правил, вывод приведенной ниже команды должен быть пустым.
iptables-сохранить
Если выходные данные получены, найдите правила, которые могут помешать предполагаемой конфигурации. Если вы не уверены, вы можете проконсультироваться со своим системным администратором или обратиться к документации по iptables. При необходимости вы можете сбросить правила iptables и разрешить весь трафик.
iptables-F iptables -X iptables -t физ -F iptables -t физ -X iptables -t мангл -F iptables -t мангл -X iptables -P ВВОД ПРИНЯТЬ iptables -P ВЫВОД ПРИНЯТЬ iptables -P ПЕРЕДАТЬ ПРИНЯТЬ
Настройте iptables, чтобы разрешить переадресацию портов. Это настройка по умолчанию для многих систем.
iptables -A ВПЕРЕД -j ПРИНЯТЬ
Далее настройте NAT (преобразование сетевых адресов) на iptables. Это изменяет детали IP-адреса в сетевых пакетах, позволяя всем системам в частной сети использовать один и тот же общедоступный IP-адрес маршрутизатора. Добавьте следующее правило iptables, заменив 10. 0.2.0/24
с подсетью вашей частной VLAN.
iptables -t nat -s 10.0.2.0/24 -A POSTROUTING -j MASQUERADE
Вы также можете отказаться от указания какой-либо конкретной подсети и разрешить NAT для всего трафика с помощью приведенной ниже команды.
iptables -t nat -A POSTROUTING -j MASQUERADE
По умолчанию правила iptables эфемерны. Чтобы сделать эти изменения постоянными, установите пакет iptables-persistent
. Когда вы делаете это, правила сохраняются в течение /etc/iptables/rules.v4
(и rules.v6
для IPv6) загружаются при загрузке системы. Вы можете продолжать вносить изменения в iptables как обычно. Когда вы будете готовы к сохранению, сохраните вывод iptables-save в файл /etc/iptables/rules.v4
(или rules.v6
). Дополнительные сведения см. в соответствующем разделе руководства «Управление сетевым трафиком с помощью iptables».
iptables-сохранить | судо тройник /etc/iptables/rules. v4
Последним шагом является ручная настройка параметров конфигурации сети для каждого вычислительного экземпляра , отличного от маршрутизатора.
Войдите в Cloud Manager и отключите Network Helper для каждого развернутого вами вычислительного экземпляра без маршрутизатора. Хотя Network Helper был полезен для автоматической настройки IP-адресов VLAN, файлы конфигурации, контролируемые Network Helper, теперь необходимо редактировать вручную.
Войдите в каждую систему Linux, которая , а не , назначенный маршрутизатором. Вы можете использовать SSH или Lish (если вы используете вычислительный экземпляр Linode).
Отредактируйте файл конфигурации, содержащий настройки интерфейса частной VLAN. Это имя и расположение этого файла зависят от используемого вами дистрибутива Linux. См. серию руководств по настройке сети вручную в вычислительном экземпляре и выберите конкретное руководство для своего дистрибутива. Для системы, работающей с ifupdown в Debian 10, сетевая конфигурация обычно хранится в течение /etc/network/interfaces
.
sudo nano /etc/network/interfaces
В этом файле настройте параметр, определяющий шлюз для интерфейса VLAN. Значение должно быть установлено на IP-адрес, назначенный интерфейсу VLAN маршрутизатора , например 10.0.2.1
, если вы использовали пример в этом руководстве. Для системы, работающей с ifupdown в Debian 10, вы можете добавить параметр gateway в расположение, показанное в примере ниже.
1 2 3 4 | ... iface eth0 инет статический адрес 10.0.2.2/24 gateway 10.0.2.1 |
После сохранения этих настроек перезапустите вычислительный экземпляр или выполните соответствующую команду, чтобы применить изменения. Продолжая использовать ifupdown в качестве примера, выполните приведенную ниже команду, чтобы применить новые параметры конфигурации сети.
sudo ifdown eth0 && sudo ip addr flush eth0 && sudo ifup eth0
Чтобы убедиться в правильности параметров конфигурации, запустите те же тесты, которые использовались на последнем шаге раздела «Развертывание вычислительных экземпляров». В частности, отправьте эхо-запрос на общедоступный IP-адрес или домен из вычислительного экземпляра в частной VLAN (которая не назначена маршрутизатором). Теперь этот пинг должен завершиться успешно, указывая на то, что сетевой трафик был успешно перенаправлен через маршрутизатор в общедоступный Интернет.
ping linode.com
Эта страница была первоначально опубликована на
сеть платформа linode
Прочитайте другие комментарии или разместите свои ниже. Комментарии должны быть уважительными, конструктивны и соответствуют теме руководства. Не публиковать внешние ссылки или реклама. Прежде чем публиковать, подумайте, комментарий будет лучше адресован, связавшись с нашим Служба поддержки или запрос на наш Сайт сообщества.
Система комментариев Disqus для Linode Docs требует принятия Функциональные файлы cookie, которые позволяют нам анализировать использование сайта, чтобы мы могли измерять и улучшать производительность. Для просмотра и создания комментариев к этому статью, пожалуйста обновить настройки файлов cookie на этом веб-сайте и обновите эту веб-страницу. Обратите внимание: у вас должен быть В вашем браузере включен JavaScript.
Включите JavaScript для просмотра комментарии от Disqus.comments от Disqus Маршрутизатор Disqus
Эта статья представляет собой руководство по превращению компьютера в интернет-шлюз/маршрутизатор. Чтобы усилить свою безопасность, он не должен запускать какие-либо службы , доступные для внешнего мира. В локальной сети запускайте только службы, специфичные для шлюза; особенно не запускайте httpd, ftpd, samba, nfsd и т. д., поскольку они принадлежат серверу в локальной сети, поскольку они представляют угрозу безопасности.
В этой статье не делается попытка показать, как настроить совместное подключение между двумя машинами с помощью перекрестных кабелей. Простое решение для совместного доступа к Интернету см. в разделе Общий доступ к Интернету.
Примечание: На протяжении всей статьи в качестве имен сетевых интерфейсов используются intern0 и extern0 . Обоснование этого далее объясняется в разделе #Persistent именования интерфейсов.
Systemd автоматически выбирает уникальные имена интерфейсов для всех ваших интерфейсов. Они являются постоянными и не изменятся при перезагрузке. Однако вы можете переименовать свои интерфейсы, например. для того, чтобы выделить их различные сети, к которым они подключаются. В следующих разделах данного руководства используются следующие соглашения:
Вы можете изменить назначенные имена ваших устройств через файл конфигурации, используя Systemd-networkd, описанный в Systemd-networkd#Переименование интерфейса, или с помощью правила udev, следующего за конфигурацией сети. #Изменить имя интерфейса. Из-за того, что эта статья богата примерами, вы можете выбрать приведенные выше имена.
Теперь вам нужно настроить сетевые интерфейсы. Один из способов сделать это — использовать профили 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.
внешний0
интерфейс. intern0
. См. systemd-networkd#Файлы конфигурации для получения сведений о конфигурации и обзора доступных параметров. Запустите networkctl reload
, чтобы применить изменения конфигурации.
Используя rp-pppoe, мы можем подключить ADSL-модем к интерфейсу extern0
брандмауэра, и Arch будет управлять соединением. Не забудьте поставить модем на в режиме моста (либо полумост, либо RFC1483), в противном случае модем также будет действовать как маршрутизатор. Установите пакет rp-pppoe.
Следует отметить, что если вы используете только PPPoE для подключения к интернету (т.е. у вас нет другого WAN порта, кроме того, который подключается к вашему модему) вам не нужно настраивать extern0-профиль
в качестве внешнего псевдоинтерфейса будет ppp0.
Для настройки соединения PPPoE можно использовать netctl. Для начала сделайте
# cp /etc/netctl/examples/pppoe /etc/netctl/
и приступайте к редактированию. Для конфигурации интерфейса выберите интерфейс, который подключается к модему. Если вы подключаетесь к Интернету только через PPPoE, это, вероятно, будет extern0
. Заполните остальные поля информацией о вашем провайдере. См. раздел PPPoE на справочной странице netctl.profile(5) для получения дополнительной информации о полях.
Мы будем использовать 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
.
Чтобы использовать systemd-networkd вместо dnsmasq в качестве DHCP-сервера, добавьте [DHCPServer]
в файл конфигурации для интерфейса intern0
. Доступные параметры см. в разделе Systemd-networkd#[DHCPServer].
Пришло время связать вместе два сетевых интерфейса.
Прежде всего, нам необходимо разрешить переход пакетов с одного сетевого интерфейса на другой. Для этого в ядре должна быть включена пересылка пакетов через sysctl(8). Дополнительные сведения см. в разделе Общий доступ к Интернету#Включить переадресацию пакетов.
Предполагая, что net.**forwarding
установлен правильно (т. е. равен 1
), пакеты по-прежнему необходимо правильно отправлять и получать. Следовательно, необходимо преобразовывать IP-адреса между внешней сетью и локальной подсетью. Техника называется , маскирующаяся под . Нам также нужны два правила переадресации, чтобы поддерживать соединение и включить переадресацию из локальной сети в глобальную. Для этой задачи мы будем использовать iptables.
Обратитесь к разделу Общий доступ к Интернету # Включить NAT, чтобы узнать, как замаскировать extern0
интерфейс и пакеты от intern0
до extern0
. После этого сохраните вновь добавленные правила с помощью iptables-save -f /etc/iptables/iptables.rules
, подробности см. в разделе iptables#Configuration and use.
Запустить и включить iptables.service
. Теперь маршрутизатор должен быть полностью функциональным и направлять ваш трафик. Поскольку он обращен к общедоступному Интернету, имеет смысл дополнительно защитить его с помощью простого межсетевого экрана с отслеживанием состояния.
Измените или создайте ранее обсуждавшуюся конфигурацию сети для intern0
, включив параметр IMasquerade=ipv4
в раздел [Сеть]
. Эта конфигурация неявно активирует пересылку пакетов на всех интерфейсах, см. systemd.network(5). См. Systemd-networkd#[DHCPServer] для примера конфигурации.
Подробное руководство по настройке см. в Shorewall.
Эта статья или раздел являются кандидатами на слияние с 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 во внутреннюю сеть. Глобальный префикс индивидуальной рассылки обычно равен статический или предоставляется через делегирование префикса .
Если ваш интернет-провайдер предоставил вам статический префикс, отредактируйте /etc/netctl/extern0-profile
и просто добавьте IPv6 и префикс IPv6 (обычно /64), которые вы предоставили
Адрес6=('2002:1:2:3:4:5:6:7/64')
Вы можете использовать это в дополнение к адресу ULA, описанному выше.
Если ваш интернет-провайдер обрабатывает IPv6 через делегирование префикса, вы можете следовать инструкциям в делегировании префикса IPv6# (DHCPv6-PD) по правильной настройке маршрутизатора. Следуя соглашениям этой статьи, интерфейс WAN — это extern0
(или ppp0
, если вы подключаетесь через PPPoE) и интерфейс LAN intern0
.
Чтобы правильно раздавать IPv6 сетевым клиентам, нам потребуется использовать рекламный демон. Следуйте подробностям основной статьи IPv6 о том, как настроить radvd
. В соответствии с соглашением, принятым в этом руководстве, интерфейс, обращенный к локальной сети, — intern0
. Вы можете объявить все префиксы или выбрать, какие префиксы будут назначены для локальной сети.
Эта статья или раздел нуждается в дополнении.
Причина: Укажите альтернативный протокол переадресации портов NAT-PMP, поддерживаемый miniupnpd. (Обсудить в Talk:Router)
Приведенная выше конфигурация Shorewall не включает поддержку UPnP. Использование UPnP не рекомендуется, так как это может сделать шлюз уязвимым для атак из локальной сети. Однако некоторые приложения требуют этого для правильной работы.
Чтобы включить UPnP на маршрутизаторе, необходимо установить демон протокола UPnP Internet Gateway Device (IGD). Чтобы получить его, установите пакет miniupnpd.
Дополнительные сведения см. в руководстве Shorewall по UPnP.
OpenSSH можно использовать для удаленного администрирования маршрутизатора. Это полезно для запуска в автономном режиме (без монитора или устройств ввода).
См. Squid для настройки веб-прокси для ускорения просмотра и/или добавления дополнительного уровня безопасности.
Сведения об использовании маршрутизатора в качестве сервера времени см.