Статья последний раз была обновлена 04.03.2023
Возникла необходимость настроить заново роутер используя linux. В качестве sandbox’a была взята достаточно мощная под эти нужды машинка:
Celeron 2.3 Ghz512 DDR2 RAM110 GB HDD
Задача: необходимо раздавать интернеты. Учета нам не надо (по крайней мере сейчас. Если надо будет смотреть нагрузку — поставлю Nagios). Необходимо просто организовать сервер, который имел бы на борту dhcp, apache для работы/учебы/собственных проектов (настройка описываться не будет), samba (настройка описываться не будет) и igmpproxy для смотрения IP-TV. IP адрес мы получаем напрямую от провайдера — никаких VPN, L2TP и прочее здесь рассматриваться не будет.
Буду учитывать, что у вас уже стоит RPM подобная ОС (например CentOS или RHL) и исходя из этого пути до некоторых скриптов могут различаться. Я выбрал CentOS как одну из самых защищенных ОС (не ради холивара сказано).Итак. Сначала настроим dhcpd, чтобы он раздавал ip адреса всем устройствам подключенным к роутеру.Конфиг dhcpd:
Если хотите сделать dhcp lease (выдавать всегда один и тот же ip адрес) то создайте каждому из привязанных компьютеров отдельную директиву host. Роутер у меня в lan смотрит с ip адресом 192.168.0.15. В wan с ipv4 адресом, который выдается провайдером и статичен.
Теперь настроим статические ip адреса для устройств.Устройства у меня следующие:
eth1 — внешний (wan) интерфейс
eth0 — внутренний (lan) интерфейсИсходя из этого настройки для eth1 такие:
А для eth0 статичные:
Можем попробовать стартануть dhcpd:
Если все в порядке всем подключенным устройствам, которые получают ip адреса по dhcp должны выдаться ipшники.
Потом можем включить запуск dhcpd при старте системы.
Итак, переходим к самому главному. Настройке iptables. Весь трафик будет направляться с помощью него. Так же мы реализуем защиту от некоторых типов атак. Для того, чтобы не мудрить ничего со скриптами я пишу все вручную сразу же в файл правил iptables /etc/sysconfig/iptables.
В данной настройки с помощью PREROUTING я сделал «проброс портов» на свою рабочую станцию. Все порты, которые перечисленны мной используются для различных программ и прочего. Так же здесь реализован пропуск протокола GRE, который необходим, если с LAN машин вы собрались работать с VPN (бывает необходимость залезть в офисную сеть). Так же не забываем, в этом случае, открыть порт 1723, который используется так же для VPN.
Так же я сделал для себя правило для multicast, который у нас используется для вещания IP-TV.Так же у меня на рабочей станции есть телефония, которая работает через SIP протокол. По умолчанию работать не хотело, но после подключения модулей nf_conntrack_sip и nf_nat_sip все заработало. Подключаются модули следующим образом:
Правило -A PREROUTING -d 224.0.0.0/240.0.0.0 -p udp -j TTL —ttl-inc 1 выставляет правильные TTL для пакетов мультикаста. По умолчанию IP-TV работать не хотело, даже когда я настроил igmpproxy. После установки этого правила все заработало.
Итак, переходим к последнему пункту — настройки igmpproxy.
Здесь все пошагово:Подключим необходимые репозитории:Для i386 архитектуры:1. Устанавливаем epel репозиторий.
2. Устанавливаем CentALT репозиторий.
Для x86_64 архитектуры:
1. Устанавливаем epel репозиторий.
2. Устанавливаем CentALT репозиторий.
Установим igmpproxy:
Конфиг igmpproxy:
Запускаем imgpproxy и смотрим IP-TV.
Все, на данном настройка сервера закончена.
Кстати, данная конфигурация идеально работает с IP-TV Электронного Города в Новосибирске. По крайней мере на моей STB IP-TV показывает идеально + данная конфигурация отлично справляется с нагрузкой в 3 компьютера, которые смотрят IP-TV в HDTV качестве (поток порядка 15-20 Мбит на один канал). В локальной P2P скорость теперь такая, как будто бы я подключен к сети напрямую (10-12 мегабайт/сек) против 4-5 на Asus WL-520GU, который сегодня, к сожалению, погиб в неравной борьбе с чистящей жидкостью, которую на неё уронила кошка. Подключив гигабитный свитч, поставив гигабитную сетевку можно достигнуть, наконец, скоростей в домашней сети.
Если кто-то нашел какие-то ошибки — пишите в комментариях.
- Как узнать IP-адрес по MAC-адресу - 07.04.2023
- Пинг проходит, а страницы в браузере не открываются - 07.04.2023
- Что если сайт пингуется «извне», но не открывается из под «локалки»? - 07.04.2023