From b828205041606fd287a8823bd8471aca2e431b99 Mon Sep 17 00:00:00 2001 From: jeboog Date: Wed, 24 Feb 2021 09:58:14 -0500 Subject: [PATCH] Added Nat Functionality --- Python/main.py | 120 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 81 insertions(+), 39 deletions(-) diff --git a/Python/main.py b/Python/main.py index 0bf1ebe..762773e 100644 --- a/Python/main.py +++ b/Python/main.py @@ -8,6 +8,7 @@ from . import dddPortMapping from . import router from . import filegenerator +from . import nat # skipsim and ouputFile aren't being used right now # Replaced outputFile with sumOut, logOut booleans. @@ -43,11 +44,24 @@ def runSimulation(dddState, skipsim, sumOut, debug_mode = False - connectionClientRouter = connectionObject.connectionObject(clienttoRouter, - PropDelay, None, - "1.0.0.0", None, - "2.0.0.0", fileGen, - "C-R") + #connectionClientRouter = connectionObject.connectionObject(clienttoRouter, + # PropDelay, None, + # "1.0.0.0", None, + # "2.0.0.0", fileGen, + # "C-R") + + connectionClientNat = connectionObject.connectionObject(clienttoRouter, PropDelay, + None, "1.0.0.0", None, + "10.0.0.0", fileGen, "C-T") # Addition for Nat + connectionNatClient = connectionObject.connectionObject(routertoClient, PropDelay, + None, "10.0.0.0", None, + "1.0.0.0", fileGen, "T-C") # Addition for Nat + connectionRouterNat = connectionObject.connectionObject(routertoClient, PropDelay, + None, "2.0.0.0", None, + "10.0.0.0", fileGen, "R-T") # Addition for Nat + connectionNatRouter = connectionObject.connectionObject(clienttoRouter, PropDelay, None, + "10.0.0.0", None, "2.0.0.0", + fileGen, "T-R") # Addition for Nat connectionRouterMServer = connectionObject.connectionObject(routertoReflector, PropDelay, None, "2.0.0.0", None, @@ -58,11 +72,11 @@ def runSimulation(dddState, skipsim, sumOut, "2.0.0.0", None, "4.0.0.0", fileGen, "R-N") - connectionRouterClient = connectionObject.connectionObject(routertoClient, - PropDelay, None, - "2.0.0.0", None, - "1.0.0.0", fileGen, - "R-C") + #connectionRouterClient = connectionObject.connectionObject(routertoClient, + # PropDelay, None, + # "2.0.0.0", None, + # "1.0.0.0", fileGen, + # "R-C") connectionMServerRouter = connectionObject.connectionObject(reflectortoRouter, PropDelay, None, "3.0.0.0", None, @@ -89,7 +103,7 @@ def runSimulation(dddState, skipsim, sumOut, "5.0.0.0", fileGen, "R-A") - simClient = client.client(connectionClientRouter, "1.0.0.0", + simClient = client.client(connectionClientNat, "1.0.0.0", "4.0.0.0", "3.0.0.0", "5.0.0.0", 2, fileGen, packetSize, NumbDDDPortsOpen, queueLimit, clienttoRouter, "C-") @@ -97,7 +111,7 @@ def runSimulation(dddState, skipsim, sumOut, overlapTime, NumbDDDPortsOpen, fileGen) simRouter = router.router(1000, dddState, "2.0.0.0", 0, - DDDMappingDelay, connectionRouterClient, + DDDMappingDelay, connectionRouterNat, connectionRouterNServer, connectionRouterMServer, connectionRouterAttacker, simDddController, @@ -116,18 +130,31 @@ def runSimulation(dddState, skipsim, sumOut, if(amplification == 1): simAttacker = attacker.attacker(connectionAttackerMServer, connectionAttackerRouter, - "1.0.0.0", "3.0.0.0", fileGen, + "10.0.0.0", "3.0.0.0", fileGen, packetSize, attackertoReflector, "5.0.0.0", "A-", attackerType, 1) else: simAttacker = attacker.attacker(connectionAttackerMServer, connectionAttackerRouter, - "1.0.0.0", "3.0.0.0", fileGen, + "10.0.0.0", "3.0.0.0", fileGen, packetSize, attackertoReflector, "5.0.0.0", "A-", attackerType, 0) + simNat = nat.nat(connectionNatRouter, connectionNatClient, + 1000, fileGen, queueLimit, clienttoRouter, routertoClient) # Addition for Nat + + # connectionClientRouter.device1 = simClient + # connectionClientRouter.device2 = simRouter + connectionClientNat.device1 = simClient # Addition for Nat + connectionClientNat.device2 = simNat # Addition for Nat + + connectionNatClient.device1 = simNat # Addition for Nat + connectionNatClient.device2 = simClient # Addition for Nat + + connectionRouterNat.device1 = simRouter # Addition for Nat + connectionRouterNat.device2 = simNat # Addition for Nat - connectionClientRouter.device1 = simClient - connectionClientRouter.device2 = simRouter + connectionNatRouter.device1 = simNat # Addition for Nat + connectionNatRouter.device2 = simRouter # Addition for Nat connectionRouterMServer.device1 = simRouter connectionRouterMServer.device2 = simMServer @@ -135,8 +162,8 @@ def runSimulation(dddState, skipsim, sumOut, connectionRouterNServer.device1 = simRouter connectionRouterNServer.device2 = simNServer - connectionRouterClient.device1 = simRouter - connectionRouterClient.device2 = simClient + # connectionRouterClient.device1 = simRouter + # connectionRouterClient.device2 = simClient connectionMServerRouter.device1 = simMServer connectionMServerRouter.device2 = simRouter @@ -161,17 +188,23 @@ def runSimulation(dddState, skipsim, sumOut, simMServer.updateTime() simAttacker.updateTime() simDddController.updateTime() + simNat.updateTime() # Addition for nat - connectionClientRouter.updateTime() - connectionRouterMServer.updateTime() + #connectionClientRouter.updateTime() + connectionRouterMServer.updateTime() connectionRouterNServer.updateTime() - connectionRouterClient.updateTime() + connectionNatClient.updateTime() # Addition for nat + connectionClientNat.updateTime() # Addition for nat + connectionNatRouter.updateTime() # Addition for nat + connectionRouterNat.updateTime() # Addition for nat + #connectionRouterClient.updateTime() connectionNServerRouter.updateTime() connectionMServerRouter.updateTime() connectionAttackerMServer.updateTime() connectionAttackerRouter.updateTime() connectionRouterAttacker.updateTime() + # Five lists for the animateData function(one per each device). animationDataClient = ['0'] * 7 animationDataMServer = ['0'] * 7 @@ -208,34 +241,30 @@ def runSimulation(dddState, skipsim, sumOut, animationDataNServer[4] = str(simNServer.packetsSent) animationDataRouter[4] = str(simRouter.packetsSent) animationDataAttacker[4] = str(simAttacker.packetsSent) - # Index 5 is the string of the device animationDataClient[5] = 'client' animationDataMServer[5] = 'mserver' animationDataNServer[5] = 'nserver' animationDataRouter[5] = 'router' animationDataAttacker[5] = 'attacker' - # Index 6 is the number of outbound packets that get dropped due to the bandwidth animationDataClient[6] = str(simClient.packetsDroppedOnConnection) animationDataMServer[6] = str(simMServer.packetsDroppedOnConnection) animationDataNServer[6] = str(simNServer.packetsDroppedOnConnection) animationDataRouter[6] = str(simRouter.packetsDroppedOnConnection) animationDataAttacker[6] = str(simAttacker.packetsDroppedOnConnection) - - fileGen.animateData(animationDataClient, animationDataMServer, - animationDataNServer, animationDataRouter, - animationDataAttacker) - - fileGen.updateTime() - fileGen.updateSummary(simClient, simAttacker, simMServer, - simNServer, simRouter, connectionClientRouter, - connectionRouterMServer, connectionRouterNServer, - connectionAttackerMServer) - fileGen.addSummaryDataToLog(simClient, simAttacker, simMServer, - simNServer, simRouter, connectionClientRouter, - connectionRouterMServer, connectionRouterNServer, - connectionAttackerMServer) + #fileGen.animateData(animationDataClient, animationDataMServer, + # animationDataNServer, animationDataRouter, + # animationDataAttacker) + #fileGen.updateTime() + #fileGen.updateSummary(simClient, simAttacker, simMServer, + # simNServer, simRouter, connectionClientRouter, + # connectionRouterMServer, connectionRouterNServer, + # connectionAttackerMServer) + #fileGen.addSummaryDataToLog(simClient, simAttacker, simMServer, + # simNServer, simRouter, connectionClientRouter, + # connectionRouterMServer, connectionRouterNServer, + # connectionAttackerMServer) if debug_mode: print(i) @@ -265,6 +294,11 @@ def runSimulation(dddState, skipsim, sumOut, print("-----------------------------------------") print("ATTACKER, Sending Packet") print(simAttacker.sendingPacket) + print("NAT Device, Queue, Send Client, Send Router") + print(simNat.queueRouter) + print(simNat.queueClient) + print(simNat.sendClient) + print(simNat.sendRouter) print("CONNECTIONS") print("Connection: connectionAttackerMServer" + str(connectionAttackerMServer.packetsInTransit)) @@ -272,8 +306,16 @@ def runSimulation(dddState, skipsim, sumOut, + str(connectionRouterMServer.packetsInTransit)) print("Connection: connectionRouterNServer" + str(connectionRouterNServer.packetsInTransit)) - print("Connection: connectionClientRouter" - + str(connectionClientRouter.packetsInTransit)) + print("Connection: connectionNatRouter" + + str(connectionNatRouter.packetsInTransit)) + print("Connection: connectionRouterNat" + + str(connectionRouterNat.packetsInTransit)) + print("Connection: connectionClientNat" + + str(connectionClientNat.packetsInTransit)) + print("Connection: connectionNatClient" + + str(connectionNatClient.packetsInTransit)) + #print("Connection: connectionClientRouter" + # + str(connectionClientRouter.packetsInTransit)) print("Ports that are open to Map: " + str(simDddController.currentUsablePorts)) print("Old ports: " + str(simDddController.oldPorts))