Настройка нескольких pppoE подключений
Материал из Bryansk Linux Users Group.
Иногда возникает необходимость создать несколько pppoE подключений. Причиной этому могут быть особенности организации доступа к ресурсам сети, например жёсткое разделение доступа к локальным и внешним IP адресам в целях безопасности, увеличения производительности или для решения иных задач. Какой бы сложной ни была конфигурация сети, на какие бы "ужимки" в благородном порыве ублажить абонента ни шёл провайдер, мы, имея минимум необходимого оборудования, запросто можем адаптировать любую unix операционную систему (в частности Linux) к любой магистрали. Иначе она не носила бы гордого звания net-ориентированной системы.
Итак, приступим к настройке нескольких pppoE интерфейсов на конкретном примере.
Оборудование: PC с предустановленной Debian 5.0.0 Lenny, ADSL (LAN) модем, Ethernet-сетевая карта.
Задача: Настроить два совместно работающих pppoE-подключения, по одному для локальной и внешней сети Domolink (Брянск).
Решение:
Теоретический минимум:
/etc/network/intefaces - конфиг с сетевыми интерфейсами. /etc/resolv.conf - конфигурационный файл, где указаны адреса DNS-серверов. /etc/ppp - директория с настройками ppp-интерфейсов. /etc/ppp/chap-secrets'' и ''/etc/ppp/pap-secrets'' - файлы с логинами паролями для доступа в сеть. /etc/ppp/peers - директория с конфигурационными файлами, в которых описаны опции подключения.
ppp-интерфейсами управляет pppd-демон. Все характеристики каждого из ppp-интерфейсов передаются из выше указанных конфигурационных файлов pppd-демону в виде значений переменных.
Необходимые консольные команды:
nano /etc/network/interfaces - открыть в текстовом редакторе "nano" фаил "interfaces", "/etc/network/" - путь к файлу. Если файл не существует - он будет создан. cat /etc/network/interfaces - просмотреть содержимое файла "interfaces". ifconfig - вывод информации об активных интерфейсах. route -n - вывод информарции об активных маршрутах.
Замечание: Все описанные действия выполняем с правами супер пользователя (от root или через sudo).
Приступим к практике:
Создаём /etc/ppp/peers/d-net - конфиг для внешней сети.
noipdefault defaultroute replacedefaultroute hide-password noauth persist plugin rp-pppoe.so eth0 user "MyUserName@realm"
Создаём /etc/ppp/peers/d-local - конфиг для локальной сети.
noipdefault hide-password noauth persist plugin rp-pppoe.so eth0 user "MyUserName@realm_local"
Редактируем /etc/ppp/chap-secrets и /etc/ppp/pap-secrets. Добавляем имя пользователя и пароль для каждого подключения.
"MyUserName@realm_local" * "MyPassword" "MyUserName@realm" * "MyPassword"
Добавляем в /etc/network/interfaces информацию о наших подключениях. Теперь при старте системы будут последовательно созданы два интерфейса ppp0 и ppp1.
auto d-net iface d-net inet ppp pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf provider d-net auto d-local iface d-local inet ppp pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf provider d-local
Итак, теперь мы имеем два pppoE интерфейса, ppp0 - для интернета и ppp1 - для локалки, соответсвующие подключениям d-net и d-local, контролируются и управляются они демоном pppd. Теперь осталось обеспечить доступ к любому IP локальной сети через интерфейс ppp1, для этого необходимо добавить маршрут в таблицу маршрутизации:
route add -net 10.0.0.0 netmask 255.0.0.0 dev ppp1
Для того, что бы маршрут добавлялся автоматически нужно добавить в /etc/ppp/ip-up строки:
if [ $4 = "ХХХ.ХХХ.ХХХ.ХХХ" ]; then
route add -net 10.0.0.0/8 $1
fi
где вместо ХХХ.XXX.XXX.XXX вписываем свой локальный IP-адрес.
Убедитесь, что в /etc/resolv.conf указан адрес DNS-сервера.
nameserver 10.0.0.10
Вуаля!
Команды управления соединениями:
poff d-net - отключить соединение "d-net" pon d-net - подключить соединение "d-net" plog - статус подключения killall pppd - жестоко убить все подключения (не рекомендуется, будьте гуманны)
Подробнее некоторые моменты освещены будут позже, пока читаем
man route man ifconfig шаблоны конфигов и комменты в конфигах

