Помогите пожалуйста, бьюсь третий день. Статьи по настройке перечитал вдоль и поперек и на русском и на английском, должно работать и не работает.Суть проблемы: Циска сквид видит, перенаправляет на него трафик в GRE, iptable перенаправляет на порт сквида, сквид отвечает, маршрут перенаправляет ответ в туннель.
tcpdump-ом снимаю трафик, SYN пакет приходит на сквид, тот отправляет SYN/ACK - этот пакет уходит в тунель, но на юзерскую машину не приходит:
Это отправляет клиент:
IP 172.25.2.253.46960 > 87.242.72.40.80: S 4045526194:4045526194(0) win 14600 <mss 1460,[|tcp]Это на сквиде:
# tcpdump -n -i wccp1
IP 172.25.2.253.46960 > 87.242.72.40.80: Flags [S], seq 4045526194, win 14600, options [mss 1460,sackOK,TS val 252234630 ecr 0,nop,wscale 7], length 0
IP 87.242.72.40.80 > 172.25.2.253.46960: Flags [S.], seq 130668226, ack 4045526195, win 5600, options [mss 1412,sackOK,TS val 172865795 ecr 252234630,nop,wscale 5], length 0Но клиент ответ не получает и пытается послать SYN пакет снова.
IP 172.25.2.253.46960 > 87.242.72.40.80: S 4045526194:4045526194(0) win 14600 <mss 1460,[|tcp]Подопытный веб-сервер естественно работает и открывается, при отключении wccp на циске. Первоначально начинал настраивать wccp_v2 и squid 3 - не работало, поэтому стал максимально упрощать настройки, до сих пор не понимаю, почему не работает. IOS пробовал тоже разные версии 12.4, никаких отличий.
Конфигурацию максимально упростил:
Squid (172.25.0.52/22) User (172.25.2.253/22)
\----------------/ это локалка 172.25.0.0/22
\
[ Fa 0/0 172.25.2.250 255.255.252.0 ]
Cisco
[Vlan 11 (global ip)] —--->> InetНастройки Squid-а дефолтные изменил только:
http_port 3128 transparent
далее создал туннель (Debian linux):
ip tunnel add wccp1 mode gre remote 172.25.2.250 local 172.25.0.52 dev eth0
ip addr add 172.25.0.52 dev wccp1
ip link set wccp1 up
sysctl -w net.ipv4.conf.wccp1.rp_filter=0
sysctl -w net.ipv4.conf.eth0.rp_filter=0# iptunnel
gre0: gre/ip remote any local any ttl inherit nopmtudisc
wccp1: gre/ip remote 172.25.2.250 local 172.25.0.52 dev eth0 ttl inherit# ifconfig
eth0 Link encap:Ethernet HWaddr 00:15:5d:00:21:13
inet addr:172.25.0.52 Bcast:172.25.3.255 Mask:255.255.252.0
inet6 addr: fe80::215:5dff:fe00:2113/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1476 Metric:1
RX packets:1430498 errors:0 dropped:0 overruns:0 frame:0
TX packets:8647 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:111162251 (106.0 MiB) TX bytes:1456903 (1.3 MiB)
Interrupt:9 Base address:0xec00wccp1 Link encap:UNSPEC HWaddr AC-19-00-34-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:172.25.0.52 P-t-P:172.25.0.52 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MTU:1452 Metric:1
RX packets:40 errors:0 dropped:0 overruns:0 frame:0
TX packets:55 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2200 (2.1 KiB) TX bytes:16252 (15.8 KiB)# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.25.2.253 0.0.0.0 255.255.255.255 UH 0 0 0 wccp1
172.25.0.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
0.0.0.0 172.25.2.250 0.0.0.0 UG 0 0 0 eth0
# iptables -L -t nat -v
Chain PREROUTING (policy ACCEPT 6263 packets, 799K bytes)
pkts bytes target prot opt in out source destination
5 300 REDIRECT tcp -- wccp1 any anywhere anywhere tcp dpt:www redir ports 3128Остальные цепочки пустые на всех ACCEPT
Конфиг циски:
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname **
!
boot-start-marker
boot-end-marker
!
enable secret 5 ***********************
enable password *********************
!
no aaa new-model
no ip cef
!
ip wccp version 1
ip wccp web-cache redirect-list 102
!
!
ip inspect name default icmp router-traffic
ip inspect name default tcp router-traffic
ip inspect name default udp router-traffic
ip auth-proxy max-nodata-conns 3
ip admission max-nodata-conns 3
!
!
interface FastEthernet0/0
ip address 172.25.2.250 255.255.252.0
ip access-group 100 in
ip inspect default out
ip nat inside
speed auto
full-duplex
!
interface Serial0/0
no ip address
no ip route-cache
shutdown
!
interface Serial0/1
no ip address
no ip route-cache
shutdown
!
interface FastEthernet1/1
switchport access vlan 11
no cdp enable
!
interface FastEthernet1/2
shutdown
!
interface FastEthernet1/3
shutdown
!
interface FastEthernet1/4
shutdown
!
interface Vlan1
no ip address
no ip route-cache
shutdown
!
interface Vlan11
bandwidth 8192
ip address {наружный айпишник} 255.255.255.252
ip access-group 101 in
ip wccp web-cache redirect out
ip inspect default out
ip nat outside
!
ip forward-protocol nd
ip route 0.0.0.0 0.0.0.0 {айпишник провайдера}
ip route 10.0.0.0 255.0.0.0 Null0
ip route 172.16.0.0 255.240.0.0 Null0
ip route 192.168.0.0 255.255.0.0 Null0
!
no ip http server
no ip http secure-server
ip nat inside source list 1 interface Vlan11 overload
!
access-list 1 remark Nat translation
access-list 1 permit 172.25.2.253
access-list 1 permit 172.25.0.0 0.0.0.255
access-list 1 deny any
access-list 100 remark FastEthernet
access-list 100 permit ip host 172.25.2.253 any
access-list 100 permit ip 172.25.0.48 0.0.0.7 any
access-list 100 remark DNS lockup All
access-list 100 permit tcp 172.25.0.0 0.0.0.3 any eq domain
access-list 100 permit udp 172.25.0.0 0.0.0.3 any eq domain
access-list 100 deny ip any any
access-list 101 deny ip any any
access-list 102 remark WCCP redirect
access-list 102 permit tcp host 172.25.2.253 host 87.242.72.40 eq www
access-list 102 deny ip any any
!
control-plane
!
line con 0
line aux 0
line vty 0 4
password ****
login
!
endНа циске:
#sh ip wccp
Global WCCP information:
Router information:
Router Identifier: 172.25.2.250
Protocol Version: 1.0Service Identifier: web-cache
Number of Service Group Clients: 1
Number of Service Group Routers: 1
Total Packets s/w Redirected: 0
Process: 0
Fast: 0
CEF: 0
Redirect access-list: 102
Total Packets Denied Redirect: 0
Total Packets Unassigned: 0
Group access-list: -none-
Total Messages Denied to Group: 0
Total Authentication failures: 0#sh ip wccp web-cache detail
WCCP Client information:
WCCP Client ID: 172.25.0.52
Protocol Version: 0.4
State: Usable
Initial Hash Info: 00000000000000000000000000000000
00000000000000000000000000000000
Assigned Hash Info: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Hash Allotment: 256 (100.00%)
Packets s/w Redirected: 0
Connect Time: 00:02:01После запроса с клиента счетчики, естественно, растут. Логировал входящие пакеты на fa 0/0 - пакеты GRE с сервера сквида в циску приходят. Маршрут на циске есть, по идее циска должна снять gre-оболочку с пакета и отправить клиенту, но этого не происходит, не могу понять почему.
Проблему решил, выяснил две вещи, для меня не очевидные:По поводу маршрутизации:
> # route -n
> Kernel IP routing table
> Destination Gateway Genmask Flags Metric Ref Use Iface
> 172.25.2.253 0.0.0.0 255.255.255.255 UH 0 0 0 wccp1Ошибка в том, что обратный траффик с кеша не нужно запихивать обратно в туннель, он должен идти напрямик по локалке.
Попутно выяснилась вторая проблема, на внутреннем интерфейсе не должно быть CBAC, иначе прозрачное кеширование не будет работать, так так трафик идет асимметрично, то соединение никогда не будет считаться установленным.