Network

IPv4

Private IP ranges

RFC1918 name IP address range number of addresses
24-bit block 10.0.0.0 – 10.255.255.255 16,777,216
20-bit block 172.16.0.0 – 172.31.255.255 1,048,576
16-bit block 192.168.0.0 – 192.168.255.255 65,536

IPv6

Extremely well written articles about IPv6 topics by the network management experts at infoblox:

Address Space

IANA list of allocated IPv6 prefixes

Address assignment

Stateless address autoconfiguration (SLAAC) vs Dynamic Host Configuration Protocol version 6 (DHCPv6).

DHCPv6 is statefull in that it assigns an IPv6 address to a host (like with DHCP for IPv4). This should not be necessary for IPv6 as every host generates its own IP address using given prefixes.

So don't use DHCPv6 unless you need it for special conditions.

As a result, in a stateless environment, there is no use for NAT.

Private Addresses

Called Unique Local Addresses (ULA) and described in RFC 4193.

Theoretically there is no need for dedicated private addresses as with IPv6 there are enough addresses so that each host / device on the planet could get its own Global Unicast Address (GUA). However, you might not have access to a global IPv6 prefix yet.

Locally, use the block fd00::/8 (NOT fc00::/7 as the first half of this block is undefined) with /48 prefix and /64 subnets.

Example:

Part Value length
Prefix/L: fd 7 + 1 bits
Global ID: 12516e125f 40 bits
Subnet ID: 7944 16 bits
Combined/CID: fd12:516e:125f:7944::/64 64 bit prefix
IPv6 addresses: fd12:516e:125f:7944:xxxx:xxxx:xxxx:xxxx 64 + 64 bits

Use Unicast only (multicast in rare circumstances, never broadcast).

Generators for unique private IPv6 address ranges:

Übergangsmechanismen

  • 4in6: Tunneling von IPv4 in IPv6
  • 6in4: Tunneling von IPv6 in IPv4
  • 6over4: Transport von IPv6-Datenpaketen zwischen Dual-Stack Knoten über ein IPv4-Netzwerk
  • 6to4: Transport von IPv6-Datenpaketen über ein IPv4-Netzwerk
  • AYIYA: Anything In Anything
  • Dual-Stack: Netzknoten mit IPv4 und IPv6 im Parallelbetrieb
  • Dual-Stack Lite: Wie Dual-Stack, jedoch mit globaler IPv6 und Carrier-NAT IPv4
  • 6rd: IPv6 rapid deployment
  • ISATAP: Intra-Site Automatic Tunnel Addressing Protocol
  • Teredo: Kapselung von IPv6-Datenpaketen in IPv4-UDP-Datenpaketen
  • NAT64: Übersetzung von IPv4-Adressen in IPv6-Adressen
  • 464XLAT: Übersetzung von IPv4- in IPv6- in IPv4-Adressen
  • SIIT: Stateless IP/ICMP Translation

MAC Addresses

List of address blocks assigned to Companies by IEEE: MAC Address Block Large (MA-L)

Ports

List of preferred services (or malware/trojans) for ports and each protocol (tcp, udp): https://isc.sans.edu/services.html

Examples: isakmp 500 tcp VPN Key Exchange isakmp 500 udp VPN Key Exchange sae-urn 4500 tcp sae-urn sae-urn 4500 udp sae-urn

Windows

Network Connectivity Status Indicator (NCSI)

Checks Internet connectivity since Windows 7.

Queries and expecte results - Ref:

Type of Request that NCSI Sends What NCSI Expects to Receive if Connectivity Exists
A request for http://www.msftncsi.com/ncsi.txt and http://ipv6.msftncsi.com/ncsi.txt A page called ncsi.txt, which contains the following line of text with no terminating new line or other non-printing characters: Microsoft NCSI (Page headers disable caching.)
A request for DNS name resolution of dns.msftncsi.com The resolution of the DNS name to: 131.107.255.255 and fd3e:4f5a:5b81::1

AirPlay

TuneBlade

TuneBlade is a simple tray utility that lets you stream system-wide audio to AirPort Express, Apple TV, AirPlay enabled speakers and HiFi receivers, and to AirPlay audio receiving applications such as ShairPort, XBMC/Kodi and TuneAero.

The free version allows streaming to all non-proprietary open source systems:

  • Kodi
  • ShairPort (Linux, Windows, Raspberry Pi)

A licence is needed for the rest (AppleTV, AirPlay receivers etc).

Dokumentenaustausch

Zu unterscheiden ist zwischen Datenablagelösungen (Storage Services) und Synchronisierungsdiensten (Sync Services). Während die meisten Anbieter von Storageanwendungen häufig auch Clients für den Zugriff anbieten, sind diese Lösungen meist nur auf die eigene Lösung zugeschnitten und können Fremddienste nicht synchronisieren. Diese starke Integration hat Vorteile (umfangreiche Funktionalität und Stabilität), führt jedoch zu einem Meer an parallel zu verwendenden Anwendungen.

Storage

Fremd gehostet:

  • Dropbox
  • Google Drive
  • Microsoft One Drive / One Drive Business / Sharepoint Site / Office365 Group
  • Amazon Web Services
  • Strato Hidrive
  • Telekom Cloud
  • GMX/Web Mediacenter
  • ...

Selbst gehostet:

  • NextCloud (OwnCloud)
  • Seafile
  • Synology CloudStation
  • ...

Sync

Single Servie Clients

  • NextCloud
    • Siehe Website
    • Alternativ: WebDAV-Zugriff auf Dateien via /remote.php/webdav bzw. für Entwickler die API via /remote.php/dav
  • OneDrive
  • GoogleDrive
  • Dropbox

Multi Service Clients (Direktzugriff ohne lokales Speichern)

  • Cyberduck (Deutsche Firma, OpenSource)
    • :+1: unterstützt alle bekannten Clouddienste inkl WebDAV
    • :-1: Stellt zwar Synchronisierung zur Verfügung, diese muss jedoch manuell angestoßen werden und muss dann jedes mal alle Daten erneut abgleichen (Keine Hash-Tabelle etc.). Dadurch für größere Datenmengen nicht praktikabel, sofern sync gewünscht ist.

Multi Service Clients

  • Crosscloud
    • Bislang einzige mir bekannte Lösung, die die Funktionalität bereitstellt, alle bekannten Storage Services zusammenzuführen und einheitlich zu synchronisieren.
    • In 2014/2015 zuerst als public beta, dann private beta (Teilnahme nur nach Anmeldung). Überarbeitung und Neuveröffentlichung in 2017.
    • Fokus auf Unternehmen, daher seither zwingend Registrierung des Admin Control Panel erforderlich. Darin Benutzerverwaltung und Dashboard (sofern Tracking nicht ausgeschaltet).
    • Unternehmen aus Österreich
    • Ansatz sehr vielversprechend, allerdings folgende Showstopper (Test Stand 6.10.2017, Crosscloud 3.4.5, 3x NextCloud 12.0.3 "selfhosted", unterschiedliche Hoster)
    • Zeitstempel (Modification Time) werden beim Download NICHT beibehalten.
    • Bei einer von drei NextCloud-Installationen (produktiv) führten sämtliche Uploads (Änderungen, Neuanlage) von Dateien via Crosscloud zu Zero-Byte-Dateien auf dem Server und allen übrigen angeschlossenen Clients.
    • LOG1: Sowohl das Logfile von Crosscloud als auch die Serverlogfiles liefen voll. Auf beiden Seiten waren WebDAV-Fehler vorhanden, die mit anderen Clients nicht auftreten und auf eine Inkompatibilität mit der aktuellen NextCloud Version 12.0.3 hindeuten. Die Wiederholrate (retry) liegt teilweise deutlich unter einer Sekunde! Kleiner Auszug:
    2017-10-06 11:05:33,338 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:05:33,672 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:05:33,934 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:05:34,217 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:05:34,484 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:05:34,754 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:05:35,037 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:05:35,294 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:05:35,555 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:07,249 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:07,516 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:07,768 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:08,022 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:08,261 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:08,526 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:11,768 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:12,065 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:12,327 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:12,631 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:12,967 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:13,286 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:13,547 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:13,803 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:14,016 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:45,670 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:46,050 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:46,326 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:46,579 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:46,869 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
    2017-10-06 11:06:47,122 - cc.settings_sync - ERROR - Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]
  • LOG2: Im Logfile von Crosscloud finden sich regemäßig exceptions aus python-Skripten. Diese verweisen auf Programmdateien in C:\b\b7177120\0\crosscloud\..., die auf dem System nach der Installation nicht existieren (Das Programm installiert sich unter Windows in USERHOME/AppData/Local/CrossCloud und USERHOME/AppData/Local/Programs). Es hat den Anschein, dass die nicht existenten Pfade hart kodiert sind; bspw. in AppData\Local\Programs\CrossCloud\resources\app\daemon\prod\cc\client.pyc. Auch hier ein Beispiel:
    2017-10-06 11:02:23,492 - cc.client - WARNING - Could not sync admin console settings from https://admin.crosscloud.me
    Traceback (most recent call last):
      File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\requests\packages\urllib3\contrib\pyopenssl.py", line 436, in wrap_socket
      File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\OpenSSL\SSL.py", line 1716, in do_handshake
      File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\OpenSSL\SSL.py", line 1449, in _raise_ssl_error
    OpenSSL.SSL.SysCallError: (-1, 'Unexpected EOF')
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 600, in urlopen
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 345, in _make_request
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 844, in _validate_conn
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\requests\packages\urllib3\connection.py", line 326, in connect
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\requests\packages\urllib3\util\ssl_.py", line 324, in ssl_wrap_socket
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\requests\packages\urllib3\contrib\pyopenssl.py", line 443, in wrap_socket
ssl.SSLError: ("bad handshake: SysCallError(-1, 'Unexpected EOF')",)
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\requests\adapters.py", line 423, in send
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 630, in urlopen
requests.packages.urllib3.exceptions.SSLError: ("bad handshake: SysCallError(-1, 'Unexpected EOF')",)
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\b\b7177120\0\crosscloud\client\Core\cc\client.py", line 290, in admin_console_sync
  File "C:\b\b7177120\0\crosscloud\client\Core\cc\settings_sync.py", line 419, in update_share_information
  File "C:\b\b7177120\0\crosscloud\client\Core\cc\settings_sync.py", line 950, in add_share_remote
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\requests\sessions.py", line 535, in post
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\requests\sessions.py", line 488, in request
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\raven\breadcrumbs.py", line 297, in send
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\requests\sessions.py", line 609, in send
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\requests\adapters.py", line 497, in send
requests.exceptions.SSLError: ("bad handshake: SysCallError(-1, 'Unexpected EOF')",)
2017-10-06 11:02:24,436 - sentry.errors - ERROR - Sentry responded with an error: <urlopen error timed out> (url: https://sentry.io/api/209330/store/)
Traceback (most recent call last):
  File "C:\Program Files (x86)\Python35-32\lib\urllib\request.py", line 1254, in do_open
  File "C:\Program Files (x86)\Python35-32\lib\http\client.py", line 1107, in request
  File "C:\Program Files (x86)\Python35-32\lib\http\client.py", line 1152, in _send_request
  File "C:\Program Files (x86)\Python35-32\lib\http\client.py", line 1103, in endheaders
  File "C:\Program Files (x86)\Python35-32\lib\http\client.py", line 934, in _send_output
  File "C:\Program Files (x86)\Python35-32\lib\http\client.py", line 877, in send
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\raven\utils\http.py", line 31, in connect
  File "C:\Program Files (x86)\Python35-32\lib\socket.py", line 712, in create_connection
  File "C:\Program Files (x86)\Python35-32\lib\socket.py", line 703, in create_connection
socket.timeout: timed out
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\raven\transport\threaded.py", line 172, in send_sync
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\raven\transport\http.py", line 43, in send
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\raven\utils\http.py", line 66, in urlopen
  File "C:\Program Files (x86)\Python35-32\lib\urllib\request.py", line 466, in open
  File "C:\Program Files (x86)\Python35-32\lib\urllib\request.py", line 484, in _open
  File "C:\Program Files (x86)\Python35-32\lib\urllib\request.py", line 444, in _call_chain
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\raven\utils\http.py", line 46, in https_open
  File "C:\Program Files (x86)\Python35-32\lib\urllib\request.py", line 1256, in do_open
urllib.error.URLError: <urlopen error timed out>
2017-10-06 11:02:24,456 - sentry.errors.uncaught - ERROR - ["Error while adding share remote: [{'path': ['addShare'], 'message': 'Error during processing request', 'locations': [{'line': 2, 'column': 6}]}]"]
2017-10-06 11:04:46,561 - cc.synchronization.models - ERROR - Error while shutting down remote storage
Traceback (most recent call last):
  File "C:\b\b7177120\0\crosscloud\client\Core\cc\synchronization\models.py", line 361, in shutdown
  File "C:\b\b7177120\0\crosscloud\client\Core\.venv\lib\site-packages\jars\webdav.py", line 271, in stop_events
AttributeError: 'NoneType' object has no attribute 'stop'
  • Tracking lässt sich im Adminpanel unter Analytics abschalten, ein Löschen der bereits erfassten Daten ist nicht möglich.

Synchronisierung via P2P

  • Resilio Sync
    • Ehem. Bittorent Sync, Vorreiter
    • :-1: proprietär, nicht nachvollziehbar, welche Informationen zur Verknüpfung von Geräten ausgetauscht werden. Der Ablauf lässt darauf schließen, dass es bei Kenntnis der GeräteID (zu) leicht möglich ist, eine ungewünschte Verbindung aufzubauen und fremde Daten zu synchronisieren.
  • Syncthing
    • Baut ebenfalls auf Datenaustausch per P2P
    • OpenSource
    • Dokumentation
    • Auf den ersten Blick komplizierte Konfiguration, in der Praxis jedoch sehr intuitiv:
    • Programm herunterladen und starten. Erzeugt automatisch die Configs im User Home Verzeichnis und startet den syncthing Service / Daemon. Verwaltung erfolgt über Weboberfläche die sofort startklar ist.
    • SyncTrayzor Windows-GUI (Client), falls man das CMD-Fenster durch ein Taskbar Icon ersetzen möchte.
    • Sowohl Core als auch der Client sind portabel.
    • Synology
    • Core Plugin
    • File Watcher Plugin (beta)
    • sc-syncthing "user" can be found under local **groups**
    • OpenMediaVault
    • OMV Extras
    • OMV Extras Installation
      • run wget -O - http://omv-extras.org/install | bash as root
    • Plugin Install Guide