Настройка роутера linux

Я пытаюсь настроить роутер Linux в первый раз, и я борюсь с настройкой.

Вот как я хочу его настроить: линия ISP -> маршрутизатор Linux -> маршрутизатор Linksys -> Lan.

В роутере Linux есть eth0 и eth1

Как мне это настроить и куда мне поставить свой внешний ip?

Большое спасибо,

2 ответа

Имея такую ​​настройку дома, я думаю, что знаю, как это сделать.

Ваш Linux-маршрутизатор будет иметь два физических интерфейса. Я позвоню им eth0(подключен к вашей внутренней сети и имеет статический IP-адрес) и eth1(подключен к вашему интернет-провайдеру и предположительно адрес, предоставленный через DHCP).

Включение пересылки пакетов

В файле /etc/sysctl.conf, может быть две строки, соответствующие следующему:

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

Если нет, вам нужно будет добавить хотя бы последнюю строку. Вот важная часть: измените 0 на 1. Это говорит ядру о необходимости передавать пакеты с одного интерфейса на другой, если таблицы маршрутизации на маршрутизаторе Linux сообщают ему, что это следующий шаг. Затем вам нужно будет либо перезагрузиться, либо выполнить следующую команду: echo 1 > /proc/sys/net/ipv4/ip_forward,

Настройка NAT

Прямо сейчас все, что выходит из eth0 или eth1, идет с тем же IP-адресом, с которым оно входит. Таким образом, Google получит пинг от 192.168.1.x(или от того, какая у вас схема IP). Проблема в том, что эти IP-адреса не могут быть направлены через общедоступный Интернет. Таким образом, вам придется указать маршрутизатору Linux изменить исходящие пакеты, чтобы они могли быть направлены обратно к вам. Я сделал это по следующему правилу:

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Это говорит системе, что после того, как будет выполнена вся маршрутизация (потому что она находится в цепочке iptables POSTROUTING), и если исходящим интерфейсом является eth1("-o eth1"), тогда примените целевой MASQUERADE. Это означает "изменить исходный IP-адрес на IP-адрес интерфейса.

Настройка DHCP

На данный момент ваша система делает основы. Однако вам придется настроить каждую подключенную систему на статический IP-адрес и указать внешние DNS-серверы. Это можно изменить с помощью пакета под названием dhcp, Установите его и установите для загрузки во время запуска. В моей системе на базе Red Hat это можно сделать двумя командами: yum install dhcp а также chkconfig dhcpd on, Тем не менее, он ничего не будет делать, потому что вы не настроили DHCP относительно того, какова ваша схема IP и какие интерфейсы она должна слушать (хотя я могу ошибаться). Ниже то, что ваш /etc/dhcpd.conf может выглядеть так:

#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample  
#
ddns-update-style interim;
#include "/var/named/chroot/etc/rndc.key";
subnet 192.168.1.0 netmask 255.255.255.0
{
    authoritative;
    range 192.168.1.10 192.168.1.100;
    option routers 192.168.1.1;
    option domain-name-servers 192.168.1.1;
}
max-lease-time 14400; #4 hours
default-lease-time 14400; #4 hours

Несколько ключевых моментов здесь:

  1. Строка подсети: Это должен быть сетевой адрес для eth0. Маска сети также должна совпадать.
  2. Линия диапазона: здесь вы задаете начальный и конечный адреса для своей внутренней сети. Я настоятельно рекомендую исключить адрес самого маршрутизатора Linux.
  3. Линия дополнительных маршрутизаторов: здесь вы сообщаете клиентам, какой у них будет шлюз по умолчанию. В случае, который вы описали, это будет IP-адрес маршрутизатора linux eth0.
  4. Опция line-name-Servers line: Здесь вы сообщаете клиентам, какими будут их DNS-серверы. Ты можешь сделать это option domain-name-servers 208.67.222.222 208.67.220.220 если вы хотите использовать OpenDNS, option domain-name-servers 8.8.8.8 8.8.4.4 если вы хотите использовать Google Public DNS, или option domain-name-servers 192.168.1.1 если вы хотите настроить свою систему, чтобы справиться со всем этим.

Теперь вы можете запустить его, выполнив (в системе на основе Red-Hat), service dhcpd start как корень. Если вы не используете Red Hat или производную, вам нужно будет запустить скрипт запуска для этой системы.

Время аренды определяется в секундах. По крайней мере, согласно документации, которую я смог найти, иногда клиенты будут запрашивать конкретную продолжительность аренды, и в этом случае операторы max-lease-time и min-lease-time проверяются и корректируются в соответствии с этими границами. В других случаях клиенты не будут запрашивать срок аренды, в этом случае используется время аренды по умолчанию.

Это безопасно с точки зрения того, чтобы не обслуживать других клиентов вашего интернет-провайдера с помощью внутренней DHCP-сети, поскольку DHCPD не будет обслуживать адрес, если он не знает о схеме IP интерфейса, на котором он подключен. Поэтому, если на eth1 поступает запрос dhcp с IP-адресом 123.45.67.89, в настройке DHCP нет блока подсети для этого IP-адреса. Таким образом, он не будет отправлять предложения DHCP для этого запроса. Но если он входит в eth0 с IP-адресом 192.168.1.1, у него есть блок подсети, соответствующий этому адресу, и он предлагает DHCP.

Настройка DNS

Этот может быть самым простым из всех. В моей системе RHEL 5.1 он был установлен, запущен и настроен на клиентов. Он настроен так, чтобы указывать на корневые серверы имен и обслуживать клиентов на любом интерфейсе, который активен при запуске DNS.

Для установки имейте в виду, что это не dnsd, а имя. Это не прошедшее время именования. Вместо этого прочитайте это как "имя-D".

yum install named    #installation
service named start  #start it for right now
chkconfig named on   #set it to start at system boot.

Вы можете подумать о настройке дистрибутива маршрутизатора на основе Linux, такого как Smoothwall ( http://www.smoothwall.org/). Он разработан специально для использования маршрутизатора и его гораздо проще настроить, чем использовать собственные настройки.

Другие вопросы по тегам