{{tag>Juniper }}
===== DHCP server =====
Глобальні налаштування DHCP сервера
set system services dhcp-local-server pool-match-order external-authority
set system services dhcp-local-server pool-match-order ip-address-first
set system services dhcp-local-server no-stale-timer-refresh
set system services dhcp-local-server stale-timer 30
==== QinQ DHCP server ====
Наступний блок це власне налаштування DHCP сервера. Рекомендую зразу записувати різні кейси в окремі групи - так легше розуміти
set system services dhcp-local-server group IPOE_QINQ authentication password PROVIDER
set system services dhcp-local-server group IPOE_QINQ authentication username-include delimiter "|"
set system services dhcp-local-server group IPOE_QINQ authentication username-include user-prefix IPOE_QINQ
set system services dhcp-local-server group IPOE_QINQ authentication username-include mac-address
set system services dhcp-local-server group IPOE_QINQ authentication username-include vlan-tags
set system services dhcp-local-server group IPOE_QINQ reconfigure clear-on-abort
set system services dhcp-local-server group IPOE_QINQ reconfigure attempts 5
set system services dhcp-local-server group IPOE_QINQ reconfigure timeout 5
set system services dhcp-local-server group IPOE_QINQ reconfigure token mx960_0
set system services dhcp-local-server group IPOE_QINQ overrides client-discover-match incoming-interface
set system services dhcp-local-server group IPOE_QINQ dynamic-profile dhcp-profile
set system services dhcp-local-server group IPOE_QINQ access-profile IPOE_QINQ
set system services dhcp-local-server group IPOE_QINQ interface ae1.0
в даному блоці є 3 змінні без яких нічого не запрацює:
* dynamic-profile dhcp-profile
* access-profile IPOE_QINQ
* interface ae1.0
їх треба описати
==== dynamic-profile dhcp-profile ====
set dynamic-profiles dhcp-profile routing-instances "$junos-routing-instance" interface "$junos-interface-name"
set dynamic-profiles dhcp-profile interfaces demux0 unit "$junos-interface-unit" actual-transit-statistics
set dynamic-profiles dhcp-profile interfaces demux0 unit "$junos-interface-unit" no-traps
set dynamic-profiles dhcp-profile interfaces demux0 unit "$junos-interface-unit" proxy-arp
set dynamic-profiles dhcp-profile interfaces demux0 unit "$junos-interface-unit" demux-options underlying-interface "$junos-underlying-interface"
set dynamic-profiles dhcp-profile interfaces demux0 unit "$junos-interface-unit" targeted-distribution
set dynamic-profiles dhcp-profile interfaces demux0 unit "$junos-interface-unit" family inet demux-source $junos-subscriber-ip-address
set dynamic-profiles dhcp-profile interfaces demux0 unit "$junos-interface-unit" family inet unnumbered-address "$junos-loopback-interface"
==== access-profile IPOE_QINQ ====
set access profile IPOE_QINQ accounting-order radius
set access profile IPOE_QINQ authentication-order radius
set access profile IPOE_QINQ domain-name-server 10.10.10.5
set access profile IPOE_QINQ domain-name-server 10.10.10.6
set access profile IPOE_QINQ radius authentication-server 10.10.10.7
set access profile IPOE_QINQ radius accounting-server 10.10.10.7
set access profile IPOE_QINQ radius options calling-station-id-delimiter *
set access profile IPOE_QINQ radius options calling-station-id-format mac-address
set access profile IPOE_QINQ radius options calling-station-id-format stacked-vlan
set access profile IPOE_QINQ radius options calling-station-id-format vlan
set access profile IPOE_QINQ radius options accounting-session-id-format decimal
set access profile IPOE_QINQ radius options client-authentication-algorithm round-robin
set access profile IPOE_QINQ radius options client-accounting-algorithm round-robin
set access profile IPOE_QINQ accounting order radius
set access profile IPOE_QINQ accounting immediate-update
set access profile IPOE_QINQ accounting coa-immediate-update
set access profile IPOE_QINQ accounting address-change-immediate-update
set access profile IPOE_QINQ accounting update-interval 10
set access profile IPOE_QINQ accounting statistics volume-time
set access profile IPOE_QINQ accounting wait-for-acct-on-ack
set access profile IPOE_QINQ accounting send-acct-status-on-config-change
set access radius-server 10.10.10.7 port 1812
set access radius-server 10.10.10.7 accounting-port 1813
set access radius-server 10.10.10.7 dynamic-request-port 3799
set access radius-server 10.10.10.7 secret "superhardpass:)"
set access radius-server 10.10.10.7 retry 3
set access radius-server 10.10.10.7 accounting-retry 3
set access radius-server 10.10.10.7 max-outstanding-requests 2000
set access radius-server 10.10.10.7 source-address **.**.***.2
Всі пули іп адрес, які можуть бути видані абоненту потрібно описати наступним чином
set access address-assignment pool cvlan10_128-17 family inet network 10.10.128.0/17
set access address-assignment pool cvlan10_128-17 family inet range ip low 10.10.128.11
set access address-assignment pool cvlan10_128-17 family inet range ip high 10.10.255.254
set access address-assignment pool cvlan10_128-17 family inet dhcp-attributes maximum-lease-time 10000
set access address-assignment pool cvlan10_128-17 family inet dhcp-attributes grace-period 100
set access address-assignment pool cvlan10_128-17 family inet dhcp-attributes router 10.10.128.2
### access address-assignment pool cvlan10_128-17 family inet dhcp-attributes option 43 hex-string 010400000002
set interfaces lo0 unit 0 family inet address 10.10.128.2/32
перші 10 іп з кожного пулу я резервую для майбутніх БРАСів. В мене використовується QinQ технологія, тому немає сенсу робити пули меншими - описую весь пул за раз.
set interfaces ae1 description ae1
set interfaces ae1 flexible-vlan-tagging
set interfaces ae1 auto-configure stacked-vlan-ranges dynamic-profile Auto-VLAN-Stacked-Demux accept dhcp-v4
### interfaces ae1 auto-configure stacked-vlan-ranges dynamic-profile Auto-VLAN-Stacked-Demux accept pppoe
set interfaces ae1 auto-configure stacked-vlan-ranges dynamic-profile Auto-VLAN-Stacked-Demux ranges 501-515,any
set interfaces ae1 auto-configure remove-when-no-subscribers
set interfaces ae1 mtu 9216
set interfaces ae1 encapsulation flexible-ethernet-services
set interfaces ae1 aggregated-ether-options lacp active
set interfaces ae1 aggregated-ether-options lacp periodic fast
set dynamic-profiles Auto-VLAN-Stacked-Demux routing-instances "$junos-routing-instance" interface "$junos-interface-name"
set dynamic-profiles Auto-VLAN-Stacked-Demux interfaces demux0 unit "$junos-interface-unit" no-traps
set dynamic-profiles Auto-VLAN-Stacked-Demux interfaces demux0 unit "$junos-interface-unit" proxy-arp
set dynamic-profiles Auto-VLAN-Stacked-Demux interfaces demux0 unit "$junos-interface-unit" vlan-tags outer "$junos-stacked-vlan-id"
set dynamic-profiles Auto-VLAN-Stacked-Demux interfaces demux0 unit "$junos-interface-unit" vlan-tags inner "$junos-vlan-id"
set dynamic-profiles Auto-VLAN-Stacked-Demux interfaces demux0 unit "$junos-interface-unit" demux-options underlying-interface "$junos-interface-ifd-name"
set dynamic-profiles Auto-VLAN-Stacked-Demux interfaces demux0 unit "$junos-interface-unit" family inet mac-validate strict
set dynamic-profiles Auto-VLAN-Stacked-Demux interfaces demux0 unit "$junos-interface-unit" family inet unnumbered-address "$junos-loopback-interface"
### dynamic-profiles Auto-VLAN-Stacked-Demux interfaces demux0 unit "$junos-interface-unit" family pppoe access-concentrator PPPoE-Server
### dynamic-profiles Auto-VLAN-Stacked-Demux interfaces demux0 unit "$junos-interface-unit" family pppoe duplicate-protection
### dynamic-profiles Auto-VLAN-Stacked-Demux interfaces demux0 unit "$junos-interface-unit" family pppoe dynamic-profile PP0
### - не хороша ідея на одному влані тримати і pppoe і dhcp абонів - dual-access на роутерах вам почнуть снитись в страшних снах
===== DHCP_SVLAN =====
set access profile RADIUS_SVLAN accounting-order radius
set access profile RADIUS_SVLAN authentication-order radius
set access profile RADIUS_SVLAN radius authentication-server 172.20.20.1
set access profile RADIUS_SVLAN radius accounting-server 172.20.20.1
set access profile RADIUS_SVLAN radius options calling-station-id-delimiter *
set access profile RADIUS_SVLAN radius options calling-station-id-format mac-address
set access profile RADIUS_SVLAN radius options calling-station-id-format stacked-vlan
set access profile RADIUS_SVLAN radius options calling-station-id-format vlan
set access profile RADIUS_SVLAN radius options accounting-session-id-format decimal
set access profile RADIUS_SVLAN radius options client-authentication-algorithm round-robin
set access profile RADIUS_SVLAN radius options client-accounting-algorithm round-robin
set access profile RADIUS_SVLAN accounting order radius
set access profile RADIUS_SVLAN accounting immediate-update
set access profile RADIUS_SVLAN accounting coa-immediate-update
set access profile RADIUS_SVLAN accounting address-change-immediate-update
set access profile RADIUS_SVLAN accounting update-interval 10
set access profile RADIUS_SVLAN accounting statistics volume-time
set access profile RADIUS_SVLAN accounting wait-for-acct-on-ack
set access profile RADIUS_SVLAN accounting send-acct-status-on-config-change
set dynamic-profiles CLIENTS_SVLAN routing-instances "$junos-routing-instance" interface "$junos-interface-name"
set dynamic-profiles CLIENTS_SVLAN interfaces demux0 unit "$junos-interface-unit" actual-transit-statistics
set dynamic-profiles CLIENTS_SVLAN interfaces demux0 unit "$junos-interface-unit" no-traps
set dynamic-profiles CLIENTS_SVLAN interfaces demux0 unit "$junos-interface-unit" proxy-arp
set dynamic-profiles CLIENTS_SVLAN interfaces demux0 unit "$junos-interface-unit" demux-options underlying-interface "$junos-underlying-interface"
### dynamic-profiles CLIENTS_SVLAN interfaces demux0 unit "$junos-interface-unit" targeted-distribution
set dynamic-profiles CLIENTS_SVLAN interfaces demux0 unit "$junos-interface-unit" family inet demux-source $junos-subscriber-ip-address
set dynamic-profiles CLIENTS_SVLAN interfaces demux0 unit "$junos-interface-unit" family inet unnumbered-address "$junos-loopback-interface"
set dynamic-profiles CLIENTS_SVLAN interfaces demux0 unit "$junos-interface-unit" family inet unnumbered-address preferred-source-address $junos-preferred-source-address
set system services dhcp-local-server pool-match-order external-authority
set system services dhcp-local-server pool-match-order ip-address-first
set system services dhcp-local-server group DHCP_SVLAN authentication password IPoE-Pool
set system services dhcp-local-server group DHCP_SVLAN authentication username-include delimiter "|"
set system services dhcp-local-server group DHCP_SVLAN authentication username-include user-prefix IPOE_SVLAN
set system services dhcp-local-server group DHCP_SVLAN authentication username-include mac-address
set system services dhcp-local-server group DHCP_SVLAN authentication username-include vlan-tags
set system services dhcp-local-server group DHCP_SVLAN reconfigure clear-on-abort
set system services dhcp-local-server group DHCP_SVLAN reconfigure attempts 5
set system services dhcp-local-server group DHCP_SVLAN reconfigure timeout 5
set system services dhcp-local-server group DHCP_SVLAN reconfigure token mx104_0
### system services dhcp-local-server group DHCP_SVLAN overrides client-discover-match incoming-interface
set system services dhcp-local-server group DHCP_SVLAN dynamic-profile CLIENTS_SVLAN
set system services dhcp-local-server group DHCP_SVLAN access-profile RADIUS_SVLAN
set system services dhcp-local-server group DHCP_SVLAN interface demux0.802
set system services dhcp-local-server no-stale-timer-refresh
set system services dhcp-local-server stale-timer 30