Коллега, приветствую! Я немного покапитаню, добавлю комментариев в ваш скрипт,
чтобы вы понимали логику и мы говорили на одном языке:#!/bin/sh
#Описываем переменные первого интерфейса и его подсеть
IF1=eth0
IP1=192.168.2.1
P1=192.168.2.1
P1_NET=192.168.2.0/24
#Аналогично для второго (но влоб это сделать нельзя, потому достаём всё динамически через grep)
IF2=ppp0
IP2=`ip address show | grep ppp0 | sed '1d' | awk '{print $2}'`
P2=`ip route show dev ppp0 | awk '/r/ { print $1 }'`
P2_NET=`ip route show dev ppp0 | awk '/r/ { print $1 }'`/32
#Создаём первую таблицу маршрутизации
ip route add $P1_NET dev $IF1 src $IP1 table zyxel
#задаём для неё шлюз по умолчанию
ip route add default via $P1 table zyxel
#Аналогично со второй
ip route add $P2_NET dev $IF2 src $IP2 table beeline
ip route add default via $P2 table beeline
#Задаём два правила для ответа на входящий трафик, откуда пришёл, туда и ответить
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2
#задаём правило трафика по-умолчанию (сами закомментили?)
#ip route add default via $P1
#дополнительно говорим, что при трафик от айпи интерфейса, ответить с использование соотв. таблиц (в первую очередь для для DNAT)
ip rule add from $IP1 table zyxel
ip rule add from $IP2 table beeline
#Определяем веса таблиц, которые мы создали и говорим что их нуджно использовать после основной (в которой у нас по идее пусто)
ip route add default scope global nexthop via $P1 dev $IF1 weight 1 nexthop via $P2 dev $IF2 weight 1
Собственно, что показалось странным (и возможно ошибочным)
1. Нет маскарадинга, для трафика. В случае с зикселем он вам, скорее всего, не нужен, а вот с модемом без этого точно не заработает
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -s $P1_NET -o $IF2 -j MASQUERADE
2. Зачем закоментили маршрут по-умолчанию в скрипте?
#ip route add default via $P1
снимите, проверьте
3. После выполнения скрипта - пингуйте шлюзы по умолчанию (ifconfig вам их покажет), а так же смотрите вывод route - там должны быть видны две таблицы маршрутизации и маршруты для всего и вся.