воскресенье, 28 июня 2009 г.

dhcp snooping + vlan-per-client

Продолжение экспериментов в dhcp snooping.
Настройка совместной работы vlan-per-user и dhcp on vlan.
dhcp snooping работает на уровне распределения, это позволяет использовать любые дешевые коммутаторы доступа, минус повышенные требования к коммутатору распределения. Vlan-per-User на cisco работает только в global таблице маршрутизации, работа в VRF невозможна.
Первичная настрока коммутатора точна такая же как и для работать с одним dhcp snooping'ом

ip dhcp snooping vlan 1500 ( на каком вилане работать )
ip dhcp snooping information option format remote-id hostname
ip dhcp snooping database tftp://10.255.10.2/snooping_me3750.txt ( храним базу привязок на тфтп )
ip dhcp snooping database write-delay 60
ip dhcp snooping database timeout 30
no ip dhcp snooping verify mac-address ( не проверять мак адрес на порту )
ip dhcp snooping ( включаем глобально )

на интерфейсе коммутатора в сторону dhcp сервера

interface fastethernet 1/0/24 ( пример )
ip dhcp snooping trust ( доверия, залог успеха )
ip arp inspection trust ( у нас не используется, но перестрахуемся )

настройка vlan-per-user еще проще
создаем loopback

interface Loopback10 ( произвольно )
description --- 192.168.0.0/24 Vlan per customers --- ( обзовем как нибудь )
ip address 192.168.0.1 255.255.255.0 ( введем адрес сети из которой будут выдаваться адреса )

создадим требуемое количество виланов

vlan 1500-2000

и создадим сами SVI интерфейсы

interface Vlan1500
description --- 192.168.0.2 --- ( для информации указываем какой адрес будет выдаваться )
ip unnumbered Loopback10 ( ключевой момент, указываем какой лупбэк использовать )
ip helper-address 10.255.10.2 ( указываем адрес нашего dhcp сервера )

далее настраиваем dhcp сервер, обязательное условие - его работа с unicast пакетами, см. http://xgu.ru/wiki/%D0%9E%D0%BF%D1%86%D0%B8%D1%8F_82_DHCP

создаем логирование для облегчения жизни

if exists agent.circuit-id
{
log ( info, concat( "Lease for ", binary-to-ascii (10, 8, ".", leased-address), " is connected to interface ",
binary-to-ascii (10, 8, "/", suffix ( option agent.circuit-id, 2)), " (substract 2 for ME-C3750), VLAN ",
binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2, 2)), " on switch ",
binary-to-ascii(16, 8, ":", substring( option agent.remote-id, 2, 6)), " switch IP ",
binary-to-ascii(10, 8, ".", packet(24, 4))));
}

создаем subnet и class
subnet 192.168.0.0 netmask 255.255.255.0 {
option router 192.168.0.1;
option domain-name-servers 10.255.0.2, 10.255.10.2;
class "VLAN1500" {
match if binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2, 2))="1500"; ( ключевой момент вместо порта-коммутатора берем вилан )
}
pool {
range 192.168.0.2; ( выдаваемый адрес )
allow members of "VLAN1500";
}
}

перезапускаем dhcp и смотрим в лог

Jun 18 10:38:31 billing dhcpd: Lease for 192.168.0.2 is connected to interface 1/6 (subtract 2 for ME-C3750), VLAN 1500 on switch 77:2d:63:6f:72:65 switch IP 192.168.0.1
Jun 18 10:38:31 billing dhcpd: DHCPREQUEST for 192.168.0.2 from 00:0e:08:db:0e:30 (SipuraSPA) via 192.168.0.1
Jun 18 10:38:31 billing dhcpd: DHCPACK on 192.168.0.2 to 00:0e:08:db:0e:30 (SipuraSPA) via 192.168.0.1
Jun 18 10:38:39 billing dhcpd: Lease for 192.168.0.2 is connected to interface 1/6 (subtract 2 for ME-C3750), VLAN 1500 on switch 77:2d:63:6f:72:65 switch IP 192.168.0.1
Jun 18 10:38:39 billing dhcpd: DHCPDISCOVER from 00:0e:08:db:0e:30 (SipuraSPA) via 192.168.0.1
Jun 18 10:38:39 billing dhcpd: DHCPOFFER on 192.168.0.2 to 00:0e:08:db:0e:30 (SipuraSPA) via 192.168.0.1
Jun 18 10:38:39 billing dhcpd: Lease for 192.168.0.2 is connected to interface 1/6 (subtract 2 for ME-C3750), VLAN 1500 on switch 77:2d:63:6f:72:65 switch IP 192.168.0.1
Jun 18 10:38:39 billing dhcpd: DHCPREQUEST for 192.168.0.2 (10.255.10.2) from 00:0e:08:db:0e:30 (SipuraSPA) via 192.168.0.1
Jun 18 10:38:39 billing dhcpd: DHCPACK on 192.168.0.2 to 00:0e:08:db:0e:30 (SipuraSPA) via 192.168.0.1

проверяем что у нас на коммутаторе

gw-core#sh ip dhcp snooping binding
MacAddress IpAddress Lease(sec) Type VLAN Interface
------------------ --------------- ---------- ------------- ---- --------------------
00:0E:08:DB:0E:30 192.168.0.2 486 dhcp-snooping 1500 FastEthernet1/0/4
Total number of bindings: 1

есть ли маршрут

gw-core#sh ip route 192.168.0.2
Routing entry for 192.168.0.2/32
Known via "static", distance 1, metric 0 (connected)
Redistributing via ospf 8, bgp ХХХХ
Advertised by ospf 8 subnets
Routing Descriptor Blocks:
* directly connected, via Vlan1500
Route metric is 0, traffic share count is 1


вуаля !

Комментариев нет:

Отправить комментарий