Физический порт настраивается для всех примеров сходным образом NSG-Linux(config)# po s2 NSG-Linux(config-port)# physical-layer async NSG-Linux(config-port)# baudrate 19200 NSG-Linux(config-port)# encapsulation ppp NSG-Linux(config-port)# virtual-template 2 NSG-Linux(config-port)# согласование параметров PPP-сессии производится путем настройки присоединенного шаблона (virtual-template) в данном примере номер 2. Для этого нужно зайти из меню config в подменю virtual-template. NSG-Linux(config)# interface virtual-template 2 NSG-Linux(config-vif)# Внимание. После смены параметров шаблона необходимо вернуться в меню настройки порта и сделать рестарт порта (shutdown , no shutdown) NSG-Linux(config-vif)# exit NSG-Linux(config)# po s2 NSG-Linux(config-port)# shutdown NSG-Linux(config-port)# no shutdown NSG-Linux(config-port)# ----------------------------------------------------- ------------ СОГЛАСОВАНИЕ АДРЕСОВ --------------- ----------------------------------------------------- 1. каждый знает свой адрес и не знает адреса другого ! interface virtual-template 2 ip address 15.0.0.1 255.0.0.0 ! IP:02 ADM:UP NAME:"" IADR:15.0.0.2 MASK:255.0.0.0 BRC:1 MTU:1500 ACCT:0 NAT:NO TY:PPP PO:2 SL:NO PAPR:0 PAPA:NO CHAPR:0 CHAPA:NO SCRIPT:0 AC:NO PC:NO VJ:NO VJC:NO BSDC:NO KEEP:0 HOLD:0 AM:00000000 ACCL:NO DOD:NO DTR:1 RNAME:"" RADR:0.0.0.0 Результат: Кождый работает со своим адресом ............................................... ppp0 Link encap:Point-Point Protocol inet addr:15.0.0.1 P-t-P:15.0.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:13 errors:0 dropped:0 overruns:0 frame:0 TX packets:13 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:70 (70.0 iB) TX bytes:186 (186.0 iB) ...... 015.255.255.255 255.255.255.255 015.000.000.002 00 00 999 0000 015.000.000.000 255.255.255.255 015.000.000.002 00 00 999 0000 015.000.000.002 255.255.255.255 015.000.000.002 00 00 999 0000 015.000.000.000 255.000.000.000 015.000.000.002 00 02 999 0000 ................................................ 2. linux не знает свой адрес и готов принять его от удаленного абонента удаленный абонент знает адрес для linux (параметр RADR:) ! interface virtual-template 2 ppp ipcp accept-address ! IP:02 ADM:UP NAME:"" IADR:15.0.0.2 MASK:255.0.0.0 BRC:1 MTU:1500 ACCT:0 NAT:NO TY:PPP PO:2 SL:NO PAPR:0 PAPA:NO CHAPR:0 CHAPA:NO SCRIPT:0 AC:NO PC:NO VJ:NO VJC:NO BSDC:NO KEEP:0 HOLD:0 AM:00000000 ACCL:NO DOD:NO DTR:1 RNAME:"" RADR:15.0.0.3 Manager: Результат: linux работает на адресе, который прислал NSG ............................................... ppp0 Link encap:Point-Point Protocol inet addr:15.0.0.3 P-t-P:15.0.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:6 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:48 (48.0 iB) TX bytes:76 (76.0 iB) ...... Аналогичный результат будет если linux знает свой адрес, но готов принять адрес от удаленного абонента ! interface virtual-template 2 ip address 15.0.0.1 255.0.0.0 ppp ipcp accept-address ! 3. linux знает свой адрес и знает адрес удаленного абонента удаленный абонент не знает никаких адресов и готов принять (ACCL:YES) присылаемый адрес от linux'a На NSG не разрешено оставлять IADR: в значении 0.0.0.0 , поэтому устанавливается фиктивный адрес (192.168.0.1) ! interface virtual-template 2 ip address 15.0.0.1 255.0.0.0 peer default ip address 15.0.0.4 ! IP:02 ADM:UP NAME:"" IADR:192.168.0.1 MASK:255.0.0.0 BRC:1 MTU:1500 ACCT:0 NAT:NO TY:PPP PO:2 SL:NO PAPR:0 PAPA:NO CHAPR:0 CHAPA:NO SCRIPT:0 AC:NO PC:NO VJ:NO VJC:NO BSDC:NO KEEP:0 HOLD:0 AM:00000000 ACCL:YES DOD:NO DTR:1 RNAME:"" RADR:0.0.0.0 Результат: NSG работает на адресе, который прислал linux ............................................... ppp0 Link encap:Point-Point Protocol inet addr:15.0.0.1 P-t-P:15.0.0.4 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:19 errors:0 dropped:0 overruns:0 frame:0 TX packets:19 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:124 (124.0 iB) TX bytes:240 (240.0 iB) ........... 015.000.000.004 255.255.255.255 192.168.000.001 00 00 999 0000 015.000.000.001 255.255.255.255 015.000.000.001 01 02 999 0000 ............................................... 4. linux знает свой адрес и знает адрес удаленного абонента удаленный абонент знает свой адресов и не готов принять (ACCL:NO) присылаемый адрес от linux'a Результат: NSG работает на своем адресе (192.168.000.001) и знает удаленного абонента (linux) как 15.0.0.1 ............................................... 015.000.000.001 255.255.255.255 015.000.000.001 01 02 999 0000 192.255.255.255 255.255.255.255 192.168.000.001 00 00 999 0000 192.000.000.000 255.255.255.255 192.168.000.001 00 00 999 0000 192.000.000.000 255.000.000.000 192.168.000.001 00 02 999 0000 192.168.000.001 255.255.255.255 192.168.000.001 00 00 999 0000 ......... Для linux'a удаленный NSG все рабно остается под адресом 15.0.0.4 ppp0 Link encap:Point-Point Protocol inet addr:15.0.0.1 P-t-P:15.0.0.4 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:19 errors:0 dropped:0 overruns:0 frame:0 TX packets:19 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:124 (124.0 iB) TX bytes:240 (240.0 iB) ................................................ ----------------------------------------------------- ------------ АУТЕНТИФИКАЦИЯ --------------- ----------------------------------------------------- Примечание. Аутентификация в общем случае не связана с разпределением адресов (см. выше) поэтому в качестве примеров, выбраны некоторые распространенные случаи. 1. linux работает как "server" , знает свой адрес, адрес подключаемого абонента и запрашивает его атунтифицироваться при подключении. Метод аутентификации - локальный, протокол - PAP. ! username Zorro password Zorro ! interface virtual-template 2 ip address 15.0.0.1 255.0.0.0 peer default ip address 15.0.0.4 ppp authentication pap local ! IP:02 ADM:UP NAME:"Zorro" IADR:192.168.0.1 MASK:255.0.0.0 BRC:1 MTU:1500 ACCT:0 NAT:NO TY:PPP PO:2 SL:NO PAPR:0 PAPA:YES CHAPR:0 CHAPA:NO SCRIPT:0 AC:NO PC:NO VJ:NO VJC:NO BSDC:NO KEEP:0 HOLD:0 AM:00000000 ACCL:YES DOD:NO DTR:1 RNAME:"" RADR:0.0.0.0 Manager: wsip;2 Manager: dxpap PAP Passwords Table # [ ...] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PAP:01 Zorro * Zorro Существенные детали: - В linux'е есть локальная база (файлы /etc/ppp/pap_secrets , /etc/ppp/chap_secrets) формируемая командой username ..... password ...... - для NSG: имя интерфейса (имя клиента) - параметр NAME: пароль в таблице PAP - (см.ком A X PAP:..), разрешение на аутентификкцию себя как клиента (параметр PAPA:YES) - для подключения из РС пользователя, имя и пароль указываются в окне dialup-подключения. 2. linux работает как "server", аналогично п.1 Метод аутентификации - удаленный через RADIUS, протокол - CHAP. ! radius-server host 10.0.0.2 auth-port 1812 acct-port 1813 radius-server key nsg radius-server retransmit 3 radius-server timeout 10 ! ! interface virtual-template 2 ip address 15.0.0.1 255.0.0.0 peer default ip address 15.0.0.4 ppp authentication chap radius ! IP:02 ADM:UP NAME:"mike" IADR:192.168.0.1 MASK:255.0.0.0 BRC:1 MTU:1500 ACCT:0 NAT:NO TY:PPP PO:2 SL:NO PAPR:0 PAPA:NO CHAPR:0 CHAPA:YES SCRIPT:0 AC:NO PC:NO VJ:NO VJC:NO BSDC:NO KEEP:0 HOLD:0 AM:00000000 ACCL:YES DOD:NO DTR:1 RNAME:"NSG-Linux" RADR:0.0.0.0 Существенные детали: - Параметр RNAME: - содержит имя удаленной системы, к которой осуществляется подключение. В данном примере "NSG-Linux" должно быть установлено в системе linux, работающей как сервер. - Настройки системы linux на RADIUS-сервер приведены выше настроек virtual-template, Удаленный RADIUS-сервер должен быть скофигурирован и запущен. - При установке в linux своего hostname, необходимо добавить в файл /etc/hosts - разрешение этого имени на IP-адрес одного из своих интерфейсов. (под этим адрес в базе удаленного RADIUS-сервера, должен значиться linux-система как RADIUS-клиент) - в PC-пользователя указать использование зашифрованного пароля. 3. linux работает как "client", которого просят аутентифицировать себя. Протокол - PAP. ! username Zorro password Zorro username linux password xunil ! ! interface virtual-template 2 ip address 15.0.0.1 255.0.0.0 peer default ip address 15.0.0.4 ! IP:02 ADM:UP NAME:"" IADR:192.168.0.1 MASK:255.0.0.0 BRC:1 MTU:1500 ACCT:0 NAT:NO TY:PPP PO:2 SL:NO PAPR:1 PAPA:NO CHAPR:0 CHAPA:NO SCRIPT:0 AC:NO PC:NO VJ:NO VJC:NO BSDC:NO KEEP:0 HOLD:0 AM:00000000 ACCL:YES DOD:NO DTR:1 RNAME:"" RADR:0.0.0.0 Manager: dxpap .... PAP:02 linux * xunil Существенные детали: - по умолчанию настройки virtual-template предполагают разрешение отвечать на запросы аутентифицировать себя используя как протокол PAP и CHAP - по умолчанию настройки virtual-template предполагают отсылку на запрос аутентификации строки (имя, пароль), в которой имя пользователя совпадает со значением hostname (в данном случае linux). Если строки с таким именем не оказывается, то запрос на аутентификацию отвергается. - для выбора произвольной строки из списка (username .. password ..) небоходимо в настройках virtual-template явно указать имя (ppp pap sentuser ...) ! username Zorro password Zorro username linux password xunil ! interface virtual-template 2 ip address 15.0.0.1 255.0.0.0 peer default ip address 15.0.0.4 ppp pap sent-username Zorro ! 4. linux работает как "client", которого просят аутентифицировать себя. Протокол - CHAP. IP:02 ADM:UP NAME:"" IADR:192.168.0.1 MASK:255.0.0.0 BRC:1 MTU:1500 ACCT:0 NAT:NO TY:PPP PO:2 SL:NO PAPR:0 PAPA:NO CHAPR:1 CHAPA:NO SCRIPT:0 AC:NO PC:NO VJ:NO VJC:NO BSDC:NO KEEP:0 HOLD:0 AM:00000000 ACCL:YES DOD:NO DTR:1 RNAME:"" RADR:0.0.0.0 Manager: dxchap ... CHAP:02 linux * xunil ! username linux password xunil ! interface virtual-template 2 ip address 15.0.0.1 255.0.0.0 peer default ip address 15.0.0.4 ! 5. linux работает как "client", которого просят аутентифицировать себя. Удаленная система предлагает сначала CHAP - linux его отвергает (ppp chap refuse) затем предлагает PAP - linux соглашается IP:02 ADM:UP NAME:"" IADR:192.168.0.1 MASK:255.0.0.0 BRC:1 MTU:1500 ACCT:0 NAT:NO TY:PPP PO:2 SL:NO PAPR:1 PAPA:NO CHAPR:1 CHAPA:NO SCRIPT:0 AC:NO PC:NO VJ:NO VJC:NO BSDC:NO KEEP:0 HOLD:0 AM:00000000 ACCL:YES DOD:NO DTR:1 RNAME:"" RADR:0.0.0.0 ! interface virtual-template 2 ip address 15.0.0.1 255.0.0.0 peer default ip address 15.0.0.4 ppp chap refuse ! Примечание: Аналогичной командой можно запретить отвечать на PAP-запрос, но продолжать отвечать на CHAP (ppp pap refuse) 6. Взаимная аутентификация абонентов. linux запрашивает аутентификацию по CHAP и проверяет локально удаленная система NSG - запрашивает по PAP и проверяет локально hostname linux ! username linux password xunil username mike password dan ! ! interface virtual-template 2 ip address 15.0.0.1 255.0.0.0 peer default ip address 15.0.0.4 ppp authentication chap local ! IP:02 ADM:UP NAME:"mike" IADR:192.168.0.1 MASK:255.0.0.0 BRC:1 MTU:1500 ACCT:0 NAT:NO TY:PPP PO:2 SL:NO PAPR:1 PAPA:NO CHAPR:0 CHAPA:YES SCRIPT:0 AC:NO PC:NO VJ:NO VJC:NO BSDC:NO KEEP:0 HOLD:0 AM:00000000 ACCL:YES DOD:NO DTR:1 RNAME:"linux" RADR:0.0.0.0 Manager: dxpap PAP Passwords Table PAP:02 linux * xunil Manager: dxchap CHAP:01 mike * dan ----------------------------------------------------- ------------ ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ ------------- ----------------------------------------------------- 1. Передача клиенту адреса DNS. Установка MTU. Периодическая отсылка lcp-echo-request запросов. ! interface virtual-template 2 ip mtu 1400 ip address 15.0.0.1 255.0.0.0 keepalive 15 peer default ip address 15.0.0.4 ppp ipcp dns 194.67.1.8 ! Примечание: параметр keepalive определяет только интервал между отсылками своих запросов lcp-echo-request. На приходящие запросы lcp-echo-request порт отсылает ответы lcp-echo-reply в любом случае.