машина linux
2 интерфеса физических
1 eth0
2 eth1
на eth0 несколько алиасов (белые ip) допустим есть
eth0 x.x.x.x/248 со шлюзом xgw.xgw.xgw.xgw
и
eth0:1 y.y.y.y/248 со шлюзом ygw.ygw.ygw.ygw
на eth1 192.168.0.1/16
также поднят pppoe на интерфейсе eth1 адрес pppoe сервера 172,16,0,1
все замечательно работает, клиент в инет ходят через SNAT
Дальше...
есть 2 таблицы маршрутизаци. table 101 и table 102.
в 101 прописано
Код: Выделить всё
ip route add default via xgw.xgw.xgw.xgw table 101в 102 прописано
Код: Выделить всё
ip route add default via ygw.ygw.ygw.ygw 102при подключении пользователя рррое с ip 10.10.10.10 прописывается правило
Код: Выделить всё
ip rule add from 10.10.10.10 to 0/0 table 101 pref 100а допутим следующий 10.10.10.11 прописывается правило
Код: Выделить всё
ip rule add from 10.10.10.11 to 0/0 table 102 pref 100т.е. один пользователь идет через один шлюз другой через другой...но вот проблема такая вылезла
если этих правил не добавлять то они (пользователи) друг между другом видятся, а после добавления они естественно начинают слать пакеты через шлюзы в таблицах 101 и 102.
так вот как делать чтобы эти пользователи виделись между собой и ходили в инет по этим таблицам?
при подключении у юзера ip 10.10.10.10/32 и 10.10.10.11/32 т.е. раз маска 32 то какие бы пакеты они не слали, все пойдет через их шлюз.
если в таблицы правила не добавлять то traccert с 10.10.10.10 до 10.10.10.11 такой
172.16.0.1
10.10.10.11
ну а если добавить то соответственно
172.16.0.1.
xgw.xgw.xgw.xgw
.......ну и тут дальше в инет побежал...
но вот еще один момент... если добавить правило
Код: Выделить всё
ip rule add from 10.10.10.0/24 to 10.10.10.0/24 table 99 pref 80
ip route add 10.10.10.0/24 via 10.10.10.11 table 99то они начинают видеться.
если посмотреть кэшь маршрутов когда все работает то вот так
Код: Выделить всё
10.10.10.11 from 10.10.10.10 dev ppp62 src 172.16.0.1
10.10.10.10 from 10.10.10.11 dev ppp47 src 172.16.0.1