Логин:   Пароль:   
   
 
X   Сообщение сайта
(Сообщение закроется через 2 секунды)
 
> Настройка PPPoE, IPTV и VPN в Gentoo Linux, как настроить интернет и ТВ от любимого провайдера
rtc
сообщение 27.10.2008, 23:40
Сообщение #1


Новенький


Группа: Пользователи
Сообщений: 94
Регистрация: 22.9.2008
Пользователь №: 46425
Спасибо сказали: 5 раз(а)



Список изменений:

2009.04.11 - добавил настройки PPPoE и iptables
2008.11.30 - добавил маршруты для IPTV
2008.10.27 - создано

В различных районах могут быть доступны подключения к интернет через VPN или PPPoE, если доступны оба варианта, то советую PPPoE: на VPN у меня минимум два обрыва в день, бывает и десяток, в отчётах pptp множество ругани, на PPPoE работает без ругани, обрывы бывают раз в три дня или реже.

Пояснения:
eth0 - имя сетевого устройства, подключённого к провайдеру
команды выполняются от пользователя root
настройки приведенны для baselayout 1.*


Настройка PPPoE

1) Соберём ядро с поддержкой всего необходимого:

Код
Device Drivers --->
  Network device support --->
   <M> PPP (point-to-point protocol) support
     [*] PPP filtering
     <M> PPP support for async serial ports
     <M> PPP support for sync tty ports
     <M> PPP Deflate compression
     <M> PPP BSD-Compress compression
     <M> PPP over Ethernet (EXPERIMENTAL)
Cryptographic options  --->
  [*] Cryptographic API
  [*] HMAC support
  <M> MD5 digest algorithm
  <M> SHA1 digest algorithm
  <M> SHA256 digest algorithm
  <M> SHA384 and SHA512 digest algorithms
  <M> DES and Triple DES EDE cipher algorithms
  <M> ARC4 cipher algorithm


2) Установим ПО:

Код
emerge -Dva sys-apps/iproute2 net-misc/dhcpcd net-dialup/ppp net-dns/bind-tools


ppp у меня собран с USE="atm dhcp eap-tls gtk ipv6 pam -activefilter -mppe-mppc -radius"
bind-tools не является обязательным пакетом, но скорее всего окажется полезен.

3) Создаём ссылки:

Код
cd /etc/init.d/
ln -s net.lo net.eth0
ln -s net.lo net.ppp0


4) Изменим /etc/conf.d/net:

Код
#**********/-------NetByNet

#*****/-----DHCP
#mac_eth0="00:00:00:00:00:00" # бывает полезно указать мак другой железки
config_eth0=( "dhcp" )
dhcp_eth0="release nontp nonis nogateway nosendhost"

# IPTV routes
routes_eth0=(
     "224.0.0.0/8"
     "77.246.100.0/24"
     "1.0.0.0/8"
)

modules=( "iproute2"
           "dhcpcd" )

#*****/-----PPPoE
config_ppp0=( "ppp" )
link_ppp0="eth0"
plugins_ppp0=( "pppoe" )
username_ppp0='1234'
password_ppp0='4321'
pppd_ppp0=(
     "debug"
     "defaultroute"
     "noauth"
     "default-asyncmap"
     "ipcp-accept-remote"
     "ipcp-accept-local"
     "mru 1492"
     "mtu 1492"
# Переподнимать до упора
     "persist"
     "maxfail 0"
     "lcp-echo-interval 15"
     "lcp-echo-failure 3"
)

depend_ppp0() {
     need net.eth0
}


5) Запускаем:

Код
/etc/init.d/net.eth0 restart
/etc/init.d/net.ppp0 restart


Чтобы соединение включалось при загрузке выполните:

Код
rc-update add net.ppp0 default


Поскольку ip динамический, что-то может потребовать выполнения после поднятия ppp0, для этого есть файл /etc/ppp/ip-up

Настройка VPN

1) Соберём ядро с поддержкой всего необходимого:

Код
Networking Support -->
  Networking options -->
   <M> IP: GRE tunnels over IP
Device Drivers --->
  Network device support --->
   <M> PPP (point-to-point protocol) support
     [*] PPP filtering
     <M> PPP support for async serial ports
     <M> PPP support for sync tty ports
     <M> PPP Deflate compression
     <M> PPP BSD-Compress compression
     <M> PPP MPPE compression (encryption) (EXPERIMENTAL)
Cryptographic options  --->
  [*] Cryptographic API
  [*] HMAC support
  <M> MD5 digest algorithm
  <M> SHA1 digest algorithm
  <M> SHA256 digest algorithm
  <M> SHA384 and SHA512 digest algorithms
  <M> DES and Triple DES EDE cipher algorithms
  <M> ARC4 cipher algorithm


2) Установим ПО:

Код
emerge -Dva sys-apps/iproute2 net-misc/dhcpcd net-dialup/pptpclient net-dns/bind-tools


bind-tools не является обязательным пакетом, но скорее всего окажется полезен.

3) Создаём ссылки:

Код
cd /etc/init.d/
ln -s net.lo net.eth0
ln -s net.lo net.ppp0


4) Изменим /etc/conf.d/net:

Код
#**********/-------NetByNet

#*****/-----DHCP
#mac_eth0="00:00:00:00:00:00" # бывает полезно указать мак другой железки
config_eth0=( "dhcp" )
dhcp_eth0="release nontp nonis nogateway nosendhost"

# IPTV routes
routes_eth0=(
     "224.0.0.0/8"
     "77.246.100.0/24"
     "1.0.0.0/8"
)

modules=( "iproute2"
           "dhcpcd" )

#*****/-----VPN
config_ppp0=( "ppp" )
link_ppp0="pty 'pptp ppp.lan --nolaunchpppd --nobuffer --loglevel 0'"
username_ppp0='1234'
password_ppp0='4321'
pppd_ppp0=(
     "debug"
     "defaultroute"
     "noauth"
     "nobsdcomp"
     "nodeflate"
# Переподнимать до упора
     "persist"
     "maxfail 0"
     "lcp-echo-interval 20"
     "lcp-echo-failure 3"
# Запретить все кроме MSCHAPv2
     "refuse-eap"
     "refuse-chap"
     "refuse-mschap"
)

depend_ppp0() {
        need net.eth0
}


5) Запускаем:

Код
/etc/init.d/net.eth0 restart
/etc/init.d/net.ppp0 restart


Чтобы соединение включалось при загрузке выполните:

Код
rc-update add net.ppp0 default


Поскольку ip динамический, что-то может потребовать выполнения после поднятия ppp0, для этого есть файл /etc/ppp/ip-up

Если вы используете iptables, то для работы VPN нужно разрешить устанавливать соединения с портом сервера для открытия соединения GRE и разрешить собственно GRE правилами вроде этих:

Код
### Значения переменных

# First set LC_ALL to en to avoid l10n problems when awk-ing IPs etc.
export LC_ALL="en"
# External interface
EXTLANIF=$(/sbin/route|/bin/grep 10.0.0.0|/usr/bin/awk '{print $8}')
# Text tools variables
IPT='/sbin/iptables'
IFC='/sbin/ifconfig'
G='/bin/grep'
SED='/bin/sed'
# Setting up external LAN interface environment variables
EXTLANIP="`$IFC $EXTLANIF|$G addr:|$SED 's/.*addr:\([^ ]*\) .*/\1/'|head -1`"

### Сами правила

# Allow VPN NetByNet
VPNIP=10.10.0.0/16
VPNport=1723
$IPT -A OUTPUT -o $EXTLANIF -s $EXTLANIP -d $VPNIP -p tcp --dport $VPNport --syn -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -o $EXTLANIF -s $EXTLANIP -d $VPNIP -p udp --dport $VPNport -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -o $EXTLANIF -s $EXTLANIP -d $VPNIP -p gre -j ACCEPT
$IPT -A INPUT  -i $EXTLANIF -d $EXTLANIP -s $VPNIP -p gre -j ACCEPT


http://en.wikipedia.org/wiki/Generic_Routing_Encapsulation

Полезно почитать:
http://www.gentoo.org/doc/en/home-router-howto.xml
http://www.gentoo-wiki.info/HOWTO_Iptables_for_newbies
http://www.gentoo-wiki.info/HOWTO_Iptables...teful_firewalls
http://www.gentoo-wiki.info/Iptables_port_reference

Настройка IPTV

Маршруты для телевидения могут потребоваться иные, способ определения:
1) Выключаем ppp0, делаем маршрутом по умолчанию eth0

2) Запускаем просмотр IPTV:

Код
vlc --http-reconnect --http-caching 16384 --vout-filter=deinterlace  --deinterlace-mode=blend http://netbynet.ru/list91channels.m3u


3) Узнаём источник вещания:
Код
tcpdump -i eth0 -p udp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
08:29:18.814243 IP 77.246.100.194.34815 > 224.0.42.17.5000: UDP, length 1316
08:29:18.818096 IP 77.246.100.194.34815 > 224.0.42.17.5000: UDP, length 1316
08:29:18.822761 IP 77.246.100.194.34815 > 224.0.42.17.5000: UDP, length 1316


77.246.100.194 - искомое

4) Узнаём следящий IGMP роутер:

Код
tcpdump -i eth0 -p igmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
08:35:48.974581 IP 10.30.64.16 > 224.0.0.2: igmp leave 224.0.42.1
08:35:48.978184 IP 1.18.253.64 > 224.0.42.1: igmp query v2 [max resp time 10] [gaddr 224.0.42.1]
08:35:49.087502 IP 10.30.64.16 > 224.0.42.19: igmp v2 report 224.0.42.19
08:35:53.014486 IP 10.30.64.16 > 224.0.42.19: igmp v2 report 224.0.42.19
08:35:54.724924 IP 1.18.253.64 > 224.0.42.72: igmp query v2 [max resp time 10] [gaddr 224.0.42.72]
08:35:55.733423 IP 1.18.253.64 > 224.0.42.72: igmp query v2 [max resp time 20] [gaddr 224.0.42.72]
08:35:57.171702 IP 1.18.253.64 > 224.0.42.72: igmp query v2 [max resp time 20] [gaddr 224.0.42.72]

1.18.253.64 - вот и он

5) При необходимости добавляем разрешающие правила в iptables:

Код
# Allow IPTV NetByNet
IPTV=5000
IPTVsource="77.246.100.0/24"
IPTVdest="224.0.0.0/8"
$IPT -A INPUT  -i $EXTLANIF -s $IPTVsource -d $IPTVdest -p udp --dport $IPTV -j ACCEPT
$IPT -A OUTPUT -o $EXTLANIF -s $EXTLANIP -p igmp -j ACCEPT
$IPT -A INPUT  -i $EXTLANIF -d $IPTVdest -p igmp -j ACCEPT


Для различных каналов настройки лучше перепроверить wink.gif

Сообщение отредактировал Antonio - 11.4.2009, 21:22
 
+Цитировать сообщение
freijie
сообщение 28.10.2008, 8:58
Сообщение #2


Чемпион


Группа: Пользователи
Сообщений: 2079
Регистрация: 16.7.2006
Пользователь №: 17898
Спасибо сказали: 51 раз(а)



спасибо, но как насчет pptp?)


--------------------
http://aniserv.ru - Поисковик по анимешным фтп (by fe328) [online]
ftp://fr.aniserv.ru - Свежее аниме (в основном - с английскими субтитрами). Постоянные обновления. [offline]

Описание ресурсов тут.
 
+Цитировать сообщение
koshev
сообщение 28.10.2008, 12:30
Сообщение #3


Чемпион


Группа: Пользователи
Сообщений: 2561
Регистрация: 25.7.2007
Из: г.Москва, Западное Дегунино
Пользователь №: 29936
Спасибо сказали: 199 раз(а)



Цитата(freijie. @ 28.10.2008, 9:59) *
спасибо, но как насчет pptp?)

Судя по "хавте" это и есть pptp.


--------------------
ПИН: 1514481
 
+Цитировать сообщение
rtc
сообщение 28.10.2008, 12:38
Сообщение #4


Новенький


Группа: Пользователи
Сообщений: 94
Регистрация: 22.9.2008
Пользователь №: 46425
Спасибо сказали: 5 раз(а)



Я ошибся в название - не pppoe, a VPN. blush.gif Просьба модераторам исправить.
 
+Цитировать сообщение
freijie
сообщение 28.10.2008, 12:40
Сообщение #5


Чемпион


Группа: Пользователи
Сообщений: 2079
Регистрация: 16.7.2006
Пользователь №: 17898
Спасибо сказали: 51 раз(а)



эм.. и правда =( тогда где pppoe?)


--------------------
http://aniserv.ru - Поисковик по анимешным фтп (by fe328) [online]
ftp://fr.aniserv.ru - Свежее аниме (в основном - с английскими субтитрами). Постоянные обновления. [offline]

Описание ресурсов тут.
 
+Цитировать сообщение
rtc
сообщение 28.10.2008, 12:43
Сообщение #6


Новенький


Группа: Пользователи
Сообщений: 94
Регистрация: 22.9.2008
Пользователь №: 46425
Спасибо сказали: 5 раз(а)



Есть заметка http://linux.netbynet.ru/node/5
У меня VPN, но могу написать на основе тех данных.
 
+Цитировать сообщение
koshev
сообщение 28.10.2008, 14:12
Сообщение #7


Чемпион


Группа: Пользователи
Сообщений: 2561
Регистрация: 25.7.2007
Из: г.Москва, Западное Дегунино
Пользователь №: 29936
Спасибо сказали: 199 раз(а)



Цитата(freijie. @ 28.10.2008, 9:59) *
спасибо, но как насчет pptp?)

Цитата(freijie. @ 28.10.2008, 13:41) *
эм.. и правда =( тогда где pppoe?)


Ты бы определился что ли что тебе надо...


--------------------
ПИН: 1514481
 
+Цитировать сообщение
freijie
сообщение 28.10.2008, 14:21
Сообщение #8


Чемпион


Группа: Пользователи
Сообщений: 2079
Регистрация: 16.7.2006
Пользователь №: 17898
Спасибо сказали: 51 раз(а)



"тогда где pppoe" имел ввиду неправильный топик. написал не видя что автор уже отписался об ошибочном топике, так как разница между этими постами - пара минут. так понятнее?..
-----------
но вообще, действительно хорошо былоб и про пппое в описать, для полноты гайда :]

Сообщение отредактировал freijie. - 28.10.2008, 14:23


--------------------
http://aniserv.ru - Поисковик по анимешным фтп (by fe328) [online]
ftp://fr.aniserv.ru - Свежее аниме (в основном - с английскими субтитрами). Постоянные обновления. [offline]

Описание ресурсов тут.
 
+Цитировать сообщение
rtc
сообщение 28.10.2008, 14:35
Сообщение #9


Новенький


Группа: Пользователи
Сообщений: 94
Регистрация: 22.9.2008
Пользователь №: 46425
Спасибо сказали: 5 раз(а)



>но вообще, действительно хорошо былоб и про пппое в описать, для полноты гайда :]
напиши - все буду только рады smile.gif
у меня есть только VPN, поэтому тут нужен кто-то, кто сможет испытать, у тебя какие соединения?
 
+Цитировать сообщение
freijie
сообщение 28.10.2008, 14:41
Сообщение #10


Чемпион


Группа: Пользователи
Сообщений: 2079
Регистрация: 16.7.2006
Пользователь №: 17898
Спасибо сказали: 51 раз(а)



у меня pptp через mpd4 в данный момент ) линукс пока только устанавливаю, пппое попробую, но только завтра-послезавтра )


--------------------
http://aniserv.ru - Поисковик по анимешным фтп (by fe328) [online]
ftp://fr.aniserv.ru - Свежее аниме (в основном - с английскими субтитрами). Постоянные обновления. [offline]

Описание ресурсов тут.
 
+Цитировать сообщение
spy
сообщение 29.10.2008, 12:44
Сообщение #11


Психопат
Иконка группы

Группа: Модераторы
Сообщений: 4898
Регистрация: 27.8.2006
Пользователь №: 18505
Спасибо сказали: 264 раз(а)



Код
<M> IP: GRE tunnels over IP
<M> PPP (point-to-point protocol) support
Зло. Ключевые компоненты следует включать внутрь ядра, а не компилировать в виде модулей.
 
+Цитировать сообщение
streamuser
сообщение 29.10.2008, 19:10
Сообщение #12


Постоянный посетитель


Группа: Пользователи
Сообщений: 300
Регистрация: 18.3.2007
Пользователь №: 25619
Спасибо сказали: 6 раз(а)



Цитата(spу @ 29.10.2008, 13:45) *
Код
<M> IP: GRE tunnels over IP
<M> PPP (point-to-point protocol) support
Зло. Ключевые компоненты следует включать внутрь ядра, а не компилировать в виде модулей.

это не ключевые компоненты и система без этих модулей способна загрузиться и весьма успешно функционировать


--------------------
 
+Цитировать сообщение
rtc
сообщение 29.10.2008, 19:20
Сообщение #13


Новенький


Группа: Пользователи
Сообщений: 94
Регистрация: 22.9.2008
Пользователь №: 46425
Спасибо сказали: 5 раз(а)



я привёл список того, что требуется, а компилить модулем или включать в ядро - это ваш выбор...
лично я предпочитаю собирать моделем для большей гибкости и уменьшения размера ядра.

мне тоже не понятно, почему spy отнёс поддержку vpn к главным частям ядра... для успешной работы в ядро достаточно вкомпилить только поддержку загрузочного устройства и фс.
 
+Цитировать сообщение
spy
сообщение 29.10.2008, 21:05
Сообщение #14


Психопат
Иконка группы

Группа: Модераторы
Сообщений: 4898
Регистрация: 27.8.2006
Пользователь №: 18505
Спасибо сказали: 264 раз(а)



Я не про общий случай, не утрируйте. Это ключевые компоненты для работоспособности VPN в Netbynet, и именно поэтому их следует включать в ядро. Не думаю, что на домашнем настольном компьютере часто меняется способ досутпа в сеть (протоколы и т.п.), так что о гибкости модульной системы говорить смешно -- она попросту не нужна. Что же до размеров ядра -- модуль все равно загружается в память и, готов поспорить, проводит там 99%, если не 100% всего аптайма системы (это конкретно про GRE-over-IP и PPP на домашнем десктопе.)

Сообщение отредактировал spу - 29.10.2008, 21:06
 
+Цитировать сообщение
streamuser
сообщение 30.10.2008, 2:20
Сообщение #15


Постоянный посетитель


Группа: Пользователи
Сообщений: 300
Регистрация: 18.3.2007
Пользователь №: 25619
Спасибо сказали: 6 раз(а)



всё равно вопрос весьма спорный.
я вот предпочитаю быстро загрузиться с минимумом функционала в ядре и только с необходимыми сервисами,
а всё что нужно подгружать по мере необходимости,
так например мне далеко не всегда нужен интернет, cups, sshd, nfsd и многое многое другое,
намного же важнее просто очень быстро загрузиться и без лишних напряжений получить доступ к PIM или флэшке,
при этом часто я даже иксы не стартую,
а если предположить, что "ACCEPT_KEYWORDS" начинается с "тильды", то разумнее было бы оставить себе манёвр для "голой" загрузки с детальной отладкой


--------------------
 
+Цитировать сообщение
spy
сообщение 4.11.2008, 2:24
Сообщение #16


Психопат
Иконка группы

Группа: Модераторы
Сообщений: 4898
Регистрация: 27.8.2006
Пользователь №: 18505
Спасибо сказали: 264 раз(а)



Кстати, после добавления net.eth0 и net.ppp0 в модуль rc работать с интерфейсами удобнее вот так:
Код
# eselect rc <action> <iface>
Где <action> это start, stop или restart, а <iface> это net.eth0 или net.ppp0.
 
+Цитировать сообщение
streamuser
сообщение 4.11.2008, 3:22
Сообщение #17


Постоянный посетитель


Группа: Пользователи
Сообщений: 300
Регистрация: 18.3.2007
Пользователь №: 25619
Спасибо сказали: 6 раз(а)



удобнее сделать линки на /etc/init.d/net.eth0 и net.ppp0,
после чего просто: # eth0 start/restart/stop wink.gif

Сообщение отредактировал streamuser - 4.11.2008, 3:22


--------------------
 
+Цитировать сообщение
rtc
сообщение 4.11.2008, 13:10
Сообщение #18


Новенький


Группа: Пользователи
Сообщений: 94
Регистрация: 22.9.2008
Пользователь №: 46425
Спасибо сказали: 5 раз(а)



куда ты сделал ссылки и главное зачем?

Я лично привык управлять службами через /etc/init.d/name action, к тому же для работы сети не нужно совершать никаких телодвижений - настроил и забыл...
 
+Цитировать сообщение
spy
сообщение 5.11.2008, 1:00
Сообщение #19


Психопат
Иконка группы

Группа: Модераторы
Сообщений: 4898
Регистрация: 27.8.2006
Пользователь №: 18505
Спасибо сказали: 264 раз(а)



Тут дело скорее в том, что eselect позиционируется как стандартное средство системного администрирования в Gentoo, и логично везде использовать именно его, не городя никаких симлинков. Тот же rc-update -- лишь фронтенд к eselect, причем обозначенный как discouraged to use разработчиками Gentoo. Не Gentoo-way, короче.
 
+Цитировать сообщение
freijie
сообщение 30.11.2008, 11:43
Сообщение #20


Чемпион


Группа: Пользователи
Сообщений: 2079
Регистрация: 16.7.2006
Пользователь №: 17898
Спасибо сказали: 51 раз(а)



в сислоге (messages) пптп жестоко флудит ошибками следующего вида
Код
pptp[2713]: anon warn[decaps_gre:pptp_gre.c:351]: Discarding GRE: 0 F3ED 0 0 0 B

3-5 сообщений в секунду
нагрузка мегабит эдак 8-10\с исходящий

конфиг отсюда


вопрос: почему такое может быть?

Сообщение отредактировал freijie. - 30.11.2008, 11:44


--------------------
http://aniserv.ru - Поисковик по анимешным фтп (by fe328) [online]
ftp://fr.aniserv.ru - Свежее аниме (в основном - с английскими субтитрами). Постоянные обновления. [offline]

Описание ресурсов тут.
 
+Цитировать сообщение

6 страниц V   1 2 3 > » 
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0



© 2005—2016 ООО «Нэт Бай Нэт Холдинг»,
Все права защищены.
Правила пользования ресурсами