Стикнувся з проблемою вибору концентратора доступу (access concentrator) в мережі, де доступні два коцентратори. Пакет rp-pppoe дозволяє вказувати даний параметр, а у випадку з pppd і його плагіном для pppoe знайти відповідну настройку не вдалось. Але завдяки дослідженню сорсів плагіна у мене це таки вийшло. (Хай живе open source!)
При наявності кількох провайдерів pppoe в локальній мережі pppd по замовчуванню з’єднується з першим, який відповів на LCP-запит.
Стандартний rp-pppoe працює бездоганно. За допомогою настройок в /etc/ppp/pppoe.conf можна встановити різноматні конфігураційні опції протоколу. Опція, яка нас цікавить – ACNAME. Дізнатись назву концентратора можна по логах pppd.
Feb 26 14:03:14 weblab pppd[24007]: Send PPPOE Discovery V1T1 PADI session 0x0 length 12 Feb 26 14:03:14 weblab pppd[24007]: dst ff:ff:ff:ff:ff:ff src 0:11:a:a2:b4:f5 Feb 26 14:03:14 weblab pppd[24007]: [service-name] [host-uniq c7 5d 00 00] Feb 26 14:03:14 weblab pppd[24007]: Recv PPPOE Discovery V1T1 PADO session 0x0 length 50 Feb 26 14:03:14 weblab pppd[24007]: dst 0:11:a:a2:b4:f5 src 0:18:e7:ec:b3:bf Feb 26 14:03:14 weblab pppd[24007]: [relay-session-id 00 00 00 00 00 15 17 cc 11 1a] [host-uniq c7 5d 00 00] [service-name] [AC-name pogylyanka] [service-name pym15a] Feb 26 14:03:14 weblab pppd[24007]: Recv PPPOE Discovery V1T1 PADO session 0x0 length 52 Feb 26 14:03:14 weblab pppd[24007]: dst 0:11:a:a2:b4:f5 src 0:26:99:d2:cc:1b Feb 26 14:03:14 weblab pppd[24007]: [service-name] [host-uniq c7 5d 00 00] [AC-name Lviv-Farlep-NAS2] [AC-cookie 13 30 c1 b9 e4 f7 21 ba bd c2 4f 38 25 b0 7d 59]
В цьому лог-файлі можна бачити наших двох провайдерів Інтернет – pogylyanka та Lviv-Farlep-NAS2.
При конекті з використанням rp-pppoe – проблем нема. От тільки використання rp-pppoe для конфігурації мережевих інфтерфейсів штатними засобами в Gentoo є “deprecated” (хтось перекладе на українську?..) і їхня підтримка поломана. Відповідно штатно підняти такий інтерфейс мені не вийшло.
Спробував використати “голий” pppd, як і рекомендується в Gentoo, але ніде в документації даної настройки не знайшов. Проте дізнався, що дистрибутив pppd містить в собі плагін pppoe. Запідозрив, що даний плагін запозичили в того ж rp-pppoe, тому рішив дослідити код pppd на предмет присутності де-небудь згадки про “acname”. На-grep-ав опції модуля з короткою довідкою. Опція, яка нас цікавить - rp_pppoe_ac. Задати її потрібно в опціях pppd. Ось фрагмент мого конфіга /etc/conf.d/net:
link_ppp0="eth0"
plugins_ppp0="pppoe"
username_ppp0="vanya_ua"
pppd_ppp0="
rp_pppoe_ac Lviv-Farlep-NAS2
lcp-echo-interval 15
lcp-echo-failure 3
debug
"
І тепер при старті /etc/init.d/net.ppp0 pppd конектиться до того концентратора доступу, який нам потрібний.