Подключение циски по PPPoE, плюс NAT на одном интерфейсе
Для теста использовалось следующее оборудование:
- циска 2610 c IOS версии 12.2(8)T:
IOS (tm) C2600 Software (C2600-IS-M), Version 12.2(8)T, RELEASE SOFTWARE (fc2) System image file is "flash:c2600-is-mz.122-8.T.bin"
- ADSL-модем Corecess Romance в режиме бриджа;
- свитч 3com;
- ну и компьютер конечно.
PPPoE сервер также был на циске, но думаю это значения иметь не должно.
Для подключение по PPPoE мы должны иметь имя и пароль, выданные нашим провайдером, например имя — oe1919, пароль — Pa$$worD99.
К сожалению указанная модель циски имеет только один Ethernet-интерфейс, поэтому пришлось вешать на нём и PPPoE-клиента, и NAT. Думаю что в случае с циской с двумя Ethernet-интерфейсами настройка сложнее не будет.
Схема подключения
Схема сети проста — циска, компьютер и модем включены в один свитч. Модем, настроен в режим бриджа, т.е. тупо отправляет пакетики с одного интерфейса на другой и наоборот.
Конечно было бы правильнее включить модем в отдельный интерфейс циски, а всю локальную сеть на другой, но второго Ethernet-интерфейса у нас нет.
[— добавлено 20040613 >>>
А вот если свитч поддерживает ВЛАНы, то можно попробовать отделить ethernet интерфейсы циски и модема в один ВЛАН, а остальную сеть во вторую, при этом циска должна обязательно входить в оба ВЛАНа. У меня не было под рукой умного свитча так что эту схему я не проверял, но думаю всё должно получиться.
<<< добавлено 20040613 —]
Настройка циски
Ниже приводится конфиг циски в части, касающейся PPPoE:
! vpdn enable ! vpdn-group 1 request-dialin protocol pppoe ! ! interface Ethernet0/0 ip address 10.0.0.1 255.255.255.0 ip nat inside no ip mroute-cache no keepalive pppoe enable ! использовать интерфейс dialer1 в качестве шаблона: pppoe-client dial-pool-number 1 no cdp enable ! interface Dialer1 ip address negotiated ip mtu 1492 ip nat outside encapsulation ppp no ip mroute-cache dialer pool 1 dialer-group 1 no cdp enable ppp authentication pap callin ppp pap sent-username oe1919 password Pa$$worD99 ! ip nat inside source list 10 interface Dialer1 overload ! ip route 0.0.0.0 0.0.0.0 Dialer1 ! access-list 10 permit 10.0.0.0 0.0.0.255 ! dialer-list 1 protocol ip permit ! !
Думаю комментарии здесь не нужны.
На сайте циски можно посмотреть пример для циски с двумя интерфейсами:
http://www.cisco.com/en/US/tech/tk175/tk15/technologies_configuration_example09186a0080126dc0.shtml
Есть один момент, на сайте циски в конфиге интерфейса Dialer1 указана вот такая строка «ppp authentication pap».
У меня же заработало только с вот такой строкой — «ppp authentication pap callin».
Параметр callin означает «Authenticate remote on incoming call only», т.е. что-то вроде «запрашивать аутентификацию удалённо только на входящие вызовы», если я правильно перевёл указанную фразу.
Если есть необходимость и желание, то можно поиграть параметрами dialer в интерфейсе Dialer1, например «dialer idle-timeout» позволяет указать время простоя перед отключением от PPPoE сервера, думаю что для этого на обеих сторонах соединения не должен быть включен keepalive, либо параметр «dialer persistent» — соединяться даже если нет необходимости, т.е. постоянно быть на связи.
Проверка состояния, сброс сессии
Посмотреть состояние соединения можно командой «show vpdn»:
test_cs#sh vpdn PPPoE Tunnel and Session Information Total tunnels 1 sessions 1 PPPoE Tunnel Information VPDN group: 1 Session count: 1 PPPoE Session Information SID RemMAC LocMAC Intf VASt OIntf VLAN/ VP/VC 53306 0001.4232.eed3 0005.5e82.0880 Vi1 UP Et0/0
Смотрим какие подключения у нас есть:
test_cs#who Line User Host(s) Idle Location * 0 con 0 idle 00:00:00 Interface User Mode Idle Peer Address Vi1 Virtual PPP (PPPoE ) 00:00:00
А командой «sh int d1» можно посмотреть адрес выданный нам сервером.
Сбросить сессию можно командой «clear vpdn tunnel pppoe».
Конечно это не все команды, которые могут пригодиться при работе с PPPoE.
Компьютер
На интерфейс компьютера назначаем адрес из сегмента 10.0.0.0/24, и указываем в качестве шлюза по-умолчанию адрес циски на Ethernet-е (10.0.0.1). Проверяем — всё работает — даже «пинги пингуются и тресроуты трейсятся» 🙂
Простое подключение циски с одним Ethernet-ом, без NAT-а
Если нам не нужен NAT, а мы хотим просто подключить по PPPoE только саму циску, то конфиг немного упрощается:
! vpdn enable ! vpdn-group 1 request-dialin protocol pppoe ! ! interface Ethernet0/0 no ip address no ip mroute-cache no keepalive half-duplex pppoe enable pppoe-client dial-pool-number 1 no cdp enable ! interface Dialer1 ip address negotiated ip mtu 1492 encapsulation ppp no ip mroute-cache dialer pool 1 dialer-group 1 no cdp enable ppp authentication pap callin ppp pap sent-username oe1919 password Pa$$worD99 ! ! ip route 0.0.0.0 0.0.0.0 Dialer1 ! dialer-list 1 protocol ip permit !
Малик.
20031011.
Дополнение от 20060713.
При настройке циски с двумя ethernet-интерфейсами столкнулся с проблемой — у клиентов из ЛАН открывались только некоторые сайты, а в случае с ФТП — только список файлов. Например при подключении telnet-ом на 80-й порт сайта mail.ru с компьютера из локальной сети страничка не отдавалась (таймаут), то же самое с самой циски работало нормально. Подозрение на непроходимость больших пакетов не подтвердилось — пинги с размером пакетов в 1400 байт проходили нормально.
На сайте компании Циско было найдено описание проблемы:
Troubleshooting MTU Size in PPPoE Dialin Connectivity.
Вкратце проблема из-за несоответствия MTU на компьютерах клиентов и серверов (1500) и на PPPoE-соединении роутера (1492), это приводит к тому, что пакеты от сервера размером больше 1492 байт дропаются, а при отфильтровывании ICMP-сообщений сервер не узнает об убиении его пакетов.
Проблема решилась добавлением одной строки в конфигурацию внутреннего интерфейса нашей циски:
! interface FastEthernet0/0 description LAN ip nat inside ip tcp adjust-mss 1452 ! именно 1452, а не 1492 !