Macro 32 Ramblings

Mind Archive

IPv6: From JUNOS

http://ippoint.wordpress.com/2010/11/14/ipv6-from-junos/

IPv6: From JUNOS

  • IPv6 – 128 bits and represented in hexa decimal format.
  • Each IPv6 packet has 40-byte header. Following fields are available:
    • Version – 4 bits – set to 0×6
    • Class – 1 octet – Used for class of service
    • Flow label – 20 bits – Used for maintaining a flow of traffic. Sending host place a unique value. Routers that do not support will ignore or reset to 0×00000.
    • Payload length – 2 octets – set the max IPv6 packet size to 65,575 bytes
    • Next header – 1 octet –encodes the value of header that follows this header. If there is no other header, it is replaced by protocol field as in IPv4 packet. 6 for TCP. 17 for UDP etc.
    • Hop Limit – 1 octet – Same as TTL.
    • Source address and destination address– 16 octets each.
  • Typically used next-headers:
    • Hop-by-hop options header – value 0
    • Routing header – value 43
    • Fragment header – value 44
    • Destination options header – value 60
  • Hop-by-hop header:
    • Used to notify other routers along the path about special handling requirement of packet.
    • Will be processed by all routers in the path.
    • Have next-header, length field and data in TLV format.
    • Used for padding the entire packet to 64-bit, router-alert as for RSVP path message.
  • Routing header:
    • Source routing in IPv6 is implemented using this header. Contains list of nodes packet must pass on its way to destination.
    • Have next-header, length field, Routing type (0-loose source routing, 1-strict SRC routing), segments left (address left in header) and all intermediate routers address for routing.
  • Fragment Header:
    • In IPv6, routers will not perform fragmentation. SRC host will determine the maximum MTU it can use to communicate with destination.
    • If the packets are larger than path MTU, SRC will fragment the packets and send as multiple packets each containing fragment header.
    • It contains fragment offset field – 2 octets – [13 bits is fragment offset : xx : M bit]. If M =0 implies last fragment, and identification field.
  • Destination options header:
    • Used to notify destination about packet-handling.
    • Currently used for 64-bit boundary.
  • IPv6 routing protocols:

    • New protocol for RIP and OSPF is used. And ISIS and BGP are extended to support IPv6.
    • IPv6 routes are stored in ‘inet6.0’ route table.
    • RIPng:
      • Configure ‘neighbor <interface>’ and ‘export’ policy under [edit protocols ripng].
    • OSPFv3:
      • Same configuration as for OSPFv3. Configure area, interfaces under [edit protocols ospf3]
    • ISIS:
      • No Special configuration required. TLV used to advertise IPv6 prefix, when the interface configured with IPv6 address is included in ISIS configuration.
    • BGP:
      • IPv6 are advertised using Multiprotocol BGP (MBGP).
      • Enable ‘family inet6 unicast’ command inside group/neighbor to advertise/receive IPv6.

    Sample IPv6 BGP configuration:

    root@Juniper> show configuration interfaces em0

    unit 0 {

    family inet6 {

    address FEC0:0:0:1111::2/64;

    }

    }

    root@Juniper> show configuration interfaces lo0

    unit 0 {

    family inet {

    address 1.1.1.1/32;

    }

    }

    root@Juniper> show configuration protocols bgp

    group ipv6-external {

    type external;

    family inet6 {

    unicast;

    }

    peer-as 65020;

    neighbor FEC0:0:0:1111::1;

    }

    root@Juniper> show bgp summary

    Groups: 1 Peers: 1 Down peers: 0

    Table          Tot Paths  Act Paths Suppressed    History Damp State    Pending

    inet6.0 2          1          0          0          0          0

    Peer               AS      InPkt     OutPkt    OutQ   Flaps Last Up/Dwn State|#Active/Received/Damped…

    fec0:0:0:1111::1 65020         16         17       0       1        5:16 Establ

    inet6.0: 1/2/0

    root@Juniper> show route table inet6.0 protocol bgp

    fec0:0:0:1111::/64

    [BGP/170] 00:03:31, MED 0, localpref 100

    AS path: 65020 ?

    > to fec0:0:0:1111::1 via em0.0

    fec0:5:5:5555::5/128

    *[BGP/170] 00:03:31, MED 0, localpref 100

    AS path: 65020 ?

    > to fec0:0:0:1111::1 via em0.0

    root@Juniper> show bgp neighbor

    Peer: fec0:0:0:1111::1+179 AS 65020 Local: fec0:0:0:1111::2+63092 AS 65010

    Type: External    State: Established    Flags: <Sync>

    Last State: OpenConfirm   Last Event: RecvKeepAlive

    Last Error: None

    Options: <Preference AddressFamily PeerAS Refresh>

    Address families configured: inet6-unicast

    Holdtime: 90 Preference: 170

    Number of flaps: 1

    Last flap event: Closed

    Error: ‘Open Message Error’ Sent: 0 Recv: 1

    Peer ID: 100.100.100.100  Local ID: 1.1.1.1          Active Holdtime: 90

    Keepalive Interval: 30         Peer index: 0

    BFD: disabled, down

    Local Interface: em0.0

    NLRI advertised by peer: inet6-unicast

    NLRI for this session: inet6-unicast

    Peer supports Refresh capability (2)

    Table inet6.0 Bit: 10000

    RIB State: BGP restart is complete

    Send state: in sync

    Active prefixes:              1

    Received prefixes:            2

    Suppressed due to damping:    0

    Advertised prefixes:          0

    Last traffic (seconds): Received 7    Sent 7    Checked 7

    Input messages:  Total 19     Updates 1       Refreshes 0     Octets 475

    Output messages: Total 20     Updates 0       Refreshes 0     Octets 432

    Output Queue[0]: 0

    <Other end cisco config>

    R0#show run | sec bgp

    router bgp 65020

    no synchronization

    bgp log-neighbor-changes

    neighbor FEC0:0:0:1111::2 remote-as 65010

    no neighbor FEC0:0:0:1111::2 activate

    no auto-summary

    !

    address-family ipv6

    neighbor FEC0:0:0:1111::2 activate

    redistribute connected

    no synchronization

    exit-address-family

    R0#show run int fa 0/1

    interface FastEthernet0/1

    ip address 10.1.2.1 255.255.255.0

    duplex auto

    speed auto

    ipv6 address FEC0:0:0:1111::1/64

    end

    R0#show run int lo0

    interface Loopback0

    ip address 2.2.2.2 255.255.255.255

    ipv6 address FEC0:5:5:5555::5/128

    end


    Leave a Reply