Добил таки маршрутизацию по источнику.
Дано: провайдер 1 подключен через ASDL модем через PPPoE. Настройки через веб интерфейс. IP адрес внешний, динамический.
Провайдер 2: ethernet, статический внешний адрес. Его сеть используется для поступа ко всему и-нету, когда не подключен провайдер 1, и для доступа к некоторым сетям, иначе.
Переводим один LAN порт в WAN:
Code:
nvram set vlan0ports="2 3 4 5*"
nvram set vlan2ports="1 5*"
nvram set vlan2hwname=et0
nvram commit
reboot
В файл post-boot заносим настройку для провайдера 2:
Code:
ifconfig vlan2 hw ether xx:xx:xx:xx:xx:xx
ifconfig vlan2 XX.XX.XX.2 netmask 255.255.255.0 up
route add -net XX.XX.XX.0 netmask 255.255.255.0 gw XX.XX.XX.1
# маршрутизация в сети, доступ в которые идет всегда через пров. 2
route add -net YYY netmask YYY gw XX.XX.XX.1
route add default gw XX.XX.XX.1 metric 20
ip route add XX.XX.XX.0/24 dev vlan2 src XX.XX.XX.2 table 2
ip route add default via XX.XX.XX.1 table 2
ip rule add from XX.XX.XX.2 table 2
где:
xx:xx:xx:xx:xx:xx MAC адрес
XX.XX.XX.2 ваш адрес
XX.XX.XX.1 шлюз провайдера
YYY - сеть, поступ к которой всегда через провайдера 2
Создаем файл /tmp/local/etc/dnsmasq.conf, который будет при загрузке дописан к /etc/dnsmasq.conf, со строками
Code:
server=xxx.xxx.xxx.xxx
server=xxx.xxx.xxx.xxx
- где xxx.xxx.xxx.xxx IP адреса DNS серверов провайдера 2.
Настройка NAT провайдера 2 и маршрутизации по источнику для провайдера 1.
В файл post-firewall заносим:
Code:
# настройка iptables провайдера 2
iptables -I INPUT 6 -i vlan2 -m state --state NEW -j SECURITY
iptables -I FORWARD 6 -o vlan2 ! -i br0 -j DROP
iptables -t nat -A POSTROUTING -o vlan2 ! -s XX.XX.XX.2 -j MASQUERADE
ip rule list|grep "lookup 1"|awk '{system("ip rule del from "$3" table 1")}'
ip route flush table 1
ip route list table main|grep ppp0|awk '{system("ip route add "$0" table 1")}'
ip rule add from $2 table 1
в начале удаляется правило, которое могло остаться от предыдущего соединения и очищается таблица 1. Затем копируется из таблицы main строки маршрутизации касающиеся ppp0 и устанавливается правило использовать таблицу 1 для соединений от провайдера 1.
После этого с роутером можно соединяться извне по любому из двух адресов, а доступ изнутри независимо регулировать основной таблицей маршрутизации.