Internet-Draft Abbreviated Title July 2023
Kadavill Expires 24 January 2024 [Page]
Workgroup:
Internet Engineering Task Force
Internet-Draft:
draft-rfcxml-general-ipv11-standard-02
Published:
Intended Status:
Standards Track
Expires:
Author:
K. Kadavill, Ed.

Internet Protocol version 11

Abstract

Standard for IPv11 address format and routing theory

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 24 January 2024.

Table of Contents

1. Introduction

IPv6 is dependent on IPv4 and it's not manageable as it scales. This happened because IPv6 addresses were bland and had no networking information in them. We plan to right these wrongs with IPv11. A 128 bit address with 24 bit chunks of host. 24 bit chunks means just 16,777,216 clients per network, they are easy to manage.

1.1. Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

2. IPv11

The Internet Protocol Version 11

2.1. Address Format

The format for an IPv11 address starts with an Octet and its value is a constant hexadecimal number 0x0B. This tells the device that it is an IPv11 IP address. The next 120 bits are made into 5 manageable 24 bit(6 hexadecimal characters) chunks. The first chunk is called a hyper block, the second one is called the super block,the third is called a cluster block, the fourth is called a block, and the fifth is called the host.

2.1.1. Address tier system

IP with range 0b::000001 to 0B::FFFFFF:FFFFFF is a tier1 network IPaddress. A tier2 IP address has range from 0b:1:000000:000000 to 0B::FFFFFF:FFFFFFF:FFFFFFF. A tier3 IP address has range from 0b::1:000000:000000:000000 to 0B::FFFFFF:FFFFFF:FFFFFF:FFFFFF. Finally a tier4 ip address range is from 0B:1:000000:000000:000000:000000 to 0B:FFFFFF:FFFFFF:FFFFFF:FFFFFF:FFFFFF. If the destination IP address is in a tier above them the payloads are forwarded to The tier above them. if they are in a tier below then they are forwarded to the tier below them.

Table 1
IP Address
Host Part of address and network part of the address 0B:NNNNNN:NNNNNN:NNNNNN:NNNNNN:HHHHHH
Tier1 network 0B:000000:000000:000000:NNNNNN:HHHHHH
Tier2 network 0B:000000:000000:NNNNNN:NNNNNN:HHHHHH
Tier3 network 0B:000000:NNNNNN:NNNNNN:NNNNNN:HHHHHH
Tier4 network 0B:NNNNNN:NNNNNN:NNNNNN:NNNNNN:HHHHHH

3. IPv11 Assignment

Network addresses are assigned sequentially to ISP or any other organization. The ip addresses start at the first tier1 address i.e. the first network address is 0B::1:000000 and the last one is the last tire4 address 0B:EFFFFF:FFFFFF:FFFFFF:FFFFFF:000000

Table 2
IP Address
First network to assign 0B::1:000000
Last network to assign 0B:EFFFFF:FFFFFF:FFFFFF:FFFFFF:000000

4. Broadcast address

Gateways can send broadcast messages to hosts by filling in the network part of the address and masking the host part of the client address with the value F. This will communicate with all hosts (including gateways) on their network. For security purposes broadcast of packets from a host and external Gateways must be dropped

Table 3
IP Address
Broadcast address of first network 0B::1:FFFFFF
Broadcast address of a network 0B:XXXXXX:XXXXXX:XXXXXX:XXXXXX:FFFFFF

5. Topology

IPv11 uses a cylindrical routing topology made up of 4 disks stacked one on top of each other.

there are 5 types of gateways.

Inter-tier gateways connect to lower or higher tier network.

inter-block Gateways hold routing Tables of each of its 16,777,216 hosts. this including 3 sibling gateways and one gateway.

Tier2 Gateways hold routing Tables of 16,777,216 hosts.This including 8 Gateways, 3 to intra-cluster-block, 3 to intra-block gateways, It also must have one gateway to tier3 and one to tier1 address.

Tier3 Gateway holds routing Tables of 16,777,216 hosts. This including 11 gateways 3 within same superblock, 3 to other distinct blocks, 3 distinct cluster gateways It also must have one Gateway to tier4 and one to tier2 address).

Tier4 hyper blocks hold routing Tables to 16,777,216 host.This including 14 Gateways(3 within same hyperblock gateways, 3 to distinct superblock gateways, and 3 to other distinct blocks, and 3 to distinct clusters) and one Gateway to tier4 and one to tier3 address.

5.1. Connectivity

Each tier1 network needs to be connected to a total of four gateways. three inter-block address connections and one tier2 address.

Each tier2 network needs to connect to a total 8 gateways.Three connections to the inter-cluster-blocks network , three connections to inter-block networks, one tier3 gateway and one tier1 gateway.

Each tier3 network needs to connect to a total of 11 gateways. They need to connect to three inter-super-block gateway Three inter-cluster-block gateway,three inter-block gateway, one tier4 gateway and one tier2 gateway.

Each tier4 network needs to connect to a total of 14 gateways. i.e. They need to connect to three inter-hyper-block, three inter-super-block gateway, three inter-cluster-block gateway, three inter-block gateway, one to tier4 gateway and one tier2 gateway.

Coordination of network connectivity can be managed by contacting network entities with publicly advertised email addresses.

Table 4
Topology in Address Breakup
tier1 ip address 0B::XXXXXX:HHHHHH 0B::block:host
tier2 ip address 0B::XXXXXX:XXXXXX:HHHHHH 0B::cluster-block:block:host
tier3 ip address 0B::XXXXXX:XXXXXX:XXXXXX:HHHHHH 0B::super-block:cluster-block:block:host
tier4 ip address 0B:XXXXXX:XXXXXX:XXXXXX:XXXXXX:HHHHHH 0B:hyper-block:super-block:cluster-block:block:host

6. Routing

Routing is accomplished by first knowing if the destination IP address is a tier1 , tier2 ,tier3 or tier4 address and route to the right tier. Once they are in the same tier as the destination address the packet is forwarded to their destination network through its sibling gateways. There are four types of sibling Gateways. An inter-block gateway, An inter-cluster-block gateway, An inter-super-block gateway, An inter-hyper-block gateway.

If the destination ip address of a packet has a different block address, then one of the best of 3 sibling inter-block gateways must be used.If the destination ip address of a packet has a different cluster-block address, then one of the best of 3 sibling inter-cluster-block gateways must be used.If the destination ip address of a packet has ta different super-block address then, one of the best of 3 sibling inter-super-block gateways must be used.If the destination ip address of a packet has a different hyper-block address, then one of the best of 3 sibling inter-hyper-block gateways must be used

Please note that inter-hyperblock gateway means a gateway to the same tier with the same superblock network, same cluster block network and same block address as the destination network.

similarly inter-super-block gateway means a gateway to the same tier with the same cluster-block network and the same block network as the destination network.

similarly inter-cluster-block gateway means a gateway to the same tier with the same block address as the destination network.

block gateway means a gateway to the same tier as the destination network.

<CODE BEGINS> file "routing.py"


routerip = '0B:2345:2345:2345:32453:2345'
def route(destip):
  if tier(destip)=="tire1":
    if blockaddress(routerip)==blockaddress(destip):
      print(
"forward to host on current network")
    else:
        print(
"forward to inter-block-gateway %s"%
str(blockaddress(destip)))
  elif tier(destip)=="tire2":
    if blockaddress(routerip)==blockaddress(destip):
      if clusterblockaddress(routerip)==clusterblockaddress(destip):
        print(
          "forward to host on current network")
      else:
        print(
"forward to best of 3 inter-cluster-block Gatewayto block %s"%
str(clusterblockaddress(destip)))
    else:
      print(
"forward to best of 3 inter-blocks-level Gateway to block %s"%
str(blockaddress(destip)))
  elif tier(destip)=="tire3":
    if blockaddress(routerip)==blockaddress(destip):
      if clusterblockaddress(routerip)==clusterblockaddress(destip):
        if superblockaddress(routerip)==superblockaddress(destip):
          print(
"forward to host on current network")
        else:
          print(
"forward to best of 3 inter-super-block  Gateway to superblock %s"%
str(superblockaddress(destip)))
      else:
        print(
"forward to best of 3 inter-clusterblock Gateway to clusterblock %s"%
str(clusterblockaddress(destip)))
    else:
      print(
"forward to best of 3 inter-block level Gateway to block %s"%
str(blockaddress()))
  elif tier(destip)=="tier4":
    if blockaddress(routerip)==blockaddress(destip):
      if clusterblockaddress(routerip)==clusterblockaddress(destip):
        if superblockaddress(routerip)==superblockaddress(destip):
          if hyperblockaddress(routerip)==hyperblockaddress(destip):
            print(
"forward to host on current network")
          else:
            print(
'''forward to best of 3 inter-hyperblock gateway to hyperblock %s'''%
str(hyperblockaddress(destip)))
        else:
          print(
'''forward to best of 3 next one of 3 inter-super-block
gateway to superblock %s'''%
str(superblockaddress(destip)))
      else:
        print(
'''forward to best of 3 inter-cluster-block
gateway to clusterblock %s'''%
str(clusterblockaddress(destip)))
    else:
      print(
"forward to best of 3 inter-block Gateway to block %s"%
str(blockaddress(destip)))
  else:
    print("invalid tier")

def clusterblockaddress(ip):
  c=2
  for i in range(5):
    c=ip.find(':',c+1)
    d=ip.find(':',c+1)
  return ip[c+1:d].zfill(6)

def hostaddress(ip):
  c=2
  for i in range(4):
    c=ip.find(':',c+1)
    d=ip.find(':',c+1)
  return ip[c+1:d].zfill(6)



def blockaddress(ip):
  c=2
  for i in range(3):
    c=ip.find(':',c+1)
    d=ip.find(':',c+1)
  return ip[c+1:d].zfill(6)

def superblockaddress(ip):
  c=2
  for i in range(2):
    c=ip.find(':',c+1)
    d=ip.find(':',c+1)
  return ip[c+1:d].zfill(6)

def hyperblockaddress(ip):
  c=2
  for i in range(1):
    c=ip.find(':',c+1)
    d=ip.find(':',c+1)
  return ip[c+1:d].zfill(6)

def tier(ip):
  if int(hyperblockaddress(ip))!=0:
    return "tier4"
  if int(superblockaddress(ip))!=0:
    return "tier3"
  if int(clusterblockaddress(ip))!=0:
    return "tier2"
  if int(blockaddress(ip))!=0:
    return "tier1"

def expandip(ip):
  ip=makeip(ip)
  j=ip.find(':', 0)
  k=ip.find(':', j+1)
  l=ip.find(':', k+1)
  m=ip.find(':', l+1)
  n=ip.find(':', m+1)
  ip='0B'+':'+(
ip[j+1:k].zfill(6))+':'+(
ip[k+1:l].zfill(6))+':'+(
ip[l+1:m].zfill(6))+':'+(
ip[m+1:n].zfill(6))+':'+(
ip[n+1:].zfill(6))
  return ip

def makeip(ip):
  for i in range(6-ip.count(':')):
    ip=ip.replace('::', '::000000:')
    ip=ip.replace('::', ':')
    return ip
ip="0B:876768:23434:1:2323:000000"
route(ip)
print(tier(ip))



<CODE ENDS>
Figure 1: Routing
16,777,216 block: Each block contains 16,777,216 hosts 16,777,216 cluster blocks: Each cluster block contains 16,777,216 blocks X 16,777,216 hosts 16,777,216 super blocks: Each super block contains 16,777,216 cluster blocks X 16,777,216 blocks X 16,777,216 hosts 16,777,216 hyper blocks: Each hyper block contains 16,777,216 super blocks X 16,777,216 cluster blocks X 16,777,216 blocks X 16,777,216 hosts
Figure 2: Topology

7. Glossary

Block:
A block is a sub-network address and is the fourth 24 bits IP address.
Clusterblock:
A cluster-block is a sub-network address and is the third 24 bits IP address.
Hyper-block:
A hyper-block is a sub-network address and is the first 24 bits IP address.
Superblock:
A superblock is a sub-network address and is the second 24 bits IP address.
Tier1 address:
An address that does not have a cluster-block address, a superblock address and a hyperblock address.
Tier2 address:
An address that does not have a superblock address and a hyperblock address but has a cluster block address
Tier3 address:
An address that does not have a hyperblock address and has a superblock address.
Tier4 address:
An address that must have a hyperblock address.

8. IANA Considerations

IP addresses are assigned sequentially to network entities starting at the first address from the lowest 24 bit address tier i.e. the first network address is 0B::1:000000 and the last 0B:EFFFFF:FFFFFF:FFFFFF:FFFFFF:000000

Table 5
IP Address
First network to assign 0B::100:0000
Last network to assign 0B:EFFFFF:FFFFFF:FFFFFF:FFFFFF:000000

9. Security Considerations

Broadcast packets are needed to be dropped unless They are from a known local gateways.

10. References

10.1. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.

10.2. Informative References

[Wikipedia]
Wikipedia, "Wikipedia", , <https://www.wikipedia.org/>.

Author's Address

Kiran Kadavill (editor)
#34, Goshree Garden,Arattuvazhi Road
Njarakkal 682505
KERALA 682505
India