SQUID : Socket failure : (99) cannot assign requested adress

Forum d'assistance et d'échange sur l'installation, la configuration, et l'utilisation des système Linux et BSD. Vous pouvez y poster vos questions concernant ces systèmes d'exploitation en faisant l'effort préalable de rechercher dans le forum, dans les manuels et les documentations que la réponse n'y figure pas.

Modérateur: modos Ixus

SQUID : Socket failure : (99) cannot assign requested adress

Messagepar megs » 27 Mai 2010 11:01

rebijours, (LEnny 2.6.26-686)

voici schematiquement le contexte
Code: Tout sélectionner
10.0.0.1---10.0.0.2/TAB:ADMIN-SQUID1:8080/172.16.1.1---172.16.1.254
ROUTEUR.........ETH1.......PROXI.........ETH5............LAN CLIENT

le contexte IPTABLE
Code: Tout sélectionner
[size=85]*nat
:PREROUTING ACCEPT [264:30767]
:POSTROUTING ACCEPT [72:4698]
:OUTPUT ACCEPT [134:9652]
-A PREROUTING -s 172.16.1.0/24 -d ! 172.16.1.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
-A PREROUTING -s 172.16.1.0/24 -d ! 172.16.1.0/24 -p udp -m udp --dport 80 -j REDIRECT
-A POSTROUTING -o eth1 -j MASQUERADE
*mangle
:PREROUTING ACCEPT [3132:288828]
:INPUT ACCEPT [3132:288828]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2284:829798]
:POSTROUTING ACCEPT [2284:829798]
-A PREROUTING -s 172.16.1.0/24 -d ! 172.16.1.1/32 -j MARK --set-xmark 0x1/0xffffffff
*Filter
-A FORWARD -o eth1 -p tcp -m tcp -m multiport --sports 135,137,138,139,445,515,1433 -j DROP
-A FORWARD -o eth1 -p udp -m udp -m multiport --sports 135,137,138,139,445,515,1434 -j DROP
[/size]

voici le contexte ip route
Code: Tout sélectionner
#~/>ip route
10.0.0.0/30 dev eth1  proto kernel  scope link  src 10.0.0.2
172.16.1.0/24 dev eth5  proto kernel  scope link  src 172.16.1.1
default via 10.0.0.1 dev eth1
#~/>ip route list table ADMIN
10.0.0.0/30 dev eth1  scope link  src 10.0.0.2
172.16.3.0/24 dev eth7  scope link
172.16.1.0/24 dev eth5  scope link
default via 10.0.0.1 dev eth1

voici le contexte ip rule
Code: Tout sélectionner
0:      from all lookup local
32764:  from all fwmark 0x1 lookup ADMIN
32765:  from 10.0.0.2 lookup ADMIN
32766:  from all lookup main
32767:  from all lookup default


je cherche à imposer à squid le passage de ses requêtes http via un routeur précis. Pour cela j'ai utilisé les

options tcp_outgoing_address 10.0.0.1 ACL_CLients-net-172-16-1

avec cette config, j'ai presque réussi mon coup, MAIS Squid apparement à un probleme.

1/ en effet, du proxi, et de la machine cliente les pings locaux et vers le web (que ce soit format IP, ou DNS)

fonctionnent tres bien.

2/ par contre la consultation de page web a partir du client-172.16.1.x demeure un probleme:
Code: Tout sélectionner
ERROR
The requested URL could not be retrieved
-----------------------------------------------
While trying to retrieve the URL www.google.fr
* SOCKET FAILURE
(99) Cannot assign requested address
Squid is unable to create a tcp socket, presumably to exessive load
-------------------------------------------------
Générated by SQUID 2.7.STABLE3

et pourtant donc du client:
Code: Tout sélectionner
#~/>nslookup www.google.fr
Server:         unknown
Address:        172.16.1.1#53
Non-authoritative answer:
www.google.fr   canonical name = www.google.com.
Address: 209.85.227.104, 209.85.227.105, 209.85.227.106, 209.85.227.147, 209.85.227.99, 209.85.227.103
Aliases = www.google.com  canonical name = www.l.google.com.


ce n'est donc pas un probleme avec iptables, pas non plus avec le dns, ni la communication vers le web...

Zavez une idée d'ou ca peut venir ?
megs-------debian plantak!
megs
Matelot
Matelot
 
Messages: 4
Inscrit le: 17 Août 2004 15:15

Messagepar jdh » 27 Mai 2010 11:13

Il serait préférable d'expliquer dès le début que vous voulez utiliser une route spécifique et que vous comptez utiliser le markage des paquets.

A quoi sert la ligne :
-A PREROUTING -s 172.16.1.0/24 -d ! 172.16.1.0/24 -p udp -m udp --dport 80 -j REDIRECT


Pourquoi vos 2 tables de routage selon markage utilisent la même gateway ? (alors que vous voulez avoir 2 sorties)

Etes vous sur que le message (excessive load) ne soit pas la cause réelle ?
Si vous testez avec un wget, cela fonctione-t-il déjà ?

Une page utile sur le sujet (routage selectif) : http://irp.nain-t.net/doku.php/100iproute:start (merci Mr CALECA !).

Personnellement j'utilise une structure différente :
- un firewall à 3 pattes : LAN + WAN (1ere ligne Internet) + DMZ,
- un proxy (dédié) en DMZ avec 2 cartes dont l'une relié à une Box ADSL,
- un certain soin dans les routages,
- l'utilisation de la détection auto de proxy.
Et, pire, cela fonctionne bien.
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar megs » 27 Mai 2010 12:36

Salut, merci de porter attention a mon probleme.. apparement je ne suis pas le seul a avoir poser la question en des circonstances différentes, et personne n'a eu de réponse.

pour te répondre: j'ai deux carte X4 gigabit aggrégable, dont 4 ports sont réserver à à 4 sous réseaux différents, gerer par 2 proxi cache squid chrooté l'un sur eth5:8080, l'autre sur eth6:8081 chaqun des squid dialoguant en icp local ( ca, ca fonctionne tres bien), et chacun des proxi devant chercher leurs informations web via une gw différente.
Les proxy étant transparents, le prerouting rediriige automatiquement les requêtes à destination du port 80 vers le port 8080 du proxy-cache concerné.

et enfin la TABLE ADMIN etant réservé à un sous réseau particulier, elle porte le route par defaut vers le routeur qui lui correspond. idem pour la TABLE PEDA mais c'est pas l'objectif de ma requête, c'est pourquoi je n'en parle pas. le route par defaut de la table "main" permet aux serveur ntp et BIND en local sur le proxi de faire leurs résolution via une passerelle. je pourrais la remplacer par une autre (192.168.1.4) mais l'objectif a terme est de s'en passer.

voici le cache.log du dernier demarrage de squid
Code: Tout sélectionner
2010/05/27 10:00:15| Starting Squid Cache version 2.7.STABLE3 for i386-debian-linux-gnu...
2010/05/27 10:00:15| Process ID 4488
2010/05/27 10:00:15| With 1024 file descriptors available
2010/05/27 10:00:15| Using epoll for the IO loop
2010/05/27 10:00:15| parseEtcHosts: /etc/hosts: (2) No such file or directory
2010/05/27 10:00:15| DNS Socket created at 0.0.0.0, port 58872, FD 6
2010/05/27 10:00:15| Adding nameserver 127.0.0.1 from squid.conf
2010/05/27 10:00:15| User-Agent logging is disabled.
2010/05/27 10:00:15| Referer logging is disabled.
2010/05/27 10:00:15| logfileOpen: opening log /var/log/squid/access.log
2010/05/27 10:00:15| Unlinkd pipe opened on FD 11
2010/05/27 10:00:15| Swap maxSize 2097152 KB, estimated 161319 objects
2010/05/27 10:00:15| Target number of buckets: 8065
2010/05/27 10:00:15| Using 8192 Store buckets
2010/05/27 10:00:15| Max Mem  size: 1024000 KB
2010/05/27 10:00:15| Max Swap size: 2097152 KB
2010/05/27 10:00:15| Local cache digest enabled; rebuild/rewrite every 3600/3600 sec
2010/05/27 10:00:15| logfileOpen: opening log /var/log/squid/store.log
2010/05/27 10:00:15| Rebuilding storage in /var/spool/squid (CLEAN)
2010/05/27 10:00:15| Using Least Load store dir selection
2010/05/27 10:00:15| Set Current Directory to /var/spool/squid
2010/05/27 10:00:15| Loaded Icons.
2010/05/27 10:00:15| Accepting transparently proxied HTTP connections at 172.16.1.1, port 8080, FD 13.
2010/05/27 10:00:15| Accepting ICP messages at 0.0.0.0, port 3130, FD 14.
2010/05/27 10:00:15| HTCP Disabled.
2010/05/27 10:00:15| WCCP Disabled.
2010/05/27 10:00:15| Configuring 172.16.2.1 Sibling 172.16.2.1/8081/3131
2010/05/27 10:00:15| Ready to serve requests.
2010/05/27 10:00:15| Done reading /var/spool/squid swaplog (99 entries)
2010/05/27 10:00:15| Finished rebuilding storage from disk.
2010/05/27 10:00:15|        99 Entries scanned
2010/05/27 10:00:15|         0 Invalid entries.
2010/05/27 10:00:15|         0 With invalid flags.
2010/05/27 10:00:15|        99 Objects loaded.
2010/05/27 10:00:15|         0 Objects expired.
2010/05/27 10:00:15|         0 Objects cancelled.
2010/05/27 10:00:15|         0 Duplicate URLs purged.
2010/05/27 10:00:15|         0 Swapfile clashes avoided.
2010/05/27 10:00:15|   Took 0.3 seconds ( 381.6 objects/sec).
2010/05/27 10:00:15| Beginning Validation Procedure
2010/05/27 10:00:15|   Completed Validation Procedure
2010/05/27 10:00:15|   Validated 99 Entries
2010/05/27 10:00:15|   store_swap_size = 628k
2010/05/27 10:00:16| commBind: Cannot bind socket FD 16 to 10.0.0.1:0: (99) Cannot assign requested address
2010/05/27 10:00:16| storeLateRelease: released 0 objects
2010/05/27 10:00:23| commBind: Cannot bind socket FD 16 to 10.0.0.1:0: (99) Cannot assign requested address
2010/05/27 10:00:23| commBind: Cannot bind socket FD 16 to 10.0.0.1:0: (99) Cannot assign requested address


pour info supplémentaire, et comme le montre le log... c'est TCP_OUTGOING_ADDRESS qui ne fonctionne pas, sans cette option tout fonctionne bien, mais prend le route par defaut de la table main, ce qui ne m'arrange pas quand je vais devoir transposer ca pour la seconde connexion (table PEDA ) a destination d'un autre routeur.

ca ne peut pas être le sur menage, vu qu'un seul client fait des requêtes http (installation test)...

j'ai testé avec un route par defaut dasn la table main different (192.168.1.45) qui est ma passerelle actuelle. Le message ne disparait pas du log pour autant... le prbleme est hors d ema portée...
megs-------debian plantak!
megs
Matelot
Matelot
 
Messages: 4
Inscrit le: 17 Août 2004 15:15


Retour vers Linux et BSD (forum généraliste)

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité