Я пытаюсь настроить 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 самостоятельно, установите этот пакет.