in omnet++/inet scenario have couple of lisp routers not able communicate. mean maprequest messages sent lisp router1 lisp router2 not forwarded central network expected, router2 sends message router1 , following message error generated
setting source ip=192.168.0.7 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 on packet regular ipv4-routing output interface 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 higher layer, output interface ppp0 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 higher layer, output interface ppp0 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 higher layer, output interface ppp0 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 higher layer, output interface ppp0 not broadcast, skipping arp i not understand why occurs because in system have couple of lisp routers , work expected. there must error in .irt files think. have written .irt files in specular way compared working routers, changing ip address. don't know means "interface ppp0 not broadcast"... here files of added routers:
pitr2.irt
ifconfig: # interface 0 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. lisprouter4.irt
ifconfig: # interface 0 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. and these links in .ned file:
lisprouter4: lisprouter { parameters: routingfile = "lisprouter4.irt"; @display("p=640,322"); } pitr2: lisprouter { parameters: mapserveraddress = "mapserver"; routingfile = "pitr2.irt"; @display("p=442,314;is=n"); } ... pitr2.pppg++ <--> pplink <--> lisprouter4.pppg++; do have idea? thanks
according log, router lisprouter4 sends datagram destination address 192.168.0.254. router pitr2 receives datagram, check of own addresses not equal destination address, therefore looks own routing table , found following entry:
192.168.0.254 0.0.0.0 255.255.255.255 h 0 ppp0 the destination address of route matches destination address of datagram, pitr2 forward datagram via ppp0.
message interface ppp0 not broadcast, skipping arp means ppp doesn't support arp protocol because there isn't possibility send message other nodes via ppp. usually, arp used obtain mac address of node knowing ip address , broadcast necessary achieve goal.
difficult propose solution without full topology , routes of routers. however, suggest verifying desired router has interface 192.168.0.254 address (defined in section ifconfig: of *.irt file).
edit problem caused using ++ operator in gates in .ned files. entry
pitr2.pppg++ <--> pplink <--> lisprouter4.pppg++;
means in order connect pitr2 lisprouter4, in pitr2 the next pppg port created , used, example pppg[2] name ppp2. , we not know exact index of port because depends on order of creating connections in .ned file.
proposed solution: revise .ned files and:
- in
.nedof router haveinout pppg[]. changeinout pppg[5]instead of 5 write desired number ofpppports of router (according network topology). number in square brackets size of port. - in
.nedof network change each connection definition usespppg++this:
pitr2.pppg[0] <--> pplink <--> lisprouter4.pppg[2];
remember can't use 2 times same index of port in same router, , index can't exceed total size of port minus one. - modify routing tables in
.irtfiles according indexes of port have made in previous point. name of portpppg[x]pppx.
Comments
Post a Comment