/etc/conf.d/net и управление отдельными интерфейсами.
Добрый день.
Волею судеб сменил провайдера и теперь ковыряю настройки сети.
Цель: получить постоянное соединение с локальной сетью и с впн провайдера (через pptp или l2tp), которое фильтруется/NATится фаерволлом и переподключается автоматически без моего участия.
Исходные данные: net-dialup/xl2tpd-1.1.12-r1, net-dialup/pptpclient-1.7.1-r1, net-dialup/ppp-2.4.4-r21 (pam). Часть конфигов брал отсюда http://homenet.corbina.net/index.php?showforum=629&prune_day=100&sort_by=Z-A&sort_key=last_post&topicfilter=all&st=30
Имею сейчас следущее:
ls -l /etc/init.d/net* lrwxrwxrwx 1 root root 18 Сен 14 2008 /etc/init.d/net.eth0 -> /etc/init.d/net.lo lrwxrwxrwx 1 root root 18 Сен 14 2008 /etc/init.d/net.eth1 -> /etc/init.d/net.lo lrwxrwxrwx 1 root root 18 Сен 17 2008 /etc/init.d/net.eth2 -> /etc/init.d/net.lo -rwxr-xr-x 1 root root 15179 Апр 25 21:35 /etc/init.d/net.lo -rwxr-xr-x 1 root root 2074 Апр 25 21:35 /etc/init.d/netmount lrwxrwxrwx 1 root root 18 Апр 24 19:21 /etc/init.d/net.ppp0 -> /etc/init.d/net.lo
# This blank configuration will automatically use DHCP for any net.* # scripts in /etc/init.d. To create a more complete configuration, # please review /usr/share/doc/openrc/net.example and save your configuration # in /etc/conf.d/net (this file :]!). config_eth1="192.168.10.1/24" config_eth2="192.168.20.1/24" modules="dhcp" config_eth0="dhcp" VPNSERV='vpn.internet.beeline.ru' config_ppp0="ppp" link_ppp0="pty 'pptp $VPNSERV --nolaunchpppd --nobuffer --loglevel 1'" ## name: группа цифр без @internet.beeline.ru, хотя некоторым он нужен. Это надо на месте проверять. username_ppp0='name' password_ppp0='pass' pppd_ppp0=" nodefaultroute lock noauth refuse-eap refuse-chap refuse-mschap nobsdcomp nodeflate persist debug maxfail 0 holdoff 10 lcp-echo-interval 10 lcp-echo-failure 9 " #preup() { # if [ "${IFACE}" = "ppp0" ]; then # /bin/mknod /dev/ppp c 108 0 # fi #} postup() { echo postup ${IFACE} route -n ETH0_IP=$(ifconfig | grep 'inet addr:10.2' | sed -r 's/^.*addr:(\S+).*$/\1/') ETH0_GW=$(route -n | grep UG | grep eth0 | grep -v '127.0.0.1' | sed -r 's/^\S+\s+(\S+).*$/\1/') echo IP=${ETH0_IP}, GW=${ETH0_GW} if [ "${IFACE}" = "eth0" ]; then # указываем маршрут до ip dns-серверов for ip in 213.234.192.8 85.21.192.3; do route add $ip gw $ETH0_GW; done # Адреса VPN-серверов берутся с DNS-сервера Корбины for vpnaddr in $(host $VPNSERV | awk '{ print $NF }'); do route add $vpnaddr gw $ETH0_GW; done; fi if [ "${IFACE}" = "ppp0" ]; then # Из-за того, что адрес VPN-сервера совпадает с адресом шлюза, # создаваемый автоматически маршрут к VPN-серверу использует интерфейс ppp0, а не eth0, исправляем VPN=$(ifconfig | grep 'P-t-P' | awk '{print $3}' | awk -F: '{print $2}'); echo VPN=$VPN; route del $VPN dev ppp0; # Удаление шлюза по умолчанию в локалку и добавление шлюза по умолчанию в инет route del default; route add default dev ppp0; route add $VPN gw $ETH0_GW dev eth0; fi return 0 } postdown() { # Добавление маршрута по умолчанию в локалку if [ "${IFACE}" = "ppp0" ]; then killall xl2tpd pppd route add default dev eth0 fi return 0 } # Перед запуском vpn должен быть поднят eth0 depend_ppp0() { need net.eth0 }
Проблемы в данной конфигурации:
- Несмотря на участок
if [ "${IFACE}" = "ppp0" ]; then # Из-за того, что адрес VPN-сервера совпадает с адресом шлюза, # создаваемый автоматически маршрут к VPN-серверу использует интерфейс ppp0, а не eth0, исправляем VPN=$(ifconfig | grep 'P-t-P' | awk '{print $3}' | awk -F: '{print $2}'); echo VPN=$VPN; route del $VPN dev ppp0; # Удаление шлюза по умолчанию в локалку и добавление шлюза по умолчанию в инет route del default; route add default dev ppp0; route add $VPN gw $ETH0_GW dev eth0; fi
, при запуске /etc/init.d/net.ppp0 start не печатается echo VPN=$VPN, не меняются маршруты
- При перезапуске /etc/init.d/net.ppp0 restart не происходит соединения вот с таким сообщением:
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x143da190> <pcomp> <accomp>] Apr 26 13:52:42 homegate pptp[7410]: anon warn[open_inetsock:pptp_callmgr.c:326]: connect: No route to host Apr 26 13:52:42 homegate pptp[7410]: anon fatal[callmgr_main:pptp_callmgr.c:124]: Could not open control connection to 85.21.0.81
Проверка показала, что через определённое время ip vpn сервера при запросе выдаётся новый. К сожалению, по вышеуказанной причине воткнуть строку определения и задания маршрута до впн сервера в ${IFACE}" = "ppp0" не удаётся.
- Для комментирования войдите или зарегистрируйтесь
Имхо, можно добавлять маршрут
Имхо, можно добавлять маршрут на всю подсеть с VPN-серверами - 85.21.0.0/24
Owl's are not what they seem...