Как создать шлюз из моей ОС Linux

Я хочу настроить свой Linux так, чтобы он использовался как сетевой маршрутизатор (шлюз). Может ли кто-нибудь дать мне несколько намеков на это? (ссылки приветствуются!)

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

Включить маршрутизацию

Первый шаг – включить маршрутизацию в ядре. По умолчанию ядро ​​отбрасывает пакеты, которые он не распознает; как только вы включите маршрутизацию, он переадресует их. Вы должны выполнить одну из этих двух команд при загрузке компьютера:

sysctl -w net.ipv4.ip_forward=1 echo 1 >/proc/sys/net/ipv4/ip_forward 

Во многих дистрибутивах есть файл с именем /etc/sysctl.conf , где вы можете поместить строку net.ipv4.ip_forward=1 для выполнения этой команды при загрузке компьютера. Если есть каталог /etc/sysctl.d , вы можете добавить файл в этот каталог вместо редактирования /etc/sysctl.conf ; вызовите файл something .conf .

Для IPv6 соответствующий параметр – net.ipv6.conf.all.forwarding или /proc/sys/net/ipv6/conf/all/forwarding . Вы также можете использовать net.ipv4.conf.all.forwarding или /proc/sys/net/ipv4/conf/all/forwarding для IPv4.

Установка таблиц маршрутизации

Второй шаг – установка таблиц маршрутизации. Это может быть просто или сложно в зависимости от того, сколько вам нужно сделать. Для простого использования настройте каждый адрес и сетевую маску вашего сетевого интерфейса и добавьте любой необходимый дополнительный маршрут с помощью команды route .

Переход за пределы простой маршрутизации

Если вам нужно переписать пакеты, основная команда – iptables ( ip6tables для IPv6). («Netfilter» – это имя средства обработки пакетов ядра, а «iptables» – имя управляющей программы.) Здесь нужно искать фильтрацию, NAT и многое другое.

Для сложных настроек посмотрите на команду ip из пакета iproute2 .

Сначала подключите IP-адреса сети, для которых вы хотите действовать как маршрутизатор. Либо получите несколько сетевых интерфейсных карт, либо настройте виртуальный интерфейс.
Вам необходимо включить пересылку пакетов из /etc/sysctl.conf а затем настроить iptables для NAT. Вот краткий учебник для этого же.