Omnet++/Inet: как настроить файлы маршрутизации при добавлении компонентов в сценарий.NED

Для экзамена мы изучаем LISP Mobile (протокол разделения локатора / идентификатора) и попросили некоторых исследователей из немецкого университета прислать нам свой симулятор LISP с Omnet++/Inet. Внутри мы нашли следующий сценарий, который очень полезен для нас:

где у нас есть lispMobileNode, многосетевой с двумя интерфейсами wlan, который принимает пакеты UDP (в частности, VoIP или видео) от узла-корреспондента, который не является мобильным, называется standardHost. Этот сценарий работает отлично, как и ожидалось, и маршрутизаторы правильно реализуют протокол LISP. Теперь наш учитель попросил нас расширить этот сценарий: в частности, мы должны собрать данные с двумя хэндоверами / хэндоверами между тремя различными сетями LISP и поэтому добавили необходимые модули, и сценарий стал таким:

Проблема заключается в том, что даже если lispMobileNode правильно подключается к wirelessRouter 3 и получает относительный правильный IP-адрес после прекращения приема от wirelessRouter2, однако эта информация не пересылается в сети маршрутизаторов LISP ниже и, таким образом, пакеты UDP, поступающие от стандартного хоста, продолжают оставаться маршрутизируется на wirelessRouter2. Я уверен, что должна быть проблема с файлами маршрутизации.irt, которые мы написали для каждого нового компонента, и поэтому мне интересно, можете ли вы помочь мне разобраться с ними, потому что в моем предыдущем опыте с Omnet ++ мне не нужно было управлять. irt файлы и поэтому я не эксперт. Прежде всего, вот файлы, которые мы нашли в симуляторе:

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.

и, наконец, это файлы, которые мы добавили (за исключением router.irt, где мы добавили только несколько строк)

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.

Последним, но самым важным здесь является файл 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

Пожалуйста, прости меня за длинный пост, я уверен, что я делаю глупую ошибку в этих файлах маршрутизации, но я не могу найти где. Спасибо за Ваше внимание.

PS: если вы хотите здесь, вы можете подать полный исходный код.NED

РЕДАКТИРОВАТЬ: я только что заметил, что проблема может быть в начальной стадии конфигурации. На самом деле, на консоли EV я могу прочитать несколько сообщений этого типа:

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

Есть много этого сообщения, касающегося 192.168.0.7, и в определенный момент оно сдается. Другими словами, PITR2 не пересылает MapRequest из lispRouter4 на MapServer и на центральный маршрутизатор; вместо этого PITR2 отправляет MapRequest обратно в lispRouter4. Так есть что-то об этом ppp0 на lispRouter4?

0 ответов

Другие вопросы по тегам