LINUX.ORG.RU
ФорумAdmin

Маразм с DHCP relay


0

0

Hi all !
Ситуация такая: 3 локальные сети соединены одним маршрутизатором.
В одной из них находится DHCP сервер.
На маршрутизаторе по некоторым причинам DHCP сервер поставить не могу
(слабенький он очень, не надежный), пришлось поднять там dhcrelay.

(192.168.10.0/24)
      |- \ -----------------|
      |   eth2              |
      |     > ROUTER --eth1-|- (192.168.20.0/24) -- SERVER
      |   eth0              |                   (192.168.20.6)
      |- / -----------------|
(192.168.15.0/24)

Проблема следующая: если dhcprelay вешать на eth0 и eth2
 # dhcrelay -q -a -A 1400 -m forward -i eth0 -i eth2 192.168.20.6
то он нормально принимает запросы клиентов, отдает их серверу, но
почему-то игнорирует ответы сервера.
В man-е написано, что вообще-то он еще должен слушать и тот интерфейс,
через который он общается с сервером. Когда добавляю "-i eth1", тогда
все начинает работать, но тогда он также начинает релеить запросы для
20-й сети, на которые сервер и сам в состоянии ответить. Получается,
что приходят они к нему 2 раза (напрямую и через relay), и отвечает
он соответственно 2 раза, что увеличивает нагрузку и не есть
правильно.
Пытался firewall-ом запретить прием broadcast-ов для релея на eth1,
пытался сделать это же на DHCP сервере - ни то, ни другое не помогло
(создается впечатление, что dhcpd и dhcrelay ловят запросы перед firewall-ом).
Пока на сервере сделал такое (dhcpd.conf):
...
class "dhcp-relay" {
    match if exists agent.circuit-id;
}
subnet 192.168.20.0 netmask 255.255.255.0 {
    pool {
        range 192.168.20.21 192.168.20.254;
        deny members of "dhcp-relay";
    }
...
но не думаю, что это тоже правильное решение.
Не подскажет ли кто, как все сделать ПО-ЧЕЛОВЕЧЕСКИ ? :-)

P.S. Если нужны какие-либо конфиги - говорите, покажу :-)
★★★★★

Странно, если марштуризатор не надежный, то в первую очередь при его глюках пострадает все уже включенные машины, желающие обмениваться данными, а не только те, которые захотят получить адрес и не смогут.

Разве dhcpd его так уж сильно нагрузит? Он же почти ничего не делает.

fagot ★★★★★
()

Ну можно попробовать дропать firewall-ом еще и udp 67-68 ;)

chucha ★★★☆
()
Ответ на: комментарий от fagot

> Странно, если марштуризатор не надежный...
Нет, он стабильно работает, но памяти там очень мало и новую поставить не получается (да и где ее найдешь такую). Это Pentium 100MHz, RAM 16Mb (2 SIMM-а). В нем стоит 3 100Mbit/s карточки. Получилось так, что в такой конфигурации одновременно поднималось только две, при поднятии третьей выдавало "SIOCSIFFLAGS: Cannot allocate memory", хотя в памяти тогда было только ядро, init и bash, в котором я работал. Пришлось поставить DIMM на 32Mb, из которых оно увидело только 8. Это помогло, но желание добавлять какие-либо сервисы пропало, хватит того, что там уже торчит sshd.
Да и дело не в этом, раз есть такая вещь, как dhcrelay, то она ж должна как-то настраиваться, как-то работать. В правильной настройке как раз и состоял вопрос.

> Ну можно попробовать дропать firewall-ом еще и udp 67-68 ;)
Именно это и делал (на сервере), хотя это тоже не правильно, т.к. клиенты получившие адрес и желающие продлить срок его аренды общаются с сервером напрямую, без broadcast-ов:
iptables -A INPUT -s 192.168.20.5 -p udp --dport 67 -j ACCEPT
iptables -A INPUT -p udp --dport 67 -j DROP
(192.168.20.5 - адрес router-а)
Но broadcast пакеты все равно приходят.
Не может ли это быть из-за того, что dhcpd еще дополнительно слушает какой-то сырой сокет ?
raw 0 0 0.0.0.0:1 0.0.0.0:* 7 6299/dhcpd

spirit ★★★★★
() автор топика
Ответ на: комментарий от spirit

Сорри, что опять не в тему, но почему тогда не поставить какой-то Freesco, для него такая конфигурация - предел мечтаний, а работа бриджом - его прямое назначение. Плюс DNS, DynDNS, DHCPD, firewall (правда древний) и т.д.

fagot ★★★★★
()
Ответ на: комментарий от fagot

> почему тогда не поставить какой-то Freesco
А денюжку кто даст ? :-)) Эту тачку нашли среди почти списанных, т.е. она уже была, ничего покупать не нужно было.
И опять же, дело не столько в том, как выйти из этой ситуации, с этим как раз проблем нет, чего-нибудь придумаю (по крайней мере сейчас все работает).
Дело более в теоретическом плане: интересно узнать как в таком случае (пусть даже не конкретно в моем) правильно настраивается relay :-)

spirit ★★★★★
() автор топика
Ответ на: комментарий от spirit

За что денюжку? :)) Он со SCO ничего общего не имеет :))

http://freesco.org/?L=overview

FREESCO, a router for networks with static routing.

FREESCO was developed in the open source tradition as an alternative to routing products offered by Cisco, 3-Com, Accend, Nortel etc. All of these companies offer products that are well made, but they are also proprietary and expensive. Between the cost of the equipment and support, you'll spend a great deal and only address one or two of your networking needs .. Additionally, by being closed source (proprietary), many of these products restrict the user from modifying the source software to better suit their needs and easily fix problems that arise.

As many of us who work in the IS industry know, Management is always looking for ways to make work more efficient and decrease expenses. At the same time though, the IS department is usually restricted by budgetary constraints that prevent it from implementing products that would do just that, cut costs and make people's work easier and more cost effective.

That is where an open source product like FREESCO can make all the difference. It is open source (non-proprietary), easy to use and best of all, free.

FREESCO is based on the Linux operating system and incorporates many of the features of a full operating system into software that fits on a single 1.44 meg floppy diskette. With FREESCO, you can make:

* a simple bridge with up to 10 Ethernet segments
* a router with up to 10 Ethernet segments
* a dialup line router
* a leased line router
* an Ethernet router
* a dial-in server with up to 10 modems (with multiport modems).
* a time server
* a dhcp server
* a http server
* a ftp server
* a dns server
* a print server (requires TCP/IP printing client software)

FREESCO also incorporates firewalling and NAT which are resident within the Linux kernel to help protect you and your network. All of these features can be used in conjunction with each other or individually.

How does FREESCO do all this? By using only what you need from the Linux operating system and by utilizing the best in "small" *nix programs such as:

* thttp (http://www.acme.com/)
* lpr daemon (by Steve Flynn)
* and many standard small linux programs

Unlike many commercial products, set-up of FREESCO is very simple. FREESCO contains a configuration utility that makes set-up and maintenance of the system easy and fast. Providing you have the basic information needed to operate the system, i.e., IP address, gateway address, how you want to use the system(s) etc., setup can be completed in less that 10 minutes. Once the configuration is complete, all it takes is a simple reboot and connection to your network to begin using FREESCO and enjoying what it allows you to do. FREESCO even provides a web control interface so that you can administer the system from any web browser anywhere, anytime. How is that for convenient?

Support for FREESCO is supplied through our web board. There you can ask any question pertaining to set-up and use, or view postings that have already been placed by other FREESCO users. When posting a question, you will usually get a response within 24 hours from either the Maintainer or another FREESCO user. And best of all, you don't have to pay for the support, that's the beauty of the open source community and FREESCO.

We hope you enjoy using FREESCO! Visit us here frequently for new versions and updates to ensure that you get the best performance from your system

Some technical info:

* Minimum instal requires a 386sx 16 with 8mb of ram. 16+mb of ram is recommended for enabling servers;
* Modes of operation. ethernet, dialup, leased, bridge, RAS, Printer server. Some of these modes can run at the same time as well as switching between dialup and ethernt modes;
* 2.0.39 Linux kernel;
* Support for up to ten networks cards;
* Support for up to five printers;
* Support for up to ten modems, although only four regular modems. Support includes Unix 4 or 8 port modems;
* FREESCO v.0.3.x can run entirely from ram. This requires at least 17+Mb;
* FREESCO v0.3.x can run up to 4mb of packages on a floppy install;
* Ident, DHCP, DNS, Print, Telnet, FTP, HTTP servers;
* RAS (Remote Access Server) for dialin and nullmodem connections;
* PPPoE, and PPtP clients;
* Dynamic DNS support;
* Limited support for SCSI hard drives;
* FREESCO v0.3.x can be installed on any FAT 16/32 IDE drive on the primary or secondary controller and the primary or secondary drive;
* The v0.3.2+ kernel has a 16k masq table and the icmp leak patch as well as mppe for PPtP users;
* ISA PnP is now included into the floppy in v0.3.2. So network cards and PnP modems can be configured.

fagot ★★★★★
()
Ответ на: комментарий от fagot

Sorry, я наверное немного не так понял :-))
Хорошо, посмотрим, что это за зверь, но вопрос остается открытым.

spirit ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.