Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
abills:docs:ipv6:ru [2011/12/28 22:54]
asmodeus
abills:docs:ipv6:ru [2018/05/06 19:31] (текущий)
asmodeus
Строка 1: Строка 1:
 =====IPv6====== =====IPv6======
  
 +====Принципы работы====
 +
 +При работе с IP v6 система присваивает абоненту
 +
 +  - Статический IPv6
 +  - Префикс IPv6
 +
 +Для удобства назначения IP v6 в пулах адресов есть секция IPv6 для настройки выдачи абонентам IPv6 адресов ​ и префиксов (сетей).
 +Если включена опция $conf{IPV6} ​ и абоненту присвоен IPv6 адрес или префикс,​ система выдаёт ему через RADIUS ​ пары соответсвующие атрибуты. Также можно использовать одновременно IPv4 и IPv6  (DualStack) ​ адресацию.
 +
 +====Включение=====
 +Включение поддержки ipv6d в билинге **/​usr/​abills/​libexec/​config.pl**
 +
 +  $conf{IPV6}=1;​
 +
 +Включение поддержки в ОС
  
 Добавляем в /​etc/​sysctl.conf Добавляем в /​etc/​sysctl.conf
Строка 12: Строка 28:
   ping6 ipv6.google.com   ping6 ipv6.google.com
  
-Ставим с исходников радиус и настраиваем ​ 
  
-  vim /​usr/​local/​etc/​raddb/​sql.conf+====Тестирование==== 
 +  #radtest test 123456 localhost 1812 radsecret
  
-<​code>​sql { 
-        database = "​mysql"​ 
-        driver = "​rlm_sql_${database}"​ 
-        server = "​localhost"​ 
-        #port = 3306 
-        login = "​radius"​ 
-        password = "​radpass"​ 
-        radius_db = "​radius"​ 
-        acct_table1 = "​radacct"​ 
-        acct_table2 = "​radacct"​ 
-        postauth_table = "​radpostauth"​ 
-        authcheck_table = "​radcheck"​ 
-        authreply_table = "​radreply"​ 
-        groupcheck_table = "​radgroupcheck"​ 
-        groupreply_table = "​radgroupreply"​ 
-        usergroup_table = "​radusergroup"​ 
-        deletestalesessions = yes 
-        sqltrace = yes 
-        sqltracefile = ${logdir}/​sqltrace.sql 
-        num_sql_socks = 5 
-        connect_failure_retry_delay = 60 
-        lifetime = 0 
-        max_queries = 0 
-        readclients = yes 
-        nas_table = "​nas"​ 
-        $INCLUDE sql/​${database}/​dialup.conf 
-} 
- 
-</​code>​ 
- 
- 
-  #ls sites-enabled/​ 
- 
-  default 
- 
-  # cat default 
- 
-<​code>​authorize { 
-        preprocess 
-        chap 
-        mschap 
-        digest 
-        suffix 
-        files 
-        expiration 
-        logintime 
-        pap 
-        sql 
-} 
-authenticate { 
-        Auth-Type PAP { 
-                pap 
-        } 
-        Auth-Type CHAP { 
-                chap 
-        } 
- 
-        Auth-Type MS-CHAP { 
-                mschap 
-        } 
-        digest 
-        unix 
-} 
-preacct { 
-        preprocess 
-        acct_unique 
-        suffix 
-        files 
-} 
-accounting { 
-        detail 
-        exec 
-        attr_filter.accounting_response 
-} 
-session { 
-        radutmp 
-} 
-post-auth { 
-        sql 
-        exec 
-        Post-Auth-Type REJECT { 
-                attr_filter.access_reject 
-        } 
-} 
-pre-proxy { 
-} 
-post-proxy { 
-} 
 <​code>​ <​code>​
- 
- 
-  # vim /​usr/​local/​etc/​raddb/​radiusd.conf 
- 
- 
-<​code>​prefix = /usr/local 
-exec_prefix = ${prefix} 
-sysconfdir = ${prefix}/​etc 
-localstatedir = /var 
-sbindir = ${exec_prefix}/​sbin 
-logdir = /var/log 
-raddbdir = ${sysconfdir}/​raddb 
-radacctdir = ${logdir}/​radacct 
-name = radiusd 
- 
-confdir = ${raddbdir} 
-run_dir = ${localstatedir}/​run/​${name} 
- 
-db_dir = ${raddbdir} 
-libdir = /​usr/​local/​lib/​freeradius-2.1.12 
-pidfile = ${run_dir}/​${name}.pid 
-user = freeradius 
-group = freeradius 
-max_request_time = 30 
-cleanup_delay = 5 
-max_requests = 1024 
-listen { 
-        type = auth 
-        ipaddr = * 
-        port = 0 
-} 
-listen { 
-        ipaddr = * 
-#       ​ipv6addr = :: 
-        port = 0 
-        type = acct 
-} 
-hostname_lookups = no 
-allow_core_dumps = no 
-regular_expressions ​    = yes 
-extended_expressions ​   = yes 
-log { 
-        destination = files 
-        file = ${logdir}/​radius.log 
-        syslog_facility = daemon 
-        stripped_names = no 
-        auth = no 
-        auth_badpass = no 
-        auth_goodpass = no 
-} 
- 
-checkrad = ${sbindir}/​checkrad 
-security { 
-        max_attributes = 200 
-        reject_delay = 1 
-        status_server = yes 
-} 
- 
-$INCLUDE clients.conf 
-thread pool { 
-        start_servers = 5 
-        max_servers = 32 
-        min_spare_servers = 3 
-        max_spare_servers = 10 
-        max_requests_per_server = 0 
-} 
-modules { 
-        $INCLUDE ${confdir}/​modules/​ 
-        $INCLUDE sql.conf 
-        #  IP addresses managed in an SQL table. 
-#       ​$INCLUDE sqlippool.conf 
-} 
-instantiate { 
-        exec 
-        expr 
-        expiration 
-        logintime 
-} 
-$INCLUDE policy.conf 
-$INCLUDE sites-enabled/​ 
-</​code>​ 
- 
------------------------------------------------------------- 
-===Настройка MySQL для работы с Freeradius=== 
- 
-**добавляем базу и права на нее** 
-<​code>​ 
-CREATE DATABASE radius; 
-SET PASSWORD FOR '​radius'​@'​localhost'​ = PASSWORD('​radpass'​);​ 
-GRANT SELECT ON radius.* TO '​radius'​@'​localhost';​ 
-GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY "​radpass";​ 
-</​code>​ 
- 
-**Добавляем таблицы** ​ 
- 
-  #mysql -D radius < schema.sql 
-  #mysql -D radius < nas.sql 
-  #mysql> show tables; 
-<​code>​ 
-+------------------+ 
-| Tables_in_radius | 
-+------------------+ 
-| cui              | 
-| nas              | 
-| radacct ​         | 
-| radcheck ​        | 
-| radgroupcheck ​   | 
-| radgroupreply ​   | 
-| radippool ​       | 
-| radpostauth ​     | 
-| radreply ​        | 
-| radusergroup ​    | 
-+------------------+</​code>​ 
- 
-**Заполняем таблицы ​ для тестирования** 
-<​code>​ 
-INSERT INTO radcheck (UserName, Attribute, op, Value) VALUES ('​test',​ '​ClearText-Password',​ ':​=',​ '​123456'​);​ 
-INSERT INTO radreply (UserName, Attribute, op, Value) VALUES ('​test',​ '​Framed-IP-Address',​ ':​=',​ '​192.168.15.1'​);​ 
-INSERT INTO radreply (UserName, Attribute, op, Value) VALUES ('​test',​ '​Framed-IP-Netmask',​ ':​=',​ '​255.255.255.255'​);​ 
-INSERT INTO radreply (UserName, Attribute, op, Value) VALUES ('​test',​ '​Framed-IPv6-Prefix',​ ':​=',​ '​2001:​0:​c38c:​c38c:​1804::/​64'​);​ 
-</​code>​ 
------------------------------------------------------------- 
- 
-<​code>​ 
-  #radtest test 123456 localhost 1812 radsecret 
 Sending Access-Request of id 101 to 127.0.0.1 port 1812 Sending Access-Request of id 101 to 127.0.0.1 port 1812
         User-Name = "​test"​         User-Name = "​test"​
Строка 240: Строка 43:
         Framed-IPv6-Prefix = 2001:​0:​c38c:​c38c:​1804::/​64         Framed-IPv6-Prefix = 2001:​0:​c38c:​c38c:​1804::/​64
 </​code>​ </​code>​
- 
-===Ставим accel-ppp-1.4=== 
- 
- 
-Правим конфигурационный файл /​etc/​accel-ppp.conf 
- 
-<​code>​ 
-[modules] 
-log_file 
-pptp 
-pppoe 
-auth_mschap_v2 
-radius 
-sigchld 
-pppd_compat 
-#shaper_tbf 
-ipv6_nd 
-ipv6_dhcp 
- 
-[core] 
-log-error=/​var/​log/​accel-ppp/​core.log 
-thread-count=4 
- 
-[ppp] 
-verbose=1 
-min-mtu=1280 
-mtu=1400 
-mru=1400 
-ipv6=require 
-ipv6=allow 
-#ipv6=allow включать только когда клиент запросил 
-#​ipv6=require требовать ipv6 
-ipv6-intf-id=0:​0:​0:​2 
-ipv6-peer-intf-id=0:​0:​0:​2 
-ipv6-accept-peer-intf-id=1 
- 
-#​ipv6-intf-id и ipv6-peer-intf-id читаем rfc5072, rfc4861 
-если зделали чтобы ​ радиус передавал префикс 2001:​0:​c38c:​c38c:​1804::/​64,​ тогда на стороне сервера адрес будет этот префикс + ipv6-intf-id(из конфига), ​ 
-на стороне клиента этот префикс + ipv6-peer-intf-id либо то что предложит клиент если в конфиге ipv6-accept-peer-intf-id=1 
- 
- 
-[lcp] 
-echo-interval=30 
-echo-failure=3 
- 
-[auth] 
-#​any-login=0 
-#noauth=0 
- 
-[pptp] 
-verbose=1 
- 
-[pppoe] 
-interface=eth1 
-verbose=1 
- 
- 
-[dns] 
-dns1=10.0.0.1 
-#​dns2=172.16.1.1 
- 
-[radius] 
-dictionary=/​usr/​local/​share/​accel-ppp/​radius/​dictionary 
-nas-identifier=accel-ppp 
-nas-ip-address=127.0.0.1 
-gw-ip-address=10.0.0.1 
-auth-server=127.0.0.1:​1812,​radsecret 
-acct-server=127.0.0.1:​1813,​radsecret 
-server=127.0.0.1,​radsecret 
-dae-server=127.0.0.1:​3799,​testing123 
-verbose=1 
-#timeout=3 
-#max-try=3 
-#​acct-timeout=120 
-#​acct-delay-time=0 
- 
-[client-ip-range] 
-10.0.0.0/8 
- 
-[ip-pool] 
-gw-ip-address=192.168.0.1 
- 
-[log] 
-log-file=/​var/​log/​accel-ppp/​accel-ppp.log 
-log-emerg=/​var/​log/​accel-ppp/​emerg.log 
-log-fail-file=/​var/​log/​accel-ppp/​auth-fail.log 
-copy=1 
-level=3 
- 
-[pppd-compat] 
-#​ip-pre-up=/​etc/​ppp/​ip-pre-up 
-#​ip-up=/​etc/​ppp/​ip-up 
-#​ip-down=/​etc/​ppp/​ip-down 
-#​ip-change=/​etc/​ppp/​ip-change 
-radattr-prefix=/​var/​run/​radattr 
-verbose=1 
- 
-[tbf] 
-#​attr=Filter-Id 
-#​down-burst-factor=0.1 
-#​up-burst-factor=1.0 
-#latency=50 
- 
-[cli] 
-telnet=127.0.0.1:​2000 
-tcp=127.0.0.1:​2001 
- 
-[ipv6-dns] 
-2001:​05c0:​1000:​0011::​2 
-#​2001:​470:​20::​2 
-#​dnssl=suffix1.local.net 
-#​dnssl=suffix2.local.net. 
- 
-[ipv6-dhcp] 
-verbose=1 
-pref-lifetime=604800 
-valid-lifetime=2592000 
-route-via-gw=1</​code>​ 
  
  
  
-Подключились Виндовс 7 клиентом ​ 
-смотрим что выдал ПППоЕ сервер 
  
 +====Дополнительно====
  
 +  * https://​www.ripe.net/​about-us/​press-centre/​understanding-ip-addressing
 +  * https://​m.habrahabr.ru/​post/​253803/​
 +  * https://​m.habrahabr.ru/​post/​254293/​