mobile udp omnet++ inet

mobile - Omnet++/Inet: cómo ajustar los archivos de enrutamiento al agregar componentes a un escenario.NED



udp (0)

Para un examen, estamos estudiando LISP Mobile (Localizador / Protocolo de separación identificador) y hemos pedido a algunos investigadores de una Universidad alemana que nos envíen su simulador LISP con Omnet ++ / Inet. En el interior, hemos encontrado la siguiente situación que es muy útil para nosotros:

donde tenemos lispMobileNode multihomed con dos interfaces wlan que reciben paquetes UDP (en particular VoIP o video) de un nodo correspondiente que no es móvil llamado estándarHost. Este escenario funciona perfectamente como se esperaba y los enrutadores implementan correctamente el protocolo LISP. Ahora, nuestro docente nos pidió que extendiéramos este escenario: en particular, deberíamos recopilar datos con dos transferencias / transferencias entre tres redes LISP diferentes, de modo que hemos agregado los módulos necesarios y el escenario se ha vuelto así:

El problema es que incluso si lispMobileNode se conecta correctamente a wirelessRouter 3 y obtiene una relativa dirección IP correcta después de dejar de recibir de wirelessRouter2 , esta información no se reenvía a las redes de enrutadores LISP a continuación y, por lo tanto, los paquetes UDP que provienen del estándarHost siguen siendo enrutado a wirelessRouter2. Estoy seguro de que debe haber un problema con los archivos de enrutamiento .irt que hemos escrito para cada componente nuevo, por lo que me pregunto si puede ayudarme a tratar con ellos porque en mis experiencias previas de Omnet ++ no tuve que administrarlos. archivos de calidad y no soy un experto. Primero que nada aquí están los archivos que hemos encontrado en el simulador:

lisprouter1.irt

ifconfig: # interface 0 to router name: ppp0 inet_addr: 192.168.0.1 MTU: 1500 Metric: 1 name: ppp1 inet_addr: 192.168.0.1 MTU: 1500 Metric: 1 name: eth0 inet_addr: 132.187.1.1 Mask: 255.255.255.0 MTU: 1500 Metric: 1 ifconfigend. route: 192.168.0.0 0.0.0.0 255.255.255.0 H 0 ppp0 132.187.1.0 0.0.0.0 255.255.255.0 H 0 eth0 routeend.

lisprouter2.irt

ifconfig: # interface 0 to router name: ppp0 inet_addr: 192.168.0.2 MTU: 1500 Metric: 1 name: ppp1 inet_addr: 192.168.0.2 MTU: 1500 Metric: 1 name: eth0 inet_addr: 132.187.2.1 Mask: 255.255.255.0 MTU: 1500 Metric: 1 ifconfigend. route: 192.168.0.0 0.0.0.0 255.255.255.0 H 0 ppp0 132.187.2.0 0.0.0.0 255.255.255.0 H 0 eth0 routeend.

lispRouter3.irt

ifconfig: # interface 0 to router name: ppp0 inet_addr: 192.168.0.3 MTU: 1500 Metric: 1 name: eth0 inet_addr: 132.187.3.1 Mask: 255.255.255.0 MTU: 1500 Metric: 1 ifconfigend. route: 192.168.0.0 0.0.0.0 255.255.255.0 H 0 ppp0 132.187.3.0 0.0.0.0 255.255.255.0 H 0 eth0 routeend.

mapserver.irt

ifconfig: # interface 0 to router name: ppp0 inet_addr: 192.168.0.254 MTU: 1500 Metric: 1 ifconfigend. route: 192.168.0.0 0.0.0.0 255.255.0.0 G 0 ppp0 132.187.0.0 192.168.0.4 255.255.0.0 G 0 ppp0 routeend.

PITR.irt

ifconfig: # interface 0 to router name: ppp0 inet_addr: 192.168.0.5 MTU: 1500 Metric: 1 name: ppp1 inet_addr: 192.168.0.5 MTU: 1500 Metric: 1 ifconfigend. route: 192.168.0.4 0.0.0.0 255.255.255.255 H 0 ppp0 192.168.0.1 0.0.0.0 255.255.255.255 H 0 ppp1 192.168.0.2 0.0.0.0 255.255.255.255 H 0 ppp2 192.168.0.254 0.0.0.0 255.255.255.255 H 0 ppp0 routeend.

WirelessRouter1.irt

ifconfig: name: wlan inet_addr: 132.187.1.2 Mask: 255.255.255.0 MTU: 1500 Metric: 1 name: eth0 inet_addr: 132.187.1.2 Mask: 255.255.255.0 MTU: 1500 Metric: 1 ifconfigend. route: 132.187.1.0 * 255.255.255.0 H 0 wlan default: 132.187.1.1 0.0.0.0 G 0 eth0 routeend.

wirelessRouter2.irt

ifconfig: name: wlan inet_addr: 132.187.2.2 Mask: 255.255.255.0 MTU: 1500 Metric: 1 name: eth0 inet_addr: 132.187.2.2 Mask: 255.255.255.0 MTU: 1500 Metric: 1 ifconfigend. route: 132.187.2.0 * 255.255.255.0 H 0 wlan default: 132.187.2.1 0.0.0.0 G 0 eth0 routeend.

y finalmente estos son los archivos que hemos agregado (excepto para router.irt donde hemos agregado solo algunas líneas)

lispRouter4.irt

ifconfig: # interface 0 to router name: ppp0 inet_addr: 192.168.0.7 MTU: 1500 Metric: 1 name: ppp1 inet_addr: 192.168.0.7 MTU: 1500 Metric: 1 name: eth0 inet_addr: 132.187.7.1 Mask: 255.255.255.0 MTU: 1500 Metric: 1 ifconfigend. route: 192.168.0.0 0.0.0.0 255.255.255.0 H 0 ppp0 132.187.7.0 0.0.0.0 255.255.255.0 H 0 eth0 routeend.

PITR2.irt

ifconfig: # interface 0 to router name: ppp0 inet_addr: 192.168.0.6 MTU: 1500 Metric: 1 name: ppp1 inet_addr: 192.168.0.6 MTU: 1500 Metric: 1 ifconfigend. route: 192.168.0.4 0.0.0.0 255.255.255.255 H 0 ppp0 192.168.0.7 0.0.0.0 255.255.255.255 H 0 ppp1 192.168.0.254 0.0.0.0 255.255.255.255 H 0 ppp0 routeend.

router.irt

ifconfig: # interface 0 to router name: ppp0 inet_addr: 192.168.0.4 MTU: 1500 Metric: 1 name: ppp1 inet_addr: 192.168.0.4 MTU: 1500 Metric: 1 name: ppp2 inet_addr: 192.168.0.4 MTU: 1500 Metric: 1 ifconfigend. route: 192.168.0.3 0.0.0.0 255.255.255.255 H 0 ppp0 192.168.0.1 0.0.0.0 255.255.255.255 H 0 ppp1 192.168.0.2 0.0.0.0 255.255.255.255 H 0 ppp2 192.168.0.254 0.0.0.0 255.255.255.255 H 0 ppp3 192.168.0.5 0.0.0.0 255.255.255.255 H 0 ppp4 192.168.0.6 0.0.0.0 255.255.255.255 H 0 ppp5 192.168.0.7 0.0.0.0 255.255.255.255 H 0 ppp6 132.187.1.0 192.168.0.5 255.255.0.0 G 0 ppp4 132.187.2.0 192.168.0.5 255.255.0.0 G 0 ppp4 132.187.7.0 192.168.0.6 255.255.0.0 G 0 ppp5 routeend.

wirelessRouter3.irt

ifconfig: name: wlan inet_addr: 132.187.7.2 Mask: 255.255.255.0 MTU: 1500 Metric: 1 name: eth0 inet_addr: 132.187.7.2 Mask: 255.255.255.0 MTU: 1500 Metric: 1 ifconfigend. route: 132.187.7.0 * 255.255.255.0 H 0 wlan default: 132.187.7.1 0.0.0.0 G 0 eth0 routeend.

El último pero más importante aquí es el archivo omnet.ini :

[General] network = MultiHomingNetwork tkenv-plugin-path = ../../../etc/plugins #debug-on-errors = true *.playgroundSizeX = 900 *.playgroundSizeY = 600 **.debug = true **.coreDebug = false sim-time-limit = 36s seed-set = 1 cmdenv-express-mode = true cmdenv-autoflush = false cmdenv-status-frequency = 10000000s repeat = 1 # channel physical parameters *.channelcontrol.carrierFrequency = 2.4GHz *.channelcontrol.pMax = 3.0mW *.channelcontrol.sat = -82dBm *.channelcontrol.alpha = 2 *.channelcontrol.numChannels = 2 #*.channelcontrol.numChannels = 2 # wireless channels #**.wirelessRouter.wlan.radio.channelNumber = 1 #**.ap2.wlan.radio.channelNumber = 2 **.wirelessRouter1.wlan.radio.channelNumber = 0 # just initially -- it''ll scan **.wirelessRouter2.wlan.radio.channelNumber = 1 **.wirelessRouter3.wlan.radio.channelNumber = 0 **.lispMobileNode.wlan[0].radio.channelNumber = 0 **.lispMobileNode.wlan[1].radio.channelNumber = 1 **.lispMobileNode.numWirelessInterfaces = 2 **.mapResolver.processRequestsInterval = 0 **.lispMobileNode.mapResolver.usePiggy = ${usePiggy=true,false} **.lispMobileNode.mapResolver.useSMR = !${usePiggy} # wireless configuration **.wlan*.agent.activeScan = true **.wlan[0].agent.channelsToScan = "0" # "" means all **.wlan[1].agent.channelsToScan = "1" # "" means all **.wlan*.agent.probeDelay = 0.1s **.wlan*.agent.minChannelTime = 0.15s **.wlan*.agent.maxChannelTime = 0.3s **.wlan*.agent.authenticationTimeout = 5s **.wlan*.agent.associationTimeout = 5s **.mac.address = "auto" **.mac.maxQueueSize = 14 **.mac.rtsThresholdBytes = 4000B **.mac.bitrate = 2Mbps **.wlan.mac.retryLimit = 7 **.wlan.mac.cwMinData = 7 **.wlan.mac.cwMinBroadcast = 31 **.radio.bitrate = 54Mbps **.radio.transmitterPower = 2.0mW **.radio.thermalNoise = -110dBm **.radio.sensitivity = -85mW **.radio.pathLossAlpha = 2 **.radio.snirThreshold = 4dB # access point **.mgmt.frameCapacity = 10 # bandwidth settings **.txrate = 1000Mbps # mobility **.lispMobileNode.mobilityType = "LinearMobility" **.lispMobileNode.mobility.speed = 30 mps **.lispMobileNode.mobility.angle = 0 **.lispMobileNode.mobility.acceleration = 0 **.lispMobileNode.mobility.updateInterval = 100ms # DHCP Server **.dhcpServer.dhcpServer.net = "132.187.3.0" **.dhcpServer.dhcpServer.mask = "255.255.255.0" **.dhcpServer.dhcpServer.ip_begin = "132.187.3.10" **.dhcpServer.dhcpServer.client_num = 100 **.dhcpServer.dhcpServer.gateway = "132.187.3.1" **.dhcpServer.dhcpServer.dns = "132.187.3.1" **.dhcpServer.dhcpServer.lease_time = 900s # seconds # Applications **.standardHost.numUdpApps = 1 **.standardHost.udpAppType = "UDPVideoStreamSvr" **.standardHost.udpApp[0].serverPort = 4711 **.standardHost.udpApp[0].waitInterval = 0.055s **.standardHost.udpApp[0].packetLen = 100 B **.standardHost.udpApp[0].videoSize = 1000000000 B **.lispMobileNode.numUdpApps = 1 **.lispMobileNode.udpAppType = "UDPVideoStreamCli" **.lispMobileNode.udpApp[0].serverPort = 4711 **.lispMobileNode.udpApp[0].localPort = 4710 **.lispMobileNode.udpApp[0].serverAddress = "standardHost" **.lispMobileNode.udpApp[0].startTime = 3s **.lispRouter2.lisp.assignedEID = "132.187.2.0" **.lispRouter2.lisp.assignedEIDLength = 24 **.lispRouter1.lisp.assignedEID = "132.187.1.0" **.lispRouter1.lisp.assignedEIDLength = 24 **.lispRouter3.lisp.assignedEID = "132.187.3.0" **.lispRouter3.lisp.assignedEIDLength = 24 **.lispRouter4.lisp.assignedEID = "132.187.7.0" **.lispRouter4.lisp.assignedEIDLength = 24 **.lispRouter*.mappingCacheTimeout = 60s # all nodes use enhanced version **.useLocatorTypeBit = true # Wireless Router DHCP Server **.wirelessRouter1.udpApp[0].net = "132.187.1.0" **.wirelessRouter1.udpApp[0].mask = "255.255.255.0" **.wirelessRouter1.udpApp[0].ip_begin = "132.187.1.10" **.wirelessRouter1.udpApp[0].client_num = 100 **.wirelessRouter1.udpApp[0].gateway = "132.187.1.2" **.wirelessRouter1.udpApp[0].dns = "132.187.1.1" **.wirelessRouter1.udpApp[0].iface = "wlan" **.wirelessRouter1.udpApp[0].lease_time = 12s # seconds # Wireless Router 2 DHCP Server **.wirelessRouter2.udpApp[0].net = "132.187.2.0" **.wirelessRouter2.udpApp[0].mask = "255.255.255.0" **.wirelessRouter2.udpApp[0].ip_begin = "132.187.2.10" **.wirelessRouter2.udpApp[0].client_num = 100 **.wirelessRouter2.udpApp[0].gateway = "132.187.2.2" **.wirelessRouter2.udpApp[0].dns = "132.187.2.1" **.wirelessRouter2.udpApp[0].iface = "wlan" **.wirelessRouter2.udpApp[0].lease_time = 12s # seconds ############### new added wireless Router 3 **.wirelessRouter3.udpApp[0].net = "132.187.7.0" **.wirelessRouter3.udpApp[0].mask = "255.255.255.0" **.wirelessRouter3.udpApp[0].ip_begin = "132.187.7.10" **.wirelessRouter3.udpApp[0].client_num = 100 **.wirelessRouter3.udpApp[0].gateway = "132.187.7.2" **.wirelessRouter3.udpApp[0].dns = "132.187.7.1" **.wirelessRouter3.udpApp[0].iface = "wlan" **.wirelessRouter3.udpApp[0].lease_time = 12s # seconds

Por favor, perdónenme por la publicación larga, estoy seguro de que estoy cometiendo un error tonto en esos archivos de enrutamiento, pero no puedo encontrar dónde. Gracias por su atención.

ps: si quieres aquí puedes archivar el código fuente completo de .NED

EDITAR: Acabo de notar que el problema podría estar en la fase de configuración inicial. De hecho, en la consola EV puedo leer varios mensajes de este tipo:

INFO(lispRouter4): srcAddress=192.168.0.7, dstAddress=192.168.0.254 INFO: Source IP=192.168.0.7 address not in EID space. Destination IP=192.168.0.254 address not in EID space. Handing over packet to regular IPv4-routing output interface is ppp0, next-hop address: <unspec> ** Event #26 T=0 MultiHomingNetwork.lispRouter1.networkLayer.arp (ARP, id=109), on `LISPMapRegister-#1'' (IPDatagram, id=263) Packet (IPDatagram)LISPMapRegister-#1 arrived from higher layer, output interface ppp0 is not broadcast, skipping ARP ** Event #27 T=0 MultiHomingNetwork.lispRouter2.networkLayer.arp (ARP, id=185), on `LISPMapRegister-#2'' (IPDatagram, id=264) Packet (IPDatagram)LISPMapRegister-#2 arrived from higher layer, output interface ppp0 is not broadcast, skipping ARP ** Event #28 T=0 MultiHomingNetwork.lispRouter3.networkLayer.arp (ARP, id=233), on `LISPMapRegister-#3'' (IPDatagram, id=265) Packet (IPDatagram)LISPMapRegister-#3 arrived from higher layer, output interface ppp0 is not broadcast, skipping ARP ** Event #29 T=0 MultiHomingNetwork.lispRouter4.networkLayer.arp (ARP, id=307), on `LISPMapRegister-#4'' (IPDatagram, id=266) Packet (IPDatagram)LISPMapRegister-#4 arrived from higher layer, output interface ppp0 is not broadcast, skipping ARP

Hay muchos de este mensaje con respecto a 192.168.0.7 y en cierto punto se da por vencido. En otras palabras, el PITR2 no reenvía MapRequest desde lispRouter4 a MapServer y al enrutador central; en cambio, el PITR2 envía MapRequest de vuelta a lispRouter4. Entonces, ¿hay algo sobre ese ppp0 en lispRouter4?