560 likes | 699 Views
CS 4284 Systems Capstone. Networking. Godmar Back. IPv4. Host, router network layer functions:. ICMP protocol error reporting router “signaling”. IP protocol addressing conventions datagram format packet handling conventions. Routing protocols path selection RIP, OSPF, BGP.
E N D
CS 4284Systems Capstone Networking Godmar Back
IPv4 CS 4284 Spring 2013
Host, router network layer functions: • ICMP protocol • error reporting • router “signaling” • IP protocol • addressing conventions • datagram format • packet handling conventions • Routing protocols • path selection • RIP, OSPF, BGP forwarding table The Internet Network Layer Transport layer: TCP, UDP Network layer Link layer Physical layer CS 4284 Spring 2013
IP protocol version number 32 bits total datagram length (bytes) header length (bytes) type of service head. len ver length for fragmentation/ reassembly fragment offset “type” of data flgs 16-bit identifier max number remaining hops (decremented at each router) upper layer time to live Internet checksum 32 bit source IP address 32 bit destination IP address upper layer protocol to deliver payload to E.g. timestamp, record route taken, specify list of routers to visit. Options (if any) data (variable length, typically a TCP or UDP segment) IP Datagram Format CS 4284 Spring 2013
network links have MTU (max.transfer size) - largest possible link-level frame. different link types, different MTUs large IP datagram divided (“fragmented”) within net one datagram becomes several datagrams “reassembled” only at final destination IP header bits used to identify, order related fragments IP Fragmentation & Reassembly fragmentation: in: one large datagram out: 3 smaller datagrams reassembly CS 4284 Spring 2013
length =1500 length =1040 length =1500 length =4000 ID =x ID =x ID =x ID =x fragflag =0 fragflag =0 fragflag =1 fragflag =1 offset =0 offset =185 offset =0 offset =370 One large datagram becomes several smaller datagrams IP Fragmentation and Reassembly • Example • 4000 byte datagram • MTU = 1500 bytes 1480 bytes in data field offset = 1480/8 CS 4284 Spring 2013
IP address: 32-bit identifier for host or router interface interface: connection between host/router and physical link routers typically have multiple interfaces host may have multiple interfaces IP addresses are associated with each interface Link can be multipoint-link, e.g. LAN – or even entire network, e.g., ATM Key point: no routing table lookup is necessary to get to destination within subnet 223.1.1.2 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 IP Addressing: Introduction 223.1.1.1 223.1.2.9 223.1.1.4 223.1.1.3 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 1 1 CS 4284 Spring 2013
IP address: subnet part (high order bits) host part (low order bits) What’s a subnet ? (a set of) device interfaces with a common subnet part of IP address can physically reach each other without intervening router Subnets 223.1.1.1 223.1.2.1 223.1.1.2 223.1.2.9 223.1.1.4 223.1.2.2 223.1.1.3 223.1.3.27 LAN 223.1.3.2 223.1.3.1 network consisting of 3 subnets CS 4284 Spring 2013
Recipe To determine the subnets, detach each interface from its host or router, creating islands of isolated networks. Each isolated network is called a subnet And needs its own subnet address! 223.1.1.0/24 223.1.2.0/24 223.1.3.0/24 Subnets Subnet mask: /24 255.255.255.0 CS 4284 Spring 2013
How many? Subnets 223.1.1.2 223.1.1.1 223.1.1.4 223.1.1.3 223.1.7.1 223.1.9.2 223.1.9.1 223.1.7.2 223.1.8.1 223.1.8.2 223.1.2.6 223.1.3.27 223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2 CS 4284 Spring 2013
IP addresses denote interfaces, not hosts Sets of interfaces form subnets Subnets share common prefix Route to CIDR-ized subnet addresses a.b.c.d/x Within subnet, reach destination directly Addressing in IP 223.1.1.2 223.1.1.1 223.1.1.4 223.1.1.3 223.1.7.1 223.1.9.2 223.1.9.1 223.1.7.2 223.1.8.1 223.1.8.2 223.1.2.6 223.1.3.27 223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2 CS 4284 Spring 2013
host part subnet part 11001000 0001011100010000 00000000 200.23.16.0/23 IP Addressing: CIDR CIDR:Classless InterDomain Routing • subnet portion of address of arbitrary length • address format: a.b.c.d/x, where x is # bits in subnet portion of address CS 4284 Spring 2013
Before CIDR: Classful Routing • A, B, C: Pretty much only of historical interest today CS 4284 Spring 2013
Special IP Addresses CS 4284 Spring 2013
R2 R1 R3 Internet EthernetLAN 1 60 Machines __________ PPP Link 2 Subnet address: ______________ Default gateway: ______________ __________ __________ PPP Link 1 __________ EthernetLAN 2 120 Machines __________ __________ Subnet address: ______________ Default gateway: ______________ CS 4284 Spring 2013
R2 R1 R3 Internet EthernetLAN 1 60 Machines 191.23.25.193 PPP Link 2 Subnet address: 191.23.25.128/26 Default gateway: 191.23.25.129 191.23.25.192/30 191.23.25.197 191.23.25.194 PPP Link 1 191.23.25.129 191.23.25.196/30 EthernetLAN 2 120 Machines 191.23.25.198 191.23.25.1 Subnet address: 191.23.25.0/25 Default gateway: 191.23.25.1 CS 4284 Spring 2013
Routing Tables in End Systems • Typical: local subnets + default gateway (“first-hop router”) • Example: “route print” on Windows XP • 128.173.55.90 FastEthernet • 192.82.175.230 802.11g wireless Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 128.173.48.1 128.173.55.90 20 0.0.0.0 0.0.0.0 198.82.174.1 198.82.175.230 25 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 128.173.48.0 255.255.248.0 128.173.55.90 128.173.55.90 20 198.82.174.0 255.255.254.0 198.82.175.230 198.82.175.230 25 … Default Gateway: 128.173.48.1 CS 4284 Spring 2013
used by hosts & routers to communicate network-level information error reporting: unreachable host, network, port, protocol echo request/reply (used by ping) network-layer “above” IP: ICMP msgs carried in IP datagrams ICMP message: type, code plus first 8 bytes of IP datagram causing error ICMP: Internet Control Message Protocol TypeCodedescription 0 0 echo reply (ping) 3 0 dest. network unreachable 3 1 dest host unreachable 3 2 dest protocol unreachable 3 3 dest port unreachable 3 6 dest network unknown 3 7 dest host unknown 4 0 source quench (congestion control - not used) 8 0 echo request (ping) 9 0 route advertisement 10 0 router discovery 11 0 TTL expired 12 0 bad IP header CS 4284 Spring 2013
Source sends series of UDP segments to dest First has TTL =1 Second has TTL=2, etc. Unlikely port number When nth datagram arrives to nth router: Router discards datagram And sends to source an ICMP message (type 11, code 0) Message includes name of router& IP address When ICMP message arrives, source calculates RTT Traceroute does this 3 times Stopping criterion UDP segment eventually arrives at destination host Destination returns ICMP “port unreachable” packet (type 3, code 3) When source gets this ICMP, stops. See also [Heideman 2008] Traceroute and ICMP CS 4284 Spring 2013
IP addresses: how to get one? • Host gets IP address either hardcoded or via DHCP (Dynamic Host Configuration Protocol) • Network gets subnet part of IP address allocated from ISP’s address space • ISP gets address space assigned by ICANN (Internet Corporation for Assigned Names and Numbers) ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20 Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23 ... ….. …. …. Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23 CS 4284 Spring 2013
IPv6 • Initial motivation:32-bit address space soon to be completely allocated. • Additional motivation: • header format helps speed processing/forwarding • header changes to facilitate QoS • easier configuration of both hosts & backbone routers IPv6 datagram format: • fixed-length 40 byte header • no fragmentation allowed CS 4284 Spring 2013
IPv6 Header (Cont) Priority: identify priority among datagrams in flow Flow Label: identify datagrams in same “flow.” (concept of “flow” not well defined). Next header: identify upper layer protocol for data CS 4284 Spring 2013
Other Changes from IPv4 • Checksum:removed entirely to reduce processing time at each hop • ICMPv6: new version of ICMP • additional message types, e.g. “Packet Too Big” • multicast group management functions • Options: allowed, but outside of header, indicated by “Next Header” field CS 4284 Spring 2013
Extension Headers • Grouped in six types: • Hop-by-hop options, e.g. Jumbograms • Destination options • Routing, e.g. source routing • Fragment – can be done, but end hosts only! • Authentication • Encapsulation • Routers quickly know which headers they must examine and which they can skip CS 4284 Spring 2013
IPv6 Addresses • Written as eight 16bit values • e.g. fe80::020e:7bff:fe32:d716 (made from 00:0E:7B:32:D7:16) CS 4284 Spring 2013
IPv6 autoconf • stateless autoconfiguration see [Donzé 2004] • Plug in and interface creates link-local address based on adapter MAC • Interface can have link-local (fe80::…), site-local & global (2001::…) addresses • VT’s campus has had IPv6 testbed since 1998, now connected to public IPv6 network • Try it out yourself! • MacOS, Linux: enabled by default of recent installations • Windows XP: “ipv6 install” at command prompt • Tools add 6: ping6, traceroute6, etc.. CS 4284 Spring 2013
Transition From IPv4 To IPv6 • Not all routers can be upgraded simultaneously • no “flag days” • How will the network operate with mixed IPv4 and IPv6 routers? • Tunneling: IPv6 carried as payload in IPv4 datagram among IPv4 routers CS 4284 Spring 2013
Flow: X Src: A Dest: F data Flow: X Src: A Dest: F data Flow: X Src: A Dest: F data Flow: X Src: A Dest: F data A B E F D C A B F E tunnel Logical view: IPv6 IPv6 IPv6 IPv6 Physical view: IPv6 IPv6 IPv6 IPv6 IPv4 IPv4 Src:B Dest: E Src:B Dest: E A-to-B: IPv6 E-to-F: IPv6 B-to-C: IPv6 inside IPv4 B-to-C: IPv6 inside IPv4 Tunneling CS 4284 Spring 2013
IPv6 – Opposing View • Bernstein points out some hindrances [The IPv6 mess] • Lack of interoperability b/c no embedding of addresses • Transition path (comparison to MX records) • IPv6 – the next OSI? • DoD requirement by 2008 • What happened to it? • Federal 2012 deadline that all public-facing websites talk IPv6 • Asian countries are pushing for transition CS 4284 Spring 2013
Routing in the Internet CS 4284 Spring 2013
200.23.16.0/23 200.23.18.0/23 200.23.30.0/23 200.23.20.0/23 . . . . . . Hierarchical Addressing: Route Aggregation Hierarchical addressing allows efficient advertisement of routing information: Organization 0 Organization 1 “Send me anything with addresses beginning 200.23.16.0/20” Organization 2 Fly-By-Night-ISP Internet Organization 7 “Send me anything with addresses beginning 199.31.0.0/16” ISPs-R-Us CS 4284 Spring 2013
200.23.16.0/23 200.23.18.0/23 200.23.30.0/23 200.23.20.0/23 . . . . . . Hierarchical Addressing: More Specific Routes ISPs-R-Us has a more specific route to Organization 1 Organization 0 “Send me anything with addresses beginning 200.23.16.0/20” Organization 2 Fly-By-Night-ISP Internet Organization 7 “Send me anything with addresses beginning 199.31.0.0/16 or 200.23.18.0/23” ISPs-R-Us Organization 1 CS 4284 Spring 2013
Intra-AS vs Inter-AS Routing • In Internet: • Intra-AS known as Interior Gateway Protocols (IGP) • Most common Intra-AS routing protocols: • RIP: Routing Information Protocol (original protocol, now rarely used) • OSPF: Open Shortest Path First • IGRP/EIGRP: (Enhanced) Interior Gateway Routing Protocol • Inter-AS known as Border Gateway Protocols: • BGP4: Only protocol used CS 4284 Spring 2013
u v destinationhops u 1 v 2 w 2 x 3 y 3 z 2 A’s routing table w x z y C A D B RIP (Routing Information Protocol) • Distance vector algorithm • Included in BSD-UNIX Distribution in 1982 • Distance metric: # of hops (max = 15 hops) • Distance vectors: exchanged among neighbors every 30 sec via Response Message (also called advertisement) • Each advertisement: list of up to 25 destination nets within AS CS 4284 Spring 2013
RIP: Example z w x y A D B C Routing table in D Destination Network Next Router Num. of hops to dest. w A 2 y B 2 z B 7 x -- 1 …. …. .... CS 4284 Spring 2013
z w x y A D B C RIP: Example Dest Next hops w - - x - - z C 4 …. … ... Advertisement from A to D Routing table in D Destination Network Next Router Num. of hops to dest. w A 2 y B 2 z B A 7 5 x -- 1 …. …. .... CS 4284 Spring 2013
RIP: Link Failure and Recovery If no advertisement heard after 180 sec → neighbor/link declared dead • routes via neighbor invalidated • new advertisements sent to neighbors • neighbors in turn send out new advertisements (if tables changed) • poison reverse used to prevent ping-pong loops (infinite distance = 16 hops) CS 4284 Spring 2013
routed routed RIP Table processing • RIP routing tables managed by application-level process called route-d (daemon) • advertisements sent in UDP packets, periodically repeated Transprt (UDP) Transprt (UDP) network forwarding (IP) table network (IP) forwarding table link link physical physical CS 4284 Spring 2013
EIGRP • Cisco proprietary • See [Cisco Whitepaper], [Malhotra 2002] • Distance Vector Protocol with enhancements • Explicit Signaling (HELLO packets) • DUAL “diffusing update algorithm” • “feasible successor” concept guarantees loop freedom • Intuition: rather than count to infinity, trigger route recomputation unless another loop-free path is known • Optimize this by keeping track of all advertised routes, not just best one CS 4284 Spring 2013
OSPF (Open Shortest Path First) • “open”: publicly available protocol (not proprietary) • Uses Link State algorithm • LS packet dissemination • Topology map at each node • Route computation using Dijkstra’s algorithm • OSPF advertisement carries one entry per neighbor router • Advertisements have age field to allow for expiration • Advertisements disseminated to entire AS (via flooding) • Carried in OSPF messages directly over IP (rather than TCP or UDP) CS 4284 Spring 2013
OSPF “advanced” features (not in RIP) • Security: all OSPF messages authenticated (to prevent malicious intrusion) • Multiple same-cost paths allowed (only one path in RIP) • For each link, multiple cost metrics for different TOS (e.g., satellite link cost set “low” for best effort; high for real time) • Integrated uni- and multicast support: • Multicast OSPF (MOSPF) uses same topology data base as OSPF • Hierarchical OSPF in large domains. CS 4284 Spring 2013
Hierarchical OSPF CS 4284 Spring 2013
Hierarchical OSPF • Two-level hierarchy: local area, backbone. • link-state advertisements only in same area • each nodes has detailed area topology; only know direction (shortest path) to nets in other areas. • Area border routers:“summarize” distances to nets in own area, advertise to other Area Border routers. • Backbone routers: run OSPF routing limited to backbone. • Boundary routers: connect to other AS’s. CS 4284 Spring 2013
Internet Inter-AS routing: BGP • BGP (Border Gateway Protocol):the de facto standard • BGP provides each AS a means to: • Obtain subnet reachability information from neighboring ASs. • Propagate the reachability information to all routers internal to the AS. • Determine “good” routes to subnets based on reachability information and policy. • Allows a subnet to advertise its existence to rest of the Internet: “I am here” CS 4284 Spring 2013
3a 3b 2a AS3 AS2 1a 2c AS1 2b eBGP session 3c 1b 1d 1c iBGP session BGP Basics • Pairs of routers (BGP peers) exchange routing info over semi-permanent TCP conctns: BGP sessions • Note that BGP sessions do not always correspond to physical links. • When AS2 advertises a prefix to AS1, AS2 is promising it will forward any datagrams destined to that prefix towards the prefix. • AS2 can aggregate prefixes in its advertisement CS 4284 Spring 2013
3a 3b 2a AS3 AS2 1a 2c AS1 2b eBGP session 3c 1b 1d 1c iBGP session Distributing Reachability Info • With eBGP session between 3a and 1c, AS3 sends prefix reachability info to AS1. • 1c can then use iBGP do distribute this new prefix reach info to all routers in AS1 • 1b can then re-advertise the new reach info to AS2 over the 1b-to-2a eBGP session • When router learns about a new prefix, it creates an entry for the prefix in its forwarding table. CS 4284 Spring 2013
Path Attributes & BGP Routes • When advertising a prefix, advert includes BGP attributes. • prefix + attributes = “route” • Two important attributes: • AS-PATH: contains the ASs through which the advert for the prefix passed: AS 67 AS 17 • NEXT-HOP: Indicates the specific internal-AS router to next-hop AS. (There may be multiple links from current AS to next-hop-AS.) • When gateway router receives route advert, uses import policy to accept/decline. CS 4284 Spring 2013
BGP Route Selection • Router may learn about more than 1 route to some prefix. Router must select route. • Elimination rules: • Local preference value attribute: policy decision • Shortest AS-PATH (like DV routing, except with more information!) • Closest NEXT-HOP router: hot potato routing • Additional criteria CS 4284 Spring 2013
Path Vector Routing in BGP • Accomplished via AS-PATH attributes • Each node is entire AS! CS 4284 Spring 2013