I2RS RIB Route Example Sue Hares
i2RS Client config Client Hackathon NETCONF CLI/GUI with i2RS CLI/GUI IETF 96 RIB + FB-RIB Extended RIB yangcli-pro + FB-RIB Goals NETCONF Network of routers simulated using confd mininet/mininext Local config static route RPC Router IP table IP Zebra ospf/ bgp Table Quagga Router Router with i2RS agent 2
I2RS RIB Example ● First Case – 128.2/16 with nexthop 1 – added by netconf config – 128.2/16 with nexthop 2 – added by I2RS RIB client 1 – DDOS attack causes you to overwrite NETCONF config with I2RS RIB route via client 2 3
Ephemeral Additions candidate startup running I2RS Agent intended Ephemeral config Intended config true; config false; applied config (normal + ephemeral) Derived state Normal + 4 Ephemeral state
Thermostat Model RIB Equivalent Running: Route 128.1/16 Scheduler Nexthop id 1 Client (192.1.1.1) intended config config true; applied config Route 128.1/16 config false; nexthop id 1 (192.1.1.1) Route-installed-state Installed 5
Route + Ephemeral Route I2RS Route 128.2/16 NETCONF running nexthop id 1 Client 1 Config checker I2RS Client 2 IPS application` Route 128.2/16 intended nexthop id 2 config true; config Route 128.2/16 Applied nexthop id 2 config Route 128.2/16 nexthop 2 Derived Route-installed-state Installed config false; State intf 1 6
RESTCONF Example RESTCONF Running Datastore Edit PUT /restconf/data/i2rs- rib/instance=1/rib=IPv4/route=128.2 /next-hop { “next-hop”:1} RESTCONF Ephemeral Datastore Edit of config=true PUT /restconf/data/i2rs- rib/instance=1/rib=IPv4/route=128.2 /next-hop?context=ephemeral { “next-hop”:2 } 7
module i2rs-rib { …. container routing-instance { … Route list rib-list { …. list route-list { key “route-index”; Index for route direct leaf route-index { reference without type uint64; prefix match; Main Add mandatory true; key. Ephemeral true; } leaf route-type { Type: ipv4, ipv6, type route-type-def; mpls, mac, mandatory true; interface } Container match { choice rib-route-type {…. container route-statistics { Type: v4 prefix leaf destination-ip-v4-prefix { leaf route-installed state { match type inet:ipv4-prefix; type route-installed-state def; mandatory true; config false; } } } } } Index for nexthop leaf nexthop-id { Defined as: direct index without type uint32; Installed, uninstalled mandatory true; match } leaf next-hopo-ipv4-address { type inet:ipv4-prefix; IPv4 prefix mandatory true } } }
RESTCONF Running Datastore Edit PUT /restconf/data/i2rs- rib/instance=1/rib=IPv4/route=128.2 /next-hop { “next-hop”:1} RESTCONF Ephemeral Datastore Edit of config=true PUT /restconf/data/i2rs- rib/instance=1/rib=IPv4/route=128.2.1 /next-hop?content=ephemeral { “next-hop”:2 } RESTCONF Ephemeral Datastore Edit of config=false GET /restconf/data/i2rs- rib/instance=1/rib=IPv4/route=128.2.1 /next-hop=2/route-installed-state/datastore=ephemeral { “route-installed-state”: Installed } 9
RIB-DM Design issues ● Next-hop protection ● Overlapping routes
Recommend
More recommend