[Ninux-Calabria] simulazioni su routing a terra
Stefano De Carlo
stefanauss a gmail.com
Gio 19 Dic 2013 04:38:15 CET
Il 19/12/2013 00:37, Giuseppe De Marco ha scritto:
> Qualche considerazione sulle sperimentazioni condotte con Stefano oggi.
Aggiungo le mie, facendo anche io mente locale in broadcast.
Essenzialmente le sperimentazioni di oggi hanno confermato che il bridge
untagga e stagga la VLAN a seconda della direzione del pacchetto, il che
ci conferma a sua volta che anche nodi che non sanno in vita loro cos'è
una VLAN potranno comunicare coi nodi che fanno routing a terra con le VLAN.
La chiave per capire il tutto è acce{r,t}tare che il bridge non
inoltra/smista/replica i pacchetti che arrivano alle interfacce che ne
fanno parte (come potrebbe essere lecito supporre se si pensa ai bridge
più comuni fatti di interfacce fisiche pure, dove questa semplificazione
regge) ma li
- prende sull'interfaccia fisica
- li *scarta* per poi
- *ricrearli* in base alla destinazione
- e li decide se taggare o meno.
Ho creato una simulazione in CORE dei risultati di oggi. (l'allego)
Se seguite con tcpdump -i <interfaccia> -l -e icmp i vari ping che vi
vengono in mente notate come il tag appaia/scompaia in corrispondenza
del bridge.
Particolarmente significativo è il ping 10.87.4.1 > 10.87.3.1, dove si
vede che il pacchetto arriva con una VLAN ed esce con un'altra. Anche se
non è coinvolto il bridge, fa capire che è una decisione di routing
(stesso principio del tag/untag di cui si parlava prima).
@Peppe, gli indirizzi sono diversi in CORE ma è tutto equivalente.
@Tutti, il routing è fatto a mano, non c'era bisogno e non abbiamo
toccato OLSR.
Accantoniamo per un momento la questione per cui, qualsiasi
configurazione troviamo che ci soddisfi, dobbiamo poi trovare il modo di
replicarla in una maniera che AirOS reputi educata e rispettosa e senza
hack.
Prossimi passi/questioni aperte:
- Il "Network Mode" da cui partire in AirOS è Router o Bridged?
- Il Bridge ath0/eth0.x (WLAN/VLAN-di-traffico-olsr) deve avere un suo
indirizzo IP (come negli esperimenti odierni) oppure no?
- integrare il tutto in OpenWRT (VLAN già partizionate sul 1043ND, no
problem su questo)
Stefanauss.
-------------- parte successiva --------------
node n1 {
type router
model router
network-config {
hostname M5
!
interface eth1
!
interface eth0
!
}
canvas c1
iconcoords {249.0 178.0}
labelcoords {249.0 210.0}
services {zebra IPForward UserDefined}
interface-peer {eth0 n2}
custom-config {
custom-config-id service:UserDefined
custom-command UserDefined
config {
files=('start.sh', )
cmdup=('sh start.sh', )
}
}
custom-config {
custom-config-id service:UserDefined:start.sh
custom-command start.sh
config {
#!/bin/sh
ifconfig eth0 up
# ifconfig eth0 172.17.87.10/16
vconfig add eth1 5
vconfig add eth1 7
ifconfig eth1.5 up
ifconfig eth1.7 up
#ifconfig eth1.5 172.17.87.5/16
ifconfig eth1.7 10.87.3.5/24
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1.5
ifconfig br0 up
ifconfig br0 172.17.87.5/16
ip route add default via 172.17.87.15
}
}
custom-config {
custom-config-id service:DefaultRoute
custom-command DefaultRoute
config {
files=('defaultroute.sh', )
}
}
custom-config {
custom-config-id service:DefaultRoute:defaultroute.sh
custom-command defaultroute.sh
config {
#!/bin/sh
# auto-generated by DefaultRoute service (utility.py)
}
}
custom-config {
custom-config-id service:zebra
custom-command zebra
config {
files=('/usr/local/etc/quagga/Quagga.conf', 'quaggaboot.sh', '/usr/local/etc/quagga/vtysh.conf', )
}
}
custom-config {
custom-config-id service:zebra:/usr/local/etc/quagga/Quagga.conf
custom-command /usr/local/etc/quagga/Quagga.conf
config {
interface eth0
!
}
}
interface-peer {eth1 n3}
}
node n2 {
type router
model router
network-config {
hostname NanoBridge
!
interface eth1
!
interface eth0
!
}
canvas c1
iconcoords {490.0 173.0}
labelcoords {486.0 210.0}
interface-peer {eth0 n1}
custom-config {
custom-config-id service:UserDefined
custom-command UserDefined
config {
files=('start.sh', )
cmdup=('sh start.sh', )
}
}
custom-config {
custom-config-id service:UserDefined:start.sh
custom-command start.sh
config {
#!/bin/sh
ifconfig eth0 up
ifconfig eth0 172.17.87.15/16
ifconfig eth1 up
ifconfig eth1 10.87.4.15/24
ip route add default via 172.17.87.5
}
}
services {zebra OSPFv2 OSPFv3 vtysh IPForward UserDefined}
interface-peer {eth1 n4}
}
node n3 {
type lanswitch
network-config {
hostname M5
!
}
canvas c1
iconcoords {135.0 271.0}
labelcoords {135.0 295.0}
interface-peer {e0 n1}
interface-peer {e1 n5}
}
node n4 {
type lanswitch
network-config {
hostname NB
!
}
canvas c1
iconcoords {631.0 185.0}
labelcoords {631.0 209.0}
interface-peer {e0 n2}
interface-peer {e1 n6}
}
node n5 {
type router
model host
network-config {
hostname n5
!
interface eth0
!
}
canvas c1
iconcoords {79.0 335.0}
labelcoords {79.0 367.0}
interface-peer {eth0 n3}
custom-config {
custom-config-id service:UserDefined
custom-command UserDefined
config {
files=('start.sh', )
cmdup=('sh start.sh', )
}
}
custom-config {
custom-config-id service:UserDefined:start.sh
custom-command start.sh
config {
#!/bin/sh
ifconfig eth0 up
vconfig add eth0 5
vconfig add eth0 7
ifconfig eth0.5 up
ifconfig eth0.7 up
ifconfig eth0.5 172.17.87.1/16
ifconfig eth0.7 10.87.3.1/24
ip route add default via 172.17.87.5
}
}
custom-config {
custom-config-id service:StaticRoute
custom-command StaticRoute
config {
files=('staticroute.sh', )
}
}
custom-config {
custom-config-id service:StaticRoute:staticroute.sh
custom-command staticroute.sh
config {
#!/bin/sh
# auto-generated by StaticRoute service (utility.py)
#
# NOTE: this service must be customized to be of any use
# Below are samples that you can uncomment and edit.
#
ip route add default via 172.17.87.5
}
}
custom-config {
custom-config-id service:DefaultRoute
custom-command DefaultRoute
config {
files=('defaultroute.sh', )
}
}
custom-config {
custom-config-id service:DefaultRoute:defaultroute.sh
custom-command defaultroute.sh
config {
#!/bin/sh
# auto-generated by DefaultRoute service (utility.py)
ip route add default via 172.17.87.5
}
}
services {IPForward SSH UserDefined}
}
node n6 {
type router
model host
network-config {
hostname n6
!
interface eth0
!
}
canvas c1
iconcoords {676.0 311.0}
labelcoords {676.0 343.0}
interface-peer {eth0 n4}
custom-config {
custom-config-id service:UserDefined
custom-command UserDefined
config {
files=('start.sh', )
cmdup=('sh start.sh', )
}
}
custom-config {
custom-config-id service:UserDefined:start.sh
custom-command start.sh
config {
#!/bin/sh
ifconfig eth0 up
ifconfig eth0 10.87.4.1/24
ip route add default via 10.87.4.15
}
}
custom-config {
custom-config-id service:DefaultRoute
custom-command DefaultRoute
config {
files=('defaultroute.sh', )
}
}
custom-config {
custom-config-id service:DefaultRoute:defaultroute.sh
custom-command defaultroute.sh
config {
#!/bin/sh
# auto-generated by DefaultRoute service (utility.py)
}
}
services {IPForward SSH UserDefined}
}
link l1 {
nodes {n1 n2}
bandwidth 0
}
link l2 {
nodes {n1 n3}
bandwidth 0
}
link l3 {
nodes {n3 n5}
bandwidth 0
}
link l4 {
nodes {n2 n4}
bandwidth 0
}
link l5 {
nodes {n4 n6}
bandwidth 0
}
annotation a1 {
iconcoords {275.0 145.0}
type text
label {eth0}
labelcolor black
fontfamily {Arial}
fontsize {12}
canvas c1
}
annotation a2 {
type text
iconcoords {280.0 149.0}
label {}
canvas c1
}
annotation a3 {
iconcoords {214.0 218.0}
type text
label {eth1}
labelcolor black
fontfamily {Arial}
fontsize {12}
canvas c1
}
annotation a4 {
iconcoords {103.0 334.0}
type text
label {eth0}
labelcolor black
fontfamily {Arial}
fontsize {12}
canvas c1
}
annotation a5 {
iconcoords {442.0 145.0}
type text
label {eth0}
labelcolor black
fontfamily {Arial}
fontsize {12}
canvas c1
}
annotation a6 {
iconcoords {520.0 191.0}
type text
label {eth1}
labelcolor black
fontfamily {Arial}
fontsize {12}
canvas c1
}
annotation a7 {
type text
iconcoords {461.0 147.0}
label {}
canvas c1
}
annotation a8 {
iconcoords {695.0 319.0}
type text
label {eth0}
labelcolor black
fontfamily {Arial}
fontsize {12}
canvas c1
}
annotation a9 {
type text
iconcoords {107.0 359.0}
label {}
canvas c1
}
annotation a10 {
iconcoords {141.0 381.0}
type text
label {Zona con le VLAN}
labelcolor black
fontfamily {Arial}
fontsize 12
canvas c1
}
annotation a11 {
iconcoords {519.0 372.0}
type text
label {Zona tutta untagged}
labelcolor black
fontfamily {Arial}
fontsize 12
canvas c1
}
annotation a12 {
iconcoords {328.0 84.0}
type text
label {eth0 = WLAN}
labelcolor black
fontfamily {Arial}
fontsize 12
canvas c1
}
annotation a13 {
type text
iconcoords {384.0 101.0}
label {}
canvas c1
}
annotation a14 {
iconcoords {337.0 107.0}
type text
label {eth1 = LAN}
labelcolor black
fontfamily {Arial}
fontsize 12
canvas c1
}
annotation a15 {
type text
iconcoords {383.0 216.0}
label {}
canvas c1
}
canvas c1 {
name {Canvas1}
wallpaper-style {upperleft}
wallpaper {}
}
option global {
interface_names no
ip_addresses yes
ipv6_addresses yes
node_labels yes
link_labels yes
show_api no
background_images no
annotations yes
grid no
traffic_start 0
}
option session {
}
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome: signature.asc
Tipo: application/pgp-signature
Dimensione: 836 bytes
Descrizione: OpenPGP digital signature
URL: <http://ml.ninux.org/pipermail/calabria/attachments/20131219/f48cead7/attachment-0001.sig>
Maggiori informazioni sulla lista
Calabria