>>- primary mx (серый ip);
>>- secondary mx (серый ip);
>Вариантов два, либо почта используется cугубо внутри организации, либо ошибка в постановке
>вопроса. Зачем для primary и secondary mx прописаны серые адреса? быть
>может прописаны-то нормальные адреса, но на маршрутизаторе делается проброс на серые? в dns, естественно адреса белые.
я имел ввиду, что сами машинки находятся в локальной сети.
связь с внешним миром обеспечивается на шлюзе через dnat и snat
>>Маршруты ко всем этим сетям есть.
>К которым сетям, можно уточнить и как настроена маршрутизация?
>В частности интересует default getaway(s)
на шлюзе четыре интерфеса.
eth0 - локальная сеть (серые ip)
eth1 - локальная сеть еще одной организации (серые ip)
eth2 - сеть провайдера 1 (реальный ip)
eth3 - сеть провайдера 2 (реальный ip)
маршрутизация посредствам iproute2
1)
provider_net1 - сеть первого провайдера
provider_net2 - сеть второго провайдера
real_ip1 - 1-й реальный ip шлюза
real_ip2 - 2-й реальный ip шлюза
provider_gw1 - шлюз первого провайдера
provider_gw2 - шлюз второго провайдера
/sbin/ip route show
помимо маршрутов на серые сети
.....
provider_net1 dev eth3 proto kernel scope link src real_ip1
provider_net2 dev eth2 proto kernel scope link src real_ip2
...
default via provider_gw2 dev eth2 src real_ip2
2) правила для выбора адреса источника и интерфейса
0: from all lookup local
32764: from real_ip2 lookup T2
32765: from real_ip1 lookup T1
32766: from all lookup main
32767: from all lookup default
3) таблицы T1 и T2
/sbin/ip route show table T1
provider_net1 dev eth3 scope link src real_ip1
default via provider_gw2 dev eth3
/sbin/ip route show table T2
provider_net2 dev eth2 scope link src real_ip2
default via provider_gw1 dev eth2
только что следил за dnat-нутыми пакетами - после действия dnat в prerouting пакет не появляется в forward.
если dnat не делать, в input пакеты замечательно приходят.
странно, что правило для первого провайдера работает, а для второго - нет.
смотрел настройки sysctl для двух интерфейсов - абсолютно одинаковые.
cat /etc/sysctl.conf
.....
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.icmp_echo_ignore_broadcasts = 0
net.ipv4.icmp_ignore_bogus_error_responses = 0
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_rmem=4096 87380 174760
net.core.rmem_max = 110592
net.core.rmem_default = 110592
net.ipv4.tcp_wmem = 4096 16384 131072
net.core.wmem_max = 110592
net.core.wmem_default = 110592
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.eth1.rp_filter = 1
net.ipv4.conf.eth2.rp_filter = 1
net.ipv4.conf.eth3.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.arp_filter = 1
net.ipv4.conf.eth0.arp_filter = 1
net.ipv4.conf.eth1.arp_filter = 1
net.ipv4.conf.eth2.arp_filter = 1
net.ipv4.conf.eth3.arp_filter = 1
net.ipv4.conf.default.arp_filter = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.eth0.accept_source_route = 0
net.ipv4.conf.eth1.accept_source_route = 0
net.ipv4.conf.eth2.accept_source_route = 0
net.ipv4.conf.eth3.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.eth1.accept_redirects = 0
net.ipv4.conf.eth2.accept_redirects = 0
net.ipv4.conf.eth3.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.eth0.log_martians = 1
net.ipv4.conf.eth1.log_martians = 1
net.ipv4.conf.eth2.log_martians = 1
net.ipv4.conf.eth3.log_martians = 0
net.ipv4.ip_no_pmtu_disc = 0
....
пробовал вместо dnat пробрасывать через rinetd, тогда все отлично доставляется на почтавик и обратно.
но для стройности хочется dnat сделать и для второго канала. да и странно это как-то. где протупил - не пойму :(