Съдейки по грешката, проблемът според мен идва оттам че по принцип gre сокетите се отварят като SOCK_RAW, а не SOCK_STREAM/SOCK_DGRAM (и source port >1024).
GRE е ip-based протокол, подобно на TCP и UDP, но за разлика от тях (подобно на ICMP) няма готов механизъм за работа с такива сокети, използват се raw сокети, които се тъпчат с нужните хедъри и payload.
Проблемът е сходен с този при ping да речем а именно: обикновен потребител в линукс не може да отваря RAW сокети, единствено root-а може. При ping това е решено просто - binary-to е suid-нато:
Цитат |
ls -l /bin/ping -rwsr-xr-x 1 root root 30756 Oct 23 2005 /bin/ping
|
Същия номер може да се приложи и с pptp:
Цитат |
chmod u+s /usr/sbin/pptp
|
А другият вариант е да пускаш pptp като root - или се логваш така и го пускаш, или със sudo.
Предполагам из гугъл 100% ще има информация по въпроса, но кой да търси...