Проблема с настройкой маршрутизации на два провайдера + DMZ
Привет.
Что необходимо:
Корректная работа с 2мя провами, т.е. входящие пакеты с сети одного
прова на интерфейс другого уходили с него же, а также для экономии
трафика исходящие новый сессии чтобы уходили с соответствующих
интерфейсов в зависимости от сети провайдера.
Также чтобы DMZ было доступно с обоих провов и глобала.
В чём проблема:
Проблема с DMZ, при обращении к серверам находящимся в нём (ping из сети
любого из провайдеров) пакеты идут какое-то время, а после этого затык.
Смотрю пакеты tcpdump'ом на интерфесах и на роутере и на том сервере что
пингую, видно что icmp реквесты приходят, а ответов назад нет.
Связь полностью затыкается до того компьютера который пингую, не только
icmp, останавливаю, через несколько секунд пробую, работает и снова
затык. В DMZ серваки стоят как с Sargeм так и 1ин есть с AltLinux Master
2.2, т.е. ядра разные.
-------------------------------
ping 83.246.136.37
PING 83.246.136.37 (83.246.136.37) 56(84) bytes of data.
64 bytes from 83.246.136.37: icmp_seq=1 ttl=56 time=32.8 ms
64 bytes from 83.246.136.37: icmp_seq=2 ttl=56 time=25.7 ms
64 bytes from 83.246.136.37: icmp_seq=3 ttl=56 time=26.7 ms
64 bytes from 83.246.136.37: icmp_seq=4 ttl=56 time=26.2 ms
64 bytes from 83.246.136.37: icmp_seq=5 ttl=56 time=25.2 ms
64 bytes from 83.246.136.37: icmp_seq=6 ttl=56 time=25.1 ms
64 bytes from 83.246.136.37: icmp_seq=7 ttl=56 time=27.3 ms
64 bytes from 83.246.136.37: icmp_seq=8 ttl=56 time=25.5 ms
--- 83.246.136.37 ping statistics ---
12 packets transmitted, 8 received, 33% packet loss, time 11005ms
rtt min/avg/max/mdev = 25.160/26.855/32.816/2.368 ms
-------------------------------
tcpdump -i eth0 -n -p icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
12:41:51.438400 IP 212.94.116.178 > 83.246.136.37: icmp 64: echo request
seq 1
12:41:51.438608 IP 83.246.136.37 > 212.94.116.178: icmp 64: echo reply seq 1
12:41:52.429804 IP 212.94.116.178 > 83.246.136.37: icmp 64: echo request
seq 2
12:41:52.429847 IP 83.246.136.37 > 212.94.116.178: icmp 64: echo reply seq 2
12:41:53.433217 IP 212.94.116.178 > 83.246.136.37: icmp 64: echo request
seq 3
12:41:53.433237 IP 83.246.136.37 > 212.94.116.178: icmp 64: echo reply seq 3
12:41:54.431985 IP 212.94.116.178 > 83.246.136.37: icmp 64: echo request
seq 4
12:41:54.432008 IP 83.246.136.37 > 212.94.116.178: icmp 64: echo reply seq 4
12:41:55.434213 IP 212.94.116.178 > 83.246.136.37: icmp 64: echo request
seq 5
12:41:55.434231 IP 83.246.136.37 > 212.94.116.178: icmp 64: echo reply seq 5
12:41:56.434667 IP 212.94.116.178 > 83.246.136.37: icmp 64: echo request
seq 6
12:41:56.434693 IP 83.246.136.37 > 212.94.116.178: icmp 64: echo reply seq 6
12:41:57.437842 IP 212.94.116.178 > 83.246.136.37: icmp 64: echo request
seq 7
12:41:57.437860 IP 83.246.136.37 > 212.94.116.178: icmp 64: echo reply seq 7
12:41:58.437086 IP 212.94.116.178 > 83.246.136.37: icmp 64: echo request
seq 8
12:41:58.437104 IP 83.246.136.37 > 212.94.116.178: icmp 64: echo reply seq 8
12:41:59.442311 IP 212.94.116.178 > 83.246.136.37: icmp 64: echo request
seq 9
12:42:00.442036 IP 212.94.116.178 > 83.246.136.37: icmp 64: echo request
seq 10
12:42:01.438058 IP 212.94.116.178 > 83.246.136.37: icmp 64: echo request
seq 11
12:42:02.437591 IP 212.94.116.178 > 83.246.136.37: icmp 64: echo request
seq 12
20 packets captured
20 packets received by filter
0 packets dropped by kernel
-----------------------------------------
Что имеется:
Роутер:
gw1:/# uname -a
Linux gw1.rscenter 2.6.17-2-k7 #1 SMP Fri Aug 25 00:06:28 UTC 2006 i686
GNU/Linux
Интерфейсы:
1-провайдер Интелби.
eth0 Link encap:Ethernet HWaddr 00:11:2F:CF:74:71
inet addr:83.246.130.141 Bcast:83.246.130.255 Mask:255.255.255.0
2-провайдер Телеком.
eth3 Link encap:Ethernet HWaddr 00:02:B3:CD:58:8F
inet addr:212.94.107.189 Bcast:212.94.107.255 Mask:255.255.255.0
DMZ.
eth2 Link encap:Ethernet HWaddr 00:02:B3:CD:59:48
inet addr:83.246.136.33 Bcast:83.246.136.47 Mask:255.255.255.240
Как настроено:
/etc/network/interfaces
---
auto eth0
iface eth0 inet static
address 83.246.130.141
netmask 255.255.255.0
network 83.246.130.0
broadcast 83.246.130.255
## gateway 83.246.130.2
post-up ip route add 83.246.130.2/32 dev eth0 src 83.246.130.141
table uplink1
post-up ip route add default via 83.246.130.2 table uplink1
post-up ip rule add from 83.246.130.141 table uplink1
post-up ip route add default via 83.246.130.2
post-down ip rule del from 83.246.130.141 table uplink1
auto eth2
iface eth2 inet static
address 83.246.136.33
netmask 255.255.255.240
network 83.246.136.32
broadcast 83.246.136.47
post-up ip route add 83.246.130.2/32 dev eth2 src 83.246.136.33
table uplink3
post-up ip route add default via 83.246.130.2 table uplink3
post-up ip rule add from 83.246.136.33 table uplink3
post-up ip rule add from 83.246.136.32/28 table uplink3
post-down ip rule del from 83.246.136.33 table uplink3
post-down ip rule del from 83.246.136.32/28 table uplink3
auto eth3
iface eth3 inet static
address 212.94.107.189
netmask 255.255.255.0
network 212.94.107.0
broadcast 212.94.107.255
## gateway 212.94.107.1
post-up ip route add 212.94.107.1/32 dev eth3 src 212.94.107.189
table uplink2
post-up ip route add default via 212.94.107.1 table uplink2
post-up ip rule add from 212.94.107.189 table uplink2
post-up ip route add 212.94.96.0/19 dev eth3 src 212.94.107.189
post-up ip route add 194.150.128.0/19 dev eth3 src 212.94.107.189
post-down ip rule del from 212.94.107.189 table uplink2
----------------
/etc/network/options
ip_forward=yes
spoofprotect=yes
syncookies=no
В логах заметил такую штуку:
1 Time(s): audit(1161252914.637:25): dev=eth0 prom=0 old_prom=256 auid=4294967295
1 Time(s): audit(1161252914.649:26): dev=eth0 prom=256 old_prom=0 auid=4294967295
1 Time(s): audit(1161252944.795:27): dev=eth0 prom=0 old_prom=256 auid=4294967295
1 Time(s): audit(1161252944.807:28): dev=eth0 prom=256 old_prom=0 auid=4294967295
1 Time(s): audit(1161256569.898:29): dev=eth2 prom=256 old_prom=0 auid=4294967295
1 Time(s): audit(1161256595.123:30): dev=eth2 prom=0 old_prom=256 auid=4294967295
1 Time(s): audit(1161256609.444:31): dev=eth3 prom=256 old_prom=0 auid=4294967295
1 Time(s): audit(1161256630.230:32): dev=eth3 prom=0 old_prom=256 auid=4294967295
1 Time(s): audit(1161256656.123:33): dev=eth2 prom=256 old_prom=0 auid=4294967295
1 Time(s): audit(1161256673.184:34): dev=eth2 prom=0 old_prom=256 auid=4294967295
...
-------------------
Лишее убрал
gw1:/etc/network# ip route
83.246.136.32/28 dev eth2 proto kernel scope link src 83.246.136.33
83.246.130.0/24 dev eth0 proto kernel scope link src 83.246.130.141
212.94.107.0/24 dev eth3 proto kernel scope link src 212.94.107.189
212.94.96.0/19 dev eth3 scope link src 212.94.107.189
194.150.128.0/19 dev eth3 scope link src 212.94.107.189
default via 83.246.130.2 dev eth0
--------------------
gw1:/etc/network# ip rule show
0: from all lookup local
32762: from 212.94.107.189 lookup uplink2
32763: from 83.246.136.32/28 lookup uplink3
32764: from 83.246.136.33 lookup uplink3
32765: from 83.246.130.141 lookup uplink1
32766: from all lookup main
32767: from all lookup default
-------------------
Пробовал по разному менять роутинг для DMZ один фиг или не работает или
с затыком. :(
Делалось всё по этим инструкциям:
http://www.debian-administration.org/articles/377
http://www.opennet.ru/docs/RUS/LARTC/x348.html
--
Всего наилучшего.
СисАдмин ЗАО "Региональный сервисный центр".
Reply to: