<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.8 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-walther-iotops-iot-ops-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.0 -->
  <front>
    <title>IoT Operational Issues</title>
    <seriesInfo name="Internet-Draft" value="draft-walther-iotops-iot-ops-00"/>
    <author initials="K." surname="Walther" fullname="Karsten Walther">
      <organization>Perinet GmbH</organization>
      <address>
        <email>karsten.walther@perinet.io</email>
      </address>
    </author>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <date year="2024" month="March" day="20"/>
    <area>Operations and Management</area>
    <workgroup>IOT Operations</workgroup>
    <abstract>
      <?line 39?>

<t>This I-D is based on a presentation at IETF 119 in the IOTOPS WG.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-walther-iotops-iot-ops/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        IOTOPS Working Group mailing list (<eref target="mailto:iotops@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/iotops/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/iotops/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cabo/iot-ops"/>.</t>
    </note>
  </front>
  <middle>
    <?line 43?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>[See abstract]</t>
      <section anchor="conventions-and-definitions">
        <name>Conventions and Definitions</name>
        <!-- {::boilerplate bcp14-tagged-bcp} -->

</section>
    </section>
    <section anchor="background">
      <name>Background</name>
      <ul spacing="normal">
        <li>
          <t>Simple networkable things: light, sensor, power-switch
          </t>
          <ul spacing="normal">
            <li>
              <t>in our case Single Pair Ethernet is used</t>
            </li>
            <li>
              <t>no user interface, except a web page and a label</t>
            </li>
          </ul>
        </li>
        <li>
          <t>devices, virtual devices and local services (on containers)
          </t>
          <ul spacing="normal">
            <li>
              <t>act autonomously together during normal operation</t>
            </li>
            <li>
              <t>users occasionally use a browser for interaction</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Typical Applications:
Operations level in industry, building and agriculture
          </t>
          <ul spacing="normal">
            <li>
              <t>often no internet connection nor name server or DHCP available</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Typical User: <em>Technician</em> without IT knowledge
          </t>
          <ul spacing="normal">
            <li>
              <t>previously configured a PLC</t>
            </li>
            <li>
              <t>has no administration rights on their computer</t>
            </li>
            <li>
              <t>minimizes contact to network administrators</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>➔ must support ad-hoc connection by technician<br/>
    ➔ Zeroconf is a base requirement</t>
      <!-- ![fit](scenario.jpg) -->

<t>Example Hardware For Web Server and MQTT Client:</t>
      <ul spacing="normal">
        <li>
          <t>Cortex R4 250MHz</t>
        </li>
        <li>
          <t>~ 200KB RAM
(for code and data)</t>
        </li>
      </ul>
    </section>
    <section anchor="problems">
      <name>Problems</name>
      <section anchor="problem-1-misleading-mdns-name-resolution">
        <name>Problem 1: misleading mDNS name resolution</name>
        <ul spacing="normal">
          <li>
            <t>mDNS resolves to multiple addresses GA, ULA and LL
            </t>
            <ul spacing="normal">
              <li>
                <t>often the requester cannot use all of them and has to select
                </t>
                <ul spacing="normal">
                  <li>
                    <t>intransparent to the user because hidden in the SW stack</t>
                  </li>
                  <li>
                    <t>no control possibility by the user (browser address field)</t>
                  </li>
                  <li>
                    <t>non deterministic</t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li>
            <t>the problem is unnecessary, since requester defines a domain
            </t>
            <ul spacing="normal">
              <li>
                <t>.local</t>
              </li>
              <li>
                <t>.my-intranet</t>
              </li>
              <li>
                <t>.tld</t>
              </li>
              <li>
                <t>➔ just reply addresses matching to the domain</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="problem-2-local-request-sent-to-nameservers">
        <name>Problem 2: .local request sent to nameservers</name>
        <ul spacing="normal">
          <li>
            <t>local nameserves may silently ignore <tt>.local</tt> requests
            </t>
            <ul spacing="normal">
              <li>
                <t>➔ timeout<br/>
➔ requested web server inaccessible by browser</t>
              </li>
              <li>
                <t>strange workarounds in the field (e.g., fritz.box)
                </t>
                <ul spacing="normal">
                  <li>
                    <t>how should an IoT device know what is a local scope?</t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li>
            <t>some name servers reply a special address
for unknown host names
            </t>
            <ul spacing="normal">
              <li>
                <t>the actual device never will use this
and is therefore inaccessible</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="problem-3-ipv6-ll-zone-id">
        <name>Problem 3: IPv6 LL zone ID</name>
        <ul spacing="normal">
          <li>
            <t>makes URIs unusable:  information in the URL is locally valid only
            </t>
            <ul spacing="normal">
              <li>
                <t>Setup: Client (Browser), Management HTTP Service (on Edge Device), and IoT Web service (on the networked sensor) are connected in L2</t>
              </li>
              <li>
                <t>Management Web page cannot provide an IPv6 LL address as link to the networked sensor</t>
              </li>
              <li>
                <t>same applies in various other situations</t>
              </li>
            </ul>
          </li>
          <li>
            <t>no support by many popular libraries (e.g., nodejs)<br/>
➔ "non-working-experience" for users</t>
          </li>
          <li>
            <t>IMHO zone ID is unnecessary:<br/>
it creates more problems now than it solves later</t>
          </li>
        </ul>
      </section>
      <section anchor="problem-4-support-for-offline-environments">
        <name>Problem 4: Support for offline environments</name>
        <ul spacing="normal">
          <li>
            <t>Example Situation: Sensors on a plow attached to different pulling machines (or not at all during servicing)</t>
          </li>
          <li>
            <t>Webpage cannot be accessed by the user due to various reasons
            </t>
            <ul spacing="normal">
              <li>
                <t>some browsers deactivate IPv6 completely (also Link Local), when there is no Internet connectivity</t>
              </li>
              <li>
                <t>Windows deactivates MDNS for unknown networks by default</t>
              </li>
              <li>
                <t>user cannot type IPv6 addresses with zone ID in the address bar</t>
              </li>
              <li>
                <t>browsers don't support local web server lookup via mdns, as printer dialogue does, and
local device may be muddy or below covers, thus the user will have no address information</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="problem-5-short-certificate-lifetime">
        <name>Problem 5: Short certificate lifetime</name>
        <ul spacing="normal">
          <li>
            <t>Web PKI is moving to ever smaller certificate lifetimes</t>
          </li>
          <li>
            <t>devices are not online in many cases and cannot be updated automatically with certificates
            </t>
            <ul spacing="normal">
              <li>
                <t>during shelf storage</t>
              </li>
              <li>
                <t>attached to non-powered machinery, different networks or no internet connectivity for months</t>
              </li>
              <li>
                <t>required fall back after factory reset to initial certificate</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="problem-6-no-standard-simple-role-based-access-model">
        <name>Problem 6: No standard simple role based access model</name>
        <ul spacing="normal">
          <li>
            <t>Authorization is granted via a client certificate</t>
          </li>
          <li>
            <t>User levels are typically simple
            </t>
            <ul spacing="normal">
              <li>
                <t>normal authenticated users can read values or control actuators</t>
              </li>
              <li>
                <t>privileged users: e.g., setting calibration values</t>
              </li>
              <li>
                <t>application admins (technicians) can do everything:<br/>
updates, connection settings, security</t>
              </li>
            </ul>
          </li>
          <li>
            <t>so far we use an extension field in certificates in a proprietary way
            </t>
            <ul spacing="normal">
              <li>
                <t>works very well, but we would like to have a standard</t>
              </li>
              <li>
                <t>support by standard PKI tools required in the mid term</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="problem-7-browsers-disrespect-web-server-constraints">
        <name>Problem 7: Browsers disrespect Web server constraints</name>
        <ul spacing="normal">
          <li>
            <t>our device tells the client the maximum packet size and number of connections
            </t>
            <ul spacing="normal">
              <li>
                <t>≤ 6 connections</t>
              </li>
              <li>
                <t>memory restrictions ➔ no Jumbo Frames</t>
              </li>
            </ul>
          </li>
          <li>
            <t>is ignored by some browsers or web libraries
            </t>
            <ul spacing="normal">
              <li>
                <t>especially in browsers it looks like a stalled device, with MQTT, MDNS still working</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="problem-8-virtualization-environments-act-as-routers">
        <name>Problem 8: Virtualization environments act as routers</name>
        <ul spacing="normal">
          <li>
            <t>IoT heavily relies on ZeroConf mechanisms like MDNS
            </t>
            <ul spacing="normal">
              <li>
                <t>e.g. a sensor has to find the responsible MQTT broker, which runs in a container</t>
              </li>
              <li>
                <t>user need to access user interface in browser</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Virtualization environments (docker, snap...) act as routers
            </t>
            <ul spacing="normal">
              <li>
                <t>IPv6 LL and mdns cannot be used</t>
              </li>
              <li>
                <t>breaks fundamentals of local IoT</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="what-next">
        <name>What next?</name>
        <ul spacing="normal">
          <li>
            <t>Where can standardization help?
            </t>
            <ul spacing="normal">
              <li>
                <t>Help me to identify the right working groups</t>
              </li>
              <li>
                <t>or link me to relevant groups outside of IETF</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Are there simpler ways than updating/making standards?</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <?line 197?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA31Yy3LcuBXd8yvuyItIGrFHLzt2VxKPLNmWYtlWLDmqmvFU
DZpEd8MiAYYAu92emuyzzzqr+ZP8Sb4k516A3bScykoiG8B9nXvuAfM8z4IJ
lR7T1oW7obeNblUwzqqKLrzvtN/KHpCaTFq9wJKbt2dvKacTeTaycIse0BsX
yGpd6pKUJzmP/Ny1gbR13WyeFSromWtXYzJ26rKsdIVVNYyWrZqGfKmqMNdt
blxwjec/Of+tsMuHLPOh1aoe08XzmxdZ4azX1nd+TKHtdFZi0ZgO9w+P8/2j
/HA/g59HmcIO+LsOx5OyJb1WVs10rW3YypauvZu1rms48reDyBHxnV7h53Kc
ZQttOz3OiNJSrHx7dY3nWpkK0YjD3xsdpiPXznidCfNugjMLNXHfpUi2skx1
AQnhk3KKob9SrQ/a0m0MHr8Q4YwxXenWWB3oZT05l7c6GruLG0YpW983cd3I
uMGpp+nUZ66tlbWbU99bs9CtN+HfvwV61nIW6OaHC1nACdYBlp0PU1XM6eho
//h4X34rTEDZ4ob4wpWwc5YfPj56+CS96Wzg4r7UbHQlL5u5s1j37fGT/Pjw
ID88eJw/OnpyeDCMiHP0ffhsJHeZZZcDvETeGSabpyzPc4AQbqoCeLiZG08X
+Rnhz0R5oM5ZUtS0GsgIUkRSQeBCBwdPgDlCwlLt6PblKB5Ym7KsdAZ8X8B9
V3YF78yyDz9ea7029xMWPKBTZwGFDZLO9NRYI89Z9odvcNov4/HEmUq3DcOW
JkVzcJwHNZvpMsfDr5Tnf2Jbz1QhuLMl4tqla1M36BbUkQGpJvg/zI2dAd6V
mc3DHjHaXbtHjVuiRfzShGKOJO5yWK5rkUSvcYydYeuVMi09Z3QwgJCeDtmR
xdbx/y02Bd2ixnqP9KdCNwGJW+oJNWgMiUxRpSa6gmslWrzQfo8Wpg0dCCG9
kGWVK/AGJ8ZX20g5OjMoILL1O2ISySPA3llXu85XKwpuptk3Kjsgd0ZS8Ipc
33myi7305AqEJTSEfXgFtyatW3IEAEaMQsV67dLNqjHszUnTVPhHqsKdNuj+
Si90xRkztuxQ2NUeTTpTleyGRD1rTdFVoWu1eOGm3ERImljiZCI6q8Ui+y3d
JuHDIzyenZ9ekVoA1VzCbODUeywa0+6NLubWFEbZXUIJ564DQG/ozrplpctZ
tNowq8ZcwdzUzOAOV+Tq8lR+n4Nd4ZMqa4CP4SnutIwTzz2A5KL+haubLgij
7BKvrM1nlEjKg5IE16NteJBrAeT//OufVCM95LumYfpWZT53xTD2Ccq4DuXD
B+lm3vaDbh37zKBT0pXU6r91RngDPRub5Jsfpyb8tO0LbVVr3OhjM9uJjZE9
/6SkE85VWy5B3/QCab0FMq9jkoW//3JzQ6eVwYljzvEpfNSf6N0xHT7cf33+
Ga/+jlGw/+oZvTt5Dd+2GSxMWLIdo0LtcA9etQ5Vqr20dv9EB2Nky1daCSrq
szfXscqgFVd1kRt243t5tUBSkcwasDHsuSpLvPd4+/Jkj95fnojRy8sBoJiG
OC0Ya5o711pMToF3hT6Y8u+17OJK42yvK+Rdksz9jkJZ3yA5VsrIp0lTT3Sh
+JQ5GE3bnu+ub0HsYJu0HcBhCLSuApV4byamArVLQftztvseS6HQ1Oiq3Fkf
YEEBcDyCxhTIBm9tUv6Ybhgn2Ki4wbyxxTDckjmT6YNKB/636diRUEn/UK/y
GKfuwx6Fqkz/MtA+Mj5b3aBHNgnHpCiYNfusJANf1vdwnGz1PjG1xn5AmWMv
ey5xXLR+ycevEE2F1bBqZuh/TT/Hs37uD/NZ72EwtUZ7D5qjz0EpVJtYw1hV
cK4Mcz6qkHKPTd/yQFYWhCwzQYaF76sqJaFtPZqN9mjamvB5NHGf+hrN3ZKV
V4clyhIrukjaQjS0nKsQGzTRdwHufYqIvQPOB5Tm+wyTbzQ6vepzDTPcUp3l
8yzMIYuSKIme/QPFbGYFmIZDXRrAmwGK0ebFU8Y4HOFpoKeczmE27tXtCLLr
avEInUSfoSno4kz6UN2hMu/fXTDqOs+0OyZa6wa3boP37y7ZlESMkBaqMiwY
qpW4fK0D67pIKrT9LBZhZ2+gFen85uZKaIgj4kn3HIQNCcDPWMmxcKZvU237
VWw8MS0qH8f4DjG1JT7FW/h4eSiODOzd9vM4EQQabGGEw9aJ6BsUNFEZe9fj
/r45OdlzXRXPRi0oWjD1dhgYMouhCLs4JDPhiJ76gUjWcuCKpqtUCzOTFht5
1kfsWdDqR78jMGeQb4EfcraOPsz1J1anGgSwFQHDUx0GLl6fv+2reI8wxnKS
waSFdg/cdYyLRC4895YIESnAikS+LLTae2A5HtN1ioDtuukU+dG4h0DEOMvp
lRbvp811Hz22ScZ80pIVzKkA+pwjmchuaaZTLcSLdFQyIBRTjmgfyAGUCb3F
NJ7ETUQC/tuBOVR0WNAJtwmHjbOH/Ft2mm31BUIePNdFisgdmijCo7tY/CxY
aAoieORXoGbge1tV3tElg+KSIQ+ALudx9HCbiYC4uC9qFpgEYuYW+gg2BgY8
veaJN+z6hDLPvoPUFQbgWrr1IYZVk3zbsDTrnk3xY4P0QJ6oCNZNiM7+biNE
Il8N2LNy7q5rIE0V1aWFSEUnNK2oNdRKVW7W8Rhg+Yr+FM6JZyRiYkpHGequ
LFcs4CB5UfHCMfntwbPOb8oi9DVXCx3FV3R4wDT3IPgQWJLLb6HbYKasSDXa
Z6p5MGQRDXT16oKLUaOz49gSovTQwxUn8X/s9BtJLiTCWQaNMbqRS+lVvgpE
eb4BWtfwDbkUJc7uRhaUUgysRJD10J3raooZ5FqVhOmwE7jN5S6Cx9QDPO03
DbKGh/TF1wqawSZ4qiFH5tFy0oolTbmFJlAtpKZcS1xV4MeKFZeWWS3XLtRx
4Py9/D8a0xvH0seW0JIgOOl06B6dboux92C+xD0HWT2Ru7n5nMaGx2VfWc4Z
o0tREWfD0OCuyPp4q4jVCFHuV6tkL1265ILDd3++PBZSiHjBQYG4v0ueR9AG
JDo1qjOZoCLI450ACav0rN85pki/SEfgYsEoM7O4Hs+KFdvchaLMB09thLvf
EQfKCLuV3DjHSbBEwKAJBqo/GfNstgBIwBZMSagOukNHBWtxoYTG5VtbEimA
5RBi/My3dIeQdADj01JF1olwYU9wWlXx3SzwuUsRMpW5E1qUDlTrwkZa3Eyr
dcG5tYJzld+gKpENbvzE+vUeYH7P3zd62jEeUIPoCet5rqU0LMlMmh587U48
As6tIlUkmIgd9cnUXY0hXtwBtR73L+lK29UTvi9OB7lNuvEfv9Gjr97Wuk7Y
D7iexpssj1p01Z9xlKMXrYrEANBGXSoD5cth4VohzvUAl6N1EnYsaO1mrQnC
rD4mXZINQipTtHuRN/gathfHAq4B6Nc09e+l9fGY/hq/HPStNZzC8fMAauT4
rippZRE11wpw55hFrmAT3yxP+WZZA74KN486eccOxFjQEOyrDPD+6oS7Rpnu
W75B4kRmywUSwd7plseiKebUdjYhc/39YjPM+KMmH5YY48svKIPEwfn/F+p2
6Qox6a1qRqPRzv3g2eBa2sFvHmlDDu+/4kxAGSjOFBcCxUdj1jOa4mRD+lIF
blnnW7TjUxk3Mvm53/sW6Z0EzzdP5eBz/IcEC8GWzFXTKEvk20Jf3/gRNHrr
2ig84x5USy/AmWkFGiR4VqzwTT7aMskySYonkSBb7n4fJZ1QDgx8B1EvAyj5
6eE/39evE+nwZzg+N33VyTL5Ht3/KksvTt6cfL2MPxiiBp3I6/QVRVbGb0h+
lL4x8uDhU06K/sNMVIy/jGPr6vKPW5hQXm/9moyr9Uo9yv4LWNhYBE4XAAA=

-->

</rfc>
