Примеры с настройкой для 2 провайдеров я уже видел, но у меня случай посложнее.
Сейчас вся система работает на FreeBSD, но планируется все перенести на Cisco 2821, которая уже месяца два как пылится в стойке.
Конфигурация такая:
1 канал - АДСЛ, PPPoE - через него ходит весь трафик, провом выдается статический ИП.
2 канал на второго провайдера - имеется статический ИП, без авторизации. Сосать трафик отсюда нельзя, но нужно отвечать на коннекты по SMTP, HTTP, FTP, DNS если они будут поступать через этот канал. Причем коннекты могут быть не только из подсети этого провайдера.
3 GRE туннель на циску второго провайдера, через который можно попасть в домашнюю сеть. Из домашней сети могут подключаться к моему PPTP-серверу и FTP-серверу.
4 эзернетный интерфейс к которому подключена внутренняя сеть конторы и сервак на котором почтовик, ФТП, ХТТП, ДНС и пр...на 1,2,3 каналах нужен NAT.
Переключиться нужно максимально гладко, поэтому потушить все и экспериментировать несколько дней возможности нет, хотя циска сейчас не задействована и без втыкания каналов на ней можно делать все что угодно.
Конфиг, в котором сделана маршрутизация и NATы я сделал (возможно, что сделал криво), но он не учитывает подключения из вне. Вот он:
int gi0/0
descr Internal LAN
ip addr 10.119.0.201 255.255.255.0
no ip directed-broadcast
ip nat inside
!
int fa0/0/0
descr Default Provider
pppoe enable
pppoe-client dial-pool-number 1
no cdp enable
spanning-tree portfast
!
int fa0/0/1
descr Neighbor Provider
ip addr 193.xxx.243.114 255.255.255.252
ip nat outside
!
int Tunnel0
descr Home Network
ip address 193.xxx.242.254 255.255.255.252
ip nat outside
tunnel source 193.xxx.243.114
tunnel destination 193.xxx.240.22
!
int Dialer1
ip address 82.yyy.112.230 255.255.255.255
ip mtu 1492
ip virtual-reassembly
encapsulation ppp
no ip mroute-cache
no cdp enable
dialer pool 1
dialer-group 1
ip nat outside
ppp auth pap callout
ppp pap sent-username <user> password 0 <password>
!
ip route 10.79.0.0 255.255.0.0 Tunnel0
ip route 193.xxx.240.0 255.255.252.0 fa0/1
ip route 0.0.0.0 0.0.0.0 Dialer1
access-list 200 deny any 193.xxx.240.0 0.0.3.255
access-list 200 deny any 10.79.0.0 0.0.255.255
access-list 200 permit 10.119.0.0 0.0.255.255 any
access-list 300 permit 10.119.0.0 0.0.255.255 193.xxx.240.0 0.0.3.255
access-list 400 permit 10.119.0.0 0.0.255.255 10.79.0.0 0.0.255.255
ip nat inside source list 200 interface Dialer1 overload
ip nat inside source list 300 interface fa0/1 overload
ip nat inside source list 400 interface Tunnel0 overload
И вот как теперь сделать, чтобы если к примеру пакеты на 82.yyy.112.230 25 переадресовывались на 10.119.0.1 25 и ответы уходили через 82.yyy.112.230 (int Dialer1), а пакеты на 193.xxx.243.114 25 тоже переадресовывались на 10.119.0.1 25, но ответы шли через 193.xxx.243.114 (int fa0/0/1)? ip nat source тут не подходит, ибо он всегда будет заворачивать ответы в один канал.
Сейчас у меня все на одном серваке под FreeBSD, но если сейчас все перенести на циску, то прийдется наверно разные порты на почтовике делать для разных внешних адресов, или нет?. И опять-же, на почтовике может и не нужно будет это делать, ибо он TCP использует, а вот как быть с DNS-ом?