Beeline (Corbina) VPN - поднятие интернета под Gentoo/old NET config

Материал из AlexNook
Перейти к: навигация, поиск
File: /etc/conf.d/net
  1. #настройки моей домашней сети eth1
  2. dns_domain_lo="homenetwork"
  3. config_eth1="192.168.0.1 netmask 255.255.255.0"
  4.  
  5. #Настройки билайна
  6. #Есть возможность заменить на openl2tpd и использовать его
  7. L2TP_BACKEND="xl2tpd"
  8. # Таймаут ожидания поднятия l2tp
  9. L2TP_TIMEOUT=20
  10.  
  11. # Указываете интерфейс, через который будет подниматься vpn (он будет смотреть в локалку билайна). У меня eth0
  12. # Если отличается от указанного - меняете здесь и ниже в 2х строках _eth0 на свой
  13. DEPEND="eth0"
  14.  
  15. # Указываете интерфейс туннеля
  16. # Если отличается от указанного - меняете здесь и ниже в 2х строках _ppp0 на свой
  17. L2TP="ppp0"
  18. ROUTES="
  19.    195.14.50.0/27
  20.    78.106.0.0/15
  21.    224.0.0.0/4
  22. "
  23.  
  24. #Поменять eth0 на нужный
  25. config_eth0="dhclient"
  26. #Поменять eth0 на нужный
  27. dhclient_eth0="-nw"
  28.  
  29. #Поменять ppp0 на нужный
  30. config_ppp0="null"
  31. #Поменять ppp0 на нужный
  32. depend_ppp0() {
  33.     need net.${DEPEND}
  34. }
  35.  
  36. check_module () {
  37.     if ! [[ -f /proc/net/pppol2tp ]]; then
  38.     ebegin "Loading l2tp module"
  39.     # try both new and old module names
  40.         modprobe l2tp_ppp 2>/dev/null || modprobe pppol2tp 2>/dev/null
  41.     eend $?.
  42.     fi
  43. }
  44.  
  45. checkconfig() {
  46.     if [ "${L2TP_BACKEND}" = "xl2tpd" ]; then
  47.         if [[ ! -f /etc/xl2tpd/xl2tpd.conf ]] ; then
  48.             eerror "Missing /etc/xl2tpd/xl2tpd.conf configuration file!"
  49.             eerror "Example configuration file could be found in doc directory."
  50.             return 1
  51.         fi
  52.  
  53.         if [ ! -d /var/run/xl2tpd ] ; then
  54.             checkpath -d -m 755 /var/run/xl2tpd
  55.         fi
  56.     fi
  57.  
  58.     return 0
  59. }
  60.  
  61. preup() {
  62.     if [ -z "${L2TP_BACKEND}" ]; then
  63.         L2TP_BACKEND="xl2tpd"
  64.     fi
  65.  
  66.     checkconfig || return 1
  67.  
  68.     if [ x"${IFACE}" = x"${L2TP}" ]; then
  69.         if [ "${L2TP_BACKEND}" = "xl2tpd" ]; then
  70.             start-stop-daemon --start --quiet --exec /usr/sbin/xl2tpd
  71.         else
  72.             check_module
  73.             start-stop-daemon --start --quiet --exec /usr/sbin/openl2tpd
  74.         fi
  75.  
  76.         iface_timer=0
  77.         while [ $iface_timer -lt $L2TP_TIMEOUT ]; do
  78.             if [ -n "$(ifconfig | grep ${IFACE})" ]; then
  79.                 eend 0
  80.                 return 0
  81.             else
  82.                 if [ ${iface_timer} -eq 0 ]; then
  83.                     einfo "Waiting for l2tp..."
  84.                 fi
  85.                 sleep 1
  86.                 ((iface_timer++))
  87.             fi
  88.         done
  89.  
  90.         cleanup_l2tp
  91.         eend 1
  92.         return 1
  93.     fi
  94.  
  95.     return 0
  96. }
  97.  
  98. postup() {
  99.     if [ x"${IFACE}" = x"${L2TP}" ]; then
  100.         gw=`route -n | awk "{ if (\\$1 == \"0.0.0.0\" && \\$8 == \"${DEPEND}\") print \\$2 }"`
  101.         vpn=`ifconfig | grep -A1 ${IFACE} | grep -i p-t-p | awk '{ print $3 }' | sed  's/p-t-p://gi'`
  102.         #vpn=`ifconfig | grep -A1 ${IFACE} | grep -i dest | awk '{ print $6 }'`
  103.  
  104.         route add ${vpn} gw ${gw}
  105.  
  106.         for i in ${ROUTES}; do
  107.             route add -net ${i} gw ${gw}
  108.         done
  109.     fi
  110.     return 0
  111. }
  112.  
  113. predown() {
  114.     if [ -z "${L2TP_BACKEND}" ]; then
  115.         L2TP_BACKEND="xl2tpd"
  116.     fi
  117.  
  118.     if [ x"${IFACE}" = x"${L2TP}" ]; then
  119.         gw=`route -n | awk "{ if (\\$1 == \"0.0.0.0\" && \\$8 == \"${DEPEND}\") print \\$2 }"`
  120.         vpn=`ifconfig | grep -A1 ${IFACE} | grep -i p-t-p | awk '{ print $3 }' | sed  's/p-t-p://gi'`
  121.  
  122.         cleanup_l2tp
  123.  
  124.         if [ -n ${gw} ]; then
  125.             route del ${vpn} gw ${gw}
  126.  
  127.             for i in ${ROUTES}; do
  128.                 route del -net ${i} gw ${gw}
  129.             done
  130.         fi
  131.  
  132.     fi
  133.     return 0
  134. }
  135.  
  136. cleanup_l2tp() {
  137.         if [ "${L2TP_BACKEND}" = "xl2tpd" ]; then
  138.             start-stop-daemon --stop --quiet --pidfile /var/run/xl2tpd.pid
  139.  
  140.             if [ -n "$(pidof xl2tpd)" ]; then
  141.                 killall -9 xl2tpd > /dev/null 2>&1
  142.             fi
  143.  
  144.             if [ -e /var/run/xl2tpd.pid ]; then
  145.                 rm -f /var/run/xl2tpd.pid
  146.             fi
  147.         else
  148.             start-stop-daemon --stop --quiet --pidfile /var/run/openl2tpd.pid
  149.  
  150.             if [ -n "$(pidof openl2tpd)" ]; then
  151.                 killall -9 openl2tpd > /dev/null 2>&1
  152.             fi
  153.  
  154.             if [ -e /var/run/openl2tpd.pid ]; then
  155.                 rm -f /var/run/openl2tpd.pid
  156.             fi
  157.         fi
  158.  
  159.         killall pppd > /dev/null 2>&1
  160.         if [ -n "$(pidof pppd)" ]; then
  161.             killall -9 pppd > /dev/null 2>&1
  162.         fi
  163. }