Помогите решить такую проблему:
есть два gif-интерфейса
gif0: flags=8151<UP,POINTOPOINT,RUNNING,PROMISC,MULTICAST> mtu 1500
tunnel inet 10.106.0.64 --> 10.0.1.45
inet 212.101.103.46 --> 212.101.103.45 netmask 0xffffff00
gif1: flags=8151<UP,POINTOPOINT,RUNNING,PROMISC,MULTICAST> mtu 1500
tunnel inet 10.106.0.65 --> 10.0.1.45
inet 212.101.103.48 --> 212.101.103.47 netmask 0xffffff00
по gif0 - должна бежать Украина
по gif1 - весь мир
в таблице маршрутизации имеем:
root# netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 212.101.103.47 UGSc 1 13543 gif1
10 10.106.1.71 UGSc 1 185589 de0
10.100/23 link#1 UC 8 0 de0
10.106.0.61 00:80:48:e9:13:c9 UHLW 5 712 de0 1182
10.106.0.65/32 link#1 UC 0 0 de0
62.16/19 212.101.103.45 UGSc 0 0 gif0
62.64.64/18 212.101.103.45 UGSc 0 0 gif0
****SKIPED****
212.101.103.45 212.101.103.46 UH 737 1620 gif0
212.101.103.47 212.101.103.48 UH 0 492 gif1
запускаю два NATа
/sbin/natd -n gif0
/sbin/natd -n gif1 -p 8672
в ipfw добавил
01000 divert 8672 ip from any to 212.111.203.38 via gif1
01001 divert 8668 ip from any to 212.111.203.36 via gif0
01010 divert 8672 ip from 192.168.0.0/16 to any
01011 divert 8668 ip from 192.168.0.0/16 to any
60000 allow ip from any to any
65535 deny ip from any to any
Однако чувствую что 01010 и 01011 не могут правильно работать. Т.е сейчас мир ходит через gif1, запросы на Украину идут через gif0, а возвращаются на gif1. Получается, что на выходе пакет не проходит через какое-то правило и не заворачивается в NAT для обработки и перепрописания заголовка поэтому и возвращается на дефаулт gif ?!
На серваке все нормально работает, т.е в провайдере проблемы нет, проблема локальная. Я раздаю Инет через VPN.
А теперь вопрос собственно: как мне правильно заварачивать все подсети, что в таблице маршрутизации на gif0(Украину). Подскажите, а лучше напишите, какие правила я должен прописать в ipfw ?!