Linux за българи: Форуми

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: dvbb в Nov 20, 2010, 03:34



Титла: dhcpd - match interface
Публикувано от: dvbb в Nov 20, 2010, 03:34
Здравейте

Опитвам се да пусна dhcp server, които да слуша на 2 интерфейсе eth1 и wlan0.
Идеята е eth1 - 172.16.0.1/25 , wlan0 - 172.16.0.129/25
и да се мачва от кой интерфейс идва dhcp request и съответно да се даде IP от съответния pool.

Въпроса ми е как да мачна от кои интерфей идва заявката.


Нещо от типа на match if ( substring ( ............ но как точно .




Титла: Re: dhcpd - match interface
Публикувано от: mavar в Nov 20, 2010, 10:59
Според мен трябва да пуснеш два пъти dhcp-сървъра. Нещо такова:

dhcpd -cf /etc/dhcpd1.conf eth1
dhcpd -cf /etc/dhcpd2.conf wlan0


Титла: Re: dhcpd - match interface
Публикувано от: b2l в Nov 20, 2010, 11:14
Според мен трябва да пуснеш два пъти dhcp-сървъра. Нещо такова:

dhcpd -cf /etc/dhcpd1.conf eth1
dhcpd -cf /etc/dhcpd2.conf wlan0

Няма да стане. Втория демон ще каже, че вече има пуснат един такъв. В Debian/Ubuntu конфигурацията на кой интерфейс да слуша се намира във файла: /etc/default/dhcp3-server, но не мисля, че може да слуша едновременно на два интерфейса.


Титла: Re: dhcpd - match interface
Публикувано от: dvbb в Nov 20, 2010, 11:44
Относно слушането на интерфейси , dhcpd може да слуша на колкото му кашеш унтерфейса. Проблема е ,че и на 2та интерфейса ми раздава адреси от единия pool само:

 
Код:
# cat /etc/dhcp/dhcpd.conf
ddns-update-style ad-hoc;
default-lease-time 600;
max-lease-time 7200;

shared-network test {

  subnet 172.16.0.0 netmask 255.255.255.128 {
    range 172.16.0.2 172.16.0.126;
    option domain-name-servers 172.16.0.1 ;
    option routers 172.16.0.1;
    option broadcast-address 172.16.0.127;
    default-lease-time 600;
    max-lease-time 7200;
    authoritative;
  }

  subnet 172.16.0.128 netmask 255.255.255.128 {
    range 172.16.0.130 172.16.0.254;
    option domain-name-servers 172.16.0.129 ;
    option routers 172.16.0.129;
    option broadcast-address 172.16.0.255;
    default-lease-time 600;
    max-lease-time 7200;
    authoritative;
  }

В моя случай ми раздава само адреси от 172.16.0.130 - 172.16.0.254 , без значение през кои интерфейс е поискан


Титла: Re: dhcpd - match interface
Публикувано от: b2l в Nov 20, 2010, 11:53
Нямам време сега да пробвам - но щом казваш, че може - ОК. Еми тогава си направи 2 conf файла и после давай както ти каза mavar:
Според мен трябва да пуснеш два пъти dhcp-сървъра. Нещо такова:

dhcpd -cf /etc/dhcpd1.conf eth1
dhcpd -cf /etc/dhcpd2.conf wlan0



Титла: Re: dhcpd - match interface
Публикувано от: dvbb в Nov 20, 2010, 12:20
Определено не е това решението , защото в случай че имам 10 pool-a 10 пъти ли ще пусна dhcpd , това което казах става с едно пускане на dhcpd. Проблема ми е да разгранича интерфейсите


Титла: Re: dhcpd - match interface
Публикувано от: b2l в Nov 20, 2010, 12:32
Определено не е това решението , защото в случай че имам 10 pool-a 10 пъти ли ще пусна dhcpd , това което казах става с едно пускане на dhcpd. Проблема ми е да разгранича интерфейсите

Не, ще ги опишеш в два-та conf-a просто. Нали имаш 2 интерфейса само - пускаш демона 2 пъти, като в единия conf са Pool-ловете на единия интерфейс, а в другия conf са пуловете за другия интерфейс.


Титла: Re: dhcpd - match interface
Публикувано от: chen_dzen в Nov 20, 2010, 13:17
Ако имаш 10 пула pool{...} pool{...} pool{...} pool{...} pool{...} pool{..} pool{..} pool{...} pool{...} pool{...} но това което ти казва Backtolife ти e решението за да стартираш демона на два интерфеиса .


Титла: Re: dhcpd - match interface
Публикувано от: dvbb в Nov 20, 2010, 13:37
Демона работи и на 2та интерфейса. Не е това проблема.
Проблема е ,че и през 2та интерфейса раздава ip-ta ot един и същи range


Титла: Re: dhcpd - match interface
Публикувано от: b2l в Nov 20, 2010, 13:38
Демона работи и на 2та интерфейса. Не е това проблема.
Проблема е ,че и през 2та интерфейса раздава ip-ta ot един и същи range

Е, ти раздели ли pool-ловете в двата конфа?


Титла: Re: dhcpd - match interface
Публикувано от: chen_dzen в Nov 20, 2010, 13:41
Conffile1.conf
subnet 10.0.0.0 netmask 255.255.255.0 {
    option routers 10.0.0.254;
# eth1 clients get this pool.
    pool {
        option domain-name-servers 10.0.0.254;
        max-lease-time 300;
        range 10.0.0.100 10.0.0.250;
        allow unknown-clients;
    }
---------------------------------------------------------------------------------
conffile2.conf
subnet 10.0.0.0 netmask 255.255.255.0 {
    option routers 10.0.0.254;
# wlan0 clients get this pool.
    pool {
        option domain-name-servers 10.0.0.254;
        max-lease-time 300;
        range 10.0.0.100 10.0.0.250;
        allow unknown-clients;
    }
----------------------------------------------------------------------------------
dhcpd -cf /etc/conffile1.conf eth1
dhcpd -cf /etc/conffile2.conf wlan0


Титла: Re: dhcpd - match interface
Публикувано от: dvbb в Nov 20, 2010, 15:47
Благодаря за отговорите.
Ключа от бараката се оказа в това , да се сложат 2-те мрежи в отделен shared-network .
Код
GeSHi (Bash):
  1. shared-network wlan0 {
  2.  
  3.  subnet 172.16.0.0 netmask 255.255.255.128 {
  4.    range 172.16.0.2 172.16.0.126;
  5.    option domain-name-servers 172.16.0.1 ;
  6.    option routers 172.16.0.1;
  7.    option ip-forwarding off;
  8.    option broadcast-address 172.16.0.127;
  9.    default-lease-time 600;
  10.    max-lease-time 7200;
  11.  }
  12. }
  13.  
  14. shared-network eth1 {
  15.  
  16.  subnet 172.16.0.128 netmask 255.255.255.128 {
  17.    range 172.16.0.130 172.16.0.254;
  18.    option domain-name-servers 172.16.0.129 ;
  19.    option routers 172.16.0.129;
  20.    option ip-forwarding off;
  21.    option broadcast-address 172.16.0.255;
  22.    default-lease-time 600;
  23.    max-lease-time 7200;
  24.  }
  25.  
  26. }

И както казах  не е нужно да се пускат 2 сервиза:
/usr/sbin/dhcpd -cf /etc/dhcp/dhcpd.conf -q -pf /var/run/dhcp/dhcpd.pid -user dhcp -group dhcp eth1 wlan0


Титла: Re: dhcpd - match interface
Публикувано от: tolostoi в Nov 20, 2010, 17:04
Късно ти виждам темата, това мачване преди време и аз много време го мислих и накрая проработи  :o
При мен ситуацията е следната. Исках да давам адрееси от различни събнети, но дхцп-то си слуша на един интерфейс, т. е. 192.168.24.0/24 и безжичната 192.168.25.0/24 като АП-то е някъде в мрежата (всъщност не е АП а е рутер циско, който е и gateway) цялата работа проработи и работи и до ден днешен, но на мен не ми е ясно как точно  ;D Ще постна конфига ако на някой му е нужен и/или има обяснение как се мачнаха така както ги исках - т. е. клиент от безжичната взема от 192.168.25.0/24 а тези по кабела вземат 192.168.24.0/24  ???


Edit: Всъщност нямам достъп до машината в момента, ще го постна когато имам.

П.П. Ето конфига.
Код:
ddns-update-style none;

# option definitions common to all supported networks...
option domain-name "vn-int.xxx.bg";
#option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 2000;
max-lease-time 4000;

#myset
subnet 192.168.24.0 netmask 255.255.255.0 {
  range 192.168.24.160 192.168.24.195;
  option domain-name-servers 192.168.24.1, 192.168.2.1, 212.50.10.50;
  option domain-name "vn-int.xxx.bg";
  option routers 192.168.24.254;
  option broadcast-address 192.168.24.255;
  option netbios-name-servers 192.168.24.1;
  default-lease-time 14400;
  max-lease-time 28800;
}


log-facility local7;


shared-network WLAN {
    option domain-name              "wlan.vn-int.xxx.bg";
    option domain-name-servers      192.168.24.1, 192.168.2.1, 212.50.10.50;
    option routers                  192.168.25.254;
  option netbios-name-servers 192.168.24.1;
  default-lease-time 34400;
  max-lease-time 68800;

#    more parameters for WLAN-NET shared-network
    subnet 192.168.25.0 netmask 255.255.255.0 {
#        parameters for subnet
        range 192.168.25.50 192.168.25.70;
    }
#    subnet 192.168.2.0 netmask 255.255.252.0 {
#        parameters for subnet
#        range 192.168.2.1 192.168.2.254;
#    }
}