Linux провайдер сервер
Давно провайдер так не тупил. Сделал Интернет через сервер через модем Мегафона. Должен стоять usb_modeswitch, который по-умолчанию почему-то не стоял, хотя весит килобайт 100. Был приятно удивлён что по-умолчанию стоят утилиты для настройки и запуска ppp. Сделал всё руками, так как решение временное.
sudo pppconfig
настроил ppp, соединение назвал Megafon4G. Настраивается ppp интуитивно. Логин/пароль у мегафона gdata, номер телефона *99#, а протокол CHAP.
Вставляю модем, usb_modeswitch делает своё дело (это можно делать и руками, через AT-команды, но мне лень было заморачиваться), потом врубаю ppp:
pon Megafon4G
pon начинает звонить по нами сконфигурированному выше соединению (имя соединения пишите своё). Для подключения нужно быть в группе dip.
Успешно дозванивается, но Интернета нет, так как сервер по-умолчанию ищет Интернет в локальной сети :-/
Далее всё тоже руками. Убрал дефолтный роутинг:
sudo route del 0.0.0.0
Вбил значения так, как это делает нетворк-менеджер:
sudo route add -net 10.64.64.64 netmask 255.255.255.255 dev ppp0
sudo route add -net 0.0.0.0 gw 10.64.64.64 netmask 0.0.0.0 dev ppp0
Вот сервер и в Интернете. Но только он, остальная сеть пока сосёт чупа-чупс.
Ставлю dnsmasq, пишу конфиг /etc/dnsmasq.d/server.conf
interface=eth0
dhcp-lease-max=56
dhcp-option=3,192.168.0.101
dhcp-range=192.168.0.150,192.168.0.199,255.255.255.0,1440m
dhcp-host=a1:18:4c:80:39:be,server,192.168.0.101,3000m
ну и так далее. я его прямо с роутера списал, тут главное суть. А суть в том, что interface=eth0 это наш локальный сетевой интерфейс, через который сервер подключён к домашней сети, dhcp-option=3,192.168.0.101 — gateway который будет разослан по всей сети через dhcp, указывающий на наш сервер. На роутере я поставил перенаправление dhcp сюда, хотя наверное проще было либо отключить его, либо вписать временно эти настройки там.
Стартуем dnsmasq, видим фигу конечно же, потому что надо ещё настроить перенаправление трафика. Волшебные команды:
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
пропуск трафика из локальной сети.
echo 1 > /proc/sys/net/ipv4/ip_forward
разрешить ip_forward. Нужно выполнять от рута, я обычно делаю sudo -i.
Ну всё, все теперь сидим в Инете с компов через один Мегафон-модем, ждём починки линии. Кстати работает очень хорошо.