Скорая Компьютерная Помощь г. Калуга

Полный спектр компьютерных услуг!

Здравствуйте, гость ( Вход | Регистрация )

> Внимание!

  • Вся информация, расположенная в данном и других разделах форума получена из открытых источников (интернет-ресурсы, средства массовой информации, печатные издания и т.п.) и/или добавлена самими пользователями. Администрация форума предоставляет его участникам площадку для общения / размещения файлов / статей и т.п. и не несет ответственности за содержание сообщений, а также за возможное нарушение авторских, смежных и каких-либо иных прав, которое может повлечь за собой информация, содержащаяся в сообщениях.
Ремонт компьютеров в калуге Рекламное место сдается
 
Ответить в эту темуОткрыть новую тему
> Скрипт полностью автоматического создания роутера для корбины на FreeBSD (Custler), Включая PPTP, L2TP и multicast routing для Corbina
Decker
сообщение 7.3.2009, 4:58
Сообщение #1


Администратор
*****

Группа: Главные администраторы
Сообщений: 14349
Регистрация: 12.10.2007
Из: Twilight Zone
Пользователь №: 1



(с) http://homenet.corbina.net/index.php?showt...t=0&start=0

Скрипт полностью автоматического создания роутера для корбины на FreeBSD (Custler).


Включая PPTP, L2TP и multicast routing для Corbina IPTV.

Полностью автоматическая настройка роутера.

Данная тема - продолжение и развитие предыдущей - Полный роутер для корбины на FreeBSD для Чайников.

При появлении каких-либо дополнений и улучшений, будет правиться этот пост и приложенный архив, а инфо об этом - в конце поста.

Последнее изменение - 13-декабря-2008.

Скопируйте директорию Custler из архива, приложенного к этому посту, на дискету; или запустите самосоздание дискеты из архива CreateFDD.


Задача, которую решает этот скрипт – ответив на несколько вопросов, полностью автоматически конфигурирует FreeBSD на компьютере, чтобы он стал полностью сконфигурированным роутером для Корбины.
Скрипт состоит из 5-ти модулуей, которые запускаются из главного скрипта SetUp_Router.sh: и только из него (иначе - ошибка)
  • - SetUp_Router.sh: - Собственно сам главный скрипт, который выполняет проверку сисемы на соответствие, читает конфигупацию интерфейсов и данные из конфигурационного файла router.config и запускает модули конфигурирования системы;
  • - 1-GetPackages.sh - Загружает и устанавливает пакеты, полезные и необходимые для работы роутера, а именно : libpdel-0.5, mpd-4, inadyn, mc-4, bash-3, ipcalc;
  • - 2-make_New_Kernel.sh - Конфигурирует ядро для поддержки netgraph и pf, компилирует и устанавливает его;
  • - 3-make_Config_Files.sh - Редактирует или создаёт конфигурационные файлы: rc.conf, pf.conf, sshd_config, rc.local, inadyn.conf, dhclient.conf, ntp.conf;
  • - 4-VPN_Configure.sh - Создаёт конфигурационные файлы для mpd4, спрашивая о желаемом типе соединения (pptp или l2tp) и Логин и Пароль для ВПН.
  • - 5-igmppInstall.sh - Компилирует, устанавливает и конфигурирует igmpproxy, чтобы любой комп за роутером мог смотреть Корбиновское IPTV.
Скрипт - в приложенном архиве, в конце этого поста - SetUp_Router_[дата последнего изменения].zip. Или можно сразу создать дискету с помощью самоустанавливающегося образа из архива CreateFDD.

После работы конфигурационного скрипта роутер будет полностью готов для выполнения следующих задач:
  • - Получение всех маршрутов от корбиновского DHCP сервера и прописывание их в таблицу роутинга;
  • - автоматическое установление VPN соединения по протоколам pptp и l2tp на выбор
  • - маршрутизация multicast траффика для просмотра IPTV
  • - просмотр видео с сайта corbina.tv без отключения интернета
  • - синхронизация времени
  • - настройка пакетного фильтра pf и проброс портов (публикация сервисов) для внутреннего FTP сервера, torrent, emul и т.п
  • - обновление ip адреса для динамического ДНС, например dyndns.com (inadyn демон)
  • - история соединений и выдаваемых маршрутов пишется в лог.
  • - управлять роутером можно удаленно, с помощью терминальной программы по протоколу ssh2, например SecureCRT


У меня используются следующие имена интерфейсов
xl0 – для внешнего интерфейса, подключенного в сеть корбины
nfe0 – для интерфейса домашней сети.
Достаточно сделать только первоначальную настройку интерфейсов. Далее скрипт подставит нужные имена в конфигурационные файлы сам.
Для туннеля всегда будет имя ng0, так как используется netgraph и mpd.

Первоначальная установка интерфейсов необходима, так как в дальнейшем скрипт использует интерфейс, получающий настройки по DHCP как внешний интерфейс, а IP адрес другого интерфейса - для настроек внутренних ресурсов.

Чтобы определить какие у Вас интерфейсы есть по крайней мере два способа -
1) метод "тыка":
Так как предполагается, по умолчанию, что у нас два интерфейса, то один - внешний. Если не угадал - перетыкаешь провод корбины в другой и всё. smile.gif
2) Включение мозга:
- если в компе вставлены две одинаковые сетевые карты, то они нумеруются xxx0, xxx1, причем нумерация происходит по слотам от процессора: ближняя - 0, следующая - 1. Однако я в этом не до конца уверен. Если кто знает лучше - поправте меня.
- Если в компе разные сетевые карты, то, например в файле GENERIC, можно найти соответствие префикса устройства (два или три символа перед цифрой) и модели сетевой карты:
Код
# PCI Ethernet NICs.
# PCI Ethernet NICs.
device          de      # DEC/Intel DC21x4x (``Tulip'')
device          em      # Intel PRO/1000 adapter Gigabit Ethernet Card
device          ixgb    # Intel PRO/10GbE Ethernet Card
device          le      # AMD Am7900 LANCE and Am79C9xx PCnet
device          txp     # 3Com 3cR990 (``Typhoon'')
device          vx      # 3Com 3c590, 3c595 (``Vortex'')

# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device          miibus          # MII bus support
device          bce     # Broadcom BCM5706/BCM5708 Gigabit Ethernet
device          bfe     # Broadcom BCM440x 10/100 Ethernet
device          bge     # Broadcom BCM570xx Gigabit Ethernet
device          dc      # DEC/Intel 21143 and various workalikes
device          fxp     # Intel EtherExpress PRO/100B (82557, 82558)
device          lge     # Level 1 LXT1001 gigabit Ethernet
device          msk     # Marvell/SysKonnect Yukon II Gigabit Ethernet
device          nfe     # nVidia nForce MCP on-board Ethernet
device          nge     # NatSemi DP83820 gigabit Ethernet
#device         nve     # nVidia nForce MCP on-board Ethernet Networking
device          pcn     # AMD Am79C97x PCI 10/100 (precedence over 'le')
device          re      # RealTek 8139C+/8169/8169S/8110S
device          rl      # RealTek 8129/8139
device          sf      # Adaptec AIC-6915 (``Starfire'')
device          sis     # Silicon Integrated Systems SiS 900/SiS 7016
device          sk      # SysKonnect SK-984x & SK-982x gigabit Ethernet
device          ste     # Sundance ST201 (D-Link DFE-550TX)
device          ti      # Alteon Networks Tigon I/II gigabit Ethernet
device          tl      # Texas Instruments ThunderLAN
device          tx      # SMC EtherPower II (83c170 ``EPIC'')
device          vge     # VIA VT612x gigabit Ethernet
device          vr      # VIA Rhine, Rhine II
device          wb      # Winbond W89C840F
device          xl      # 3Com 3c90x (``Boomerang'', ``Cyclone'')

# ISA Ethernet NICs.  pccard NICs included.
device             cs              # Crystal Semiconductor CS89x0 NIC
# 'device ed' requires 'device miibus'
device             ed              # NE[12]000, SMC Ultra, 3c503, DS8390 cards
device             ex              # Intel EtherExpress Pro/10 and Pro/10+
device             ep              # Etherlink III based cards
device             fe              # Fujitsu MB8696x based cards
device             sn              # SMC's 9000 series of Ethernet chips
device             xe              # Xircom pccard Ethernet

# Wireless NIC cards
device             wlan            # 802.11 support
device             wlan_wep  # 802.11 WEP support
device             wlan_ccmp # 802.11 CCMP support
device             wlan_tkip # 802.11 TKIP support
device             wlan_amrr # AMRR transmit rate control algorithm
device             wlan_scan_ap    # 802.11 AP mode scanning
device             wlan_scan_sta   # 802.11 STA mode scanning
device             an              # Aironet 4500/4800 802.11 wireless NICs.
device             ath             # Atheros pci/cardbus NIC's
device             ath_hal         # Atheros HAL (Hardware Access Layer)
device             ath_rate_sample # SampleRate tx rate control for ath
device             awi             # BayStack 660 and others
device             ral             # Ralink Technology RT2500 wireless NICs.
device             wi              # WaveLAN/Intersil/Symbol 802.11 wireless NICs.

Полный список сетевых карт и имена драйверов можно найти на оф. сайте - FreeBSD - Hardware - Ethernet

1. Установка FreeBSD 7.0.
Скрипт проверен на работоспособность на системах amd64 и i386, которые он распознаёт автоматом.
Так как у меня был «лишний» системный блок на AMD Athlon XP 64 3200+ (2ГГц), все ссылки указаны для дистрибутивов amd64. Если у Вас система на процессоре Intel, то вместо amd64 в ссылках подставляйте i368.

Лирическое отступление о скоростях компов и аппаратных роутеров. Конфигурацию i386 я тестировал на Intel Celeron 1.8 ГГц. При полной симметричной загрузке моего канала (1.3 МБ/с в обе стороны) торрентами с количеством пиров около 1000, процессор загружен на 35-45%. При тех же торрентах мой рабочий роутер на AMD Athlon™ 64 Processor 3200+ с реальной частотой процессора 2 Ггц, имеет загрузку процессора 10-15%. Я знаю, что в аппаратных роутерах используются другие процессоры, но в любом случае, как мне кажется, его частота должна быть не менее 500 МГц, чтобы без тормозов управляться со скоростью по ВПН 1.5 МБ/с

1.1. Скачиваем образ установочного диска FreeBSD 7.0 7.0-RELEASE-amd64-disc1.iso
с ftp://ftp.corbina.net/pub/FreeBSD/release...ISO-IMAGES/7.0/ и прожигаем на болванку. Остальные диски нам не понадобятся.
1.1.1. Подключаем ВСЕ сетевые кабели к компьютеру, из которого будем делать роутер.
1.2. Загружаемся с установочного диска FreeBSD. Здесь я привожу лог ответов, который сделал для себя. Мастер установки будет задавать вопросы, на которые я ответил следующим образом:
1.2.1. Country – 182 Russian Federation
1.2.2. System Console Keymap – KOI-8R
1.2.3. Install – Standart
1.2.4. Fdisk – Use entire disk ( A, Q)
1.2.5. Boot manager – Standart MBR
1.2.6. Partitions – Auto Defaults (A, Q)
1.2.7. Choose Distributions – X-development - чтобы были исходники и X для mc
1.2.8. Ports Collection – YES - может пригодиться потом
1.2.9. Exit.
1.2.10. Installation source – Install from CD; "YES"
.... курим пока идёт установка (мин 10-15) ...
1.2.11. Идём в настройку (Configure -> Networking) и настраиваем сетевой интерфейс:
1.2.12. - мой внешний интерфейс – xl0 - no ipv6
– DHCP - YES
– host: XXXX - введите своё доменное имя (например masha) или придумайте себе какое-нибудь вместо XXXX
– Domain: YYYY.ZZZ - имя домена (например selfip.com, если у Вас домен на dyndns.com) или corbina.net.
1.2.13. network gateway – YES
1.2.14. inetd – NO
1.2.15. ssh – YES
1.2.16. ftp – NO - может кому надо, но я не использую
1.2.17. nfs – NO
1.2.18. console setting – NO
1.2.19. Time zone – YES – NO – 8 – 38 – 2 – YES
Linux binary Compatibility - YES
1.2.20. Mouse – NO
1.2.21. Package collection – NO
1.2.22. add user account – NO
1.2.23. root password – XXXXXXXX - придумайте какой-нибудь смешной smile.gif
1.2.24. Visit General Conf – YES
1.2.25. Снова идём в настройку (Configure -> Networking) и настраиваем внутренний сетевой интерфейс (у меня – nfe0):
1.2.26. ipv6 – NO
1.2.27. DHCP – NO
1.2.28. ip – 192.168.1.1
1.2.29. mask – 255.255.255.0
1.2.30. Gateway – пусто , если там что-то есть - стереть;
1.2.31. exit; exit; exit; согласиться на ребут и вынуть CD


2. Копирум скрипты на жесткий диск
Загружаемся и логинимся (root).
Втыкаем дискетку.
Монтируем дискетку.
Для этого создаем директорию mkdir /a
mount -t msdosfs /dev/fd0 /a
cp -r /a/* /usr/
cd /usr/Custler
если Вы создавали дискетку из Windows, то надо дать права на запуск всем файлам скриптов chmod +x *.sh

3. Руссификация.
KOI-8 это конечно хорошо, но довольно неудобно для привыкших к виндам,
поэтому первым делом проведем руссификацию в кодировку CP1251 (Windows) с переключением раскладок по Ctrl+Shift.
И не смотря на то, что в мс вместо псевдографики будет "чертешто" мне так удобнее.
Поэтому запускаем скрипт ./Russification.sh
Чтобы изменения вступили в силу, проще перезагрузиться, поэтому ВЫНИМАЕМ ДИСКЕТУ и соглашаемся на перезагрузку.

4. Запуск скрипта.
Загружаемся, логинимся и переходим в каталог со скриптами cd /usr/Custler
Запускаем основной скрипт конфигурирования системы:
./SetUp_Router.sh [имя конфигурационного файла]
- если [имя конфигурационного файла] не указано, будет использован файл router.config.
Можно заранее отредактировать этот файл в виндах или сделать несколько файлов с разными настройками.

После запуска, скрипт напомнит, что надо подключить все сетевые кабели, и затем предложит отредактировать файл конфигурации router.config. Редактирование происходит в редакторе "ее".
Наверняка Вам надо отредактировать IP адрес Вашего рабочего компьютера, порт для торрента, для eMule и т.п., а также, если у вас есть свой домен на dyndns.com, заполнить данные Вашего эккаунта в секции INADYN.
Чтобы закончить редактирование и сохранить изменения жмем Ctrl+C и даём команду exit.

Теперь скрипт покажет текущие настройки и предложит меню выбора, из которого можно запускать конфигурационные скрипты по отдельности или все последовательно:
0-Run ALL scripts (for full config)
1-GetPackages.sh
2-make_New_Kernel.sh
3-make_Config_Files.sh
4-VPN_Configure.sh
5-igmppInstall.sh

Так как это наш первый запуск выбираем 0. После этого скрипты начнут отрабатываться один за другим.

1-й скрипт загружает и устанавливает необходимые пакеты с сервера Корбины ничего не спрашивая и заканчивается сообщением Packages installed succesfully. Если какой-либо из пакетов не установился, будет выдано сообщение об ошибке установки соответствующего пакета и дальнейшее выполнение скриптов будет прервано.

2-й скрипт спросит надо ли компилировать новое ядро. При первичной уставке это необходимо, поэтому жмем Enter.
...курим пока компилируется и устанавоивается новое ядро сиситемы....
Это занимает примерно от 20 до 60 минут в зависимости от быстродействия Вашего компьютера.
По окончании работы скрипт сообщает об успешной установке, либо, в случае ошибки, сообщает об ошибке и невозможности дальнейшего продолжения работы.

3-й скрипт создаёт или изменяет в соответствии с Вашей системой и настройками следующие файлы конфигурации:
- pf.conf
- rc.conf
- rc.local
- sshd_config
- dhclient.conf
- dhclient-script
- inadyn.conf
- ntp.conf
Перед перезаписью каждого файла скрипт спрашивает разрешения, поэтому далее надо ответить "y" на все вопросы о перезаписи файлов.

4-й скрипт настраивает mpd4 для создания ВПН соединения. Создаются файлы:
- mpd.conf
- mpd.links
- io-up-l2tp.sh
- io-up-pptp.sh
- io-down-l2tp.sh
- io-down-pptp.sh

Он предложит выбрать тип VPN соединения PPTP или L2TP, а также ввести Ваши логин и пароль для VPN соединения.
В дальнейшем, чтобы изменить тип VPN соединения, логин или пароль, можно запускать только 4-й скрипт из основного или вручную редактировать файл /usr/local/etc/mpd4/mpd.conf

5-й скрипт устанавливает proxy для IPTV, для чего компилирует igmpproxy и создаёт конфигурационный файл для него.

После того, как закончит работу последний скрипт, перезагружаемся (команда reboot) и наслаждаемся готовым роутером.

5. Файл конфигурации router.config

Формат файла конфигурации стандартный:

ключевое слово = значение # комментарий

Там нет ничего сложного и всё понятно из комментариев в нём. Единственно, я хотел бы лишний раз объяснить про публикацию серверов.
Для публикации серверов во внешний мир используются правила pf, которые скрипт формирует из строк вида:

HomeServer=IPaddress port1 port2 port3 ...

где HomeServer - ключевое слово
IPaddress - IP адрес домашнего сервера в домашней сети.
port1 port2 port3 ... - порты домашнего сервера, которые должны быть доступны из внешнего мира. Порты публикуются одновременно для протоколов TCP и UDP.

Количество домашних серверов - не ограничено, количество портов на каждый сервер тоже не ограничено.
Единственное и главное условие - один порт может принадлежать только одному IP адресу!!!
Особенно будьте внимательны при переносе порта с одного сервера на другой.

Теперь можно ходить в интернет, пользоваться локальными ресурсами и даже смотреть корбина IPTV на нескольких компьютерах ОДНОВРЕМЕННО!!!

Как смотреть IPTV на компьютере и списки каналов - IPTV без VLC - стабильно и качественно Просмотр эфирных каналов на компьютере
Только имейте ввиду, что при использовании программ поиска каналов, надо ставить таймаут переключения секунд 20-30, иначе забивается стэк igmpproxy и весь роутер вешается напроч.

P.S. Если Вы всё сделали правильно, но интернета всё равно нет, проверьте https://stat.corbina.net/regl.pl - возможно в сети проводятся какие-нибудь работы и роутер ни в чем не виноват. smile.gif


Прикрепленные файлы
Прикрепленный файл  SetUp_Router_08_12_13.zip ( 83,56 килобайт ) Кол-во скачиваний: 255
Прикрепленный файл  Create_FDD.zip ( 202,68 килобайт ) Кол-во скачиваний: 179
 


--------------------

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Рекламное место сдается Рекламное место сдается
Текстовая версия Сейчас: 27.4.2025, 7:17
Рейтинг@Mail.ru
Яндекс.Метрика Яндекс цитирования