воскресенье, 2 декабря 2012 г.

Настройка Yota One в Ubuntu 12.10 с помощью функции моста

Пока мой роутер Draytek 2920Vn находится на гарантийном ремонте, я иначе настроил раздачу интернета от модема Yota, подключив его к одному из компьютеров в локальной сети. На этом ПК установлена ОС Windows 7, в ходе нескольких попыток я подобрал оптимальную конфигурацию, а именно использование функции моста, т.е. объединения сетей, делается это очень просто штатными средствами системы, поэтому останавливаться нет смысла. Речь пойдёт о другом, ведь т.к. на этом компьютере я ещё давно настроил мультизагрузку двух операционных систем, мне пришла в голову идея настроить тоже самое в Ubuntu 12.10, второй системе.
Оказалось, что в Linux функция объединения сетей в мосты не лежит на поверхности и не настраивается так легко, как в Windows, и я совершил ошибку, начав искать какую-нибудь графическую утилиту для решения этой задачи. Таковой, для создания мостов, не нашлось. Но попутно натолкнулся на вариант с программой Firestarter, которая умеет раздавать интернет на другие компьютеры. Установил, попробовал настроить, ничего. На сервере интернет есть, на клиентах нет. Удалил программу. Она решила мне за это отомстить и вырубила интернет на самом компьютере. Выяснилось, что встроенный файервол iptables начал всё блокировать, поэтому пригодились следующие терминальные команды, сохранённые мною когда-то ранее, очищающие все правила:
sudo iptables -F
sudo iptables -t nat -F
sudo iptables -t mangle -F
После этих операций интернет заработал и я перешёл к установке пакета bridge-utils. Эта утилита позволяет создавать мосты и предлагает больше возможностей, чем аналогичные средства в Windows. Итак, устанавливаем этой командой:
sudo apt-get install bridge-utils
 Далее, как утверждали многие руководства, необходимо создать скрипт со следующим содержанием:
 #!/bin/bash
 ifconfig eth0 0.0.0.0
 ifconfig eth1 0.0.0.0
 brctl addbr bridge0
 brctl addif bridge0 eth0
 brctl addif bridge0 eth1
 ifconfig bridge0 up
Разумеется, названия интерфейсов приведены для примера.

Чтобы скрипт мог выполняться, нужно ввести следующую команду в терминал:
chmod +x file
Где file - это название скрипта и путь к нему.

После запуска скрипта
sudo file
мною овладели двойственные чувства, с одной стороны, интернет появился на компьютерах пользователей, но с другой - пропал на самом компьютере-мосте!
Желание решить образовавшуюся проблему привело меня к добавлению дополнительной строчки в конец указанного скрипта, а именно такой:
route add default gw 10.0.0.1 bridge0
После чего интернет появился везде. Но при отключении USB-модема Yota One и повторном включении, мост не восстанавливался. Решить это можно открыв один файл командой
sudo gedit /etc/udev/rules.d/70-persistent-net.rules
и в строку с интерфейсом Йоты (у меня он именуется eth1) добавить следующее:
, RUN="file"
где file опять полный путь к нашему скрипту.

Итак, при отключении-подключении мост восстанавливается. Но как быть с перезагрузкой, если модем не вынимается? Оказалось, что в этом случае ждёт облом и интернета не будет, если не проделать следующее. Открыть этот файлик:
sudo gedit /etc/rc.local
и в нём добавить тот же самый путь к нашему скрипту. Но, внимание, сделать это нужно до строчки:
stop 0
иначе эффекта автозапуска будет не достичь. Но одного только добавления строчки не достаточно, нужно "включить" эту самую функцию автозагрузки, а именно присвоив бит исполнения:
sudo chmod +x /etc/rc.local
Итак, у меня получилось сделать всё, чего я хотел добиться, также я узнал несколько интересных моментов "из жизни" Ubuntu. Надеюсь, эта статья пригодиться и ещё кому-нибудь.

Комментариев нет:

Отправить комментарий

Яндекс.Метрика