Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme de routage entre VLANs

31 réponses
Avatar
xavier
Bonjour,

Le réseau de mon nouveau taf est assez (et amha inutilement) complexe.

Le coeur de réseau est composé de Nortels Baystack dans chaque bâtiment, avec des VLANs
définis comme suit :

| VLAN 1 admininstration (des switches) 192.168.1.0/24
| VLAN 10 bâtiment central 172.16.214.0/24
| VLAN 20 bâtiment 2 192.168.0.0/24
| VLAN 30 batiment 3 10.75.2.0/24
| VLAN 40 (reserved for future use ;-)
| VLAN 100 VoIP 10.75.3.0/24

Je pique un port où tous les VLANs sont présents sur le Nortel, et je crée les
interfaces VLAN sur la passerelle :

| gateway_enable="YES"
| default_router="10.75.2.1"
| cloned_interfaces="vlan0 vlan1 vlan2 vlan3 vlan4"
| ifconfig_fxp0="up"
| ifconfig_vlan0="inet 192.168.1.251 netmask 255.255.255.0 vlan 1 vlandev fxp0"
| ifconfig_vlan1="inet 172.16.214.251 netmask 255.255.255.0 vlan 10 vlandev fxp0"
| ifconfig_vlan2="inet 192.168.0.251 netmask 255.255.255.0 vlan 20 vlandev fxp0"
| ifconfig_vlan3="inet 10.75.2.251 netmask 255.255.255.0 vlan 30 vlandev fxp0"
| ifconfig_vlan4="inet 10.75.3.251 netmask 255.255.255.0 vlan 100 vlandev fxp0"

Depuis la passerelle elle-même, tous les réseaux répondent, un nmap me l'a prouvé.

D'ailleurs, sa table de routage me semble nickel :

| Destination Gateway Flags Refs Use Netif Expire
| default 10.75.2.1 UGS 0 13742 vlan3
| 192.168.1.0/24 link#9 U 5 234765 vlan0
| 172.16.214.0/24 link#10 U 4 395054 vlan1
| 192.168.0.0/24 link#11 U 1 4659 vlan2
| 10.75.2.0/24 link#12 U 0 3361 vlan3
| 10.75.3.0/24 link#13 U 0 2716 vlan4


Par contre, depuis mon poste, qui est sur le réseau 172.16.214.0/24, avec 172.16.214.251
défini en gateway, ça ne marche qu'à moitié :

| [xavier@imac-xav ~]$ traceroute 192.168.1.4
| traceroute to 192.168.1.4 (192.168.1.4), 64 hops max, 52 byte packets
| 1 gateway (172.16.214.251) 5.416 ms 0.176 ms 0.152 ms
| 2 arcades-sw (192.168.1.4) 5.105 ms 1.103 ms 1.144 ms

Donc le routage de VLAN 10 vers VLAN 1, ça passe.

Mais, si je veux atteindre la passerelle de sortie :

| [xavier@imac-xav ~]$ traceroute 10.75.2.1
| traceroute to 10.75.2.1 (10.75.2.1), 64 hops max, 52 byte packets
| 1 gateway (172.16.214.251) 0.460 ms 0.217 ms 0.145 ms
| 2 * * *
| 3 * * *
| 4 * * *

De VLAN 10 vers VLAN 30, rien ne passe. Ca pourrait presque sembler logique, le VLAN 1
étant non taggué, ça passe, vers les autres non....

Qu'ai-je oublié de si évident que je ne le verrais pas ?

Merci,

--
Xav
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.

10 réponses

1 2 3 4
Avatar
Pascal Hambourg
Salut,

Xavier a écrit :

Mais, si je veux atteindre la passerelle de sortie :

| [ ~]$ traceroute 10.75.2.1
| traceroute to 10.75.2.1 (10.75.2.1), 64 hops max, 52 byte packets
| 1 gateway (172.16.214.251) 0.460 ms 0.217 ms 0.145 ms
| 2 * * *
| 3 * * *
| 4 * * *

De VLAN 10 vers VLAN 30, rien ne passe. Ca pourrait presque sembler logique, le VLAN 1
étant non taggué, ça passe, vers les autres non....

Qu'ai-je oublié de si évident que je ne le verrais pas ?



Des routes sur la passerelle de sortie pour chaque sous-réseau ?
Avatar
xavier
Pascal Hambourg wrote:

Des routes sur la passerelle de sortie pour chaque sous-réseau ?



Ca pourrait être ça, mais même si c'était ça, je ne "vois" aucune autre
machine des autres sous réseaux, sauf les switches (tous) du VLAN 1

--
Xav
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
Avatar
Patrick Lamaizière
Xavier :

Des routes sur la passerelle de sortie pour chaque sous-réseau ?



Ca pourrait être ça, mais même si c'était ça, je ne "vois" aucune autre
machine des autres sous réseaux, sauf les switches (tous) du VLAN 1



À tout hasard, un lien avec la sysctl net.link.vlan.soft_pad décrite
dans vlan(4) ?

C'est juste une idée comme ça.
Avatar
xavier
Patrick Lamaizière wrote:

À tout hasard, un lien avec la sysctl net.link.vlan.soft_pad décrite
dans vlan(4) ?



Effectivement, ça pourrait avoir un rapport, vu que ça route vers le vlan non
taggué, et pas les autres.

Je vérifie ça...

Bon, aucun effet. Et comme en lisant man 4 vlan j'ai vu que le support dotQ était
émulé dans fxp, et que j'avais une bge sous la main, j'ai essayé aussi. Rien.

Pour info, l'état des interfaces (la table de routage reste celle que j'ai postée
hier)

---------------------------------------------------------------------------------
bge0: flagsˆ43<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options€09b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LINKSTATE>
ether 00:e0:81:2d:62:3e
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
vlan0: flagsˆ43<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
description: Admin
options=3<RXCSUM,TXCSUM>
ether 00:e0:81:2d:62:3e
inet 192.168.1.251 netmask 0xffffff00 broadcast 192.168.1.255
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
vlan: 1 parent interface: bge0
vlan1: flagsˆ43<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
description: Multimedia
options=3<RXCSUM,TXCSUM>
ether 00:e0:81:2d:62:3e
inet 172.16.214.251 netmask 0xffffff00 broadcast 172.16.214.255
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
vlan: 10 parent interface: bge0
vlan2: flagsˆ43<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
description: Arcades
options=3<RXCSUM,TXCSUM>
ether 00:e0:81:2d:62:3e
inet 192.168.0.251 netmask 0xffffff00 broadcast 192.168.0.255
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
vlan: 20 parent interface: bge0
vlan3: flagsˆ43<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
description: Chateau
options=3<RXCSUM,TXCSUM>
ether 00:e0:81:2d:62:3e
inet 10.75.2.251 netmask 0xffffff00 broadcast 10.75.2.255
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
vlan: 30 parent interface: bge0
vlan4: flagsˆ43<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
description: VoIP
options=3<RXCSUM,TXCSUM>
ether 00:e0:81:2d:62:3e
inet 10.75.3.251 netmask 0xffffff00 broadcast 10.75.3.255
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
vlan: 100 parent interface: bge0
---------------------------------------------------------------------------------

Je reste perplexlifié ...

--
Xav
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
Avatar
xavier
Xavier wrote:

Je reste perplexlifié ...



Une indication là, peut-être ? Je veux donc faire un traceroute de mon poste
vers le routeur de sortie :

[ ~]$ traceroute 10.75.2.1
traceroute to 10.75.2.1 (10.75.2.1), 64 hops max, 52 byte packets
1 gateway (172.16.214.251) 0.697 ms 0.227 ms 0.245 ms
2 * * *
3 *^C

Et sur la passerelle qui veut pas router, un tcpdump me donne ça :

[ ~]# tcpdump -vv -i vlan3 host 172.16.214.102
tcpdump: listening on vlan3, link-type EN10MB (Ethernet), capture size 96 bytes
10:30:41.140953 IP (tos 0x0, ttl 1, id 50332, offset 0, flags [none], proto UDP
(17), length 52, bad cksum 0 (->665a)!)
172.16.214.102.50328 > 10.75.2.1.33438: [udp sum ok] UDP, length 24
10:30:46.141358 IP (tos 0x0, ttl 1, id 50333, offset 0, flags [none], proto UDP
(17), length 52, bad cksum 0 (->6659)!)
172.16.214.102.50328 > 10.75.2.1.33439: [udp sum ok] UDP, length 24

C'est pas normal les "bad cksum" ?

--
Xav
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
Avatar
Pascal Hambourg
Xavier a écrit :
Xavier wrote:

[ ~]# tcpdump -vv -i vlan3 host 172.16.214.102
tcpdump: listening on vlan3, link-type EN10MB (Ethernet), capture size 96 bytes
10:30:41.140953 IP (tos 0x0, ttl 1, id 50332, offset 0, flags [none], proto UDP
(17), length 52, bad cksum 0 (->665a)!)
172.16.214.102.50328 > 10.75.2.1.33438: [udp sum ok] UDP, length 24
10:30:46.141358 IP (tos 0x0, ttl 1, id 50333, offset 0, flags [none], proto UDP
(17), length 52, bad cksum 0 (->6659)!)
172.16.214.102.50328 > 10.75.2.1.33439: [udp sum ok] UDP, length 24

C'est pas normal les "bad cksum" ?



Cela peut être un artefact de tcpdump avec les interfaces qui font du
checksum offload.
Avatar
Pascal Hambourg
Xavier a écrit :
Pascal Hambourg wrote:

Des routes sur la passerelle de sortie pour chaque sous-réseau ?



Ca pourrait être ça, mais même si c'était ça, je ne "vois" aucune autre
machine des autres sous réseaux, sauf les switches (tous) du VLAN 1



Si tu dis que depuis la passerelle tous les réseaux répondent alors la
couche liaison est ok et je doute que ce soit un problème de VLAN. Je
pense plutôt à un problème de routage IP entre sous-réseaux, comme des
routes incorrectes pour le trajet retour vers 172.16.214.0/24.

Tu écris que le VLAN 1 est non taggé, pourtant l'interface de la
passerelle dans ce VLAN (vlan0) est bien taggée ? Tu veux dire non taggé
entre les switches ?
Avatar
xavier
Pascal Hambourg wrote:

Si tu dis que depuis la passerelle tous les réseaux répondent alors la
couche liaison est ok et je doute que ce soit un problème de VLAN. Je
pense plutôt à un problème de routage IP entre sous-réseaux, comme des
routes incorrectes pour le trajet retour vers 172.16.214.0/24.



Alors, oui, certaines machines ont une autre route par défaut. Mais
net.inet.ip.forwarding=1 devrai faire que les paquets émis depuis la
passerelle lui reviennent -c'est le cas- et soient retransmis à
l'interface qui a initié la connection ?

Tu écris que le VLAN 1 est non taggé, pourtant l'interface de la
passerelle dans ce VLAN (vlan0) est bien taggée ? Tu veux dire non taggé
entre les switches ?



Je me suis peut-être mal exprimé, ou bien ma connaissance des VLANs est
incomplète, mais le VLAN 1 est toujours non taggué, puisque c'est celui
par défaut, il me semble ?

--
Xav
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
Avatar
Pascal Hambourg
Xavier a écrit :
Pascal Hambourg wrote:

Si tu dis que depuis la passerelle tous les réseaux répondent alors la
couche liaison est ok et je doute que ce soit un problème de VLAN. Je
pense plutôt à un problème de routage IP entre sous-réseaux, comme des
routes incorrectes pour le trajet retour vers 172.16.214.0/24.



Alors, oui, certaines machines ont une autre route par défaut.



Et le routeur désigné par cette route par défaut, il sait comment
atteindre les autres sous-réseaux via ta passerelle ?

Mais
net.inet.ip.forwarding=1 devrai faire que les paquets émis depuis la
passerelle lui reviennent



Ah non. Si c'est comme Linux, ça dit juste à la machine de faire suivre
les paquets qui ne lui sont pas destinés.

-c'est le cas-



C'est le cas dans tes essais depuis la passerelle parce que les paquets
qui sont émis (et non retransmis) par celle-ci ont comme adresse source
l'adresse IP de l'interface de la passerelle dans le sous-réseau de
destination, et donc la cible n'a aucun mal à répondre en retour puisque
les deux adresses sont dans le même sous-réseau. Cela n'implique pas de
"routage" (au sens routeur), c'est de la communication directe.

et soient retransmis à
l'interface qui a initié la connection ?



Pour ça, il faut que les réponses soient transmises à la passerelle.
Dans un premier temps, tu pourrais tester en activant le NAT source
(masquerading) sur toutes les interfaces de ta passerelle. Si ça passe,
alors ce n'est pas un problème de couche liaison.

Tu écris que le VLAN 1 est non taggé, pourtant l'interface de la
passerelle dans ce VLAN (vlan0) est bien taggée ? Tu veux dire non taggé
entre les switches ?



Je me suis peut-être mal exprimé, ou bien ma connaissance des VLANs est
incomplète, mais le VLAN 1 est toujours non taggué, puisque c'est celui
par défaut, il me semble ?



Je ne sais pas, mais en tout cas tu as défini vlan0 comme une interface
taggée, comme les autres vlan*.
Avatar
xavier
Pascal Hambourg wrote:

C'est le cas dans tes essais depuis la passerelle parce que les paquets
qui sont émis (et non retransmis) par celle-ci ont comme adresse source
l'adresse IP de l'interface de la passerelle dans le sous-réseau de
destination, et donc la cible n'a aucun mal à répondre en retour puisque
les deux adresses sont dans le même sous-réseau. Cela n'implique pas de
"routage" (au sens routeur), c'est de la communication directe.



Donc, mon routeur ne route pas CQFD...

> et soient retransmis à
> l'interface qui a initié la connection ?

Pour ça, il faut que les réponses soient transmises à la passerelle.
Dans un premier temps, tu pourrais tester en activant le NAT source
(masquerading) sur toutes les interfaces de ta passerelle. Si ça passe,
alors ce n'est pas un problème de couche liaison.



Euh... Je procède comment ? Avec PF ? Pour l'instant, mon fichier ne
contient que "set skip on [pour toutes les interfaces]"

> Je me suis peut-être mal exprimé, ou bien ma connaissance des VLANs est
> incomplète, mais le VLAN 1 est toujours non taggué, puisque c'est celui
> par défaut, il me semble ?

Je ne sais pas, mais en tout cas tu as défini vlan0 comme une interface
taggée, comme les autres vlan*.



Je ne sais pas, je me suis inspiré de
<http://www.supinfo-projects.com/fr/2005/intervlan_freebsd/2/>
La seule différence, est que j'ai en face des Nortel, pas des Cisco.
Chez Nortel, il n'y a pas la notion de "trunk", plus exactement, ça
s'applique au MLT qui n'a rien à voir. Il n'y a pas non plus de
mac-address-table (elle ne liste, précisément, que les MLT) qui pourrait
m'aider.


--
Xav
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
1 2 3 4