![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#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: и только из него (иначе - ошибка)
После работы конфигурационного скрипта роутер будет полностью готов для выполнения следующих задач:
У меня используются следующие имена интерфейсов xl0 – для внешнего интерфейса, подключенного в сеть корбины nfe0 – для интерфейса домашней сети. Достаточно сделать только первоначальную настройку интерфейсов. Далее скрипт подставит нужные имена в конфигурационные файлы сам. Для туннеля всегда будет имя ng0, так как используется netgraph и mpd. Первоначальная установка интерфейсов необходима, так как в дальнейшем скрипт использует интерфейс, получающий настройки по DHCP как внешний интерфейс, а IP адрес другого интерфейса - для настроек внутренних ресурсов. Чтобы определить какие у Вас интерфейсы есть по крайней мере два способа - 1) метод "тыка": Так как предполагается, по умолчанию, что у нас два интерфейса, то один - внешний. Если не угадал - перетыкаешь провод корбины в другой и всё. ![]() 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 - придумайте какой-нибудь смешной ![]() 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 - возможно в сети проводятся какие-нибудь работы и роутер ни в чем не виноват. ![]()
Прикрепленные файлы
![]() ![]() -------------------- |
|
|
![]() ![]() |
Текстовая версия | Сейчас: 27.4.2025, 7:17 | |
|