[+] isc-dhcp-server konfiguracja na jednym interfejsie i kilka podsieci

Masz problemy z siecią bądź internetem? Zapytaj tu
walczakowski
Posty: 2
Rejestracja: 06 kwietnia 2011, 14:41

[+] isc-dhcp-server konfiguracja na jednym interfejsie i kilka podsieci

Post autor: walczakowski »

Witam.
Mam następujący problem. Posiadam komputer z dwiema kartami sieciowymi eth1, która jest podłączona do internetu i eth0, która jest podpięta do sieci wewnętrznej. Chciałbym na tym komputerze uruchomić serwer dhcp dla sieci wewnętrznej w taki sposób, aby w zależności od tego jaki adres MAC ma komputer kliencki w sieci wewnętrznej to otrzymywał odpowiedni adres IP z konkretnej podsieci. W tym celu utworzyłem następującą konfigurację:

/etc/network/interfaces

Kod: Zaznacz cały

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# WAN INTERFACE <-- NIEISTOTNY
auto eth1 
iface eth1 inet dhcp

#LAN_1 INTERFACE
auto eth0
iface eth0 inet static
        address 192.168.1.1
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
#LAN_2 INTERFACE
auto eth0:0
iface eth0:0 inet static
        address 192.168.2.1
        netmask 255.255.255.0
        network 192.168.2.0
        broadcast 192.168.2.255
/etc/default/isc-dhcp-server

Kod: Zaznacz cały

# Defaults for dhcp initscript
# sourced by /etc/init.d/dhcp
# installed at /etc/default/isc-dhcp-server by the maintainer scripts

#
# This is a POSIX shell fragment
#

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0 eth0:0"
/etc/dhcp/dhcpd.conf

Kod: Zaznacz cały

shared-network test {
subnet  192.168.1.0 netmask 255.255.255.0 {
        option routers                  192.168.1.1;
        option subnet-mask              255.255.255.0;
        option domain-name-servers       192.168.1.1;
        range 192.168.1.2 192.168.1.20;
 }

subnet  192.168.2.0 netmask 255.255.255.0 {
        option routers                  192.168.2.1;
        option subnet-mask              255.255.255.0;
        range 192.168.2.2 192.168.2.20;
}
}
host user1 {hardware ethernet 00:C0:9F:70:2A:40; fixed-address 192.168.1.20;}
host user2 {hardware ethernet 00:19:99:25:04:F6; fixed-address 192.168.2.20;}
Niestety po wykonaniu polecenia:

Kod: Zaznacz cały

reboot isc-dhcp-server
nie wstaje, a w /var/log/syslog widnieje zapis:

Kod: Zaznacz cały

No subnet declaration for eth0:0 (no IPv4 addresses).
Ignoring requests on eth0:0.  If this is not what
you want, please write a subnet declaration
in your dhcpd.conf file for the network segment
to which interface eth0:0 is attached. **
Wykonałem kilka testów i według mnie nie ma możliwości uruchomienia serwera dhcp na wirtualnym interfejsie eth0:0 (a przynajmniej ja nie wiem jak to zrobić).
Czy ktokolwiek mógłby mi z tym pomóc? Ewentualnie, jeśli faktycznie się nie da, to, czy ktoś zna sposób obejścia wymienionego problemu bez wkładania dodatkowej karty sieciowej do komputera?
lo53r
Posty: 15
Rejestracja: 14 maja 2008, 13:44

Post autor: lo53r »

Ok. Usiadłem do tego jeszcze raz.
UDAŁO SIĘ.
Przede wszystkim nie korzystam z wielu kart a tylko z jednej.

Nadałem tej karcie maskę, która obejmuje interesujące mnie podsieci.
/etc/network/interfaces

Kod: Zaznacz cały

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
allow-hotplug eth0
iface eth0 inet static
        hostname debian
        address 192.168.1.15
        network 192.168.0.0
        broadcast 192.168.15.255
        netmask 255.255.240.0
        gateway 192.168.1.1
Dlatego też mogę ustanawiać kilka podsieci.
/etc/dhcp/dhcpd.conf

Kod: Zaznacz cały

class "android" {
         match if substring (option vendor-class-identifier, 0, 6) = "dhcpcd";
}

subnet 192.168.0.0 netmask 255.255.240.0 {
        pool {
                range 192.168.1.100 192.168.1.150;
                option subnet-mask 255.255.255.0;
                option routers 192.168.1.1;
                option domain-name-servers 192.168.1.1;
                deny members of "android";
        }
        pool {
                range 192.168.15.50 192.168.15.100;
                option subnet-mask 255.255.255.0;
                allow members of "android";
        }
}
U mnie działa.

Sądzę też, że jeżeli i Ty zrezygnujesz z wirtualnego interfejsu na rzecz modyfikacji adresacji na interfejsie, który jest podłączony do sieci lokalnej powinieneś móc osiągnąć efekt spełniający Twoje załozenia. W moim przypadku chodzi o rozpoznawanie klienta dhcp. Tutaj widnieje przykład, że jeżeli urządzenie (np. mój telefon z androidem) chce dostać adres IP z serwera to otrzymuje z sieci 192.168.15.0/24 w każdym innym przypadku będzie to sieć 192.168.1.0/24
walczakowski
Posty: 2
Rejestracja: 06 kwietnia 2011, 14:41

Post autor: walczakowski »

Dziękuję za pomoc. Zastosowałem adres 192.168.1.1/16 na eth0 i rozdział na podsieci w pliku dhcpd.conf, dzięki Twojemu przykładowi. Po zrestartowaniu usług i zastosowaniu wpisów iptables do udostępnienia internetu dla sieci wewnętrznej wszystko działa tak jak chciałem. Odpowiednie grupy użytkowników nie widzą siebie nawzajem i mają dostęp do internetu. Teraz tylko zostaje mi uruchomić dansguardian i uwierzytelnienie po adresie MAC, ale z tym już nie powinienem mieć problemów. Jeszcze raz wielkie podziękowania.
ODPOWIEDZ