diff --git a/CHANGES.md b/CHANGES.md index 40afbce..80a2831 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -37,7 +37,7 @@ Swift-Pfade relativ zu `filius-ipad/ios/FiliusPad/TopologyEditor/` (Stand | `src/zip.ts` | `Persistence/TopologyFLSArchive.swift` (Fehler, Grenzen, Pfadregeln, ZIP-Leser/-Schreiber, CRC-32) | übertragen; DEFLATE über `fflate`, mit Apples Abschneide-Verhalten nachgebildet; Pfadfaltung (NFC, Breite, volles Case-Folding) an 41 Paaren gegen das Swift-Orakel gemessen | | `src/archive.ts` | ebenda, Archiv-Teil von Import und Export | übertragen, ohne die XML-Ebene | | `src/javabeans.ts`, `src/javaDefaults.json` | — | neu: XMLEncoder-Leser nach den Regeln von `java.beans.XMLDecoder` (Swift liest elementweise und verliert geteilte Werte); Getter-Standardwerte und statische Konstanten mit `tools/java-oracle` gemessen | -| `src/importProject.ts` | `Persistence/TopologyProjectStore.swift` (Knoten, Ports, Kabel, IP-Konfiguration, Switch/WLAN, Routen, RIP, Firewall, DHCP, Portweiterleitung, Modem, Dateisysteme, Programme, Doku-Elemente des Imports) | übertragen, Eingabe ist Javas Sicht: Name und Port-Anzahl wie Java, abgelehnte Adresse → Swift-Standard, Router-Standardgateway wie Java (Swift verliert es), jede Router-Firewall eingetragen, Konfigurationstexte wie in Swift getrimmt (`swiftTrim`), Rechner ohne Dateisystem leer wie in Java (Swift: Demo-Dateien), alle Programme bleiben (Swift verwirft sechs), Webserver-Dateien bleiben in `/webserver` (Swift: `/www`), keine versteckten Zustandsdateien im Dateisystem, DNS-Einträge so, wie Javas Server sie aus `/dns/hosts` beantwortet; gegen Swifts importiertes Modell auf 13 Dateien geprüft | +| `src/importProject.ts` | `Persistence/TopologyProjectStore.swift` (Knoten, Ports, Kabel, IP-Konfiguration, Switch/WLAN, Routen, RIP, Firewall, DHCP, Portweiterleitung, Modem, Dateisysteme, Programme, Doku-Elemente des Imports) | übertragen, Eingabe ist Javas Sicht: Name und Port-Anzahl wie Java, abgelehnte Adresse → Swift-Standard, Router-Standardgateway wie Java (Swift verliert es), jede Router-Firewall eingetragen, Konfigurationstexte wie in Swift getrimmt (`swiftTrim`), Rechner ohne Dateisystem leer wie in Java (Swift: Demo-Dateien), alle Programme bleiben (Swift verwirft sechs), Webserver-Dateien bleiben in `/webserver` (Swift: `/www`), keine versteckten Zustandsdateien im Dateisystem, DNS-Einträge so, wie Javas Server sie aus `/dns/hosts` beantwortet, WLAN eines Rechners eingeschaltet nach Javas Funk-Merkmal der Karte (auch ohne SSID; Swift: jede SSID); gegen Swifts importiertes Modell auf 13 Dateien geprüft | | `test/importProject.test.ts` | — | neu: Swifts importiertes Modell (13 Dateien, begründete Abweichungen; im Dateisystem ausgenommen nur Swifts versteckte Zustandsdateien), Vollständigkeit aller 23, Pings im Kern (über einen Router; über drei Router mit manuellen Routen und Router-Gateways) | | `src/systemSoftware.ts` | Java `SwitchFirmware`, `Betriebssystem`, `VermittlungsrechnerBetriebssystem`, `GatewayFirmware`, `Weiterleitungstabelle`, `Firewall`, `FirewallRule`, `DHCPServer`, `ModemFirmware`, `Dateisystem`, `Datei` | neu nach Java: SSID, Lernzeit, RIP, manuelle Routen, Router-Firewall (an allen Stellen, an denen die Datei sie erreicht), DHCP (ein kaputter statischer Eintrag fällt allein weg, Java verliert alle folgenden), statische NAT, Modem, Dateisystem (bei Router und Heimrouter das, was die Datei zu den Vorlagen des Konstruktors hinzufügt, oder eine eigene Wurzel, die sie ersetzt), installierte Programme von Rechner und Notebook; `Character.isWhitespace` am JDK gemessen; gegen Java geprüft | | `src/javaIp.ts` | Java `IP.inetAton`/`ipCheck` | neu nach Java; an 46 Fällen mit Java gemessen | @@ -51,6 +51,8 @@ Swift-Pfade relativ zu `filius-ipad/ios/FiliusPad/TopologyEditor/` (Stand | `test/javaBeansWriter.test.ts`, `test/beans/` | — | neu: 11 Dateien des Schreibers, von Javas `XMLDecoder` gelesen und beschrieben; Erwartungen von Hand | | `src/topologyWriter.ts` | Java `SzenarioVerwaltung.netzwerkSpeichern`, Konstruktoren von `NetzwerkInterface`, `Port`, `GUIKabelItem` und der Systemsoftware | neu nach Java: `konfiguration.xml` aus Javas Sicht — Geräte, Schnittstellen (vom Konstruktor angelegte über Getter, weitere per `add`), Ports über Getter-Verweise, Kabel samt Zeichen-Enden (`kabelpanel`), Doku-Elemente; Systemsoftware über ihre Setter: SSID, Lernzeit, RIP, manuelle Routen, DHCP-Client und -Server, statische NAT, Modem, Router-Firewall (über das `konfig`-Plug-in des Webservers, wie XMLEncoder sie erreicht); Dateisysteme (an die Wurzel des Konstruktors angehängt wie bei XMLEncoder, beim Router hinter dessen Vorlagen); installierte Programme nach den Dateien (Webserver, Tauschbörse und E-Mail-Server legen ihre Ordner nur an, wo sie fehlen; der DNS-Server liest `/dns/hosts` beim Installieren), je unter ihrem Schlüssel mit der Systemsoftware wie `installApp`, samt Einstellungen und persönlicher Firewall; E-Mail: Domain und Bean-Konten des Servers samt Postfächern, Ordner und Adressbuch des Clients (sein Konto steht in `/konten.txt`, einer Datei); Javas Fehler nicht übernommen: ein Empfänger, den eine ältere Datei als Zeichenkette hält, wird als der `AddressEntry` geschrieben, den Javas `AddressEntry(String)` daraus macht (Java legt die Zeichenkette ungeprüft in die typisierte Liste, sein E-Mail-Fenster scheitert daran), ein `null`-Empfänger fällt weg; Kopf „Filius version: 2.14.0 (mdg-filius)“ | | `test/topologyWriter.test.ts`, `test/written.java.json` | — | neu: alle 23 Korpus-Dateien gelesen und neu geschrieben, von Java geladen — Topologie, Systemsoftware, Dateisysteme und Programme samt E-Mail wie beim Original (bis auf die benannte Abweichung bei Empfängern als Zeichenkette, nur in `man-in-the-middle.fls`) (Java gegen Java); dazu eine künstliche Topologie mit dem, was der Korpus nicht hat (u. a. eingeschaltete Router-Firewall mit Regeln jedes Protokolls, alle Firewall-Schalter abseits der Vorgabe, Modem mit eigenem Port und Ziel, verschachtelter Dateibaum mit umbenannter Wurzel, namenlosem Ordner, Datei ohne Typ und Inhalt mit CR/CRLF und Zeichen jenseits der BMP, Heimrouter mit eigener Wurzel, jedes Filius-Programm mit Einstellungen abseits der Vorgabe samt persönlicher Firewall, von Java angelegte Ordner `/peer2peer` und `/mailserver`, E-Mail-Server und -Client mit Konto, Postfach, drei Ordnern, Adressbuch und Empfängern aller Formen) | +| `src/exportProject.ts` | Gegenstück zu `importProject.ts`; Java `JHostKonfiguration.updateWifiConnection`, `InternetKnotenBetriebssystem.getStandardGateway`/`setStandardGateway` | neu: Editor-Modell → Javas Sicht für den Schreiber, Schritt X1 Topologie — Geräte, Schnittstellen (MAC wie in der Simulation: aus der Datei oder aus der Port-ID abgeleitet), Kabel samt Funk (Karte drahtlos und Switch, wie Java verbindet), Gateway und DNS an allen Schnittstellen wie Javas eigene Setter, Doku-Elemente | +| `test/exportProject.test.ts`, `test/exported.java.json` | — | neu: alle 23 Korpus-Dateien importiert, exportiert, geschrieben und von Java geladen — Topologie wie beim Original bis auf benannte Abweichungen (abgeleiteter MAC statt gewürfeltem, Doku in Zeichenreihenfolge mit Text, Schrift und Mindestgröße des Modells); dazu ein künstliches Modell, das Java ebenfalls lädt | | `src/importEmail.ts` | `Persistence/TopologyProjectStore.swift` (`registerJavaEmailConfigurations`, `assignedJavaEmailMessages`) | übertragen, Eingabe ist Javas Sicht: Server-Konten aus `/mailserver/konten.txt`, ohne Datei aus der Bean-Liste (Java verlöre sie); Client-Konto aus `/konten.txt`, ohne Datei aus der älteren `kontoListe` (Filius 2.14 liest sie nicht mehr); Konten und Nachrichten bleiben, wo Swift verwirft, was seine Prüfung nicht besteht; Vor- und Nachname getrennt; Empfangszeit nur aus der Datei (Swift nummeriert); gegen Swifts Modell geprüft | | `test/importEmail.test.ts`, `test/email-*.swift.json` | `State/TopologyEmail.swift` (`decodeJavaServer`, `decodeJavaClient`) als Vergleich | neu: dieselben 43 Kontodateien mit Swifts Leser; wie Swift bis auf benannte Fälle, in denen Swift prüft und die ganze Datei verwirft, wo Java liest | | `src/javaFileSystem.ts`, `src/javaString.ts` | Java `Dateisystem.holeDatei`, `String.trim`/`split`/`equalsIgnoreCase` | neu nach Java; die Groß-/Kleinschreibung gegenüber ASCII am JDK über die ganze BMP gemessen | diff --git a/packages/fls/.gitignore b/packages/fls/.gitignore index f48d2e6..f0293ec 100644 --- a/packages/fls/.gitignore +++ b/packages/fls/.gitignore @@ -1 +1,2 @@ test/written/ +test/exported/ diff --git a/packages/fls/src/exportProject.ts b/packages/fls/src/exportProject.ts new file mode 100644 index 0000000..32331b8 --- /dev/null +++ b/packages/fls/src/exportProject.ts @@ -0,0 +1,192 @@ +// From the editor model to Java's view of a .fls file, which +// topologyWriter.ts writes — the counterpart of importProject.ts. +// +// The topology: each node becomes the Java device of its kind, with its name, +// position and label policy; its ports become interfaces (PC, notebook, +// router, home router) or ports (switch, modem) of Java's device; each link +// becomes a cable between those, drawn between its two nodes; each +// documentation item a GUIDocuItem. A host whose wireless is enabled has a +// wireless card, and its link to a switch is a wireless cable — the only +// wireless connection Java makes (JHostKonfiguration.updateWifiConnection). System software, files and programs +// follow in later steps. +// +// What the model keeps is written as it keeps it, and so differs from the +// Java file it may have been imported from where the import decides (named +// in exportProject.test.ts): +// - a port's MAC address is the one the simulation uses: the file's, or +// one derived from the port's id (effectiveMacAddress) — stable across +// saves, where Java rolls a new one at each load; +// - a router's or home router's gateway and DNS server are written to every +// interface, as Java's own setters (setStandardGateway, setDNSServer) do: +// Java reads them from the first interface only (getStandardGateway, +// getDNSServer), and the model keeps no others; +// - a documentation item always has a text and a font, bold or plain: where +// Java has none, the empty text and Dialog 12 the model gives it. +// +// Checked by Java: every corpus file, imported, exported and written, loads in +// Java FILIUS to the topology of the original up to those departures. + +import { + effectiveMacAddress, + interfaceKey, + type DeviceConfiguration, + type DocumentationItem, + type HostLabelPolicy, + type HostWirelessConfiguration, + type Id, + type InterfaceConfiguration, + type InterfaceKey, + type NodeKind, + type TopologyGraph, + type TopologyNode, +} from '@mdg-filius/core'; +import type { FlsDocumentationItem, FlsInterface, FlsLink, FlsNodeClass } from './topology.js'; +import type { NodeToWrite, TopologyToWrite } from './topologyWriter.js'; + +/** The parts of the editor model the topology is made of. */ +export interface ProjectToExport { + readonly graph: TopologyGraph; + readonly deviceConfigurations: ReadonlyMap; + readonly interfaceConfigurations: ReadonlyMap; + readonly hostWirelessConfigurations: ReadonlyMap; + readonly documentationItems: readonly DocumentationItem[]; +} + +export interface ExportedTopology { + readonly topology: TopologyToWrite; + readonly warnings: string[]; +} + +const CLASS_OF_KIND: Readonly, FlsNodeClass>> = { + pc: 'Rechner', + notebook: 'Notebook', + networkSwitch: 'Switch', + router: 'Vermittlungsrechner', + gateway: 'Gateway', + remoteLink: 'Modem', +}; + +export function exportProject(project: ProjectToExport): ExportedTopology { + const warnings: string[] = []; + const exported = project.graph.nodes.filter((node) => { + if (node.kind !== 'unsupported') return true; + warnings.push(`node '${node.displayName}': a kind Java FILIUS does not have, left out`); + return false; + }); + const indexOfNode = new Map(exported.map((node, index) => [node.id, index])); + const nodes = exported.map((node) => exportNode(node, project)); + + const links: FlsLink[] = []; + project.graph.links.forEach((link, index) => { + const source = indexOfNode.get(link.sourceNodeId); + const target = indexOfNode.get(link.targetNodeId); + const sourcePort = source === undefined ? -1 : exported[source]!.ports.findIndex((port) => port.id === link.sourcePortId); + const targetPort = target === undefined ? -1 : exported[target]!.ports.findIndex((port) => port.id === link.targetPortId); + if (source === undefined || target === undefined || sourcePort < 0 || targetPort < 0) { + warnings.push(`link ${index + 1}: an end is not a port of an exported node, left out`); + return; + } + links.push({ + ends: [ + { node: source, port: sourcePort }, + { node: target, port: targetPort }, + ], + wireless: joinsWirelessly(exported[source]!, exported[target]!, project), + panel: [source, target], + }); + }); + + return { + topology: { nodes, links, documentation: project.documentationItems.map(exportDocumentationItem) }, + warnings, + }; +} + +function exportNode(node: TopologyNode, project: ProjectToExport): NodeToWrite { + const javaClass = CLASS_OF_KIND[node.kind as Exclude]; + const interfaces = exportInterfaces(node, project); + return { + javaClass, + name: node.displayName, + x: Math.round(node.position.x), + y: Math.round(node.position.y), + useIpAsName: showsIp(node.hostLabelPolicy), + useMacAsName: showsMac(node.hostLabelPolicy), + interfaces, + portCount: javaClass === 'Switch' || javaClass === 'Modem' ? node.ports.length : interfaces.length, + system: {}, + }; +} + +function wirelessCard(node: TopologyNode, project: ProjectToExport): boolean { + return (node.kind === 'pc' || node.kind === 'notebook') && project.hostWirelessConfigurations.get(node.id)?.isEnabled === true; +} + +/** A host with a wireless card and a switch. */ +function joinsWirelessly(first: TopologyNode, second: TopologyNode, project: ProjectToExport): boolean { + return ( + (wirelessCard(first, project) && second.kind === 'networkSwitch') || + (wirelessCard(second, project) && first.kind === 'networkSwitch') + ); +} + +function showsIp(policy: HostLabelPolicy): boolean { + return policy === 'ipAddress' || policy === 'ipAndMAC'; +} + +function showsMac(policy: HostLabelPolicy): boolean { + return policy === 'macAddress' || policy === 'ipAndMAC'; +} + +/** + * The interfaces of a PC, notebook, router or home router. An address the + * model has none for is left to Java's constructor (null). + */ +function exportInterfaces(node: TopologyNode, project: ProjectToExport): FlsInterface[] { + const device = project.deviceConfigurations.get(node.id); + switch (node.kind) { + case 'pc': + case 'notebook': + return node.ports.slice(0, 1).map((port) => ({ + ip: device?.ipAddress ?? null, + mask: device?.subnetMask ?? null, + mac: effectiveMacAddress(port), + gateway: device?.defaultGateway ?? '', + dns: device?.dnsServer ?? '', + wireless: wirelessCard(node, project), + })); + case 'router': + case 'gateway': + return node.ports.map((port) => { + const configuration = project.interfaceConfigurations.get(interfaceKey(node.id, port.id)); + return { + ip: configuration?.ipAddress ?? null, + mask: configuration?.subnetMask ?? null, + mac: effectiveMacAddress(port), + gateway: device?.defaultGateway ?? '', + dns: device?.dnsServer ?? '', + wireless: false, + }; + }); + default: + return []; + } +} + +/** Components 0…1 as Java's 0…255. */ +function channel(value: number): number { + return Math.round(value * 255); +} + +function exportDocumentationItem(item: DocumentationItem): FlsDocumentationItem { + return { + type: item.kind === 'rectangle' ? 1 : 2, + text: item.text, + x: Math.round(item.frame.x), + y: Math.round(item.frame.y), + width: Math.round(item.frame.width), + height: Math.round(item.frame.height), + color: [channel(item.color.red), channel(item.color.green), channel(item.color.blue), channel(item.color.alpha)], + font: { name: item.fontName, style: item.isBold ? 1 : 0, size: item.fontSize }, + }; +} diff --git a/packages/fls/src/importProject.ts b/packages/fls/src/importProject.ts index 2b5445a..afe8ee4 100644 --- a/packages/fls/src/importProject.ts +++ b/packages/fls/src/importProject.ts @@ -22,6 +22,9 @@ // without one the core behaves as with an inactive one). // - configuration text is trimmed, as Swift trims every value it reads; // names stay as Java has them; +// - a host's wireless: enabled when its card is wireless, as in Java, which +// joins a network only then — also without an SSID; Swift enables it for +// every SSID; // - a Java modem becomes an in-project remote link pair keyed by its port, // as in Swift — two FILIUS instances on different hosts are not joined. // - a PC or notebook whose file has no file system gets an empty one, as in @@ -564,8 +567,11 @@ function registerSystemConfigurations( retentionTimeMilliseconds: source.system.retentionTime ?? 300_000, }); } - if ((node.kind === 'pc' || node.kind === 'notebook') && ssid !== '') { - system.hostWirelessConfigurations.set(node.id, { isEnabled: true, ssid }); + // Java joins a wireless network when the card is wireless and an SSID is set + // (JHostKonfiguration.updateWifiConnection); the model keeps both. + const wireless = source.interfaces[0]?.wireless === true; + if ((node.kind === 'pc' || node.kind === 'notebook') && (ssid !== '' || wireless)) { + system.hostWirelessConfigurations.set(node.id, { isEnabled: wireless, ssid }); } const routes: ManualRoute[] = []; for (const row of source.system.manualRoutes ?? []) { diff --git a/packages/fls/src/index.ts b/packages/fls/src/index.ts index 11299bc..13b5d64 100644 --- a/packages/fls/src/index.ts +++ b/packages/fls/src/index.ts @@ -11,3 +11,4 @@ export * from './systemSoftware.js'; export * from './topology.js'; export * from './topologyWriter.js'; export * from './zip.js'; +export * from './exportProject.js'; diff --git a/packages/fls/test/exportProject.test.ts b/packages/fls/test/exportProject.test.ts new file mode 100644 index 0000000..83c3142 --- /dev/null +++ b/packages/fls/test/exportProject.test.ts @@ -0,0 +1,348 @@ +// Every corpus file, imported into the editor model and exported again: +// Java FILIUS loads the written file (tools/java-oracle, exported.java.json) +// to the topology of the original (corpus.java.json) — up to what the model +// decides differently, named below (DEPARTURES). +// +// UPDATE_EXPORTED=1 writes the files to test/exported/ (not checked in); the +// Java oracle then loads them and records each file's SHA-256, which must +// match what the export makes now. + +import { createHash } from 'node:crypto'; +import { mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from 'node:fs'; +import { dirname, join, relative } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { DOCUMENTATION_MINIMUM_SIZE, stableGeneratedMacAddress, type Id, type TopologyNode } from '@mdg-filius/core'; +import { describe, expect, it } from 'vitest'; +import { + decodeJavaBeans, + exportProject, + importProject, + readFlsArchive, + readTopology, + writeFlsArchive, + type ProjectToExport, +} from '../src/index.js'; +import { writeTopologyXml } from '../src/topologyWriter.js'; + +const here = dirname(fileURLToPath(import.meta.url)); +const corpusRoot = join(here, '../../../corpus'); +const exportedRoot = join(here, 'exported'); + +function flsFiles(directory: string): string[] { + return readdirSync(directory).flatMap((name) => { + const path = join(directory, name); + if (statSync(path).isDirectory()) return flsFiles(path); + return name.endsWith('.fls') ? [path] : []; + }); +} + +/** Ids a test can read, in the order they are made. */ +function counter(): () => Id { + let next = 0; + return () => `00000000-0000-0000-0000-${String(++next).padStart(12, '0')}`; +} + +type JavaNode = { class: string; name: string | null; bounds: number[]; useIpAsName?: boolean; useMacAsName?: boolean; ports: unknown }; +type JavaFile = { success: boolean; nodes: JavaNode[]; cables: unknown[]; documentation: unknown[]; sha256?: string }; + +const original = JSON.parse(readFileSync(join(corpusRoot, 'corpus.java.json'), 'utf8')) as Record; +const exportedPath = join(here, 'exported.java.json'); +const exported = JSON.parse(readFileSync(exportedPath, 'utf8')) as Record; + +/** The topology of Java's view: the label's position, not its size. */ +function topologyOf(view: JavaFile) { + return { + success: view.success, + nodes: view.nodes.map((node) => ({ + class: node.class, + name: node.name, + position: node.bounds.slice(0, 2), + useIpAsName: node.useIpAsName, + useMacAsName: node.useMacAsName, + ports: node.ports, + })), + cables: view.cables, + documentation: view.documentation, + }; +} + +/** + * What the model decides differently from the Java file it was imported + * from, each applied to Java's view of the original: + * - generatedMac: a card whose MAC the file lacked (Java rolls a new one at + * each load) has the one the simulation uses, derived from its port id; + * - documentation: the items in the model's render order (rectangles below + * text), a missing text empty, a missing font Dialog 12, and at least the + * editor's smallest size (DOCUMENTATION_MINIMUM_SIZE). + */ +const DEPARTURES = { + generatedMac(view: JavaFile, macs: (string | undefined)[][]): JavaFile { + return { + ...view, + nodes: view.nodes.map((node, index) => ({ + ...node, + ports: (node.ports as Record[]).map((port, portIndex) => + 'mac' in port && port.mac === null ? { ...port, mac: macs[index]![portIndex] } : port, + ), + })), + }; + }, + documentation(view: JavaFile): JavaFile { + const items = (view.documentation as Record[]).map((item) => { + const [x, y, width, height] = item.bounds as number[]; + return { + ...item, + text: item.text ?? '', + bounds: [x, y, Math.max(width!, DOCUMENTATION_MINIMUM_SIZE.width), Math.max(height!, DOCUMENTATION_MINIMUM_SIZE.height)], + font: item.font ?? ['Dialog', 12, 0], + }; + }); + return { ...view, documentation: sortedDocumentation(items) }; + }, +}; + +/** Documentation items in an order that does not depend on the list's. */ +function sortedDocumentation(items: unknown[]): unknown[] { + return items.map((item) => JSON.stringify(item)).sort().map((text) => JSON.parse(text) as unknown); +} + +/** Every port id each exported node's MAC could be derived from, by node and port. */ +function portIds(project: ReturnType): Id[][] { + return project.graph.nodes.map((node) => node.ports.map((port) => port.id)); +} + +const departed = { generatedMac: new Set(), documentation: new Set() }; + +describe('the editor model exported, as Java loads it', () => { + for (const file of flsFiles(corpusRoot)) { + const name = relative(corpusRoot, file); + it(name, () => { + const topology = readTopology(decodeJavaBeans(readFlsArchive(new Uint8Array(readFileSync(file))).configurationXml)); + const project = importProject(topology, counter()); + const { topology: toWrite } = exportProject(project); + const archive = writeFlsArchive(new TextEncoder().encode(writeTopologyXml(toWrite))); + if (process.env.UPDATE_EXPORTED === '1') { + mkdirSync(dirname(join(exportedRoot, name)), { recursive: true }); + writeFileSync(join(exportedRoot, name), archive); + } + const java = exported[name]; + expect(java?.sha256, 'exported.java.json is not about this output: UPDATE_EXPORTED=1, then npm run oracle:java').toBe( + createHash('sha256').update(archive).digest('hex'), + ); + // A MAC the file lacked: the one derived from the port's id. + const ids = portIds(project); + const macs = toWrite.nodes.map((node, index) => + node.interfaces.map((nic, portIndex) => { + const derived = stableGeneratedMacAddress(ids[index]![portIndex]!); + return nic.mac === derived ? derived : undefined; + }), + ); + const source = original[name]!; + const withMacs = DEPARTURES.generatedMac(source, macs); + const expected = DEPARTURES.documentation(withMacs); + if (JSON.stringify(withMacs) !== JSON.stringify(source)) departed.generatedMac.add(name); + if (JSON.stringify(expected.documentation) !== JSON.stringify(source.documentation)) departed.documentation.add(name); + expect(topologyOf({ ...java!, documentation: sortedDocumentation(java!.documentation) })).toEqual(topologyOf(expected)); + }); + } + + it('departs from Java where the model decides differently', () => { + expect(departed.generatedMac.size).toBeGreaterThan(0); + expect(departed.documentation.size).toBeGreaterThan(0); + }); +}); + +// ── A model beyond the corpus, loaded by Java ────────────────────────────── + +const port = (id: string) => ({ id, label: id, isOccupied: false }); + +/** + * What the corpus lacks: a label with IP and MAC, a position between + * pixels, a switch with five ports, a wireless notebook, a router with three + * interfaces and a gateway, a half-transparent bold text and a rectangle. + */ +const SYNTHETIC: ProjectToExport = { + graph: { + nodes: [ + { id: 'pc', kind: 'pc', displayName: 'PC', hostLabelPolicy: 'ipAndMAC', position: { x: 10.6, y: 20.2 }, ports: [port('p0')] }, + { id: 'sw', kind: 'networkSwitch', displayName: 'SW', hostLabelPolicy: 'manual', position: { x: 100, y: 20 }, ports: ['s0', 's1', 's2', 's3', 's4'].map(port) }, + { id: 'nb', kind: 'notebook', displayName: 'NB', hostLabelPolicy: 'macAddress', position: { x: 100, y: 120 }, ports: [port('n0')] }, + { id: 'rt', kind: 'router', displayName: 'RT', hostLabelPolicy: 'manual', position: { x: 200, y: 20 }, ports: ['r0', 'r1', 'r2'].map(port) }, + ], + links: [ + { id: 'l1', sourceNodeId: 'pc', sourcePortId: 'p0', targetNodeId: 'sw', targetPortId: 's4' }, + { id: 'l2', sourceNodeId: 'nb', sourcePortId: 'n0', targetNodeId: 'sw', targetPortId: 's0' }, + { id: 'l3', sourceNodeId: 'sw', sourcePortId: 's2', targetNodeId: 'rt', targetPortId: 'r1' }, + ], + }, + deviceConfigurations: new Map([ + ['pc', { ipAddress: '10.0.0.1', subnetMask: '255.255.255.0', defaultGateway: '10.0.0.254', dnsServer: '10.0.0.53' }], + ['nb', { ipAddress: '10.0.0.2', subnetMask: '255.255.255.0', defaultGateway: '', dnsServer: '' }], + ['rt', { ipAddress: '10.0.0.254', subnetMask: '255.255.255.0', defaultGateway: '10.9.9.9', dnsServer: '10.0.0.53' }], + ]), + interfaceConfigurations: new Map([ + ['rt/r0', { ipAddress: '10.1.0.1', subnetMask: '255.255.0.0' }], + ['rt/r1', { ipAddress: '10.0.0.254', subnetMask: '255.255.255.0' }], + ['rt/r2', { ipAddress: '10.2.0.1', subnetMask: '255.255.0.0' }], + ]), + hostWirelessConfigurations: new Map([['nb', { isEnabled: true, ssid: 'net' }]]), + documentationItems: [ + { + id: 'd1', + kind: 'rectangle', + frame: { x: 5, y: 6, width: 300, height: 200 }, + text: '', + color: { red: 1, green: 0.5, blue: 0, alpha: 0.5 }, + fontName: 'Dialog', + fontSize: 12, + isBold: false, + order: 0, + }, + { + id: 'd2', + kind: 'text', + frame: { x: 40.4, y: 50.6, width: 120, height: 30 }, + text: 'Netz A\nzweite Zeile', + color: { red: 0, green: 0, blue: 1, alpha: 1 }, + fontName: 'SansSerif', + fontSize: 16, + isBold: true, + order: 1, + }, + ], +}; + +describe('a model beyond the corpus, as Java loads it', () => { + it('keeps what the corpus never has', () => { + const name = 'synthetic/model.fls'; + const { topology: toWrite, warnings } = exportProject(SYNTHETIC); + const archive = writeFlsArchive(new TextEncoder().encode(writeTopologyXml(toWrite))); + if (process.env.UPDATE_EXPORTED === '1') { + mkdirSync(join(exportedRoot, 'synthetic'), { recursive: true }); + writeFileSync(join(exportedRoot, name), archive); + } + const java = exported[name]; + expect(java?.sha256, 'exported.java.json is not about this output: UPDATE_EXPORTED=1, then npm run oracle:java').toBe( + createHash('sha256').update(archive).digest('hex'), + ); + expect(warnings).toEqual([]); + const card = (ip: string, mask: string, mac: string, gateway: string, dns: string, wireless = false) => ({ ip, mask, mac, gateway, dns, wireless }); + expect(topologyOf(java!)).toEqual({ + success: true, + nodes: [ + { + class: 'Rechner', + name: 'PC', + position: [11, 20], + useIpAsName: true, + useMacAsName: true, + ports: [card('10.0.0.1', '255.255.255.0', stableGeneratedMacAddress('p0'), '10.0.0.254', '10.0.0.53')], + }, + { class: 'Switch', name: 'SW', position: [100, 20], useIpAsName: undefined, useMacAsName: undefined, ports: [{}, {}, {}, {}, {}] }, + { + class: 'Notebook', + name: 'NB', + position: [100, 120], + useIpAsName: false, + useMacAsName: true, + ports: [card('10.0.0.2', '255.255.255.0', stableGeneratedMacAddress('n0'), '', '', true)], + }, + { + class: 'Vermittlungsrechner', + name: 'RT', + position: [200, 20], + useIpAsName: undefined, + useMacAsName: undefined, + ports: [ + card('10.1.0.1', '255.255.0.0', stableGeneratedMacAddress('r0'), '10.9.9.9', '10.0.0.53'), + card('10.0.0.254', '255.255.255.0', stableGeneratedMacAddress('r1'), '10.9.9.9', '10.0.0.53'), + card('10.2.0.1', '255.255.0.0', stableGeneratedMacAddress('r2'), '10.9.9.9', '10.0.0.53'), + ], + }, + ], + cables: [ + { ends: [[0, 0], [1, 4]], wireless: false, panel: [0, 1] }, + { ends: [[2, 0], [1, 0]], wireless: true, panel: [2, 1] }, + { ends: [[1, 2], [3, 1]], wireless: false, panel: [1, 3] }, + ], + documentation: [ + { type: 1, text: '', bounds: [5, 6, 300, 200], color: [255, 128, 0, 128], font: ['Dialog', 12, 0] }, + { type: 2, text: 'Netz A\nzweite Zeile', bounds: [40, 51, 120, 30], color: [0, 0, 255, 255], font: ['SansSerif', 16, 1] }, + ], + }); + }); +}); + +// ── Rules the corpus does not exercise ───────────────────────────────────── + +describe('exportProject rules', () => { + const node = (id: string, kind: TopologyNode['kind'], ports: string[], extra: Partial = {}): TopologyNode => ({ + id, + kind, + displayName: id, + hostLabelPolicy: 'manual', + position: { x: 0, y: 0 }, + ports: ports.map(port), + ...extra, + }); + const link = (id: string, source: [string, string], target: [string, string]) => ({ + id, + sourceNodeId: source[0], + sourcePortId: source[1], + targetNodeId: target[0], + targetPortId: target[1], + }); + const project = (nodes: TopologyNode[], links: ReturnType[], wireless: [string, boolean][] = []): ProjectToExport => ({ + graph: { nodes, links }, + deviceConfigurations: new Map(), + interfaceConfigurations: new Map(), + hostWirelessConfigurations: new Map(wireless.map(([id, isEnabled]) => [id, { isEnabled, ssid: 'net' }])), + documentationItems: [], + }); + + it('leaves out a node of a kind Java does not have, and the links to it', () => { + const { topology, warnings } = exportProject( + project( + [node('pc', 'pc', ['p0']), node('odd', 'unsupported', ['o0']), node('sw', 'networkSwitch', ['s0', 's1'])], + [link('l1', ['pc', 'p0'], ['odd', 'o0']), link('l2', ['pc', 'p0'], ['sw', 's1']), link('l3', ['pc', 'missing'], ['sw', 's0'])], + ), + ); + expect(topology.nodes.map((each) => each.javaClass)).toEqual(['Rechner', 'Switch']); + expect(topology.links).toEqual([{ ends: [{ node: 0, port: 0 }, { node: 1, port: 1 }], wireless: false, panel: [0, 1] }]); + expect(warnings).toEqual([ + "node 'odd': a kind Java FILIUS does not have, left out", + 'link 1: an end is not a port of an exported node, left out', + 'link 3: an end is not a port of an exported node, left out', + ]); + }); + + it('joins wirelessly only a host with a wireless card and a switch', () => { + const { topology } = exportProject( + project( + [ + node('nb', 'notebook', ['n0']), + node('sw', 'networkSwitch', ['s0', 's1']), + node('nb2', 'notebook', ['m0']), + node('rt', 'router', ['r0']), + node('pc', 'pc', ['p0']), + ], + [link('l1', ['sw', 's0'], ['nb', 'n0']), link('l2', ['nb2', 'm0'], ['rt', 'r0']), link('l3', ['pc', 'p0'], ['sw', 's1'])], + [ + ['nb', true], + ['nb2', true], + ['pc', false], + ], + ), + ); + expect(topology.links.map((each) => each.wireless)).toEqual([true, false, false]); + expect(topology.nodes.map((each) => each.interfaces.map((nic) => nic.wireless))).toEqual([[true], [], [true], [false], [false]]); + }); + + it('rounds positions to Java ints and shows IP and MAC as the policy says', () => { + const { topology } = exportProject( + project([node('pc', 'pc', ['p0'], { position: { x: 10.5, y: -3.4 }, hostLabelPolicy: 'ipAndMAC' })], []), + ); + expect(topology.nodes[0]).toMatchObject({ x: 11, y: -3, useIpAsName: true, useMacAsName: true, portCount: 1 }); + expect(topology.nodes[0]!.interfaces[0]!.mac).toBe(stableGeneratedMacAddress('p0')); + }); +}); diff --git a/packages/fls/test/exported.java.json b/packages/fls/test/exported.java.json new file mode 100644 index 0000000..9c5fadf --- /dev/null +++ b/packages/fls/test/exported.java.json @@ -0,0 +1,15150 @@ +{ + "ipad-fixtures/Public_and_Private_Networks_2_EN.fls": { + "success": true, + "nodes": [ + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 79, + 124, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.12", + "mask": "255.255.255.0", + "mac": "FB:07:94:E4:05:06", + "gateway": "192.168.0.1", + "dns": "8.8.8.8", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Gateway", + "name": "Gateway", + "label": "Heimrouter", + "bounds": [ + 367, + 91, + 21, + 20 + ], + "ports": [ + { + "ip": "42.0.0.10", + "mask": "255.0.0.0", + "mac": "18:C4:B3:33:AB:BD", + "gateway": "42.0.0.1", + "dns": "", + "wireless": false + }, + { + "ip": "192.168.0.1", + "mask": "255.255.255.0", + "mac": "28:62:32:5B:5C:90", + "gateway": "42.0.0.1", + "dns": "", + "wireless": false + } + ], + "system": { + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 243, + "sha256": "82d08041730728a01f9c7714db912699ff79a7a1b2211c48e283d6b8aec3f272", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "staticNAT": [], + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "Vermittlungsrechner", + "label": "Vermittlungsrechner", + "bounds": [ + 521, + 364, + 21, + 20 + ], + "ports": [ + { + "ip": "42.0.0.1", + "mask": "255.255.255.0", + "mac": "A7:1D:A9:4C:C4:A7", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "160.10.20.1", + "mask": "255.255.255.0", + "mac": "D1:3E:5F:E6:BA:F9", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "8.8.8.1", + "mask": "255.255.255.0", + "mac": "03:3C:DF:0A:44:1E", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Rechner", + "name": "mywebserver.de (160.10.20.10)", + "label": "Rechner", + "bounds": [ + 656, + 419, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "160.10.20.10", + "mask": "255.255.255.0", + "mac": "71:6A:B4:64:00:4E", + "gateway": "160.10.20.1", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Rechner", + "label": "Rechner", + "bounds": [ + 383, + 422, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "8.8.8.8", + "mask": "255.255.255.0", + "mac": "48:76:39:9B:AC:29", + "gateway": "8.8.8.1", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 168, + 29, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.11", + "mask": "255.255.255.0", + "mac": "45:06:FC:3E:2B:59", + "gateway": "192.168.0.1", + "dns": "8.8.8.8", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Wifi Switch", + "label": "Switch / WLAN", + "bounds": [ + 255, + 167, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + } + ], + "cables": [ + { + "ends": [ + [ + 1, + 0 + ], + [ + 2, + 0 + ] + ], + "wireless": false, + "panel": [ + 1, + 2 + ] + }, + { + "ends": [ + [ + 2, + 1 + ], + [ + 3, + 0 + ] + ], + "wireless": false, + "panel": [ + 2, + 3 + ] + }, + { + "ends": [ + [ + 2, + 2 + ], + [ + 4, + 0 + ] + ], + "wireless": false, + "panel": [ + 2, + 4 + ] + }, + { + "ends": [ + [ + 6, + 1 + ], + [ + 1, + 1 + ] + ], + "wireless": false, + "panel": [ + 6, + 1 + ] + }, + { + "ends": [ + [ + 5, + 0 + ], + [ + 6, + 0 + ] + ], + "wireless": true, + "panel": [ + 5, + 6 + ] + }, + { + "ends": [ + [ + 0, + 0 + ], + [ + 6, + 2 + ] + ], + "wireless": true, + "panel": [ + 0, + 6 + ] + } + ], + "documentation": [ + { + "type": 1, + "text": "", + "bounds": [ + 56, + 9, + 459, + 243 + ], + "color": [ + 209, + 232, + 255, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 1, + "text": "", + "bounds": [ + 277, + 260, + 602, + 314 + ], + "color": [ + 255, + 201, + 201, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "8.8.8.1\n", + "bounds": [ + 508, + 390, + 88, + 24 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "42.0.0.1", + "bounds": [ + 587, + 345, + 100, + 24 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "42.0.0.10", + "bounds": [ + 453, + 124, + 100, + 24 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "192.168.0.1", + "bounds": [ + 308, + 123, + 88, + 24 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "160.10.20.1", + "bounds": [ + 631, + 391, + 88, + 24 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "DNS \nNameserver\n", + "bounds": [ + 373, + 519, + 88, + 41 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "This model is copyright © 2026 Josh Buhl and is freely distributable under the creative commons CC BY-NC-SA 4.0CC BY-NC-SA 4.0 License", + "bounds": [ + 37, + 615, + 275, + 59 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Private Local Area Network (LAN)", + "bounds": [ + 281, + 20, + 175, + 54 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 18, + 1 + ] + }, + { + "type": 2, + "text": "Public Network (WAN)", + "bounds": [ + 297, + 283, + 215, + 35 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 18, + 1 + ] + }, + { + "type": 2, + "text": "[Gateway and Switch are often integrated into one device especially at home.]", + "bounds": [ + 352, + 179, + 153, + 54 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + } + ], + "sha256": "3bd8096f5f31f38c092db2a6d65af1fd888bdd55ead8bca92bd0b37fc1c92a48" + }, + "ipad-fixtures/dns_server.fls": { + "success": true, + "nodes": [ + { + "class": "Switch", + "name": "Switch / WLAN", + "label": "Switch / WLAN", + "bounds": [ + 250, + 181, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Rechner", + "name": "DNS-Server (lokal)", + "label": "Rechner", + "bounds": [ + 213, + 16, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.5.12", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:26", + "gateway": "141.99.5.1", + "dns": "141.99.5.12", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Webserver", + "label": "Rechner", + "bounds": [ + 63, + 83, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.5.10", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:28", + "gateway": "141.99.5.1", + "dns": "141.99.5.12", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 289, + 313, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.5.11", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:30", + "gateway": "141.99.5.1", + "dns": "141.99.5.12", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "DNS-Server (.)", + "label": "Rechner", + "bounds": [ + 735, + 25, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.5.13", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:32", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Switch / WLAN", + "label": "Switch / WLAN", + "bounds": [ + 483, + 185, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Rechner", + "name": "DNS-Server (de.)", + "label": "Rechner", + "bounds": [ + 726, + 145, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.5.14", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:59", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "DNS-Server (filius.de.)", + "label": "Rechner", + "bounds": [ + 709, + 276, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.5.15", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:61", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + } + ], + "cables": [ + { + "ends": [ + [ + 0, + 1 + ], + [ + 1, + 0 + ] + ], + "wireless": false, + "panel": [ + 0, + 1 + ] + }, + { + "ends": [ + [ + 2, + 0 + ], + [ + 0, + 3 + ] + ], + "wireless": false, + "panel": [ + 2, + 0 + ] + }, + { + "ends": [ + [ + 3, + 0 + ], + [ + 0, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 0 + ] + }, + { + "ends": [ + [ + 0, + 2 + ], + [ + 5, + 0 + ] + ], + "wireless": false, + "panel": [ + 0, + 5 + ] + }, + { + "ends": [ + [ + 5, + 1 + ], + [ + 4, + 0 + ] + ], + "wireless": false, + "panel": [ + 5, + 4 + ] + }, + { + "ends": [ + [ + 5, + 2 + ], + [ + 6, + 0 + ] + ], + "wireless": false, + "panel": [ + 5, + 6 + ] + }, + { + "ends": [ + [ + 5, + 3 + ], + [ + 7, + 0 + ] + ], + "wireless": false, + "panel": [ + 5, + 7 + ] + } + ], + "documentation": [], + "sha256": "6b410928faee1600aa36e5ba05b8818b6b7484974b9c7c74e2026f0eb9b2bf90" + }, + "ipad-fixtures/zwei_rechnernetze_komplett.fls": { + "success": true, + "nodes": [ + { + "class": "Switch", + "name": "Switch 1", + "label": "Switch / WLAN", + "bounds": [ + 164, + 178, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Switch", + "name": "Switch 2", + "label": "Switch / WLAN", + "bounds": [ + 612, + 104, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Rechner", + "name": "DNS-Server 2.10", + "label": "Rechner", + "bounds": [ + 694, + 19, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.2.10", + "mask": "255.255.255.0", + "mac": "55:69:1F:18:4C:96", + "gateway": "141.99.2.1", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 1.10", + "label": "Notebook", + "bounds": [ + 53, + 100, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.1.10", + "mask": "255.255.255.0", + "mac": "95:11:22:49:65:CB", + "gateway": "141.99.1.1", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 1.11", + "label": "Notebook", + "bounds": [ + 70, + 235, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.1.11", + "mask": "255.255.255.0", + "mac": "AE:F4:7A:63:81:B9", + "gateway": "", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "Vermittlungsrechner", + "label": "Vermittlungsrechner", + "bounds": [ + 373, + 106, + 21, + 20 + ], + "ports": [ + { + "ip": "141.99.1.1", + "mask": "255.255.255.0", + "mac": "A4:F4:2A:89:9F:E8", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "141.99.2.1", + "mask": "255.255.255.0", + "mac": "6D:B4:5B:F1:70:FC", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + } + ], + "cables": [ + { + "ends": [ + [ + 3, + 0 + ], + [ + 0, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 0 + ] + }, + { + "ends": [ + [ + 4, + 0 + ], + [ + 0, + 1 + ] + ], + "wireless": false, + "panel": [ + 4, + 0 + ] + }, + { + "ends": [ + [ + 1, + 1 + ], + [ + 2, + 0 + ] + ], + "wireless": false, + "panel": [ + 1, + 2 + ] + }, + { + "ends": [ + [ + 0, + 2 + ], + [ + 5, + 0 + ] + ], + "wireless": false, + "panel": [ + 0, + 5 + ] + }, + { + "ends": [ + [ + 5, + 1 + ], + [ + 1, + 0 + ] + ], + "wireless": false, + "panel": [ + 5, + 1 + ] + } + ], + "documentation": [], + "sha256": "fbbcf5fd996a17f9d443865f83232870de866ace6823aa1614ba6173bb5e39db" + }, + "java-examples/Internet_Complete_with_e-Mail_Webserver_Intranet_Portforwarding_Firewall_DHCP_EN.fls": { + "success": true, + "nodes": [ + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 5, + 169, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "10.10.20.11", + "mask": "255.0.0.0", + "mac": "A8:BD:04:A6:63:AD", + "gateway": "10.0.0.1", + "dns": "10.0.0.1", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Switch", + "label": "Switch / WLAN", + "bounds": [ + 233, + 173, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 2, + 274, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "10.10.20.12", + "mask": "255.0.0.0", + "mac": "3D:67:2A:01:2D:91", + "gateway": "10.0.0.1", + "dns": "10.0.0.1", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "Provider 1", + "label": "Vermittlungsrechner", + "bounds": [ + 419, + 434, + 21, + 20 + ], + "ports": [ + { + "ip": "42.0.0.1", + "mask": "255.255.255.0", + "mac": "2E:E7:53:65:17:0F", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "6.0.0.2", + "mask": "255.255.255.0", + "mac": "1E:27:AE:8E:77:14", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "2.0.0.1", + "mask": "255.255.255.0", + "mac": "4B:A0:59:16:7C:2C", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "", + "label": "Vermittlungsrechner", + "bounds": [ + 548, + 490, + 21, + 20 + ], + "ports": [ + { + "ip": "6.0.0.1", + "mask": "255.255.255.0", + "mac": "C5:AD:0D:4F:97:06", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "11.0.0.1", + "mask": "255.255.255.0", + "mac": "E0:3F:89:38:E3:2C", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "130.100.200.1", + "mask": "255.255.255.0", + "mac": "3C:84:27:63:5A:E3", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "12.0.0.1", + "mask": "255.255.255.0", + "mac": "F5:FB:71:A8:11:59", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "", + "label": "Vermittlungsrechner", + "bounds": [ + 294, + 518, + 21, + 20 + ], + "ports": [ + { + "ip": "2.0.0.2", + "mask": "255.255.255.0", + "mac": "3A:DC:16:7C:AA:78", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "11.0.0.2", + "mask": "255.255.255.0", + "mac": "91:D6:EC:3F:56:B0", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "3.0.0.1", + "mask": "255.255.255.0", + "mac": "16:F2:4D:40:AA:56", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "", + "label": "Vermittlungsrechner", + "bounds": [ + 427, + 583, + 21, + 20 + ], + "ports": [ + { + "ip": "12.0.0.2", + "mask": "255.255.255.0", + "mac": "A2:55:52:6B:6F:27", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "3.0.0.2", + "mask": "255.255.255.0", + "mac": "27:17:86:69:32:C9", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "4.0.0.1", + "mask": "255.255.255.0", + "mac": "B3:22:50:EC:11:FB", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "8.0.0.1", + "mask": "255.0.0.0", + "mac": "63:D5:E4:BB:37:E6", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "15.0.0.1", + "mask": "255.255.255.0", + "mac": "15:DA:6A:2F:5F:3A", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "", + "label": "Vermittlungsrechner", + "bounds": [ + 632, + 643, + 21, + 20 + ], + "ports": [ + { + "ip": "4.0.0.2", + "mask": "255.255.255.0", + "mac": "80:6D:2A:57:59:B2", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "5.0.0.1", + "mask": "255.255.255.0", + "mac": "69:EB:EB:6E:F6:82", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "120.130.140.1", + "mask": "255.255.255.0", + "mac": "C9:5D:41:10:67:82", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "", + "label": "Vermittlungsrechner", + "bounds": [ + 781, + 574, + 21, + 20 + ], + "ports": [ + { + "ip": "5.0.0.2", + "mask": "255.255.255.0", + "mac": "A0:D8:AE:E8:2A:E1", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "140.100.200.1", + "mask": "255.255.255.0", + "mac": "A2:3C:B4:FB:9D:D1", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Rechner", + "name": "DNS (8.8.8.8)", + "label": "Rechner", + "bounds": [ + 208, + 606, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "8.8.8.8", + "mask": "255.0.0.0", + "mac": "17:66:19:C9:9E:29", + "gateway": "8.0.0.1", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "webserver.com (120.130.140.80)", + "label": "Rechner", + "bounds": [ + 675, + 793, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "120.130.140.80", + "mask": "255.255.255.0", + "mac": "4B:ED:F2:C7:AF:8C", + "gateway": "120.130.140.1", + "dns": "8.8.8.8", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "mail.gmx.com (130.100.200.25)", + "label": "Rechner", + "bounds": [ + 693, + 417, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "130.100.200.25", + "mask": "255.255.255.0", + "mac": "47:AF:A1:5F:0E:C7", + "gateway": "130.100.200.1", + "dns": "8.8.8.8", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "mail.webmail.com (140.100.200.25)", + "label": "Rechner", + "bounds": [ + 823, + 684, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "140.100.200.25", + "mask": "255.255.255.0", + "mac": "62:A4:B8:31:8D:33", + "gateway": "140.100.200.1", + "dns": "8.8.8.8", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "myschool.org (10.0.0.1)", + "label": "Rechner", + "bounds": [ + 139, + 268, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "10.0.0.1", + "mask": "255.0.0.0", + "mac": "C5:39:AE:55:77:F5", + "gateway": "10.0.0.2", + "dns": "8.8.8.8", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Gateway", + "name": "Heimrouter", + "label": "Heimrouter", + "bounds": [ + 184, + 781, + 21, + 20 + ], + "ports": [ + { + "ip": "43.0.0.11", + "mask": "255.255.255.0", + "mac": "E4:0B:71:77:E8:25", + "gateway": "43.0.0.1", + "dns": "8.8.8.8", + "wireless": false + }, + { + "ip": "192.168.1.1", + "mask": "255.255.255.0", + "mac": "F6:F2:70:B5:92:97", + "gateway": "43.0.0.1", + "dns": "8.8.8.8", + "wireless": false + } + ], + "system": { + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 243, + "sha256": "82d08041730728a01f9c7714db912699ff79a7a1b2211c48e283d6b8aec3f272", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "staticNAT": [], + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 73, + 840, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.1.11", + "mask": "255.255.255.0", + "mac": "68:3B:FB:D6:E1:D8", + "gateway": "192.168.1.1", + "dns": "8.8.8.8", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "iPad 1", + "label": "Notebook", + "bounds": [ + 139, + 4, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "10.50.50.13", + "mask": "255.0.0.0", + "mac": "EF:1A:35:6C:C2:DC", + "gateway": "10.0.0.1", + "dns": "10.0.0.1", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "iPad 2", + "label": "Notebook", + "bounds": [ + 267, + 0, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "10.50.50.11", + "mask": "255.0.0.0", + "mac": "19:06:AC:C7:9D:0E", + "gateway": "10.0.0.1", + "dns": "10.0.0.1", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "iPad 3", + "label": "Notebook", + "bounds": [ + 372, + 5, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "10.50.50.14", + "mask": "255.0.0.0", + "mac": "D3:51:75:D6:71:EA", + "gateway": "10.0.0.1", + "dns": "10.0.0.1", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "iPad 4", + "label": "Notebook", + "bounds": [ + 462, + 38, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "10.50.50.12", + "mask": "255.0.0.0", + "mac": "E2:AC:66:8B:39:9F", + "gateway": "10.0.0.1", + "dns": "10.0.0.1", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Access Point", + "label": "Switch / WLAN", + "bounds": [ + 11, + 76, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Gateway", + "name": "Firewall", + "label": "Heimrouter", + "bounds": [ + 359, + 319, + 21, + 20 + ], + "ports": [ + { + "ip": "42.0.0.10", + "mask": "255.0.0.0", + "mac": "95:C1:83:23:BB:4C", + "gateway": "42.0.0.1", + "dns": "", + "wireless": false + }, + { + "ip": "10.0.0.2", + "mask": "255.0.0.0", + "mac": "D6:AF:B6:8B:75:85", + "gateway": "42.0.0.1", + "dns": "", + "wireless": false + } + ], + "system": { + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 243, + "sha256": "82d08041730728a01f9c7714db912699ff79a7a1b2211c48e283d6b8aec3f272", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "staticNAT": [], + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "Provider 2", + "label": "Vermittlungsrechner", + "bounds": [ + 433, + 699, + 21, + 20 + ], + "ports": [ + { + "ip": "43.0.0.1", + "mask": "255.255.255.0", + "mac": "11:EE:8E:9F:31:18", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "15.0.0.2", + "mask": "255.255.255.0", + "mac": "B7:E7:AB:01:FE:F6", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Rechner", + "name": "Provider 2 DHCP- Server", + "label": "Rechner", + "bounds": [ + 446, + 791, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "43.0.0.2", + "mask": "255.255.255.0", + "mac": "8B:54:A9:28:2D:18", + "gateway": "43.0.0.1", + "dns": "8.8.8.8", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Provider 2 Switch", + "label": "Switch / WLAN", + "bounds": [ + 333, + 760, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + } + ], + "cables": [ + { + "ends": [ + [ + 0, + 0 + ], + [ + 1, + 0 + ] + ], + "wireless": false, + "panel": [ + 0, + 1 + ] + }, + { + "ends": [ + [ + 1, + 1 + ], + [ + 2, + 0 + ] + ], + "wireless": false, + "panel": [ + 1, + 2 + ] + }, + { + "ends": [ + [ + 3, + 2 + ], + [ + 5, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 5 + ] + }, + { + "ends": [ + [ + 4, + 1 + ], + [ + 5, + 1 + ] + ], + "wireless": false, + "panel": [ + 4, + 5 + ] + }, + { + "ends": [ + [ + 4, + 3 + ], + [ + 6, + 0 + ] + ], + "wireless": false, + "panel": [ + 4, + 6 + ] + }, + { + "ends": [ + [ + 5, + 2 + ], + [ + 6, + 1 + ] + ], + "wireless": false, + "panel": [ + 5, + 6 + ] + }, + { + "ends": [ + [ + 6, + 2 + ], + [ + 7, + 0 + ] + ], + "wireless": false, + "panel": [ + 6, + 7 + ] + }, + { + "ends": [ + [ + 7, + 1 + ], + [ + 8, + 0 + ] + ], + "wireless": false, + "panel": [ + 7, + 8 + ] + }, + { + "ends": [ + [ + 8, + 1 + ], + [ + 12, + 0 + ] + ], + "wireless": false, + "panel": [ + 8, + 12 + ] + }, + { + "ends": [ + [ + 9, + 0 + ], + [ + 6, + 3 + ] + ], + "wireless": false, + "panel": [ + 9, + 6 + ] + }, + { + "ends": [ + [ + 10, + 0 + ], + [ + 7, + 2 + ] + ], + "wireless": false, + "panel": [ + 10, + 7 + ] + }, + { + "ends": [ + [ + 13, + 0 + ], + [ + 1, + 4 + ] + ], + "wireless": false, + "panel": [ + 13, + 1 + ] + }, + { + "ends": [ + [ + 16, + 0 + ], + [ + 20, + 1 + ] + ], + "wireless": true, + "panel": [ + 16, + 20 + ] + }, + { + "ends": [ + [ + 17, + 0 + ], + [ + 20, + 2 + ] + ], + "wireless": true, + "panel": [ + 17, + 20 + ] + }, + { + "ends": [ + [ + 18, + 0 + ], + [ + 20, + 3 + ] + ], + "wireless": true, + "panel": [ + 18, + 20 + ] + }, + { + "ends": [ + [ + 19, + 0 + ], + [ + 20, + 4 + ] + ], + "wireless": true, + "panel": [ + 19, + 20 + ] + }, + { + "ends": [ + [ + 20, + 0 + ], + [ + 1, + 3 + ] + ], + "wireless": false, + "panel": [ + 20, + 1 + ] + }, + { + "ends": [ + [ + 21, + 0 + ], + [ + 3, + 0 + ] + ], + "wireless": false, + "panel": [ + 21, + 3 + ] + }, + { + "ends": [ + [ + 21, + 1 + ], + [ + 1, + 2 + ] + ], + "wireless": false, + "panel": [ + 21, + 1 + ] + }, + { + "ends": [ + [ + 22, + 1 + ], + [ + 6, + 4 + ] + ], + "wireless": false, + "panel": [ + 22, + 6 + ] + }, + { + "ends": [ + [ + 4, + 2 + ], + [ + 11, + 0 + ] + ], + "wireless": false, + "panel": [ + 4, + 11 + ] + }, + { + "ends": [ + [ + 3, + 1 + ], + [ + 4, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 4 + ] + }, + { + "ends": [ + [ + 24, + 0 + ], + [ + 23, + 0 + ] + ], + "wireless": false, + "panel": [ + 24, + 23 + ] + }, + { + "ends": [ + [ + 14, + 0 + ], + [ + 24, + 2 + ] + ], + "wireless": false, + "panel": [ + 14, + 24 + ] + }, + { + "ends": [ + [ + 24, + 1 + ], + [ + 22, + 0 + ] + ], + "wireless": false, + "panel": [ + 24, + 22 + ] + }, + { + "ends": [ + [ + 15, + 0 + ], + [ + 14, + 1 + ] + ], + "wireless": false, + "panel": [ + 15, + 14 + ] + } + ], + "documentation": [ + { + "type": 1, + "text": "", + "bounds": [ + 62, + 755, + 255, + 193 + ], + "color": [ + 255, + 255, + 227, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 1, + "text": "", + "bounds": [ + 4, + -4, + 567, + 164 + ], + "color": [ + 255, + 201, + 201, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 1, + "text": "", + "bounds": [ + 3, + 163, + 121, + 254 + ], + "color": [ + 191, + 255, + 219, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 1, + "text": "", + "bounds": [ + -1, + -7, + 661, + 427 + ], + "color": [ + 209, + 232, + 255, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 1, + "text": "", + "bounds": [ + 331, + 684, + 292, + 263 + ], + "color": [ + 252, + 201, + 163, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "INTERNET", + "bounds": [ + 570, + 583, + 88, + 24 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 1 + ] + }, + { + "type": 2, + "text": "Large Intranet with subnets, firewall & portforwarding to Webserver behind Firewall.\n\nLAN-Devices have full internet connectivity. Each has a configured email client.\n\nWiFi-Devices only have HTTP access to the internal Server but can name resolve and ping external internet servers.\n\n", + "bounds": [ + 402, + 164, + 249, + 153 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Home\n", + "bounds": [ + 209, + 907, + 88, + 24 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 1 + ] + }, + { + "type": 2, + "text": "Wifi-Devices\nSubnet", + "bounds": [ + 242, + 115, + 88, + 36 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 1 + ] + }, + { + "type": 2, + "text": "LAN-Devices\nSubnet", + "bounds": [ + 25, + 378, + 88, + 34 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 1 + ] + }, + { + "type": 2, + "text": "This model is copyright © 2026 Josh Buhl and is freely distributable under the creative commons CC BY-NC-SA 4.0CC BY-NC-SA 4.0 License", + "bounds": [ + 21, + 429, + 272, + 59 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Provider Network", + "bounds": [ + 420, + 920, + 110, + 25 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 1 + ] + }, + { + "type": 2, + "text": "42.0.0.0\t", + "bounds": [ + 458, + 383, + 88, + 24 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "10.0.0.0", + "bounds": [ + 298, + 268, + 88, + 24 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + } + ], + "sha256": "ada9286af6c826f6f09cabc7126d2820a2912ae1cfe1b05864d448f0b36d4e61" + }, + "java-examples/Internet_Komplett_mit_eMail_Webserver_Intranet_Portforwarding_Firewall_DHCP_DE.fls": { + "success": true, + "nodes": [ + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 5, + 165, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "10.10.20.11", + "mask": "255.0.0.0", + "mac": "A8:BD:04:A6:63:AD", + "gateway": "10.0.0.1", + "dns": "10.0.0.1", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Switch 1", + "label": "Switch / WLAN", + "bounds": [ + 233, + 173, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 0, + 269, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "10.10.20.12", + "mask": "255.0.0.0", + "mac": "3D:67:2A:01:2D:91", + "gateway": "10.0.0.1", + "dns": "10.0.0.1", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "Provider 1", + "label": "Vermittlungsrechner", + "bounds": [ + 419, + 434, + 21, + 20 + ], + "ports": [ + { + "ip": "42.0.0.1", + "mask": "255.255.255.0", + "mac": "2E:E7:53:65:17:0F", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "6.0.0.2", + "mask": "255.255.255.0", + "mac": "1E:27:AE:8E:77:14", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "2.0.0.1", + "mask": "255.255.255.0", + "mac": "4B:A0:59:16:7C:2C", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "", + "label": "Vermittlungsrechner", + "bounds": [ + 548, + 490, + 21, + 20 + ], + "ports": [ + { + "ip": "6.0.0.1", + "mask": "255.255.255.0", + "mac": "C5:AD:0D:4F:97:06", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "11.0.0.1", + "mask": "255.255.255.0", + "mac": "E0:3F:89:38:E3:2C", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "130.100.200.1", + "mask": "255.255.255.0", + "mac": "3C:84:27:63:5A:E3", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "12.0.0.1", + "mask": "255.255.255.0", + "mac": "F5:FB:71:A8:11:59", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "", + "label": "Vermittlungsrechner", + "bounds": [ + 294, + 518, + 21, + 20 + ], + "ports": [ + { + "ip": "2.0.0.2", + "mask": "255.255.255.0", + "mac": "3A:DC:16:7C:AA:78", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "11.0.0.2", + "mask": "255.255.255.0", + "mac": "91:D6:EC:3F:56:B0", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "3.0.0.1", + "mask": "255.255.255.0", + "mac": "16:F2:4D:40:AA:56", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "", + "label": "Vermittlungsrechner", + "bounds": [ + 427, + 583, + 21, + 20 + ], + "ports": [ + { + "ip": "12.0.0.2", + "mask": "255.255.255.0", + "mac": "A2:55:52:6B:6F:27", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "3.0.0.2", + "mask": "255.255.255.0", + "mac": "27:17:86:69:32:C9", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "4.0.0.1", + "mask": "255.255.255.0", + "mac": "B3:22:50:EC:11:FB", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "8.0.0.1", + "mask": "255.0.0.0", + "mac": "63:D5:E4:BB:37:E6", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "15.0.0.1", + "mask": "255.255.255.0", + "mac": "15:DA:6A:2F:5F:3A", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "", + "label": "Vermittlungsrechner", + "bounds": [ + 606, + 629, + 21, + 20 + ], + "ports": [ + { + "ip": "4.0.0.2", + "mask": "255.255.255.0", + "mac": "80:6D:2A:57:59:B2", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "5.0.0.1", + "mask": "255.255.255.0", + "mac": "69:EB:EB:6E:F6:82", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "120.130.140.1", + "mask": "255.255.255.0", + "mac": "C9:5D:41:10:67:82", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "", + "label": "Vermittlungsrechner", + "bounds": [ + 746, + 561, + 21, + 20 + ], + "ports": [ + { + "ip": "5.0.0.2", + "mask": "255.255.255.0", + "mac": "A0:D8:AE:E8:2A:E1", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "140.100.200.1", + "mask": "255.255.255.0", + "mac": "A2:3C:B4:FB:9D:D1", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Rechner", + "name": "DNS (8.8.8.8)", + "label": "Rechner", + "bounds": [ + 208, + 606, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "8.8.8.8", + "mask": "255.0.0.0", + "mac": "17:66:19:C9:9E:29", + "gateway": "8.0.0.1", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "webserver.de (120.130.140.80)", + "label": "Rechner", + "bounds": [ + 666, + 777, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "120.130.140.80", + "mask": "255.255.255.0", + "mac": "4B:ED:F2:C7:AF:8C", + "gateway": "120.130.140.1", + "dns": "8.8.8.8", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "mail.gmx.de (130.100.200.25)", + "label": "Rechner", + "bounds": [ + 699, + 417, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "130.100.200.25", + "mask": "255.255.255.0", + "mac": "47:AF:A1:5F:0E:C7", + "gateway": "130.100.200.1", + "dns": "8.8.8.8", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "mail.webmail.de (140.100.200.25)", + "label": "Rechner", + "bounds": [ + 799, + 649, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "140.100.200.25", + "mask": "255.255.255.0", + "mac": "62:A4:B8:31:8D:33", + "gateway": "140.100.200.1", + "dns": "8.8.8.8", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "meine-schule.de (10.0.0.1)", + "label": "Rechner", + "bounds": [ + 130, + 268, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "10.0.0.1", + "mask": "255.0.0.0", + "mac": "C5:39:AE:55:77:F5", + "gateway": "10.0.0.2", + "dns": "8.8.8.8", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Gateway", + "name": "Heimrouter", + "label": "Heimrouter", + "bounds": [ + 229, + 784, + 21, + 20 + ], + "ports": [ + { + "ip": "43.0.0.11", + "mask": "255.255.255.0", + "mac": "E4:0B:71:77:E8:25", + "gateway": "43.0.0.1", + "dns": "8.8.8.8", + "wireless": false + }, + { + "ip": "192.168.1.1", + "mask": "255.255.255.0", + "mac": "F6:F2:70:B5:92:97", + "gateway": "43.0.0.1", + "dns": "8.8.8.8", + "wireless": false + } + ], + "system": { + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 243, + "sha256": "82d08041730728a01f9c7714db912699ff79a7a1b2211c48e283d6b8aec3f272", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "staticNAT": [], + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 124, + 826, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.1.11", + "mask": "255.255.255.0", + "mac": "68:3B:FB:D6:E1:D8", + "gateway": "192.168.1.1", + "dns": "8.8.8.8", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "iPad 1", + "label": "Notebook", + "bounds": [ + 139, + 4, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "10.50.50.11", + "mask": "255.0.0.0", + "mac": "EF:1A:35:6C:C2:DC", + "gateway": "10.0.0.1", + "dns": "10.0.0.1", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "iPad 2", + "label": "Notebook", + "bounds": [ + 267, + 0, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "10.50.50.14", + "mask": "255.0.0.0", + "mac": "19:06:AC:C7:9D:0E", + "gateway": "10.0.0.1", + "dns": "10.0.0.1", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "iPad 3", + "label": "Notebook", + "bounds": [ + 372, + 5, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "10.50.50.13", + "mask": "255.0.0.0", + "mac": "D3:51:75:D6:71:EA", + "gateway": "10.0.0.1", + "dns": "10.0.0.1", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "iPad 4", + "label": "Notebook", + "bounds": [ + 462, + 38, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "10.50.50.12", + "mask": "255.0.0.0", + "mac": "E2:AC:66:8B:39:9F", + "gateway": "10.0.0.1", + "dns": "10.0.0.1", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Access Point", + "label": "Switch / WLAN", + "bounds": [ + 11, + 76, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Gateway", + "name": "Firewall", + "label": "Heimrouter", + "bounds": [ + 359, + 319, + 21, + 20 + ], + "ports": [ + { + "ip": "42.0.0.10", + "mask": "255.0.0.0", + "mac": "95:C1:83:23:BB:4C", + "gateway": "42.0.0.1", + "dns": "", + "wireless": false + }, + { + "ip": "10.0.0.2", + "mask": "255.0.0.0", + "mac": "D6:AF:B6:8B:75:85", + "gateway": "42.0.0.1", + "dns": "", + "wireless": false + } + ], + "system": { + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 243, + "sha256": "82d08041730728a01f9c7714db912699ff79a7a1b2211c48e283d6b8aec3f272", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "staticNAT": [], + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "Provider 2", + "label": "Vermittlungsrechner", + "bounds": [ + 461, + 710, + 21, + 20 + ], + "ports": [ + { + "ip": "43.0.0.1", + "mask": "255.255.255.0", + "mac": "11:EE:8E:9F:31:18", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "15.0.0.2", + "mask": "255.255.255.0", + "mac": "B7:E7:AB:01:FE:F6", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Rechner", + "name": "Provider 2 DCHP Server", + "label": "Rechner", + "bounds": [ + 473, + 782, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "43.0.0.2", + "mask": "255.255.255.0", + "mac": "55:E4:24:B2:2F:7B", + "gateway": "43.0.0.1", + "dns": "8.8.8.8", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Provider 2 Switch", + "label": "Switch / WLAN", + "bounds": [ + 367, + 775, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + } + ], + "cables": [ + { + "ends": [ + [ + 0, + 0 + ], + [ + 1, + 0 + ] + ], + "wireless": false, + "panel": [ + 0, + 1 + ] + }, + { + "ends": [ + [ + 1, + 1 + ], + [ + 2, + 0 + ] + ], + "wireless": false, + "panel": [ + 1, + 2 + ] + }, + { + "ends": [ + [ + 3, + 2 + ], + [ + 5, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 5 + ] + }, + { + "ends": [ + [ + 4, + 1 + ], + [ + 5, + 1 + ] + ], + "wireless": false, + "panel": [ + 4, + 5 + ] + }, + { + "ends": [ + [ + 4, + 3 + ], + [ + 6, + 0 + ] + ], + "wireless": false, + "panel": [ + 4, + 6 + ] + }, + { + "ends": [ + [ + 5, + 2 + ], + [ + 6, + 1 + ] + ], + "wireless": false, + "panel": [ + 5, + 6 + ] + }, + { + "ends": [ + [ + 6, + 2 + ], + [ + 7, + 0 + ] + ], + "wireless": false, + "panel": [ + 6, + 7 + ] + }, + { + "ends": [ + [ + 7, + 1 + ], + [ + 8, + 0 + ] + ], + "wireless": false, + "panel": [ + 7, + 8 + ] + }, + { + "ends": [ + [ + 8, + 1 + ], + [ + 12, + 0 + ] + ], + "wireless": false, + "panel": [ + 8, + 12 + ] + }, + { + "ends": [ + [ + 9, + 0 + ], + [ + 6, + 3 + ] + ], + "wireless": false, + "panel": [ + 9, + 6 + ] + }, + { + "ends": [ + [ + 10, + 0 + ], + [ + 7, + 2 + ] + ], + "wireless": false, + "panel": [ + 10, + 7 + ] + }, + { + "ends": [ + [ + 13, + 0 + ], + [ + 1, + 4 + ] + ], + "wireless": false, + "panel": [ + 13, + 1 + ] + }, + { + "ends": [ + [ + 15, + 0 + ], + [ + 14, + 1 + ] + ], + "wireless": false, + "panel": [ + 15, + 14 + ] + }, + { + "ends": [ + [ + 16, + 0 + ], + [ + 20, + 1 + ] + ], + "wireless": true, + "panel": [ + 16, + 20 + ] + }, + { + "ends": [ + [ + 17, + 0 + ], + [ + 20, + 2 + ] + ], + "wireless": true, + "panel": [ + 17, + 20 + ] + }, + { + "ends": [ + [ + 18, + 0 + ], + [ + 20, + 3 + ] + ], + "wireless": true, + "panel": [ + 18, + 20 + ] + }, + { + "ends": [ + [ + 19, + 0 + ], + [ + 20, + 4 + ] + ], + "wireless": true, + "panel": [ + 19, + 20 + ] + }, + { + "ends": [ + [ + 20, + 0 + ], + [ + 1, + 3 + ] + ], + "wireless": false, + "panel": [ + 20, + 1 + ] + }, + { + "ends": [ + [ + 21, + 0 + ], + [ + 3, + 0 + ] + ], + "wireless": false, + "panel": [ + 21, + 3 + ] + }, + { + "ends": [ + [ + 21, + 1 + ], + [ + 1, + 2 + ] + ], + "wireless": false, + "panel": [ + 21, + 1 + ] + }, + { + "ends": [ + [ + 22, + 1 + ], + [ + 6, + 4 + ] + ], + "wireless": false, + "panel": [ + 22, + 6 + ] + }, + { + "ends": [ + [ + 4, + 2 + ], + [ + 11, + 0 + ] + ], + "wireless": false, + "panel": [ + 4, + 11 + ] + }, + { + "ends": [ + [ + 3, + 1 + ], + [ + 4, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 4 + ] + }, + { + "ends": [ + [ + 23, + 0 + ], + [ + 24, + 0 + ] + ], + "wireless": false, + "panel": [ + 23, + 24 + ] + }, + { + "ends": [ + [ + 22, + 0 + ], + [ + 24, + 1 + ] + ], + "wireless": false, + "panel": [ + 22, + 24 + ] + }, + { + "ends": [ + [ + 24, + 2 + ], + [ + 14, + 0 + ] + ], + "wireless": false, + "panel": [ + 24, + 14 + ] + } + ], + "documentation": [ + { + "type": 1, + "text": "", + "bounds": [ + 107, + 757, + 245, + 181 + ], + "color": [ + 255, + 255, + 227, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 1, + "text": "", + "bounds": [ + 4, + -4, + 567, + 164 + ], + "color": [ + 255, + 201, + 201, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 1, + "text": "", + "bounds": [ + 3, + 161, + 121, + 253 + ], + "color": [ + 191, + 255, + 219, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 1, + "text": "", + "bounds": [ + -1, + -7, + 661, + 425 + ], + "color": [ + 209, + 232, + 255, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 1, + "text": "", + "bounds": [ + 372, + 697, + 246, + 243 + ], + "color": [ + 252, + 201, + 163, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "INTERNET", + "bounds": [ + 570, + 583, + 88, + 24 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 1 + ] + }, + { + "type": 2, + "text": "Intranetz mit Subnetzen, Firewall und Portforwarding an Webserver hinter Firewall.\n\nLAN-Geräte haben vollen Internet-Zugriff. Jedes hat einen konfigurierten eMail-Client.\n\nWLAN-Geräte haben HTTP-Zugriff nur auf den internen Server, können aber externe Server auflösen und anpingen. \n\n\n", + "bounds": [ + 399, + 170, + 249, + 153 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Zu Hause\n", + "bounds": [ + 255, + 897, + 88, + 24 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 1 + ] + }, + { + "type": 2, + "text": "WLAN-Geräte\nSubnetz", + "bounds": [ + 227, + 117, + 88, + 37 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 1 + ] + }, + { + "type": 2, + "text": "LAN-Geräte\nSubnetz", + "bounds": [ + 20, + 376, + 88, + 39 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 1 + ] + }, + { + "type": 2, + "text": "This model is copyright © 2026 Josh Buhl and is freely distributable under the creative commons CC BY-NC-SA 4.0CC BY-NC-SA 4.0 License", + "bounds": [ + 21, + 429, + 272, + 59 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Provider Netzwerk", + "bounds": [ + 440, + 907, + 108, + 24 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 1 + ] + } + ], + "sha256": "9562b4ff917b39bb29ad00345e839a3e4776a0726bb72fd828071a21dc7d495e" + }, + "java-examples/Public_and_Private_Networks_2_EN.fls": { + "success": true, + "nodes": [ + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 79, + 124, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.12", + "mask": "255.255.255.0", + "mac": "FB:07:94:E4:05:06", + "gateway": "192.168.0.1", + "dns": "8.8.8.8", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Gateway", + "name": "Gateway", + "label": "Heimrouter", + "bounds": [ + 367, + 91, + 21, + 20 + ], + "ports": [ + { + "ip": "42.0.0.10", + "mask": "255.0.0.0", + "mac": "18:C4:B3:33:AB:BD", + "gateway": "42.0.0.1", + "dns": "", + "wireless": false + }, + { + "ip": "192.168.0.1", + "mask": "255.255.255.0", + "mac": "28:62:32:5B:5C:90", + "gateway": "42.0.0.1", + "dns": "", + "wireless": false + } + ], + "system": { + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 243, + "sha256": "82d08041730728a01f9c7714db912699ff79a7a1b2211c48e283d6b8aec3f272", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "staticNAT": [], + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "Vermittlungsrechner", + "label": "Vermittlungsrechner", + "bounds": [ + 521, + 364, + 21, + 20 + ], + "ports": [ + { + "ip": "42.0.0.1", + "mask": "255.255.255.0", + "mac": "A7:1D:A9:4C:C4:A7", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "160.10.20.1", + "mask": "255.255.255.0", + "mac": "D1:3E:5F:E6:BA:F9", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "8.8.8.1", + "mask": "255.255.255.0", + "mac": "03:3C:DF:0A:44:1E", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Rechner", + "name": "mywebserver.de (160.10.20.10)", + "label": "Rechner", + "bounds": [ + 656, + 419, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "160.10.20.10", + "mask": "255.255.255.0", + "mac": "71:6A:B4:64:00:4E", + "gateway": "160.10.20.1", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Rechner", + "label": "Rechner", + "bounds": [ + 383, + 422, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "8.8.8.8", + "mask": "255.255.255.0", + "mac": "48:76:39:9B:AC:29", + "gateway": "8.8.8.1", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 168, + 29, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.11", + "mask": "255.255.255.0", + "mac": "45:06:FC:3E:2B:59", + "gateway": "192.168.0.1", + "dns": "8.8.8.8", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Wifi Switch", + "label": "Switch / WLAN", + "bounds": [ + 255, + 167, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + } + ], + "cables": [ + { + "ends": [ + [ + 1, + 0 + ], + [ + 2, + 0 + ] + ], + "wireless": false, + "panel": [ + 1, + 2 + ] + }, + { + "ends": [ + [ + 2, + 1 + ], + [ + 3, + 0 + ] + ], + "wireless": false, + "panel": [ + 2, + 3 + ] + }, + { + "ends": [ + [ + 2, + 2 + ], + [ + 4, + 0 + ] + ], + "wireless": false, + "panel": [ + 2, + 4 + ] + }, + { + "ends": [ + [ + 6, + 1 + ], + [ + 1, + 1 + ] + ], + "wireless": false, + "panel": [ + 6, + 1 + ] + }, + { + "ends": [ + [ + 5, + 0 + ], + [ + 6, + 0 + ] + ], + "wireless": true, + "panel": [ + 5, + 6 + ] + }, + { + "ends": [ + [ + 0, + 0 + ], + [ + 6, + 2 + ] + ], + "wireless": true, + "panel": [ + 0, + 6 + ] + } + ], + "documentation": [ + { + "type": 1, + "text": "", + "bounds": [ + 56, + 9, + 459, + 243 + ], + "color": [ + 209, + 232, + 255, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 1, + "text": "", + "bounds": [ + 277, + 260, + 602, + 314 + ], + "color": [ + 255, + 201, + 201, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "8.8.8.1\n", + "bounds": [ + 508, + 390, + 88, + 24 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "42.0.0.1", + "bounds": [ + 587, + 345, + 100, + 24 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "42.0.0.10", + "bounds": [ + 453, + 124, + 100, + 24 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "192.168.0.1", + "bounds": [ + 308, + 123, + 88, + 24 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "160.10.20.1", + "bounds": [ + 631, + 391, + 88, + 24 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "DNS \nNameserver\n", + "bounds": [ + 373, + 519, + 88, + 41 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "This model is copyright © 2026 Josh Buhl and is freely distributable under the creative commons CC BY-NC-SA 4.0CC BY-NC-SA 4.0 License", + "bounds": [ + 37, + 615, + 275, + 59 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Private Local Area Network (LAN)", + "bounds": [ + 281, + 20, + 175, + 54 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 18, + 1 + ] + }, + { + "type": 2, + "text": "Public Network (WAN)", + "bounds": [ + 297, + 283, + 215, + 35 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 18, + 1 + ] + }, + { + "type": 2, + "text": "[Gateway and Switch are often integrated into one device especially at home.]", + "bounds": [ + 352, + 179, + 153, + 54 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + } + ], + "sha256": "3bd8096f5f31f38c092db2a6d65af1fd888bdd55ead8bca92bd0b37fc1c92a48" + }, + "java-examples/anwendung_komplett.fls": { + "success": true, + "nodes": [ + { + "class": "Rechner", + "name": "Server 10", + "label": "Rechner", + "bounds": [ + 355, + 77, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.10", + "mask": "255.255.255.0", + "mac": "4B:82:31:A8:4D:54", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 1", + "label": "Notebook", + "bounds": [ + 44, + 31, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.1", + "mask": "255.255.255.0", + "mac": "43:F8:45:DC:FC:53", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Switch / WLAN", + "label": "Switch / WLAN", + "bounds": [ + 212, + 115, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Notebook", + "name": "Notebook 2", + "label": "Notebook", + "bounds": [ + 45, + 180, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.2", + "mask": "255.255.255.0", + "mac": "66:38:EB:F5:F4:3B", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + } + ], + "cables": [ + { + "ends": [ + [ + 1, + 0 + ], + [ + 2, + 0 + ] + ], + "wireless": false, + "panel": [ + 1, + 2 + ] + }, + { + "ends": [ + [ + 2, + 1 + ], + [ + 0, + 0 + ] + ], + "wireless": false, + "panel": [ + 2, + 0 + ] + }, + { + "ends": [ + [ + 3, + 0 + ], + [ + 2, + 2 + ] + ], + "wireless": false, + "panel": [ + 3, + 2 + ] + } + ], + "documentation": [], + "sha256": "6ddd17df1bb154d87d63d247b490d17015bea82ab16ff8f334df97d5702c276c" + }, + "java-examples/dhcp_test_scenario.fls": { + "success": true, + "nodes": [ + { + "class": "Rechner", + "name": "Rechner", + "label": "Rechner", + "bounds": [ + 507, + 96, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.10", + "mask": "255.255.255.0", + "mac": "91:E4:54:FA:C9:7D", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 112, + 49, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.101", + "mask": "255.255.255.0", + "mac": "B6:F7:8C:F6:CC:0F", + "gateway": "0.0.0.0", + "dns": "0.0.0.0", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 97, + 164, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.100", + "mask": "255.255.255.0", + "mac": "54:71:65:D0:3A:4B", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Switch / WLAN", + "label": "Switch / WLAN", + "bounds": [ + 307, + 128, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 94, + 320, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.100", + "mask": "255.255.255.0", + "mac": "30:B7:97:00:00:FD", + "gateway": "192.168.0.10", + "dns": "0.0.0.0", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Gateway", + "name": "Heimrouter", + "label": "Heimrouter", + "bounds": [ + 363, + 312, + 21, + 20 + ], + "ports": [ + { + "ip": "42.0.0.10", + "mask": "255.0.0.0", + "mac": "9F:CF:0A:89:4E:32", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "192.168.0.10", + "mask": "255.255.255.0", + "mac": "AB:53:E6:9C:D9:87", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 243, + "sha256": "82d08041730728a01f9c7714db912699ff79a7a1b2211c48e283d6b8aec3f272", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "staticNAT": [], + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Rechner", + "name": "Rechner", + "label": "Rechner", + "bounds": [ + 580, + 293, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.10", + "mask": "255.255.255.0", + "mac": "24:C4:CA:44:77:A4", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + } + ], + "cables": [ + { + "ends": [ + [ + 1, + 0 + ], + [ + 3, + 0 + ] + ], + "wireless": false, + "panel": [ + 1, + 3 + ] + }, + { + "ends": [ + [ + 3, + 1 + ], + [ + 0, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 0 + ] + }, + { + "ends": [ + [ + 3, + 2 + ], + [ + 2, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 2 + ] + }, + { + "ends": [ + [ + 4, + 0 + ], + [ + 5, + 1 + ] + ], + "wireless": false, + "panel": [ + 4, + 5 + ] + }, + { + "ends": [ + [ + 6, + 0 + ], + [ + 5, + 0 + ] + ], + "wireless": false, + "panel": [ + 6, + 5 + ] + } + ], + "documentation": [], + "sha256": "2dcf79c82767ed9dfba3d4be054d7c604247a02757941fbd053fb725d01f0c3b" + }, + "java-examples/dns_server.fls": { + "success": true, + "nodes": [ + { + "class": "Switch", + "name": "Switch / WLAN", + "label": "Switch / WLAN", + "bounds": [ + 250, + 181, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Rechner", + "name": "DNS-Server (lokal)", + "label": "Rechner", + "bounds": [ + 213, + 16, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.5.12", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:26", + "gateway": "141.99.5.1", + "dns": "141.99.5.12", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Webserver", + "label": "Rechner", + "bounds": [ + 63, + 83, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.5.10", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:28", + "gateway": "141.99.5.1", + "dns": "141.99.5.12", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 289, + 313, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.5.11", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:30", + "gateway": "141.99.5.1", + "dns": "141.99.5.12", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "DNS-Server (.)", + "label": "Rechner", + "bounds": [ + 735, + 25, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.5.13", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:32", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Switch / WLAN", + "label": "Switch / WLAN", + "bounds": [ + 483, + 185, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Rechner", + "name": "DNS-Server (de.)", + "label": "Rechner", + "bounds": [ + 726, + 145, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.5.14", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:59", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "DNS-Server (filius.de.)", + "label": "Rechner", + "bounds": [ + 709, + 276, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.5.15", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:61", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + } + ], + "cables": [ + { + "ends": [ + [ + 0, + 1 + ], + [ + 1, + 0 + ] + ], + "wireless": false, + "panel": [ + 0, + 1 + ] + }, + { + "ends": [ + [ + 2, + 0 + ], + [ + 0, + 3 + ] + ], + "wireless": false, + "panel": [ + 2, + 0 + ] + }, + { + "ends": [ + [ + 3, + 0 + ], + [ + 0, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 0 + ] + }, + { + "ends": [ + [ + 0, + 2 + ], + [ + 5, + 0 + ] + ], + "wireless": false, + "panel": [ + 0, + 5 + ] + }, + { + "ends": [ + [ + 5, + 1 + ], + [ + 4, + 0 + ] + ], + "wireless": false, + "panel": [ + 5, + 4 + ] + }, + { + "ends": [ + [ + 5, + 2 + ], + [ + 6, + 0 + ] + ], + "wireless": false, + "panel": [ + 5, + 6 + ] + }, + { + "ends": [ + [ + 5, + 3 + ], + [ + 7, + 0 + ] + ], + "wireless": false, + "panel": [ + 5, + 7 + ] + } + ], + "documentation": [], + "sha256": "6b410928faee1600aa36e5ba05b8818b6b7484974b9c7c74e2026f0eb9b2bf90" + }, + "java-examples/einfaches_rechnernetz_komplett.fls": { + "success": true, + "nodes": [ + { + "class": "Rechner", + "name": "Rechner 1", + "label": "Rechner", + "bounds": [ + 32, + 97, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.11", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:01", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Rechner 2", + "label": "Rechner", + "bounds": [ + 30, + 226, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.12", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:03", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Rechner 3", + "label": "Rechner", + "bounds": [ + 31, + 364, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.13", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:05", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Rechner 4", + "label": "Rechner", + "bounds": [ + 36, + 503, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.14", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:07", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Server", + "label": "Rechner", + "bounds": [ + 564, + 39, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.100", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:09", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Switch 3", + "label": "Switch / WLAN", + "bounds": [ + 449, + 180, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Notebook", + "name": "Notebook 1", + "label": "Notebook", + "bounds": [ + 348, + 512, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "169.254.59.98", + "mask": "0.0.0.0", + "mac": "02:00:00:00:00:36", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 2", + "label": "Notebook", + "bounds": [ + 498, + 513, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "169.254.149.102", + "mask": "0.0.0.0", + "mac": "02:00:00:00:00:38", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 3", + "label": "Notebook", + "bounds": [ + 634, + 510, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "169.254.43.216", + "mask": "0.0.0.0", + "mac": "02:00:00:00:00:40", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 4", + "label": "Notebook", + "bounds": [ + 768, + 509, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "169.254.19.11", + "mask": "0.0.0.0", + "mac": "02:00:00:00:00:42", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Switch 2", + "label": "Switch / WLAN", + "bounds": [ + 601, + 368, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Switch", + "name": "Switch 1", + "label": "Switch / WLAN", + "bounds": [ + 224, + 300, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + } + ], + "cables": [ + { + "ends": [ + [ + 0, + 0 + ], + [ + 11, + 0 + ] + ], + "wireless": false, + "panel": [ + 0, + 11 + ] + }, + { + "ends": [ + [ + 1, + 0 + ], + [ + 11, + 1 + ] + ], + "wireless": false, + "panel": [ + 1, + 11 + ] + }, + { + "ends": [ + [ + 2, + 0 + ], + [ + 11, + 2 + ] + ], + "wireless": false, + "panel": [ + 2, + 11 + ] + }, + { + "ends": [ + [ + 3, + 0 + ], + [ + 11, + 3 + ] + ], + "wireless": false, + "panel": [ + 3, + 11 + ] + }, + { + "ends": [ + [ + 11, + 4 + ], + [ + 5, + 0 + ] + ], + "wireless": false, + "panel": [ + 11, + 5 + ] + }, + { + "ends": [ + [ + 5, + 1 + ], + [ + 4, + 0 + ] + ], + "wireless": false, + "panel": [ + 5, + 4 + ] + }, + { + "ends": [ + [ + 5, + 2 + ], + [ + 10, + 0 + ] + ], + "wireless": false, + "panel": [ + 5, + 10 + ] + }, + { + "ends": [ + [ + 6, + 0 + ], + [ + 10, + 1 + ] + ], + "wireless": false, + "panel": [ + 6, + 10 + ] + }, + { + "ends": [ + [ + 7, + 0 + ], + [ + 10, + 2 + ] + ], + "wireless": false, + "panel": [ + 7, + 10 + ] + }, + { + "ends": [ + [ + 8, + 0 + ], + [ + 10, + 3 + ] + ], + "wireless": false, + "panel": [ + 8, + 10 + ] + }, + { + "ends": [ + [ + 9, + 0 + ], + [ + 10, + 4 + ] + ], + "wireless": false, + "panel": [ + 9, + 10 + ] + } + ], + "documentation": [], + "sha256": "0d3b055bbc8091a569fc0cfc5d97bde286a361af60eda2c0539e9fca1d7d9c72" + }, + "java-examples/email_komplett.fls": { + "success": true, + "nodes": [ + { + "class": "Rechner", + "name": "Web-Server", + "label": "Rechner", + "bounds": [ + 460, + 147, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.50.231", + "mask": "255.255.255.128", + "mac": "1A:77:96:CF:32:33", + "gateway": "", + "dns": "141.99.50.230", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Rechner 3", + "label": "Notebook", + "bounds": [ + 81, + 266, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.50.183", + "mask": "255.255.255.128", + "mac": "5F:A4:08:F1:FC:88", + "gateway": "", + "dns": "141.99.50.230", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Rechner 4", + "label": "Notebook", + "bounds": [ + 83, + 375, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.50.184", + "mask": "255.255.255.128", + "mac": "9D:8C:F6:C9:98:AE", + "gateway": "", + "dns": "141.99.50.230", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Rechner 1", + "label": "Notebook", + "bounds": [ + 82, + 59, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.50.181", + "mask": "255.255.255.128", + "mac": "A8:13:4D:62:BF:61", + "gateway": "", + "dns": "141.99.50.230", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Rechner 2", + "label": "Notebook", + "bounds": [ + 82, + 161, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.50.182", + "mask": "255.255.255.128", + "mac": "FD:92:36:FB:99:6D", + "gateway": "", + "dns": "141.99.50.230", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Switch / WLAN", + "label": "Switch / WLAN", + "bounds": [ + 284, + 238, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Rechner", + "name": "DNS-Server", + "label": "Rechner", + "bounds": [ + 469, + 30, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.50.230", + "mask": "255.255.255.128", + "mac": "9D:26:F9:23:B2:F9", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Mail-Server (filius.de)", + "label": "Rechner", + "bounds": [ + 432, + 285, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.50.232", + "mask": "255.255.255.128", + "mac": "37:DF:DC:1A:CF:E0", + "gateway": "", + "dns": "141.99.50.230", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Mail-Server (senior.de)", + "label": "Rechner", + "bounds": [ + 430, + 414, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.50.233", + "mask": "255.255.255.128", + "mac": "7A:10:61:61:15:A3", + "gateway": "", + "dns": "141.99.50.230", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + } + ], + "cables": [ + { + "ends": [ + [ + 3, + 0 + ], + [ + 5, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 5 + ] + }, + { + "ends": [ + [ + 4, + 0 + ], + [ + 5, + 1 + ] + ], + "wireless": false, + "panel": [ + 4, + 5 + ] + }, + { + "ends": [ + [ + 1, + 0 + ], + [ + 5, + 2 + ] + ], + "wireless": false, + "panel": [ + 1, + 5 + ] + }, + { + "ends": [ + [ + 2, + 0 + ], + [ + 5, + 3 + ] + ], + "wireless": false, + "panel": [ + 2, + 5 + ] + }, + { + "ends": [ + [ + 5, + 4 + ], + [ + 0, + 0 + ] + ], + "wireless": false, + "panel": [ + 5, + 0 + ] + }, + { + "ends": [ + [ + 5, + 5 + ], + [ + 6, + 0 + ] + ], + "wireless": false, + "panel": [ + 5, + 6 + ] + }, + { + "ends": [ + [ + 5, + 6 + ], + [ + 7, + 0 + ] + ], + "wireless": false, + "panel": [ + 5, + 7 + ] + }, + { + "ends": [ + [ + 5, + 7 + ], + [ + 8, + 0 + ] + ], + "wireless": false, + "panel": [ + 5, + 8 + ] + } + ], + "documentation": [], + "sha256": "db96655e9ce9a17bdae05f1a2c7fef4001a70a096f6c70ced46eaed34dbe65e8" + }, + "java-examples/internetwork_komplett.fls": { + "success": true, + "nodes": [ + { + "class": "Switch", + "name": "Switch 1", + "label": "Switch / WLAN", + "bounds": [ + 164, + 178, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Switch", + "name": "Switch 2", + "label": "Switch / WLAN", + "bounds": [ + 612, + 104, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Vermittlungsrechner", + "name": "Vermittlungsrechner", + "label": "Vermittlungsrechner", + "bounds": [ + 395, + 47, + 21, + 20 + ], + "ports": [ + { + "ip": "141.99.1.1", + "mask": "255.255.255.0", + "mac": "C1:60:0A:E1:76:C5", + "gateway": "141.99.2.2", + "dns": "", + "wireless": false + }, + { + "ip": "141.99.2.1", + "mask": "255.255.255.0", + "mac": "5A:54:FE:11:5D:6C", + "gateway": "141.99.2.2", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "Vermittlungsrechner", + "label": "Vermittlungsrechner", + "bounds": [ + 602, + 263, + 21, + 20 + ], + "ports": [ + { + "ip": "141.99.2.2", + "mask": "255.255.255.0", + "mac": "6E:1E:CD:78:BE:78", + "gateway": "141.99.4.2", + "dns": "", + "wireless": false + }, + { + "ip": "141.99.4.1", + "mask": "255.255.255.0", + "mac": "28:09:56:2D:27:6F", + "gateway": "141.99.4.2", + "dns": "", + "wireless": false + }, + { + "ip": "141.99.3.1", + "mask": "255.255.255.0", + "mac": "F6:A4:32:18:E5:05", + "gateway": "141.99.4.2", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "Vermittlungsrechner", + "label": "Vermittlungsrechner", + "bounds": [ + 497, + 493, + 21, + 20 + ], + "ports": [ + { + "ip": "141.99.4.2", + "mask": "255.255.255.0", + "mac": "63:D3:1F:5D:56:02", + "gateway": "141.99.4.1", + "dns": "", + "wireless": false + }, + { + "ip": "141.99.5.1", + "mask": "255.255.255.0", + "mac": "28:1D:80:BE:38:62", + "gateway": "141.99.4.1", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Switch", + "name": "Switch 4", + "label": "Switch / WLAN", + "bounds": [ + 641, + 392, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Rechner", + "name": "DNS-Server 2.10", + "label": "Rechner", + "bounds": [ + 694, + 19, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.2.10", + "mask": "255.255.255.0", + "mac": "55:69:1F:18:4C:96", + "gateway": "141.99.2.1", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 1.10", + "label": "Notebook", + "bounds": [ + 53, + 100, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.1.10", + "mask": "255.255.255.0", + "mac": "95:11:22:49:65:CB", + "gateway": "141.99.1.1", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 1.11", + "label": "Notebook", + "bounds": [ + 70, + 235, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.1.11", + "mask": "255.255.255.0", + "mac": "AE:F4:7A:63:81:B9", + "gateway": "", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Rechner 3.10", + "label": "Rechner", + "bounds": [ + 759, + 196, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.3.10", + "mask": "255.255.255.0", + "mac": "E3:F7:EF:12:BC:94", + "gateway": "141.99.3.1", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Webserver 5.10", + "label": "Rechner", + "bounds": [ + 169, + 366, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.5.10", + "mask": "255.255.255.0", + "mac": "6D:C7:88:09:72:A8", + "gateway": "141.99.5.1", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 4.10", + "label": "Notebook", + "bounds": [ + 735, + 387, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.4.10", + "mask": "255.255.255.0", + "mac": "3F:34:B7:E1:52:67", + "gateway": "141.99.4.1", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Switch 5", + "label": "Switch / WLAN", + "bounds": [ + 302, + 408, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Notebook", + "name": "Notebook 5.11", + "label": "Notebook", + "bounds": [ + 198, + 489, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.5.11", + "mask": "255.255.255.0", + "mac": "58:5D:D7:F0:C5:89", + "gateway": "141.99.5.1", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + } + ], + "cables": [ + { + "ends": [ + [ + 7, + 0 + ], + [ + 0, + 0 + ] + ], + "wireless": false, + "panel": [ + 7, + 0 + ] + }, + { + "ends": [ + [ + 8, + 0 + ], + [ + 0, + 1 + ] + ], + "wireless": false, + "panel": [ + 8, + 0 + ] + }, + { + "ends": [ + [ + 0, + 2 + ], + [ + 2, + 0 + ] + ], + "wireless": false, + "panel": [ + 0, + 2 + ] + }, + { + "ends": [ + [ + 2, + 1 + ], + [ + 1, + 0 + ] + ], + "wireless": false, + "panel": [ + 2, + 1 + ] + }, + { + "ends": [ + [ + 1, + 1 + ], + [ + 6, + 0 + ] + ], + "wireless": false, + "panel": [ + 1, + 6 + ] + }, + { + "ends": [ + [ + 1, + 2 + ], + [ + 3, + 0 + ] + ], + "wireless": false, + "panel": [ + 1, + 3 + ] + }, + { + "ends": [ + [ + 3, + 1 + ], + [ + 5, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 5 + ] + }, + { + "ends": [ + [ + 3, + 2 + ], + [ + 9, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 9 + ] + }, + { + "ends": [ + [ + 11, + 0 + ], + [ + 5, + 2 + ] + ], + "wireless": false, + "panel": [ + 11, + 5 + ] + }, + { + "ends": [ + [ + 4, + 0 + ], + [ + 5, + 1 + ] + ], + "wireless": false, + "panel": [ + 4, + 5 + ] + }, + { + "ends": [ + [ + 4, + 1 + ], + [ + 12, + 0 + ] + ], + "wireless": false, + "panel": [ + 4, + 12 + ] + }, + { + "ends": [ + [ + 10, + 0 + ], + [ + 12, + 1 + ] + ], + "wireless": false, + "panel": [ + 10, + 12 + ] + }, + { + "ends": [ + [ + 13, + 0 + ], + [ + 12, + 2 + ] + ], + "wireless": false, + "panel": [ + 13, + 12 + ] + } + ], + "documentation": [], + "sha256": "1925c7dbe9f9e399fe94d8ae234e870e219a42d861c431aca9559a6f12dba06e" + }, + "java-examples/man-in-the-middle.fls": { + "success": true, + "nodes": [ + { + "class": "Notebook", + "name": "Alice", + "label": "Notebook", + "bounds": [ + 53, + 264, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.50.183", + "mask": "255.255.255.128", + "mac": "EA:B6:32:93:26:33", + "gateway": "", + "dns": "141.99.50.230", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Eve (Man-in-the-middle 141.99.50.184)", + "label": "Notebook", + "bounds": [ + 547, + 169, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.50.184", + "mask": "255.255.255.128", + "mac": "FA:17:C7:84:81:6E", + "gateway": "", + "dns": "127.0.0.1", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Bob", + "label": "Notebook", + "bounds": [ + 116, + 120, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.50.181", + "mask": "255.255.255.128", + "mac": "13:84:F1:E6:16:2A", + "gateway": "", + "dns": "141.99.50.230", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Internet", + "label": "Switch / WLAN", + "bounds": [ + 269, + 237, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Rechner", + "name": "Manipulierter DNS-Server", + "label": "Rechner", + "bounds": [ + 408, + 49, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.50.230", + "mask": "255.255.255.128", + "mac": "F2:BF:5A:E0:17:CB", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Mail-Server (filius.de 141.99.50.232)", + "label": "Rechner", + "bounds": [ + 519, + 382, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.50.232", + "mask": "255.255.255.128", + "mac": "16:F4:6C:5F:0C:9C", + "gateway": "", + "dns": "141.99.50.230", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Mail-Server (senior.de 141.99.50.233)", + "label": "Rechner", + "bounds": [ + 278, + 405, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.50.233", + "mask": "255.255.255.128", + "mac": "D4:7A:40:9D:1B:91", + "gateway": "", + "dns": "141.99.50.230", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + } + ], + "cables": [ + { + "ends": [ + [ + 2, + 0 + ], + [ + 3, + 0 + ] + ], + "wireless": false, + "panel": [ + 2, + 3 + ] + }, + { + "ends": [ + [ + 0, + 0 + ], + [ + 3, + 2 + ] + ], + "wireless": false, + "panel": [ + 0, + 3 + ] + }, + { + "ends": [ + [ + 1, + 0 + ], + [ + 3, + 3 + ] + ], + "wireless": false, + "panel": [ + 1, + 3 + ] + }, + { + "ends": [ + [ + 3, + 5 + ], + [ + 4, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 4 + ] + }, + { + "ends": [ + [ + 3, + 6 + ], + [ + 5, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 5 + ] + }, + { + "ends": [ + [ + 3, + 7 + ], + [ + 6, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 6 + ] + } + ], + "documentation": [ + { + "type": 1, + "text": "", + "bounds": [ + 794, + 8, + 397, + 492 + ], + "color": [ + 191, + 255, + 219, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "The manipulated DNS-Server points to Eve, the \"man in the middle\", for both mail-servers. \n\nEve has her own Mail-Server and her own DNS-Server that points to the correct mail-servers. She receives Alice's and Bob's e-Mails and forwards them on to the correct servers. \n\nAlice and Bob have no way of knowing that Eve is interecepting all of their email. \n\nWatch the logs on all the email servers simultaneously while sending emails from Alice to Bob and back!", + "bounds": [ + 815, + 20, + 349, + 203 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Der manipulierte DNS-Server gibt für beide Mail-Server Eves IP-Adresse an.\n\nEve hat ihren eigenen DNS-Server, der die richtigen Server-Adressen hat, und einen eigenen Mail-Server, der Alices und Bobs Mails an die jeweils richtigen Server weiterleitet.\n\nAlice und Bob merken nicht, dass Eve alles auf ihrem Mail-Server mitlesen kann.\n\nVerfolge den Verlauf in den Logs aller email-Server gleichzeitig, während Alice eine Mail an Bob sendet!", + "bounds": [ + 816, + 258, + 352, + 239 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + } + ], + "sha256": "678ca49cf7b1f8abf24f87a89065f4a203077caf41cc0ba2f38bf76502e975d0" + }, + "java-examples/modem_beispiel.fls": { + "success": true, + "nodes": [ + { + "class": "Rechner", + "name": "Rechner 0.11", + "label": "Rechner", + "bounds": [ + 586, + 46, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.11", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:01", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 0.10", + "label": "Notebook", + "bounds": [ + 42, + 182, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.10", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:03", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Modem", + "name": "Modem (Zugreifend)", + "label": "Modem", + "bounds": [ + 237, + 212, + 21, + 20 + ], + "ports": [ + {} + ], + "system": { + "modem": { + "mode": 2, + "port": 12345, + "ipAdresse": "localhost" + } + } + }, + { + "class": "Modem", + "name": "Modem (Zugangspunkt)", + "label": "Modem", + "bounds": [ + 396, + 79, + 21, + 20 + ], + "ports": [ + {} + ], + "system": { + "modem": { + "mode": 2, + "port": 12345, + "ipAdresse": "localhost" + } + } + } + ], + "cables": [ + { + "ends": [ + [ + 1, + 0 + ], + [ + 2, + 0 + ] + ], + "wireless": false, + "panel": [ + 1, + 2 + ] + }, + { + "ends": [ + [ + 3, + 0 + ], + [ + 0, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 0 + ] + } + ], + "documentation": [], + "sha256": "f5e95b5c6dc7387925e61e6cf3076f189cf652df3f660484fb3600282c58b29d" + }, + "java-examples/multicast_server.fls": { + "success": true, + "nodes": [ + { + "class": "Rechner", + "name": "Rechner", + "label": "Rechner", + "bounds": [ + 731, + 164, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.1", + "mask": "255.255.255.0", + "mac": "25:9B:C0:C4:32:17", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 213, + 175, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.10", + "mask": "255.255.255.0", + "mac": "54:84:0B:8A:58:0C", + "gateway": "", + "dns": "", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 192, + 317, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.20", + "mask": "255.255.255.0", + "mac": "03:42:BB:88:50:95", + "gateway": "", + "dns": "", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Switch / WLAN", + "label": "Switch / WLAN", + "bounds": [ + 475, + 318, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + } + ], + "cables": [ + { + "ends": [ + [ + 3, + 1 + ], + [ + 0, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 0 + ] + }, + { + "ends": [ + [ + 2, + 0 + ], + [ + 3, + 0 + ] + ], + "wireless": true, + "panel": [ + 2, + 3 + ] + }, + { + "ends": [ + [ + 1, + 0 + ], + [ + 3, + 2 + ] + ], + "wireless": true, + "panel": [ + 1, + 3 + ] + } + ], + "documentation": [], + "sha256": "15598c16f471740a28d78497670e22098874dc6a68e585a7369c021263a908c0" + }, + "java-examples/nat.fls": { + "success": true, + "nodes": [ + { + "class": "Gateway", + "name": "Heimrouter", + "label": "Heimrouter", + "bounds": [ + 382, + 181, + 21, + 20 + ], + "ports": [ + { + "ip": "10.0.0.1", + "mask": "255.0.0.0", + "mac": "49:71:D3:3F:F0:3E", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "192.168.0.1", + "mask": "255.255.255.0", + "mac": "F8:24:0B:58:BD:87", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 243, + "sha256": "82d08041730728a01f9c7714db912699ff79a7a1b2211c48e283d6b8aec3f272", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "staticNAT": [], + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Rechner", + "name": "Rechner", + "label": "Rechner", + "bounds": [ + 169, + 135, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.100", + "mask": "255.255.255.0", + "mac": "1E:A0:9E:34:FA:24", + "gateway": "192.168.0.1", + "dns": "192.168.0.1", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 850, + 148, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "10.0.0.100", + "mask": "255.255.255.0", + "mac": "23:2E:63:7C:81:B7", + "gateway": "192.168.0.1", + "dns": "192.168.0.1", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Internet", + "label": "Switch / WLAN", + "bounds": [ + 633, + 190, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + } + ], + "cables": [ + { + "ends": [ + [ + 1, + 0 + ], + [ + 0, + 1 + ] + ], + "wireless": false, + "panel": [ + 1, + 0 + ] + }, + { + "ends": [ + [ + 0, + 0 + ], + [ + 3, + 0 + ] + ], + "wireless": false, + "panel": [ + 0, + 3 + ] + }, + { + "ends": [ + [ + 3, + 1 + ], + [ + 2, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 2 + ] + } + ], + "documentation": [], + "sha256": "0b1cac470c2d99365f4971c5e4016e360a091f1fbaea30efefbe49e4f9331230" + }, + "java-examples/nat_with_mapped_port.fls": { + "success": true, + "nodes": [ + { + "class": "Switch", + "name": "Switch", + "label": "Switch / WLAN", + "bounds": [ + 300, + 131, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Switch", + "name": "Switch", + "label": "Switch / WLAN", + "bounds": [ + 676, + 161, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Vermittlungsrechner", + "name": "Vermittlungsrechner", + "label": "Vermittlungsrechner", + "bounds": [ + 551, + 90, + 21, + 20 + ], + "ports": [ + { + "ip": "141.99.1.1", + "mask": "255.255.255.0", + "mac": "C1:60:0A:E1:76:C5", + "gateway": "141.99.2.2", + "dns": "", + "wireless": false + }, + { + "ip": "141.99.2.1", + "mask": "255.255.255.0", + "mac": "5A:54:FE:11:5D:6C", + "gateway": "141.99.2.2", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "Vermittlungsrechner", + "label": "Vermittlungsrechner", + "bounds": [ + 559, + 263, + 21, + 20 + ], + "ports": [ + { + "ip": "141.99.2.2", + "mask": "255.255.255.0", + "mac": "6E:1E:CD:78:BE:78", + "gateway": "141.99.4.2", + "dns": "", + "wireless": false + }, + { + "ip": "141.99.4.1", + "mask": "255.255.255.0", + "mac": "28:09:56:2D:27:6F", + "gateway": "141.99.4.2", + "dns": "", + "wireless": false + }, + { + "ip": "141.99.3.1", + "mask": "255.255.255.0", + "mac": "F6:A4:32:18:E5:05", + "gateway": "141.99.4.2", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "Vermittlungsrechner", + "label": "Vermittlungsrechner", + "bounds": [ + 562, + 426, + 21, + 20 + ], + "ports": [ + { + "ip": "141.99.4.2", + "mask": "255.255.255.0", + "mac": "63:D3:1F:5D:56:02", + "gateway": "141.99.4.1", + "dns": "", + "wireless": false + }, + { + "ip": "141.99.5.1", + "mask": "255.255.255.0", + "mac": "28:1D:80:BE:38:62", + "gateway": "141.99.4.1", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Rechner", + "name": "DNS-Server", + "label": "Rechner", + "bounds": [ + 837, + 119, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.2.10", + "mask": "255.255.255.0", + "mac": "55:69:1F:18:4C:96", + "gateway": "141.99.2.1", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 1.10", + "label": "Notebook", + "bounds": [ + 152, + 54, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.100", + "mask": "255.255.255.0", + "mac": "95:11:22:49:65:CB", + "gateway": "192.168.0.1", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "192.168.0.101", + "label": "Notebook", + "bounds": [ + 157, + 202, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.101", + "mask": "255.255.255.0", + "mac": "AE:F4:7A:63:81:B9", + "gateway": "192.168.0.1", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Webserver www.jupiter.de", + "label": "Rechner", + "bounds": [ + 804, + 307, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.4.10", + "mask": "255.255.255.0", + "mac": "E3:F7:EF:12:BC:94", + "gateway": "141.99.4.1", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Webserver - 192.168.0.10", + "label": "Rechner", + "bounds": [ + 99, + 363, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.10", + "mask": "255.255.255.0", + "mac": "6D:C7:88:09:72:A8", + "gateway": "192.168.0.1", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Switch", + "label": "Switch / WLAN", + "bounds": [ + 313, + 444, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Notebook", + "name": "Notebook 5.11", + "label": "Notebook", + "bounds": [ + 260, + 538, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.100", + "mask": "255.255.255.0", + "mac": "58:5D:D7:F0:C5:89", + "gateway": "192.168.0.1", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Gateway", + "name": "Heimrouter Vincent", + "label": "Heimrouter", + "bounds": [ + 384, + 438, + 21, + 20 + ], + "ports": [ + { + "ip": "141.99.5.10", + "mask": "255.255.255.0", + "mac": "2F:1F:C3:B1:68:1A", + "gateway": "141.99.5.1", + "dns": "", + "wireless": false + }, + { + "ip": "192.168.0.1", + "mask": "255.255.255.0", + "mac": "FD:7A:10:01:33:82", + "gateway": "141.99.5.1", + "dns": "", + "wireless": false + } + ], + "system": { + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 243, + "sha256": "82d08041730728a01f9c7714db912699ff79a7a1b2211c48e283d6b8aec3f272", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "staticNAT": [], + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Gateway", + "name": "Heimrouter Paul", + "label": "Heimrouter", + "bounds": [ + 375, + 122, + 21, + 20 + ], + "ports": [ + { + "ip": "141.99.1.10", + "mask": "255.255.255.0", + "mac": "25:13:13:0E:49:9D", + "gateway": "141.99.1.1", + "dns": "", + "wireless": false + }, + { + "ip": "192.168.0.1", + "mask": "255.255.255.0", + "mac": "B9:64:F2:59:30:D6", + "gateway": "141.99.1.1", + "dns": "", + "wireless": false + } + ], + "system": { + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 243, + "sha256": "82d08041730728a01f9c7714db912699ff79a7a1b2211c48e283d6b8aec3f272", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "staticNAT": [], + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Switch", + "name": "Switch", + "label": "Switch / WLAN", + "bounds": [ + 694, + 342, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + } + ], + "cables": [ + { + "ends": [ + [ + 6, + 0 + ], + [ + 0, + 0 + ] + ], + "wireless": false, + "panel": [ + 6, + 0 + ] + }, + { + "ends": [ + [ + 7, + 0 + ], + [ + 0, + 1 + ] + ], + "wireless": false, + "panel": [ + 7, + 0 + ] + }, + { + "ends": [ + [ + 2, + 1 + ], + [ + 1, + 0 + ] + ], + "wireless": false, + "panel": [ + 2, + 1 + ] + }, + { + "ends": [ + [ + 1, + 1 + ], + [ + 5, + 0 + ] + ], + "wireless": false, + "panel": [ + 1, + 5 + ] + }, + { + "ends": [ + [ + 1, + 2 + ], + [ + 3, + 0 + ] + ], + "wireless": false, + "panel": [ + 1, + 3 + ] + }, + { + "ends": [ + [ + 9, + 0 + ], + [ + 10, + 1 + ] + ], + "wireless": false, + "panel": [ + 9, + 10 + ] + }, + { + "ends": [ + [ + 11, + 0 + ], + [ + 10, + 2 + ] + ], + "wireless": false, + "panel": [ + 11, + 10 + ] + }, + { + "ends": [ + [ + 0, + 2 + ], + [ + 13, + 1 + ] + ], + "wireless": false, + "panel": [ + 0, + 13 + ] + }, + { + "ends": [ + [ + 13, + 0 + ], + [ + 2, + 0 + ] + ], + "wireless": false, + "panel": [ + 13, + 2 + ] + }, + { + "ends": [ + [ + 10, + 0 + ], + [ + 12, + 1 + ] + ], + "wireless": false, + "panel": [ + 10, + 12 + ] + }, + { + "ends": [ + [ + 12, + 0 + ], + [ + 4, + 1 + ] + ], + "wireless": false, + "panel": [ + 12, + 4 + ] + }, + { + "ends": [ + [ + 3, + 1 + ], + [ + 14, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 14 + ] + }, + { + "ends": [ + [ + 14, + 1 + ], + [ + 4, + 0 + ] + ], + "wireless": false, + "panel": [ + 14, + 4 + ] + }, + { + "ends": [ + [ + 14, + 2 + ], + [ + 8, + 0 + ] + ], + "wireless": false, + "panel": [ + 14, + 8 + ] + } + ], + "documentation": [ + { + "type": 1, + "text": "", + "bounds": [ + 94, + 34, + 428, + 292 + ], + "color": [ + 204, + 204, + 204, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 1, + "text": "", + "bounds": [ + 95, + 349, + 428, + 296 + ], + "color": [ + 204, + 204, + 204, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 1, + "text": "", + "bounds": [ + 792, + 52, + 224, + 489 + ], + "color": [ + 204, + 204, + 204, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Pauls Home Network", + "bounds": [ + 316, + 42, + 142, + 26 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 18, + 0 + ] + }, + { + "type": 2, + "text": "Vincents Home Network", + "bounds": [ + 322, + 358, + 169, + 27 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 18, + 0 + ] + }, + { + "type": 2, + "text": "The home router is configured to forward traffic on port 80 to the webserver.", + "bounds": [ + 388, + 523, + 129, + 73 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Traffic to the Webserver is forwarded by the home router. But the Echo Server on this host is only reachable from the local network.", + "bounds": [ + 113, + 483, + 167, + 108 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "All services on this host are publicly available.", + "bounds": [ + 828, + 430, + 148, + 50 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Hosts with public IP addresses", + "bounds": [ + 802, + 57, + 187, + 50 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + } + ], + "sha256": "c05a40b1d13ba800f044dfbe85fe281d81aef2afee0ec0bc2dd078fd232aff55" + }, + "java-examples/private_and_public_network.fls": { + "success": true, + "nodes": [ + { + "class": "Switch", + "name": "Switch / WLAN", + "label": "Switch / WLAN", + "bounds": [ + 373, + 185, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Notebook", + "name": "Notebook 1.10", + "label": "Notebook", + "bounds": [ + 62, + 100, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.10", + "mask": "255.255.255.0", + "mac": "95:11:22:49:65:CB", + "gateway": "192.168.0.1", + "dns": "141.99.2.10", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 1.11", + "label": "Notebook", + "bounds": [ + 73, + 235, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.11", + "mask": "255.255.255.0", + "mac": "AE:F4:7A:63:81:B9", + "gateway": "192.168.0.1", + "dns": "141.99.2.10", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Gateway", + "name": "Heimrouter", + "label": "Heimrouter", + "bounds": [ + 488, + 179, + 21, + 20 + ], + "ports": [ + { + "ip": "141.99.2.100", + "mask": "255.255.255.0", + "mac": "D6:32:D9:8F:3C:C3", + "gateway": "", + "dns": "0.0.0.0", + "wireless": false + }, + { + "ip": "192.168.0.1", + "mask": "255.255.255.0", + "mac": "55:DA:E5:38:11:16", + "gateway": "", + "dns": "0.0.0.0", + "wireless": false + } + ], + "system": { + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 243, + "sha256": "82d08041730728a01f9c7714db912699ff79a7a1b2211c48e283d6b8aec3f272", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "staticNAT": [], + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Switch", + "name": "Switch", + "label": "Switch / WLAN", + "bounds": [ + 726, + 196, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Rechner", + "name": "Rechner", + "label": "Rechner", + "bounds": [ + 978, + 234, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.2.10", + "mask": "255.255.255.0", + "mac": "7B:2B:66:48:19:16", + "gateway": "141.99.2.1", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + } + ], + "cables": [ + { + "ends": [ + [ + 0, + 2 + ], + [ + 3, + 1 + ] + ], + "wireless": false, + "panel": [ + 0, + 3 + ] + }, + { + "ends": [ + [ + 4, + 0 + ], + [ + 3, + 0 + ] + ], + "wireless": false, + "panel": [ + 4, + 3 + ] + }, + { + "ends": [ + [ + 4, + 1 + ], + [ + 5, + 0 + ] + ], + "wireless": false, + "panel": [ + 4, + 5 + ] + }, + { + "ends": [ + [ + 1, + 0 + ], + [ + 0, + 0 + ] + ], + "wireless": true, + "panel": [ + 1, + 0 + ] + }, + { + "ends": [ + [ + 2, + 0 + ], + [ + 0, + 1 + ] + ], + "wireless": true, + "panel": [ + 2, + 0 + ] + } + ], + "documentation": [ + { + "type": 1, + "text": "", + "bounds": [ + 37, + 24, + 586, + 390 + ], + "color": [ + 204, + 222, + 173, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 1, + "text": "", + "bounds": [ + 663, + 25, + 619, + 390 + ], + "color": [ + 204, + 204, + 204, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Heimnetz mit einem Switch bzw. WLAN Access Point und Heimrouter, die häufig in einem Gerät kombiniert sind.", + "bounds": [ + 257, + 33, + 343, + 49 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Vereinfachtes Netz des Dienstanbieters mit nur einem Switch und angeschlossenem DNS- und Webserver.", + "bounds": [ + 702, + 35, + 244, + 74 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Der Heimrouter verfügt über einen LAN- und einen WAN-Anschluss und unterstützt Network Address Translation (NAT). Dammit sind lokale IP-Adressen im öffentlichen Netz nicht sichtbar.", + "bounds": [ + 361, + 297, + 252, + 108 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Heimnetz", + "bounds": [ + 47, + 31, + 100, + 50 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 18, + 1 + ] + }, + { + "type": 2, + "text": "Öffentliches Netz", + "bounds": [ + 1061, + 31, + 204, + 50 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 18, + 1 + ] + } + ], + "sha256": "38cced73016a0739cf12b9736af729fd4c93981c67f0019ab55974d6beb58d6a" + }, + "java-examples/private_und_public_networks_mit_provider_DE.fls": { + "success": true, + "nodes": [ + { + "class": "Switch", + "name": "WLAN Access Point", + "label": "Switch / WLAN", + "bounds": [ + 358, + 185, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Notebook", + "name": "Notebook 1.10", + "label": "Notebook", + "bounds": [ + 148, + 100, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.11", + "mask": "255.255.255.0", + "mac": "95:11:22:49:65:CB", + "gateway": "192.168.0.1", + "dns": "42.0.0.2", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 1.11", + "label": "Notebook", + "bounds": [ + 78, + 227, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.12", + "mask": "255.255.255.0", + "mac": "AE:F4:7A:63:81:B9", + "gateway": "192.168.0.1", + "dns": "42.0.0.2", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Gateway", + "name": "Heimrouter", + "label": "Heimrouter", + "bounds": [ + 502, + 146, + 21, + 20 + ], + "ports": [ + { + "ip": "42.0.0.11", + "mask": "255.255.255.0", + "mac": "D6:32:D9:8F:3C:C3", + "gateway": "42.0.0.1", + "dns": "0.0.0.0", + "wireless": false + }, + { + "ip": "192.168.0.1", + "mask": "255.255.255.0", + "mac": "55:DA:E5:38:11:16", + "gateway": "42.0.0.1", + "dns": "0.0.0.0", + "wireless": false + } + ], + "system": { + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 243, + "sha256": "82d08041730728a01f9c7714db912699ff79a7a1b2211c48e283d6b8aec3f272", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "staticNAT": [], + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Switch", + "name": "Switch", + "label": "Switch / WLAN", + "bounds": [ + 651, + 83, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Rechner", + "name": "Provider Server www.filius.de (42.0.0.2)", + "label": "Rechner", + "bounds": [ + 633, + 178, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "42.0.0.2", + "mask": "255.255.255.0", + "mac": "7B:2B:66:48:19:16", + "gateway": "42.0.0.1", + "dns": "8.8.8.8", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "Vermittlungsrechner", + "label": "Vermittlungsrechner", + "bounds": [ + 740, + 84, + 21, + 20 + ], + "ports": [ + { + "ip": "42.0.0.1", + "mask": "255.255.255.0", + "mac": "49:E7:F2:39:E5:58", + "gateway": "1.0.0.1", + "dns": "", + "wireless": false + }, + { + "ip": "1.0.0.2", + "mask": "255.255.255.0", + "mac": "C1:20:94:DC:20:AC", + "gateway": "1.0.0.1", + "dns": "", + "wireless": false + }, + { + "ip": "192.168.0.10", + "mask": "255.255.255.0", + "mac": "02:0F:87:E5:B6:52", + "gateway": "1.0.0.1", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + }, + { + "class": "Rechner", + "name": "webserver.de (120.130.140.10)", + "label": "Rechner", + "bounds": [ + 1026, + 255, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "120.130.140.10", + "mask": "255.255.255.0", + "mac": "41:8E:FC:A1:C1:CD", + "gateway": "120.130.140.1", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "DNS (8.8.8.8)", + "label": "Rechner", + "bounds": [ + 1098, + 72, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "8.8.8.8", + "mask": "255.255.255.0", + "mac": "6E:31:51:DD:9E:45", + "gateway": "8.8.8.1", + "dns": "127.0.0.1", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "Vermittlungsrechner", + "label": "Vermittlungsrechner", + "bounds": [ + 934, + 181, + 21, + 20 + ], + "ports": [ + { + "ip": "8.8.8.1", + "mask": "255.255.255.0", + "mac": "B5:EB:CB:68:70:48", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "120.130.140.1", + "mask": "255.255.255.0", + "mac": "D6:6E:0A:7C:2A:E9", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "1.0.0.1", + "mask": "255.255.255.0", + "mac": "7B:48:CA:D9:EC:DD", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + } + ], + "cables": [ + { + "ends": [ + [ + 0, + 2 + ], + [ + 3, + 1 + ] + ], + "wireless": false, + "panel": [ + 0, + 3 + ] + }, + { + "ends": [ + [ + 4, + 0 + ], + [ + 3, + 0 + ] + ], + "wireless": false, + "panel": [ + 4, + 3 + ] + }, + { + "ends": [ + [ + 4, + 1 + ], + [ + 5, + 0 + ] + ], + "wireless": false, + "panel": [ + 4, + 5 + ] + }, + { + "ends": [ + [ + 1, + 0 + ], + [ + 0, + 0 + ] + ], + "wireless": true, + "panel": [ + 1, + 0 + ] + }, + { + "ends": [ + [ + 2, + 0 + ], + [ + 0, + 1 + ] + ], + "wireless": true, + "panel": [ + 2, + 0 + ] + }, + { + "ends": [ + [ + 6, + 0 + ], + [ + 4, + 2 + ] + ], + "wireless": false, + "panel": [ + 6, + 4 + ] + }, + { + "ends": [ + [ + 9, + 0 + ], + [ + 8, + 0 + ] + ], + "wireless": false, + "panel": [ + 9, + 8 + ] + }, + { + "ends": [ + [ + 9, + 1 + ], + [ + 7, + 0 + ] + ], + "wireless": false, + "panel": [ + 9, + 7 + ] + }, + { + "ends": [ + [ + 9, + 2 + ], + [ + 6, + 1 + ] + ], + "wireless": false, + "panel": [ + 9, + 6 + ] + } + ], + "documentation": [ + { + "type": 1, + "text": "", + "bounds": [ + 37, + 24, + 586, + 390 + ], + "color": [ + 204, + 222, + 173, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 1, + "text": "", + "bounds": [ + 884, + 25, + 400, + 390 + ], + "color": [ + 252, + 201, + 163, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 1, + "text": "", + "bounds": [ + 635, + 25, + 239, + 391 + ], + "color": [ + 222, + 212, + 255, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 1, + "text": "", + "bounds": [ + -89, + 467, + 100, + 50 + ], + "color": [ + 204, + 204, + 204, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Heimnetz mit einem WLAN-Access-Point und Heimrouter, die häufig in einem Gerät kombiniert sind.", + "bounds": [ + 257, + 33, + 343, + 49 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Vereinfachtes Netz des Dienstanbieters mit lokalem DNS- und Webserver für Kunden.", + "bounds": [ + 644, + 316, + 224, + 48 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Der Heimrouter verfügt über einen LAN- und einen WAN-Anschluss und unterstützt Network Address Translation (NAT). Damit sind lokale IP-Adressen im öffentlichen Netz nicht sichtbar.", + "bounds": [ + 361, + 297, + 252, + 108 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Heimnetz", + "bounds": [ + 47, + 31, + 100, + 50 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 18, + 1 + ] + }, + { + "type": 2, + "text": "Öffentliches Netz", + "bounds": [ + 1061, + 31, + 204, + 50 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 18, + 1 + ] + }, + { + "type": 2, + "text": "Provider Netz", + "bounds": [ + 688, + 36, + 131, + 31 + ], + "color": [ + 0, + 0, + 0, + 255 + ], + "font": [ + "Dialog", + 18, + 1 + ] + } + ], + "sha256": "2975118117d5c8add8acb57674437ea7caf219cd90afd1c9b0737e91057e3e51" + }, + "java-examples/webserver.fls": { + "success": true, + "nodes": [ + { + "class": "Rechner", + "name": "Webserver", + "label": "Rechner", + "bounds": [ + 501, + 93, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.100", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:01", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook", + "label": "Notebook", + "bounds": [ + 102, + 151, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.10", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:03", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Switch / WLAN", + "label": "Switch / WLAN", + "bounds": [ + 329, + 146, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + } + ], + "cables": [ + { + "ends": [ + [ + 1, + 0 + ], + [ + 2, + 0 + ] + ], + "wireless": false, + "panel": [ + 1, + 2 + ] + }, + { + "ends": [ + [ + 2, + 1 + ], + [ + 0, + 0 + ] + ], + "wireless": false, + "panel": [ + 2, + 0 + ] + } + ], + "documentation": [], + "sha256": "2c569a153ec78eef67a8d2f1ed5998c1ed55fb058daae10713a7b8349fd04943" + }, + "java-examples/zwei_rechnernetze_komplett.fls": { + "success": true, + "nodes": [ + { + "class": "Switch", + "name": "Switch 1", + "label": "Switch / WLAN", + "bounds": [ + 164, + 178, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Switch", + "name": "Switch 2", + "label": "Switch / WLAN", + "bounds": [ + 612, + 104, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Rechner", + "name": "DNS-Server 2.10", + "label": "Rechner", + "bounds": [ + 694, + 19, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.2.10", + "mask": "255.255.255.0", + "mac": "55:69:1F:18:4C:96", + "gateway": "141.99.2.1", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 1.10", + "label": "Notebook", + "bounds": [ + 53, + 100, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.1.10", + "mask": "255.255.255.0", + "mac": "95:11:22:49:65:CB", + "gateway": "141.99.1.1", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 1.11", + "label": "Notebook", + "bounds": [ + 70, + 235, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "141.99.1.11", + "mask": "255.255.255.0", + "mac": "AE:F4:7A:63:81:B9", + "gateway": "", + "dns": "141.99.2.10", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "Vermittlungsrechner", + "label": "Vermittlungsrechner", + "bounds": [ + 373, + 106, + 21, + 20 + ], + "ports": [ + { + "ip": "141.99.1.1", + "mask": "255.255.255.0", + "mac": "A4:F4:2A:89:9F:E8", + "gateway": "", + "dns": "", + "wireless": false + }, + { + "ip": "141.99.2.1", + "mask": "255.255.255.0", + "mac": "6D:B4:5B:F1:70:FC", + "gateway": "", + "dns": "", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + } + ], + "cables": [ + { + "ends": [ + [ + 3, + 0 + ], + [ + 0, + 0 + ] + ], + "wireless": false, + "panel": [ + 3, + 0 + ] + }, + { + "ends": [ + [ + 4, + 0 + ], + [ + 0, + 1 + ] + ], + "wireless": false, + "panel": [ + 4, + 0 + ] + }, + { + "ends": [ + [ + 1, + 1 + ], + [ + 2, + 0 + ] + ], + "wireless": false, + "panel": [ + 1, + 2 + ] + }, + { + "ends": [ + [ + 0, + 2 + ], + [ + 5, + 0 + ] + ], + "wireless": false, + "panel": [ + 0, + 5 + ] + }, + { + "ends": [ + [ + 5, + 1 + ], + [ + 1, + 0 + ] + ], + "wireless": false, + "panel": [ + 5, + 1 + ] + } + ], + "documentation": [], + "sha256": "fbbcf5fd996a17f9d443865f83232870de866ace6823aa1614ba6173bb5e39db" + }, + "java-tests/einfaches_rechnernetz_komplett.fls": { + "success": true, + "nodes": [ + { + "class": "Rechner", + "name": "Rechner 1", + "label": "Rechner", + "bounds": [ + 32, + 97, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.11", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:01", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Rechner 2", + "label": "Rechner", + "bounds": [ + 30, + 226, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.12", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:03", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Rechner 3", + "label": "Rechner", + "bounds": [ + 31, + 364, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.13", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:05", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Rechner 4", + "label": "Rechner", + "bounds": [ + 36, + 503, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.14", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:07", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Rechner", + "name": "Server", + "label": "Rechner", + "bounds": [ + 564, + 39, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "192.168.0.100", + "mask": "255.255.255.0", + "mac": "02:00:00:00:00:09", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Switch 3", + "label": "Switch / WLAN", + "bounds": [ + 449, + 180, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Notebook", + "name": "Notebook 1", + "label": "Notebook", + "bounds": [ + 348, + 512, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "169.254.59.98", + "mask": "0.0.0.0", + "mac": "02:00:00:00:00:36", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 2", + "label": "Notebook", + "bounds": [ + 498, + 513, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "169.254.149.102", + "mask": "0.0.0.0", + "mac": "02:00:00:00:00:38", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 3", + "label": "Notebook", + "bounds": [ + 634, + 510, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "169.254.43.216", + "mask": "0.0.0.0", + "mac": "02:00:00:00:00:40", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Notebook", + "name": "Notebook 4", + "label": "Notebook", + "bounds": [ + 768, + 509, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": false, + "ports": [ + { + "ip": "169.254.19.11", + "mask": "0.0.0.0", + "mac": "02:00:00:00:00:42", + "gateway": "", + "dns": "192.168.0.100", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "Switch 2", + "label": "Switch / WLAN", + "bounds": [ + 601, + 368, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Switch", + "name": "Switch 1", + "label": "Switch / WLAN", + "bounds": [ + 224, + 300, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + } + ], + "cables": [ + { + "ends": [ + [ + 0, + 0 + ], + [ + 11, + 0 + ] + ], + "wireless": false, + "panel": [ + 0, + 11 + ] + }, + { + "ends": [ + [ + 1, + 0 + ], + [ + 11, + 1 + ] + ], + "wireless": false, + "panel": [ + 1, + 11 + ] + }, + { + "ends": [ + [ + 2, + 0 + ], + [ + 11, + 2 + ] + ], + "wireless": false, + "panel": [ + 2, + 11 + ] + }, + { + "ends": [ + [ + 3, + 0 + ], + [ + 11, + 3 + ] + ], + "wireless": false, + "panel": [ + 3, + 11 + ] + }, + { + "ends": [ + [ + 11, + 4 + ], + [ + 5, + 0 + ] + ], + "wireless": false, + "panel": [ + 11, + 5 + ] + }, + { + "ends": [ + [ + 5, + 1 + ], + [ + 4, + 0 + ] + ], + "wireless": false, + "panel": [ + 5, + 4 + ] + }, + { + "ends": [ + [ + 5, + 2 + ], + [ + 10, + 0 + ] + ], + "wireless": false, + "panel": [ + 5, + 10 + ] + }, + { + "ends": [ + [ + 6, + 0 + ], + [ + 10, + 1 + ] + ], + "wireless": false, + "panel": [ + 6, + 10 + ] + }, + { + "ends": [ + [ + 7, + 0 + ], + [ + 10, + 2 + ] + ], + "wireless": false, + "panel": [ + 7, + 10 + ] + }, + { + "ends": [ + [ + 8, + 0 + ], + [ + 10, + 3 + ] + ], + "wireless": false, + "panel": [ + 8, + 10 + ] + }, + { + "ends": [ + [ + 9, + 0 + ], + [ + 10, + 4 + ] + ], + "wireless": false, + "panel": [ + 9, + 10 + ] + } + ], + "documentation": [], + "sha256": "0d3b055bbc8091a569fc0cfc5d97bde286a361af60eda2c0539e9fca1d7d9c72" + }, + "java-tests/empty.fls": { + "success": true, + "nodes": [], + "cables": [], + "documentation": [], + "sha256": "49855a61d8576af64e50c211807e658d69daa924a411ced654a3452070b1722c" + }, + "synthetic/model.fls": { + "success": true, + "nodes": [ + { + "class": "Rechner", + "name": "PC", + "label": "Rechner", + "bounds": [ + 11, + 20, + 21, + 20 + ], + "useIpAsName": true, + "useMacAsName": true, + "ports": [ + { + "ip": "10.0.0.1", + "mask": "255.255.255.0", + "mac": "02:P0", + "gateway": "10.0.0.254", + "dns": "10.0.0.53", + "wireless": false + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Switch", + "name": "SW", + "label": "Switch / WLAN", + "bounds": [ + 100, + 20, + 21, + 20 + ], + "ports": [ + {}, + {}, + {}, + {}, + {} + ], + "system": { + "ssid": null, + "retentionTime": 300000 + } + }, + { + "class": "Notebook", + "name": "NB", + "label": "Notebook", + "bounds": [ + 100, + 120, + 21, + 20 + ], + "useIpAsName": false, + "useMacAsName": true, + "ports": [ + { + "ip": "10.0.0.2", + "mask": "255.255.255.0", + "mac": "02:N0", + "gateway": "", + "dns": "", + "wireless": true + } + ], + "system": { + "ssid": null, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [] + }, + "applications": [], + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + } + } + }, + { + "class": "Vermittlungsrechner", + "name": "RT", + "label": "Vermittlungsrechner", + "bounds": [ + 200, + 20, + 21, + 20 + ], + "ports": [ + { + "ip": "10.1.0.1", + "mask": "255.255.0.0", + "mac": "02:R0", + "gateway": "10.9.9.9", + "dns": "10.0.0.53", + "wireless": false + }, + { + "ip": "10.0.0.254", + "mask": "255.255.255.0", + "mac": "02:R1", + "gateway": "10.9.9.9", + "dns": "10.0.0.53", + "wireless": false + }, + { + "ip": "10.2.0.1", + "mask": "255.255.0.0", + "mac": "02:R2", + "gateway": "10.9.9.9", + "dns": "10.0.0.53", + "wireless": false + } + ], + "system": { + "ripEnabled": false, + "manualRoutes": [], + "fileSystem": { + "directory": "root", + "children": [ + { + "directory": "webserver", + "children": [ + { + "file": "index.html", + "type": "html", + "length": 394, + "sha256": "df21e97824b59cc7c88e1cfdedad94f20ca595af4577751b641ef42b9d918bca", + "children": [] + }, + { + "file": "splashscreen-mini.png", + "type": "png", + "length": 8397, + "sha256": "c876b828d7258ddfce4aa01ecaa69d4685d238bccf6a94842972165bd1a0107c", + "children": [] + } + ] + } + ] + }, + "dhcpClient": false, + "dhcpServer": { + "aktiv": false, + "untergrenze": "0.0.0.0", + "obergrenze": "0.0.0.0", + "gatewayip": "0.0.0.0", + "dnsserverip": "0.0.0.0", + "ownSettings": false, + "staticAssignedAddresses": [] + }, + "firewall": { + "activated": false, + "defaultPolicy": 0, + "dropICMP": false, + "filterSYNSegmentsOnly": true, + "filterUdp": true, + "rules": [] + } + } + } + ], + "cables": [ + { + "ends": [ + [ + 0, + 0 + ], + [ + 1, + 4 + ] + ], + "wireless": false, + "panel": [ + 0, + 1 + ] + }, + { + "ends": [ + [ + 2, + 0 + ], + [ + 1, + 0 + ] + ], + "wireless": true, + "panel": [ + 2, + 1 + ] + }, + { + "ends": [ + [ + 1, + 2 + ], + [ + 3, + 1 + ] + ], + "wireless": false, + "panel": [ + 1, + 3 + ] + } + ], + "documentation": [ + { + "type": 1, + "text": "", + "bounds": [ + 5, + 6, + 300, + 200 + ], + "color": [ + 255, + 128, + 0, + 128 + ], + "font": [ + "Dialog", + 12, + 0 + ] + }, + { + "type": 2, + "text": "Netz A\nzweite Zeile", + "bounds": [ + 40, + 51, + 120, + 30 + ], + "color": [ + 0, + 0, + 255, + 255 + ], + "font": [ + "SansSerif", + 16, + 1 + ] + } + ], + "sha256": "26386f4796c7c26ef63cfec50c6f6145c77e42f67e8315f30af316e0900554cd" + } +} diff --git a/packages/fls/test/importProject.test.ts b/packages/fls/test/importProject.test.ts index 6488a17..0c451d7 100644 --- a/packages/fls/test/importProject.test.ts +++ b/packages/fls/test/importProject.test.ts @@ -664,24 +664,30 @@ describe('importProject rules', () => { ]); }); - it("gives a switch without SSID one from its id, and joins a host to a wireless network only with an SSID", () => { + it("gives a switch without SSID one from its id, and keeps a host's wireless card and SSID", () => { + const wirelessNic = (ip: string) => ({ ...nic(ip), wireless: true }); const project = importProject( topology({ nodes: [ flsNode('Switch', { portCount: 24, system: { ssid: undefined, retentionTime: 2000 } }), flsNode('Switch', { portCount: 24, system: { ssid: ' MyWiFi ', retentionTime: 300_000 } }), - flsNode('Notebook', { interfaces: [nic('10.0.0.1')], system: { ssid: 'MyWiFi', manualRoutes: [] } }), + flsNode('Notebook', { interfaces: [wirelessNic('10.0.0.1')], system: { ssid: 'MyWiFi', manualRoutes: [] } }), flsNode('Rechner', { interfaces: [nic('10.0.0.2')], system: { ssid: ' ', manualRoutes: [] } }), + flsNode('Notebook', { interfaces: [nic('10.0.0.3')], system: { ssid: 'MyWiFi', manualRoutes: [] } }), + flsNode('Notebook', { interfaces: [wirelessNic('10.0.0.4')], system: { ssid: null, manualRoutes: [] } }), ], }), counter(), ); - const [first, second, notebook, pc] = project.graph.nodes.map((node) => node.id); + const [first, second, notebook, pc, wired, withoutNetwork] = project.graph.nodes.map((node) => node.id); expect(project.switchConfigurations.get(first!)).toEqual({ ssid: defaultSwitchConfiguration(first!).ssid, retentionTimeMilliseconds: 2000 }); expect(project.switchConfigurations.get(second!)).toEqual({ ssid: 'MyWiFi', retentionTimeMilliseconds: 300_000 }); expect(project.hostWirelessConfigurations.get(notebook!)).toEqual({ isEnabled: true, ssid: 'MyWiFi' }); expect(project.hostWirelessConfigurations.has(pc!)).toBe(false); + // Java joins only with a wireless card: an SSID alone keeps the cable. + expect(project.hostWirelessConfigurations.get(wired!)).toEqual({ isEnabled: false, ssid: 'MyWiFi' }); + expect(project.hostWirelessConfigurations.get(withoutNetwork!)).toEqual({ isEnabled: true, ssid: '' }); }); it('takes DHCP settings for hosts and home routers, trimmed, and only when they are not the defaults', () => { diff --git a/tools/java-oracle/README.md b/tools/java-oracle/README.md index dd0dbc4..e700bd2 100644 --- a/tools/java-oracle/README.md +++ b/tools/java-oracle/README.md @@ -88,9 +88,11 @@ ist, wird still 3600. ## Was Java aus unseren Dateien lädt `run.sh` lädt auch die Dateien unter `packages/fls/test/written/`, die -`topologyWriter.test.ts` mit `UPDATE_WRITTEN=1` schreibt (nicht -eingecheckt), mit derselben Lademethode wie den Korpus, und schreibt -`packages/fls/test/written.java.json` samt SHA-256 jeder Datei +`topologyWriter.test.ts` mit `UPDATE_WRITTEN=1` schreibt, und unter +`packages/fls/test/exported/`, die `exportProject.test.ts` mit +`UPDATE_EXPORTED=1` schreibt (beide nicht eingecheckt), mit derselben +Lademethode wie den Korpus, und schreibt `written.java.json` bzw. +`exported.java.json` daneben, samt SHA-256 jeder Datei (`--sha256`), damit der Test merkt, wenn der Befund nicht mehr zur Ausgabe passt. Je Kabel steht auch `panel`: die Geräte, zwischen denen die Oberfläche es zeichnet (`JCablePanel.ziel1/ziel2`) — im Korpus bei allen 183 diff --git a/tools/java-oracle/run.sh b/tools/java-oracle/run.sh index 7169a8c..15fa3cf 100755 --- a/tools/java-oracle/run.sh +++ b/tools/java-oracle/run.sh @@ -89,12 +89,14 @@ rm -f "$beans/beans.java.json" HOME="$here/.build/home" xvfb-run -a java -cp "$classpath:$here/.build" BeansDump "$beans" "$beans/beans.java.json" 2>&1 | grep -v 'logback\|^$' || true test -s "$beans/beans.java.json" -# What Java loads from the files packages/fls writes (topologyWriter.test.ts -# writes them with UPDATE_WRITTEN=1; the files are not checked in, their -# SHA-256 is). -written="$root/packages/fls/test/written" -if [ -d "$written" ]; then - rm -f "$written.java.json" - HOME="$here/.build/home" xvfb-run -a java -cp "$classpath:$here/.build" FlsOracle "$written" "$written.java.json" --sha256 2>&1 | grep -v 'logback\|^$' || true - test -s "$written.java.json" -fi +# What Java loads from the files packages/fls writes: Java's view written +# again (topologyWriter.test.ts, UPDATE_WRITTEN=1) and the editor model +# exported (exportProject.test.ts, UPDATE_EXPORTED=1). The files are not +# checked in, their SHA-256 is. +for written in "$root/packages/fls/test/written" "$root/packages/fls/test/exported"; do + if [ -d "$written" ]; then + rm -f "$written.java.json" + HOME="$here/.build/home" xvfb-run -a java -cp "$classpath:$here/.build" FlsOracle "$written" "$written.java.json" --sha256 2>&1 | grep -v 'logback\|^$' || true + test -s "$written.java.json" + fi +done