From c1bce08f779f529ab89cd734bf972e91860bfca9 Mon Sep 17 00:00:00 2001 From: Tim Young Date: Wed, 2 Nov 2016 16:27:43 -0500 Subject: [PATCH] Can lock ourselves out of a switch --- EduNetworkBuilder/EduNetworkBuilder.csproj | 9 +- EduNetworkBuilder/NB.cs | 2 +- EduNetworkBuilder/NetworkBuilder.cs | 119 +- EduNetworkBuilder/NetworkCard.cs | 11 +- EduNetworkBuilder/NetworkDevice.cs | 59 +- EduNetworkBuilder/NetworkInterface.cs | 10 + .../Properties/Resources.Designer.cs | 20 + EduNetworkBuilder/Properties/Resources.resx | 6 + .../Resources/Level6_SorryBoss.enbx | 874 +++++++++ .../Resources/Level6_VLANFrustrations.enbx | 1727 +++++++++++++++++ .../Resources/languages/edustrings.resx | 8 + EduNetworkBuilder/VLANConfig.Designer.cs | 1 + EduNetworkBuilder/VLANConfig.cs | 4 +- 13 files changed, 2789 insertions(+), 61 deletions(-) create mode 100644 EduNetworkBuilder/Resources/Level6_SorryBoss.enbx create mode 100644 EduNetworkBuilder/Resources/Level6_VLANFrustrations.enbx diff --git a/EduNetworkBuilder/EduNetworkBuilder.csproj b/EduNetworkBuilder/EduNetworkBuilder.csproj index db464dd..e28e7b3 100644 --- a/EduNetworkBuilder/EduNetworkBuilder.csproj +++ b/EduNetworkBuilder/EduNetworkBuilder.csproj @@ -11,10 +11,10 @@ EduNetworkBuilder v4.5 512 - false + true publish\ true - Disk + Web true Background 7 @@ -22,12 +22,13 @@ true false true + http://tyounglightsys.ddns.info/EduNetworkBuilder/v1/ http://tyounglightsys.ddns.info/EduNetworkBuilder/v1/ EduNetworkBuilder Tim Young true publish.htm - 28 + 29 1.0.0.%2a false true @@ -279,8 +280,10 @@ + + diff --git a/EduNetworkBuilder/NB.cs b/EduNetworkBuilder/NB.cs index 832d0e5..5740ddb 100644 --- a/EduNetworkBuilder/NB.cs +++ b/EduNetworkBuilder/NB.cs @@ -72,7 +72,7 @@ namespace EduNetworkBuilder Level5_WirelessRouters, Level5_WirelessDevices, Level5_WirelessBridge, Level5_WirelessRepeater, Level5_WirelessRepeater2, Level5_WirelessAccessPoint, Level5_WirelessCorruption, Level5_Failed, Level5_LostPacket, Level5_HereComesTrouble, Level6_VLAN_Intro, Level6_VLAN_Intro2, Level6_ForbiddenVLAN, Level6_TaggedBetweenSwitches, Level6_VLANRouting, - Level6_VLANRouting2, level6_UntaggedAndDHCP, + Level6_VLANRouting2, level6_UntaggedAndDHCP, Level6_SorryBoss, Level6_VLANFrustrations, } public enum DebugPausePoint { none=0, packet_create=1, packet_kill=2, diff --git a/EduNetworkBuilder/NetworkBuilder.cs b/EduNetworkBuilder/NetworkBuilder.cs index 224960e..db02317 100644 --- a/EduNetworkBuilder/NetworkBuilder.cs +++ b/EduNetworkBuilder/NetworkBuilder.cs @@ -580,72 +580,83 @@ namespace EduNetworkBuilder private void pbNetworkView_RightMouseUp(NetworkDevice ReleasedOn, MouseEventArgs e) { int index = 0; + bool LockedOut = false; if (pbNetworkView.ContextMenuStrip == null) { pbNetworkView.ContextMenuStrip = new ContextMenuStrip(); } + if (ReleasedOn != null) LockedOut = ReleasedOn.DeviceIsLockedOutByVLANs(); pbNetworkView.ContextMenuStrip.Items.Clear(); - if (ReleasedOn != null && ReleasedOn.IsNotNetDevice()) + + if (!LockedOut) { - List DoneList = new List(); - foreach (string tStr in myNetwork.GetIncompleteTestDestinations(ReleasedOn.hostname, true)) + if (ReleasedOn != null && ReleasedOn.IsNotNetDevice()) { - if (!DoneList.Contains(tStr)) + List DoneList = new List(); + foreach (string tStr in myNetwork.GetIncompleteTestDestinations(ReleasedOn.hostname, true)) { - pbNetworkView.ContextMenuStrip.Items.Add(string.Format(NB.Translate("_PingStr"), tStr)); - pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_Ping_Name_Click; - DoneList.Add(tStr); + if (!DoneList.Contains(tStr)) + { + pbNetworkView.ContextMenuStrip.Items.Add(string.Format(NB.Translate("_PingStr"), tStr)); + pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_Ping_Name_Click; + DoneList.Add(tStr); + } + } + DoneList.Clear(); + foreach (string tStr in myNetwork.GetIncompleteTestDestinations(ReleasedOn.hostname, false)) + { + if (!DoneList.Contains(tStr)) + { + pbNetworkView.ContextMenuStrip.Items.Add(string.Format(NB.Translate("H_ARP_TitleStr"), tStr)); + pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_Arp_Name_Click; + DoneList.Add(tStr); + } } } - DoneList.Clear(); - foreach (string tStr in myNetwork.GetIncompleteTestDestinations(ReleasedOn.hostname, false)) + if (ReleasedOn != null && ReleasedOn.IsNotNetDevice()) { - if (!DoneList.Contains(tStr)) + pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("_Ping1")); + pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_Ping_Click; + pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("H_ARP_Title")); + pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_Arp_Click; + pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("NB_NetViewClr")); + pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_ArpClear_Click; + } + if (ReleasedOn != null) + { + if (!myNetwork.ItemIsCritical(ReleasedOn.hostname)) { - pbNetworkView.ContextMenuStrip.Items.Add(string.Format(NB.Translate("H_ARP_TitleStr"), tStr)); - pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_Arp_Name_Click; - DoneList.Add(tStr); + pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("_Delete")); + pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_Delete_Click; + } + } + if (ReleasedOn != null && ReleasedOn.IsNotNetDevice()) + { + pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("_Edit")); + pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_Edit_Click; + } + + if (ReleasedOn != null) + { + ItemClickedOn = ReleasedOn; + if (ReleasedOn.HasDHCPNic()) + { + pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("NB_NetViewDHCP")); + pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_DHCPRequest_Click; + } + foreach (string host in ReleasedOn.ListOfConnectedHosts()) + { + pbNetworkView.ContextMenuStrip.Items.Add(string.Format(NB.Translate("NB_NetViewRmLnkStr"), host)); + pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_RemoveLink_Click; } } } - if (ReleasedOn != null && ReleasedOn.IsNotNetDevice()) + else //we are locked out. { - pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("_Ping1")); - pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_Ping_Click; - pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("H_ARP_Title")); - pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_Arp_Click; - pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("NB_NetViewClr")); - pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_ArpClear_Click; + pbNetworkView.ContextMenuStrip.Items.Add(string.Format(NB.Translate("NB_Reset"))); + pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_Reset_Click; } - if (ReleasedOn != null) - { - if (!myNetwork.ItemIsCritical(ReleasedOn.hostname)) - { - pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("_Delete")); - pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_Delete_Click; - } - } - if (ReleasedOn != null && ReleasedOn.IsNotNetDevice()) - { - pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("_Edit")); - pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_Edit_Click; - } - - if (ReleasedOn != null) - { - ItemClickedOn = ReleasedOn; - if(ReleasedOn.HasDHCPNic()) - { - pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("NB_NetViewDHCP")); - pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_DHCPRequest_Click; - } - foreach (string host in ReleasedOn.ListOfConnectedHosts()) - { - pbNetworkView.ContextMenuStrip.Items.Add(string.Format(NB.Translate("NB_NetViewRmLnkStr"), host)); - pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_RemoveLink_Click; - } - } - if(ReleasedOn != null && myNetwork.VLANsEnabled) + if (ReleasedOn != null && myNetwork.VLANsEnabled) { int MenuIndex = pbNetworkView.ContextMenuStrip.Items.Count; pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("NB_ColorStr")); @@ -655,8 +666,6 @@ namespace EduNetworkBuilder (pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Green"), null, pbNetworkView_Color_Click); (pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Orange"), null, pbNetworkView_Color_Click); (pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Cyan"), null, pbNetworkView_Color_Click); - - } if (ReleasedOn == null) { @@ -715,9 +724,17 @@ namespace EduNetworkBuilder myNetwork.TestForCompletion(true); } + private void pbNetworkView_Reset_Click(object sender, EventArgs e) + { + if (ItemClickedOn == null) return; + ItemClickedOn.ClearIPs(); //reset the device + UpdateVisuals(); + } + private void pbNetworkView_Edit_Click(object sender, EventArgs e) { if (ItemClickedOn == null) return; + if (ItemClickedOn.DeviceIsLockedOutByVLANs()) return; //we cannot edit this if (ItemClickedOn.GetNetType() == NetworkComponentType.microwave || ItemClickedOn.GetNetType() == NetworkComponentType.fluorescent) return; if (ItemClickedOn != null) diff --git a/EduNetworkBuilder/NetworkCard.cs b/EduNetworkBuilder/NetworkCard.cs index c1c8d4b..09ab966 100644 --- a/EduNetworkBuilder/NetworkCard.cs +++ b/EduNetworkBuilder/NetworkCard.cs @@ -757,15 +757,22 @@ namespace EduNetworkBuilder { foreach(NetworkInterface nf in interfaces) { - if(myNicType != NicType.lo) + if (myNicType != NicType.lo) + { nf.myIP = new IPAddress(NB.ZeroIPString); + nf.SetVLANTag(1, VLANTagType.Untagged); + } } } public NetworkInterface InterfaceFromVlanTag(Packet tPacket) { int ID = tPacket.VLANID; - foreach(NetworkInterface oneIF in interfaces) + return InterfaceFromVlanTag(ID); + } + public NetworkInterface InterfaceFromVlanTag(int ID) + { + foreach (NetworkInterface oneIF in interfaces) { if (oneIF.GetVLANTag(ID) != VLANTagType.Forbidden) return oneIF; diff --git a/EduNetworkBuilder/NetworkDevice.cs b/EduNetworkBuilder/NetworkDevice.cs index 2c808a4..f7cd03d 100644 --- a/EduNetworkBuilder/NetworkDevice.cs +++ b/EduNetworkBuilder/NetworkDevice.cs @@ -1303,6 +1303,7 @@ namespace EduNetworkBuilder { bool typesMatch=false; if (tPacket.sourceIP == null) return ResponseToPacket.reject; + if (tPacket.TsourceIP != null && !tPacket.TsourceIP.IsLocal(tPacket.destIP)) return ResponseToPacket.none; foreach(IPConnectionEntry ipc in IPConnections) { if(ipc.What == PacketType.dhcp_request) @@ -1378,7 +1379,8 @@ namespace EduNetworkBuilder // and we process arrival bool MacAddressMatch = HasMac(tPacket.destMAC); - bool ExactMatch = HasIPAddress(tPacket.destIP); + //It is an exact match if it is coming from a local source. + bool ExactMatch = HasIPAddress(tPacket.destIP) && (tPacket.TsourceIP == null || tPacket.TsourceIP.IsLocal(tPacket.destIP)); bool BroadcastMatch = HasBroadcastAddress(tPacket.destIP); bool NeedsRouting = MacAddressMatch && (!ExactMatch && !BroadcastMatch); @@ -1645,6 +1647,31 @@ namespace EduNetworkBuilder bool isbroadcast = HasBroadcastAddress(tPacket); if (!isbroadcast || (isbroadcast && HasLocalNic(tPacket.sourceIP))) { + //We would be responding to it. We have an odd case for switches. + //Verify that the management IP can talk to the packet + + if(myType == NetworkComponentType.net_switch || myType == NetworkComponentType.wrouter) + { + //only a few devices have management ips + NetworkCard nic = HubManagementCard(); + if(nic != null) + { + NetworkInterface nif = nic.GetInterface(0); //management interfaces only have one ip + if(nif != null) + { + VLANTagType VTT = nif.GetVLANTag(tPacket.VLANID); + if(VTT == VLANTagType.Forbidden) + { + //we cannot ping! The packet is blocked by vlan + //Console.WriteLine("blocked by vlan"); + tPacket.AddMessage(DebugLevel.info, NB.Translate("ND_PrepPackVLANErr")); + tPacket.Tracking.Status = NB.LeftPad(hostname) + " " + string.Format(NB.Translate("ND_PrepPackVLANErr")) + tPacket.sourceIP.GetIP.ToIpString() + " -> " + hostname; + tPacket.MyStatus = PacketStatus.finished_failed; + return; + } + } + } + } nPacket = new Packet(this, tPacket.sourceIP, "", PacketType.ping_answer, tPacket.packetID); nPacket.OriginalDestIP = tPacket.destIP; nPacket.isFresh = true; //So it starts from here @@ -1701,7 +1728,8 @@ namespace EduNetworkBuilder if (tPacket.MyType == PacketType.ping_answer) { ResponseToPacket response = HowToRespondToPacket(tPacket); - if (response == ResponseToPacket.accept || HasIPAddress(tPacket.destIP)) + if (response == ResponseToPacket.none) return; //We do not do anything with it here. + if (response == ResponseToPacket.accept || (HasIPAddress(tPacket.destIP) && (tPacket.TsourceIP == null || tPacket.destIP.IsLocal(tPacket.TsourceIP)))) { if (tPacket.health < 100) { @@ -1956,6 +1984,33 @@ namespace EduNetworkBuilder return null; } + public bool DeviceIsLockedOutByVLANs() + { + if (myType != NetworkComponentType.net_switch && myType != NetworkComponentType.wrouter) + return false; //We can only be locked out of a few things. + NetworkCard nic = HubManagementCard(); + if (nic == null) return false; //this should never happen. Eject for now. + NetworkInterface nif = nic.GetInterface(0); + if (nif == null) return false;//this should never happen. Eject for now. + int managementID = nif.GetNonForbiddenVLANID(); + + bool lockedOUT = true; + + foreach(NetworkCard tCard in NICs) + { + if (tCard.GetNicType == NicType.lo) continue; + if (tCard.GetNicType == NicType.management_interface) continue; + + NetworkInterface tNIF = tCard.InterfaceFromVlanTag(managementID); + if(tNIF != null) + { + lockedOUT = false; + break; + } + } + return lockedOUT; + } + public List IPAddressList() { List thelist = new List(); diff --git a/EduNetworkBuilder/NetworkInterface.cs b/EduNetworkBuilder/NetworkInterface.cs index 12bb2a5..aa27ce0 100644 --- a/EduNetworkBuilder/NetworkInterface.cs +++ b/EduNetworkBuilder/NetworkInterface.cs @@ -72,6 +72,16 @@ namespace EduNetworkBuilder return VLANTagType.Forbidden; //if not defined, it is forbidden } + public int GetNonForbiddenVLANID() + { + foreach(VLANInfo vin in VLANs) + { + if (vin.Tag != VLANTagType.Forbidden) + return vin.ID; + } + return -999; + } + public void SetVLANTag(int id, VLANTagType Tag) { bool foundit = false; diff --git a/EduNetworkBuilder/Properties/Resources.Designer.cs b/EduNetworkBuilder/Properties/Resources.Designer.cs index 87ef8d2..1aa3c78 100644 --- a/EduNetworkBuilder/Properties/Resources.Designer.cs +++ b/EduNetworkBuilder/Properties/Resources.Designer.cs @@ -782,6 +782,16 @@ namespace EduNetworkBuilder.Properties { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] Level6_SorryBoss { + get { + object obj = ResourceManager.GetObject("Level6_SorryBoss", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -822,6 +832,16 @@ namespace EduNetworkBuilder.Properties { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] Level6_VLANFrustrations { + get { + object obj = ResourceManager.GetObject("Level6_VLANFrustrations", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// diff --git a/EduNetworkBuilder/Properties/Resources.resx b/EduNetworkBuilder/Properties/Resources.resx index 537fe0e..dc493c7 100644 --- a/EduNetworkBuilder/Properties/Resources.resx +++ b/EduNetworkBuilder/Properties/Resources.resx @@ -415,4 +415,10 @@ ..\Resources\VLAN.enbx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\Level6_SorryBoss.enbx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\Level6_VLANFrustrations.enbx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/EduNetworkBuilder/Resources/Level6_SorryBoss.enbx b/EduNetworkBuilder/Resources/Level6_SorryBoss.enbx new file mode 100644 index 0000000..8481eb0 --- /dev/null +++ b/EduNetworkBuilder/Resources/Level6_SorryBoss.enbx @@ -0,0 +1,874 @@ + + + + + Today your boss brought in a laptop, plugged it into a network-port in his office, and then called you in when it did not work. Fix it, please. + Sorry, Boss. + 1024 + 1024 + 100 + True + 6 + 8 + 153 + full + True + True + + firewall0 + 100 + 146 + 390,180 + firewall + False + True + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 146 + 147 + firewall0 + lo0 + + lo + 147 + False + + + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + wan + wan0 + + 146 + 150 + firewall0 + wan0 + + wan + 150 + False + + + + wan0 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + eth + eth0 + + 146 + 148 + firewall0 + eth0 + + eth + 148 + False + + + + eth0 + + 192.168.1.1 + 255.255.255.0 + 0.0.0.0 + ip + + Tagged + + + eth0:1 + + 192.168.2.1 + 255.255.255.0 + 0.0.0.0 + ip + + Forbidden + Tagged + + + + eth + eth1 + + 146 + 149 + firewall0 + eth1 + + eth + 149 + False + + + + eth1 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + 127.0.0.1 + 0.0.0.0 + 0.0.0.0 + route + + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + route + + + 192.168.1.1 + 192.168.1.10 + 192.168.1.20 + route + + + 192.168.2.1 + 192.168.2.10 + 192.168.2.20 + route + + + + laptop0 + 100 + 142 + 470,790 + laptop + False + False + Green + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 142 + 143 + laptop0 + lo0 + + lo + 143 + False + + + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + eth + eth0 + + 142 + 144 + laptop0 + eth0 + + eth + 144 + True + + + + eth0 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + + net_switch0 + 100 + 109 + 390,400 + net_switch + False + False + + 192.168.1.1 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 109 + 110 + net_switch0 + lo0 + + lo + 110 + False + + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + management_interface + management_interface0 + + 109 + 111 + net_switch0 + management_interface0 + + management_interface + 111 + False + + + management_interface0 + + 192.168.1.5 + 255.255.255.0 + 0.0.0.0 + ip + + Untagged + + + + port + port1 + + 109 + 112 + net_switch0 + port1 + + port + 112 + False + + + port1 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Tagged + Tagged + + + + port + port2 + + 109 + 113 + net_switch0 + port2 + + port + 113 + False + + + port2 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Forbidden + Forbidden + + + + port + port3 + + 109 + 114 + net_switch0 + port3 + + port + 114 + False + + + port3 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Untagged + Forbidden + + + + port + port4 + + 109 + 115 + net_switch0 + port4 + + port + 115 + False + + + port4 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Untagged + Forbidden + + + + port + port5 + + 109 + 116 + net_switch0 + port5 + + port + 116 + False + + + port5 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Forbidden + Untagged + + + + port + port6 + + 109 + 117 + net_switch0 + port6 + + port + 117 + False + + + port6 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Forbidden + Untagged + + + + port + port7 + + 109 + 118 + net_switch0 + port7 + + port + 118 + False + + + port7 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Forbidden + Forbidden + + + + + pc0 + 100 + 121 + 80,490 + pc + False + False + Purple + + 192.168.1.1 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 121 + 122 + pc0 + lo0 + + lo + 122 + False + + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + eth + eth0 + + 121 + 123 + pc0 + eth0 + + eth + 123 + False + + + eth0 + + 192.168.1.2 + 255.255.255.0 + 0.0.0.0 + ip + + Untagged + + + + + pc1 + 100 + 124 + 90,820 + pc + False + False + Purple + + 192.168.1.1 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 124 + 125 + pc1 + lo0 + + lo + 125 + False + + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + eth + eth0 + + 124 + 126 + pc1 + eth0 + + eth + 126 + False + + + eth0 + + 192.168.1.3 + 255.255.255.0 + 0.0.0.0 + ip + + Untagged + + + + + pc2 + 100 + 127 + 710,820 + pc + False + False + Green + + 192.168.2.1 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 127 + 128 + pc2 + lo0 + + lo + 128 + False + + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + eth + eth0 + + 127 + 129 + pc2 + eth0 + + eth + 129 + False + + + eth0 + + 192.168.2.3 + 255.255.255.0 + 0.0.0.0 + ip + + Untagged + + + + + pc3 + 100 + 130 + 760,500 + pc + False + False + Green + + 192.168.2.1 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 130 + 131 + pc3 + lo0 + + lo + 131 + False + + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + eth + eth0 + + 130 + 132 + pc3 + eth0 + + eth + 132 + False + + + eth0 + + 192.168.2.2 + 255.255.255.0 + 0.0.0.0 + ip + + Untagged + + + + + + 121 + 123 + pc0 + eth0 + + + 109 + 114 + net_switch0 + port3 + + + normal + 133 + + + + 124 + 126 + pc1 + eth0 + + + 109 + 115 + net_switch0 + port4 + + + normal + 134 + + + + 127 + 129 + pc2 + eth0 + + + 109 + 116 + net_switch0 + port5 + + + normal + 135 + + + + 130 + 132 + pc3 + eth0 + + + 109 + 117 + net_switch0 + port6 + + + normal + 136 + + + + 146 + 148 + firewall0 + eth0 + + + 109 + 112 + net_switch0 + port1 + + + normal + 151 + + + + 142 + 144 + laptop0 + eth0 + + + 109 + 118 + net_switch0 + port7 + + + normal + 152 + + + laptop0 + pc1 + SuccessfullyPings + + VLAN + Default + Staff + + \ No newline at end of file diff --git a/EduNetworkBuilder/Resources/Level6_VLANFrustrations.enbx b/EduNetworkBuilder/Resources/Level6_VLANFrustrations.enbx new file mode 100644 index 0000000..3150f90 --- /dev/null +++ b/EduNetworkBuilder/Resources/Level6_VLANFrustrations.enbx @@ -0,0 +1,1727 @@ + + + + + You just set up a new computer, but it is not connecting with the other computers for some reason. See if you can fix it. + VLAN Frustration + 1024 + 1024 + 100 + True + 6 + 7 + 171 + full + True + True + + firewall0 + 100 + 148 + 450,170 + firewall + False + True + + 10.0.0.1 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 148 + 149 + firewall0 + lo0 + + lo + 149 + False + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + wan + wan0 + + 148 + 152 + firewall0 + wan0 + + wan + 152 + False + + wan0 + + 10.0.0.2 + 255.255.255.0 + 0.0.0.0 + ip + + Untagged + + + + eth + eth0 + + 148 + 150 + firewall0 + eth0 + + eth + 150 + False + + eth0 + + 192.168.1.1 + 255.255.255.0 + 0.0.0.0 + ip + + Tagged + + + eth0:1 + + 192.168.2.1 + 255.255.255.0 + 0.0.0.0 + ip + + Forbidden + Tagged + + + eth0:2 + + 192.168.3.1 + 255.255.255.0 + 0.0.0.0 + ip + + Forbidden + Tagged + + + + eth + eth1 + + 148 + 151 + firewall0 + eth1 + + eth + 151 + False + + eth1 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + 127.0.0.1 + 0.0.0.0 + 0.0.0.0 + route + + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + route + + + 192.168.1.1 + 192.168.1.5 + 192.168.1.10 + route + + + 192.168.2.1 + 192.168.2.5 + 192.168.2.10 + route + + + 192.168.3.1 + 192.168.3.5 + 192.168.3.10 + route + + + + net_switch0 + 100 + 100 + 220,440 + net_switch + False + False + + 192.168.1.1 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 100 + 101 + net_switch0 + lo0 + + lo + 101 + False + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + management_interface + management_interface0 + + 100 + 102 + net_switch0 + management_interface0 + + management_interface + 102 + False + + management_interface0 + + 192.168.1.252 + 255.255.255.0 + 0.0.0.0 + ip + + Untagged + + + + port + port1 + + 100 + 103 + net_switch0 + port1 + + port + 103 + False + + port1 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Untagged + Forbidden + + + + port + port2 + + 100 + 104 + net_switch0 + port2 + + port + 104 + False + + port2 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Untagged + Forbidden + Forbidden + + + + port + port3 + + 100 + 105 + net_switch0 + port3 + + port + 105 + False + + port3 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Untagged + Forbidden + + + + port + port4 + + 100 + 106 + net_switch0 + port4 + + port + 106 + False + + port4 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Untagged + Forbidden + + + + port + port5 + + 100 + 107 + net_switch0 + port5 + + port + 107 + False + + port5 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Tagged + Tagged + Tagged + + + + port + port6 + + 100 + 108 + net_switch0 + port6 + + port + 108 + False + + port6 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Tagged + Tagged + Tagged + + + + port + port7 + + 100 + 109 + net_switch0 + port7 + + port + 109 + False + + port7 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Tagged + Tagged + Tagged + + + + + net_switch1 + 100 + 110 + 450,400 + net_switch + False + False + + 192.168.1.1 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 110 + 111 + net_switch1 + lo0 + + lo + 111 + False + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + management_interface + management_interface0 + + 110 + 112 + net_switch1 + management_interface0 + + management_interface + 112 + False + + management_interface0 + + 192.168.1.251 + 255.255.255.0 + 0.0.0.0 + ip + + Untagged + + + + port + port1 + + 110 + 113 + net_switch1 + port1 + + port + 113 + False + + port1 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Forbidden + Untagged + Forbidden + + + + port + port2 + + 110 + 114 + net_switch1 + port2 + + port + 114 + False + + port2 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Forbidden + Untagged + Forbidden + + + + port + port3 + + 110 + 115 + net_switch1 + port3 + + port + 115 + False + + port3 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Forbidden + Untagged + Forbidden + + + + port + port4 + + 110 + 116 + net_switch1 + port4 + + port + 116 + False + + port4 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Forbidden + Untagged + Forbidden + + + + port + port5 + + 110 + 117 + net_switch1 + port5 + + port + 117 + False + + port5 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Tagged + Tagged + Tagged + + + + port + port6 + + 110 + 118 + net_switch1 + port6 + + port + 118 + False + + port6 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Tagged + Tagged + Tagged + + + + port + port7 + + 110 + 119 + net_switch1 + port7 + + port + 119 + False + + port7 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Tagged + Tagged + Tagged + + + + + net_switch2 + 100 + 120 + 690,430 + net_switch + False + False + + 192.168.1.1 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 120 + 121 + net_switch2 + lo0 + + lo + 121 + False + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + management_interface + management_interface0 + + 120 + 122 + net_switch2 + management_interface0 + + management_interface + 122 + False + + management_interface0 + + 192.168.1.250 + 255.255.255.0 + 0.0.0.0 + ip + + Untagged + + + + port + port1 + + 120 + 123 + net_switch2 + port1 + + port + 123 + False + + port1 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Forbidden + Untagged + + + + port + port2 + + 120 + 124 + net_switch2 + port2 + + port + 124 + False + + port2 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Forbidden + Untagged + + + + port + port3 + + 120 + 125 + net_switch2 + port3 + + port + 125 + False + + port3 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Forbidden + Untagged + + + + port + port4 + + 120 + 126 + net_switch2 + port4 + + port + 126 + False + + port4 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Forbidden + Untagged + + + + port + port5 + + 120 + 127 + net_switch2 + port5 + + port + 127 + False + + port5 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Tagged + Tagged + Tagged + + + + port + port6 + + 120 + 128 + net_switch2 + port6 + + port + 128 + False + + port6 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Tagged + Tagged + Tagged + + + + port + port7 + + 120 + 129 + net_switch2 + port7 + + port + 129 + False + + port7 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Tagged + Tagged + Tagged + + + + + pc0 + 100 + 130 + 30,620 + pc + False + False + Purple + + 192.168.1.1 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 130 + 131 + pc0 + lo0 + + lo + 131 + False + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + eth + eth0 + + 130 + 132 + pc0 + eth0 + + eth + 132 + False + + eth0 + + 192.168.1.3 + 255.255.255.0 + 0.0.0.0 + ip + + Untagged + + + + + pc1 + 100 + 133 + 40,820 + pc + False + False + Purple + + 192.168.1.1 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 133 + 134 + pc1 + lo0 + + lo + 134 + False + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + eth + eth0 + + 133 + 135 + pc1 + eth0 + + eth + 135 + True + + eth0 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + + pc2 + 100 + 136 + 300,690 + pc + False + False + Green + + 192.168.2.1 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 136 + 137 + pc2 + lo0 + + lo + 137 + False + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + eth + eth0 + + 136 + 138 + pc2 + eth0 + + eth + 138 + False + + eth0 + + 192.168.2.3 + 255.255.255.0 + 0.0.0.0 + ip + + Untagged + + + + + pc3 + 100 + 139 + 490,780 + pc + False + False + Green + + 192.168.2.1 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 139 + 140 + pc3 + lo0 + + lo + 140 + False + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + eth + eth0 + + 139 + 141 + pc3 + eth0 + + eth + 141 + False + + eth0 + + 192.168.3.10 + 255.255.255.0 + 0.0.0.0 + ip + + Untagged + + + + + pc4 + 100 + 142 + 830,600 + pc + False + False + Yellow + + 192.168.3.1 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 142 + 143 + pc4 + lo0 + + lo + 143 + False + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + eth + eth0 + + 142 + 144 + pc4 + eth0 + + eth + 144 + False + + eth0 + + 192.168.3.3 + 255.255.255.0 + 0.0.0.0 + ip + + Untagged + + + + + pc5 + 100 + 145 + 820,770 + pc + False + False + Yellow + + 192.168.3.1 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 145 + 146 + pc5 + lo0 + + lo + 146 + False + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + eth + eth0 + + 145 + 147 + pc5 + eth0 + + eth + 147 + True + + eth0 + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + + pc6 + 100 + 166 + 820,40 + pc + False + False + + 10.0.1.1 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 166 + 167 + pc6 + lo0 + + lo + 167 + False + + + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + eth + eth0 + + 166 + 168 + pc6 + eth0 + + eth + 168 + False + + + + eth0 + + 10.0.1.2 + 255.255.255.0 + 0.0.0.0 + ip + + Untagged + + + + + router0 + 100 + 162 + 570,40 + router + False + False + + 0.0.0.0 + 0.0.0.0 + 0.0.0.0 + gw + + + lo + lo0 + + 162 + 163 + router0 + lo0 + + lo + 163 + False + + + + lo0 + + 127.0.0.1 + 255.0.0.0 + 0.0.0.0 + ip + + Untagged + + + + eth + eth0 + + 162 + 164 + router0 + eth0 + + eth + 164 + False + + + + eth0 + + 10.0.0.1 + 255.255.255.0 + 0.0.0.0 + ip + + Untagged + + + + eth + eth1 + + 162 + 165 + router0 + eth1 + + eth + 165 + False + + + + eth1 + + 10.0.1.1 + 255.255.255.0 + 0.0.0.0 + ip + + Untagged + + + + 192.168.3.0 + 255.255.255.0 + 10.0.0.2 + route + + + 192.168.2.0 + 255.255.255.0 + 10.0.0.2 + route + + + 192.168.1.0 + 255.255.255.0 + 10.0.0.2 + route + + + + + 100 + 109 + net_switch0 + port7 + + + 110 + 118 + net_switch1 + port6 + + + normal + 153 + + + + 145 + 147 + pc5 + eth0 + + + 120 + 123 + net_switch2 + port1 + + + normal + 159 + + + + 139 + 141 + pc3 + eth0 + + + 110 + 114 + net_switch1 + port2 + + + normal + 158 + + + + 136 + 138 + pc2 + eth0 + + + 110 + 113 + net_switch1 + port1 + + + normal + 157 + + + + 110 + 117 + net_switch1 + port5 + + + 148 + 150 + firewall0 + eth0 + + + normal + 161 + + + + 148 + 152 + firewall0 + wan0 + + + 162 + 164 + router0 + eth0 + + + normal + 169 + + + + 110 + 119 + net_switch1 + port7 + + + 120 + 128 + net_switch2 + port6 + + + normal + 154 + + + + 133 + 135 + pc1 + eth0 + + + 100 + 104 + net_switch0 + port2 + + + normal + 156 + + + + 142 + 144 + pc4 + eth0 + + + 120 + 124 + net_switch2 + port2 + + + normal + 160 + + + + 130 + 132 + pc0 + eth0 + + + 100 + 103 + net_switch0 + port1 + + + normal + 155 + + + + 162 + 165 + router0 + eth1 + + + 166 + 168 + pc6 + eth0 + + + normal + 170 + + + pc3 + pc2 + SuccessfullyPings + + + pc2 + All + LockAll + + + net_switch1 + All + LockVLANsOnHost + + + firewall0 + pc4 + SuccessfullyPings + + VLAN + Default + Staff + students + + \ No newline at end of file diff --git a/EduNetworkBuilder/Resources/languages/edustrings.resx b/EduNetworkBuilder/Resources/languages/edustrings.resx index ad2ab96..2826bef 100644 --- a/EduNetworkBuilder/Resources/languages/edustrings.resx +++ b/EduNetworkBuilder/Resources/languages/edustrings.resx @@ -1609,4 +1609,12 @@ When packets are passing across a VLAN link, color the packets so we can visualize them better. OW_OWVLANColoredPacketsTT = When packets are passing across a VLAN link, color the packets so we can visualize them better. + + Reset + NB_Reset = Reset + + + ERROR: Packet forbidden by Management Interface VLAN + ND_PrepPackVLANErr = ERROR: Packet forbidden by Management Interface VLAN + \ No newline at end of file diff --git a/EduNetworkBuilder/VLANConfig.Designer.cs b/EduNetworkBuilder/VLANConfig.Designer.cs index 9fccb2c..24db332 100644 --- a/EduNetworkBuilder/VLANConfig.Designer.cs +++ b/EduNetworkBuilder/VLANConfig.Designer.cs @@ -57,6 +57,7 @@ this.dgv_VLANNames.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.dgv_VLANNames.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgv_VLANNames.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter; this.dgv_VLANNames.Location = new System.Drawing.Point(12, 12); this.dgv_VLANNames.Name = "dgv_VLANNames"; this.dgv_VLANNames.RowTemplate.Height = 24; diff --git a/EduNetworkBuilder/VLANConfig.cs b/EduNetworkBuilder/VLANConfig.cs index d64ab21..e4d5ae2 100644 --- a/EduNetworkBuilder/VLANConfig.cs +++ b/EduNetworkBuilder/VLANConfig.cs @@ -159,7 +159,7 @@ namespace EduNetworkBuilder { NetworkCard NIC = TheDevice.NicFromName(oneNic); if (NIC.GetNicType == NicType.lo) continue; - if (NIC.GetNicType == NicType.management_interface) continue; + //if (NIC.GetNicType == NicType.management_interface) continue; //so we can lock outselves out if (NIC.GetNicType == NicType.wport) continue; if (NIC.GetNicType == NicType.wlan) continue; if (NIC.GetNicType == NicType.vpn) continue; @@ -401,7 +401,7 @@ namespace EduNetworkBuilder { NetworkCard NIC = TheDevice.NicFromName(oneNic); if (NIC.GetNicType == NicType.lo) continue; - if (NIC.GetNicType == NicType.management_interface) continue; + //if (NIC.GetNicType == NicType.management_interface) continue; for (int i = 0; i < NIC.IFCount; i++) { NetworkInterface nif = NIC.GetInterface(i);