Для мониторинга и управления расходом трафика собрал из старого хлама компьютер. Схема получилась такая:[Local network switch] <-> [eth1-(Bridge_PC)-eth2] <-> [LAN-(Router)-WAN] <-> internet
Интерфейсы eth1 и eth2 объединены в бридж br0. Подразумевается, что весь трафик проходящий между eth1 и eth2 будет считаться и при перерасходе трафика, особо активным пользователям, автоматически будет перекрываться кислород.
В нашей локальной сети есть еще альтернативный шлюз в инет - Йотовский usb свисток. Возникла идея - воткнуть свисток в Bridge_PC и перенаправлять туда часть трафика, а так же весь трафик пользователей кто исчерпал свой лимит.
В итоге получился Bridge_PC с интерфейсами:
[eth1] - смотрит в локалку
[eth2] - смотрит в LAN порт роутера
[wimax0] - смотрит в инет через Yota
[br0] - интерфейс бриджа
PS: OS Debian 5.0
-----------------
День провозился с iptables -t nat, но так и не получилось.
iptables -t nat -A POSTROUTING -o br0 -j SNAT -to-source xxx.xxx.xxx.xxx не увенчались успехом, да и не понятно как динамически подставлять адрес с wimax0
Сегодня решил попробовать NATить с помощью ebtables, но результат тоже нулевой. Добавил wimax0 в br0, пытался просто перенаправлять всем входящим пакетам адрес с mac:eth1 на mac:wimax0, но увы.
Всвсязи с этим у меня возникло сильное подозрение что я выбрал не тот инструмент. Или использую не весь потенциал. Просмотрел кучу доков, манов и примеров но задачу так и не решил.
Еще насторожило упоминание о перекомпиляции ядра, но большинство этих документов датируются 2002-2005 годом. Ядро я не пересобирал, sysctl forward ip включен. Может всетаки что-то в настройках ядра не так?
Ну и, собственно, вопросы:
1. Можно-ли перенаправлять пакеты с bridge интерфейсов на другие?
2. Можно-ли в iptables менять у IP пакета адрес следующего хопа как, например, в ipfw?
3. Для использования nat в iptables и ebtables нужно-ли пересобирать ядро, в Debian 5?
4. Как NATить на интерфейс с динамическим адресом, на сколько я понял SNAT принимает только IP адрес в качестве параметра.