Debian Squeeze как маршрутизатор

Debian Squeeze как маршрутизатор

Я пытаюсь настроить Debian Squeeze (ака Dreamplug) как маршрутизатор. Я не могу собрать все части вместе.

ETH0: Upstream/Internet - DHCP-клиент
ETH1: Downstream/Lan - DHCP-сервер 192.168.0.1

sudo vim /etc/network/interfaces

auto lo br0
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
        iface eth1 inet static
        address 192.168.0.1
        network 192.168.0.0
        netmask 255.255.255.0
        broadcast 192.168.0.255

iface br0 inet dhcp
        bridge_ports eth0 eth1

судо вим /etc/dhcp/dhcpd.conf

option domain-name "MyPlug.MyServer.com";
option domain-name-servers 8.8.8.8, 192.168.0.1;

default-lease-time 600000000;
max-lease-time 720000000;

subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.100 192.168.0.200;
    option routers 192.168.0.1;
    option broadcast-address 192.168.0.255;
}

sudo vim /etc/default/isc-dhcp-server

INTERFACES="eth1"

перезапуск службы сетевой службы
перезапуск службы isc-dhcp-server

Моя машина с Windows 7 получает IP... ПОСЛЕ того, как я принудительно отключаю/обновляю. Мне удалось подключиться к серверу через putty один раз.

Есть ли какие-то заметные проблемы с моими настройками? Или что-то еще, на что я могу обратить внимание?

решение1

Не соединяйте внутренние и внешние интерфейсы мостом. Ваш ящик — это маршрутизатор, а не коммутатор. Чтобы сделать вашу машину маршрутизатором, вы должны сказать ей «пересылать» пакеты между интерфейсами. Я делаю это с помощью echo 1>/proc/sys/net/ipv4/ip_forward. IIRC способ(TM) сделать это — добавить строку net.ipv4.ip_forward=1в /etc/sysctl.conf и затем выполнить /etc/init.d/procps restart.

Файловая система proc, обычно монтируемая в /proc, представляет информацию ядра и конфигурацию в виде файлов, которые можно читать и записывать. Записывая 0 или 1 в /proc/sys/net/ipv4/ip_forward, мы отключаем или включаем функцию ядра для пересылки IP-пакетов между интерфейсами. Мы хотим, чтобы ядро ​​пересылало пакеты!

Теперь ваша машина — маршрутизатор, но вам также нужно сделать maquerading. Для этого вам нужно:

iptables -t nat -A POSTROUTING -i eth1 -o eth0 -j MASQUERADE(видетьhttp://tldp.org/HOWTO/IP-Masquerade-HOWTO/если вы хотите узнать больше)

Пока мы используем IPv4: Вы получите только один IP-адрес от вашего интернет-провайдера, и все ваши клиенты будут совместно использовать этот адрес при взаимодействии с системами в Интернете. Маскарадинг заботится обо всем, чтобы справиться с этим совместным использованием IP-адреса. Суть в том, что нам нужно сообщить iptables, когда применять маскарадинг. Если iptables больше не принимает -i и -o, подходящим правилом замены будет

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 ! -d 192.168.0.0/24 -j MASQUERADE

Возможно, вам придется заменить определения подсети 192.168.0.0/24 (обе!) на подсетьВаши клиенты живут в. Правило гласит: «выполнять маскировку для всех пакетов, исходящих из клиентской подсети и адресованных хостам за пределами клиентской подсети».

Я не знаю Dreamplug, но у вас должен быть какой-то файл /etc/firewall* или /etc/iptables*, куда вы можете добавить этот оператор, чтобы этот оператор выполнялся при каждой перезагрузке. Проверьте документацию на предмет "правил брандмауэра" и где их нужно разместить.

Для вашей конфигурации DHCP время аренды кажется смехотворно высоким. Отнимите 3-5 0. Также есть вероятность, что есть клиенты, которые не могут/не обрабатывают такие большие числа. Также вам следует поменять порядок серверов доменных имен. Клиенты сначала будут запрашивать первый сервер в списке. Если ваш маршрутизатор также действует как сервер имен, он, скорее всего, будет помнить предыдущие запросы в течение некоторого времени. Это означает, что если ваши клиенты запрашивают тот же адрес во второй раз, ответ будет намного быстрее, чем при запросе сервера имен Google.

решение2

Снимите мост. Он ненадежен в таком положении.

Вместо этого установите arno-iptables-firewallпакет, чтобы легко и безопасно настроить безопасную конфигурацию маршрутизатора. Он сделает все остальное за вас.

Из описания пакета Debian:

В отличие от других простых фронтендов iptables в Debian, arno-iptables-firewall настроит и загрузит безопасный, ограничивающий брандмауэр, просто задав несколько вопросов. Это включает настройку внутренних сетей для доступа в Интернет через NAT и потенциальных сетевых служб (например, http или ssh).

Если вы не знаете, как безопасно настроить iptables самостоятельно, установите этот пакет.

Связанный контент