Monday 22 May 2017

DIFFERENCES BETWEEN OSPF Version 2 AND OSPF Version 3:

OSPFv3 Is A Link-State Routing Protocol Developed From OSPFv2 And Used For IPv6 Networks. This Document Describes The Differences Between OSPFv3 And OSPFv2, And OSPFv3 Configuration Example.OSPFV3 Is To IPv6 What OSPFV2 Is To IPv4. 

Open Shortest Path First (OSPF) Is An Adaptive Routing Protocol For Internet Protocol (IP) Networks. It Uses A Link State Routing Algorithm And Falls Into The Group Of Interior Routing Protocols, Operating Within A Single Autonomous System (AS). 

It Is Defined As OSPF Version 2 In RFC 2328 (1998) For IPv4. The Updates For IPv6 Are Specified As OSPF Version 3 In RFC 5340 (2008). 


OVERVIEW OF OSPF



OVERVIEW OF OSPF PROTOCOL :


OSPFv2 Is A Link State Interior Gateway Protocol (IGP) Developed By The IETF. Featuring A Wide Application Scope, Fast Convergence, Loop-Free Capability, And Facilitating Hierarchical Network Design, OSPFv2 Is Widely Used In IPv4 Networks. 

To Route IPv6 Packets, The IETF Developed OSPFv3 Based On OSPFv2. OSPFv3 Is Mainly Used To Provide Routing Functions On IPv6 Networks And Has Become A Main Routing Protocol Used For IPv6 Networks. 

OSPFv3 Works Basically The Same Way As OSPfv2 But Has Some Differences From Ospfv2 To Support Ipv6 Address Format. This Following Describes Ospfv2 Briefly Before Detailing How Different OSPFv3 And OSPFv2 Are. 

OSPF V 2 (FOR IPV4):


The First Version Of OSPF Was Described In RFC 1131, Published In October 1989. This Was Quickly Replaced By OSPF Version 2 In July 1991, Described In RFC 1247. Since Then There Have Been Several Revisions To The OSPF Version 2 Standard, In RFCs 1583, 2178, And 2328, With The Last Of These The Current Standard. OSPF Version 2 Is The Only Version In Use Today, So It Is Usually What Is Meant When People (Including Myself) Refer To “OSPF”. 

OSPF Is A Link-State Routing Protocol, It Is Designed To Be Run Internal To A Single Autonomous System. Each OSPF Router Maintains An Identical Database Describing The Autonomous System's Topology. From This Database, A Routing Table Is Calculated By Constructing A Shortest- Path Tree. 

OSPF Recalculates Routes Quickly In The Face Of Topological Changes,Utilizing A Minimum Of Routing Protocol Traffic. OSPF Provides Support For Equal-Cost Multipath. An Area Routing Capability Is Provided, Enabling An Additional Level Of Routing Protection And A Reduction In Routing Protocol Traffic. In Addition, All OSPF Routing Protocol Exchanges Are Authenticated. 

OSPFV3 (FOR IPV6 - RFC 2740) :


OSPFv3 Is Specified In RFC 2740. There Are Some High-Level Similarities Between The Relationships Of RIPng To RIPv2 And OSPFv3 To OSPFv2. Most Important, OSPFv3 Uses The Same Fundamental Mechanisms As OSPFv2—The SPF Algorithm, Flooding, DR Election, Areas, And So On. Constants And Variables Such As Timers And Metrics Are Also The Same. 

Another Similarity To The Relationship Of RIPng To RIPv2 Is That OSPFv3 Is Not Backward-Compatible With OSPFv2. So If You Want To Use OSPF To Route Both IPv4 And IPv6, You Must Run Both OSPFv2 And OSPFv3. 


OSPF BASIC CONCEPTS



OSPF BASIC CONCEPTS :


OSPF Version 2, Introduced As RFC 2328 In 1998 And The Protocol Is Extended In Version 3 (RFC 2740) To Support OSPF In Ipv6 Networks. Most Of The Functionality Of OSPFV2 Carries Over Into OSPFV3, But There Are Some Significant Changes To Explore. 

OSPFv3 Adds Support For IPv6 In The Open Shortest Path First (OSPF) Routing Protocol, As Detailed In RFC 2740. Most Configuration And Operational Commands Function Essentially The Same As In OSPFv2: 

DR AND BDR :

For Broadcast And NBMA Networks, DR And BDR Are Defined In OSPF. BDR Is A Backup DR. A DR And BDR Form An Adjacency And Exchange Routing Information With All The DR Others (Routers Other Than DR Or BDR) On The Same Network. DROthers Do Not Form Any Adjacencies With Each Other. This Reduces The Number Of Adjacencies In Broadcast And NBMA Networks, Thus Reducing Network Traffic And Saving Bandwidth Resources. 

AREA :

If A Large Number Of Routers In A Network Run Ospf, The Following Problems Will Arise :

  • Large Numbers Of LSAs Generated By The Routers Will Occupy Much Storage Space.
  • The Calculation Of The Shortest Path Tree Will Take Much Longer, Causing High CPU Utilization.
  • Network Topological Changes Will Be More Frequent, Causing Large Numbers Of OSPF Packets To Be Transmitted In The Network And Wasting Bandwidth Resources. Each Topology Change Makes All The Routers Perform A Route Recalculation.

    To Address These Issues, Ospf Divides An As Into Multiple Areas.

    An Area Consists Of A Logical Group Of Networks And Routers And Is Assigned An Area ID.

    THE FOLLOWING DESCRIBES TWO SPECIFIC TYPES OF AREAS :

    (TOTALLY) STUB AREA:

    The ABR In A Stub Area Does Not Inject Type-5 LSAs Into The Area. This Reduces The Link-State Database Size, And Therefore The Memory Requirements For Routers In The Stub Area.

    To Further Reduce The Routing Table Size In A Stub Area, A Stub Area Can Be Configured As A Totally Stub Area, Which Does Not Allow Routes Other Than Intra-Area And The Default Route To Be Propagated Within The Area.

    Stub Area Configuration Is Optional, And Not Every Area Is Qualified To Be A Stub Area. In General, A Stub Area Resides On The Border Of The AS.

    NSSA AREA :

    A Not-So-Stubby Area (NSSA) Retains The Stub Characteristics. Type-7 LSAS, Rather Than Type-5 LSAs, Can Be Injected Into An NSSA Area. Type-7 LSAS Are Generated By An NSSA ASBR And Propagated Within The NSSA Area. The NSSA ABR Translates The Type-7 LSAS Into Type-5 LSAS, Which Get Propagated Into The OSPF Domain.

    OSPF NETWORK TYPES :

    OSPF Networks Fall Into Four Types By Link Layer Protocol:

    Broadcast: If Ethernet Or FDDI Is Adopted, OSPF Defaults The Network Type To Broadcast. In Such A Network, OSPF Packets Are Multicast (Using The IP Addresses 224.0.0.5 And 224.0.0.6) By Default.

    Non-Broadcast Multi-Access (NBMA): If Frame Relay, ATM, Or X.25 Is Adopted, OSPF Defaults The Network Type To NBMA. In An NBMA Network, OSPF Packets Are Unicast.

    Point-To-Multipoint (P2MP): OSPF Does Not Default The Network Type For Any Link Layer Protocol To P2MP. P2MP Is Always A Change From Another Network Type. A Common Practice Is To Change An NBMA Network Into A P2MP Network. In A P2P Network, OSPF Packets Are Multicast (Using The IP Address 224.0.0.5) By Default. Unicasting OSPF Packets Can Be Configured When Needed.

    Point-To-Point (P2P): If PPP Or HDLC Is Adopted, OSPF Defaults The Network Type To P2P. In A P2P Network, OSPF Packets Are Multicast (By Using The IP Address 224.0.0.5).

    OSPF USES FIVE TYPES OF PROTOCOL PACKETS :

    HELLO PACKETS : Hello Packets Are Periodically Sent To Establish And Maintain Neighbor Relationships. The Hello Packet Contains Timer Values, The Router's Current Choice For Designated Router (DR), Backup Designated Router (BDR), And The List Of All Routers On The Network From Which Hello Packets Have Been Seen Recently.

    DD PACKET (DATABASE DESCRIPTION PACKET): DD Packets Are Exchanged After An Adjacency Is Initialized And Describe The Contents Of The Link-State Database.

    LSR PACKET : After Exchanging DD Packets With A Neighboring Router, A Router May Find Some LSAS Are Missing. To Get These LSAs, It Sends LSR Packets That Carry The Digest Of Those LSAS To The Neighbor.

    LSU PACKET : Each Link State Update Packet Carries A Collection Of LSAS.

    LSACK PACKET : LSACK Packets Are Sent To Acknowledge The Received Lsas. An LSACK Contains The Headers Of The LSAS To Be Acknowledged (One Lsack Packet Can Acknowledge Multiple LSAS).

    THE ROUTE CALCULATION PROCESS OF THE OSPF PROTOCOL IS AS FOLLOWS :
  • Based On The Network Topology Around Itself, Each OSPF Router Generates LSAS And Sends Them To Other Routers In Update Packets.
  • Each OSPF Router Collects LSAS From Other Routers To Compose An LSDB (Link State Database). An LSA Describes The Network Topology Around A Router, So The LSDB Describes The Entire Network Topology Of The AS.
  • Each Router Transforms The LSDB To A Weighted Directed Graph, Which Actually Reflects The Topology Architecture Of The Entire Network.
  • Each Router Uses The SPF Algorithm To Compute A Shortest Path Tree That Shows The Routes To The Nodes In The Autonomous System. The Router Itself Is The Root Of The Tree.


    OSPF VERSION 2 VS OSPF VERSION 3



    THE DIFFERENCES BETWEEN OSPF VERSION 2 VS OSPF VERSION 3:


    The Two Versions Of OSPF Naturally Have Much In Common; However There Are Several Important Differences In The Way The Two Protocols Operate.

    OSPFV3 Carries Over The Seven Basic LSA Types We're Familiar With From OSPFV2. However, The Type 1 And 2 LSAs Have Been Re-Purposed, As Will Be Discussed In A Bit. OSPFv3 Also Introduces Two New LSA Types: Link And Intra-Area Prefix.

    All OSPFv3 Operational And Configuration Commands Include The Identifier OSPF3 In Place Of The Familiar OSPF Option. For Example, Show OSPF Database In OSPFv2 Becomes Show OSPF3 Database In OSPFv3.

    OSPFv3 Router IDs, Area IDs, and LSA link-state IDs remain at the OSPFv2 IPv4 size of 32 bits.

    All the optional capabilities in OSPFv2 for IPv4, such as not-so-stubby areas (NSSA), are supported in OSPFv3 for IPv6

    OSPFv3 Operates On A Per-Link Basis As Opposed To Ospfv2, Which Operates On A Per-IP-Subnet Basis.

    OSPFv2 AND OSPFv3 SIMILARITIES :

    OSPFv3 Shares Many Features With OSPFv2. Ospfv3 Is A Link-State Routing Protocol That Uses The Dijkstra Shortest Path First (SPF) Algorithm To Select The Best Paths Through The Network. OSPFv3 Routers Are Organized Into Areas, With All Areas Touching Area 0 (The Backbone Area). Ospfv3 Routers Communicate With Their Neighbors Using Hellos; Exchange Link-State Advertisements (LSAs) And Database Descriptors (DBD); And Run The SPF Algorithm Against The Accumulated Link-State Database (LSDB).

    OSPFv3 Uses The Same Packet Types As OSPFv2, Forms Neighbor Relationships In The Same Way, And Floods And Ages LSAS Identically. OSPFv3 Supports Nonbroadcast Multiaccess (NBMA) Topologies In The Same Way As OSPFv2: The RFC-Compliant Nonbroadcast Mode And Point-To-Multipoint Mode Are Supported, And Cisco IOS Devices Continue To Support Cisco's Three Proprietary Modes (Point-To-Point, Broadcast, And Point-To-Multipoint Nonbroadcast). Capabilities Such As The Various Types Of Stub Areas, Including Not-So-Stubby Areas (NSSA), And On-Demand Circuits Are Also Supported.

    COMMON ASPECTS OF OSPFv3 AND OSPFv2 :
  • Packet Types: Hello, DD, LSR, LSU, And LSACK
  • Area Partition.
  • LSA Flooding And Synchronization Mechanisms: Reliable Flooding And Synchronization To Ensure Correct LSDB Contents.
  • Routing Calculation Method: SPF Algorithm.
  • Network Types: Broadcast, NBMA, P2MP, And P2P.
  • Neighbor Discovery And Adjacency Establishment Mechanisms: When A Router Starts, It Sends A Hello Packet Via An OSPF Interface, And The Peer That Receives The Hello Packet Checks Parameters Carried In The Packet. If Parameters Of The Two Routers Match, They Become Neighbors. Not Every Pair Of Neighboring Routers Become Adjacent, Which Depends On Network Types. Only By Synchronizing The LSDB Via Exchanging DD Packets And Lsas Can Two Routers Become Adjacent.
  • DR Election: It Is Required To Elect The DR And BDR On NBMA And Broadcast Networks.

    DIFFERENCES BETWEEN OSPFV3 AND OSPFV2 ARE AS FOLLOWS :

    1. Protocol Running Per-Link, Not Per-Subnet

    2. Use Of Link-Local Addresses

    3. Support For Multiple Instances Per Link

    4. Identifying Neighbors By Router ID

    5. Authentication Changes

    6. Stub Area Support

    7. Ospfv3 Packet Formats

    8. The Options Field

    9. LSA Types

    PROTOCOL RUNNING PER-LINK :

    OSPFv2 Runs On A Per-IP-Subnet Basis. With OSPFv2 Enabled, Two Routers Must Be Attached To The Same Subnet To Establish A Neighbor Relationship. OSPFv3 Runs On A Per-Link Basis. Multiple Ipv6 Subnets (IPv6 Prefixes) Can Be Assigned To A Single Link, And Two Nodes Can Talk Directly Over A Single Link, Even If They Do Not Share A Common Ipv6 Prefix.

    USE OF LINK-LOCAL ADDRESSES :

    An OSPFv3 Router Sends Packets Using The Interface's Associated Link-Local Unicast Address As Source. A Router Learns The Link-Local Addresses Of All Other Routers Attached To Its Links, And Uses These Addresses As Next Hop Information During Packet Forwarding. On Virtual Links, Global Scope Or Site-Local IP Addresses Must Be Used As The Source For Ospfv3 Protocol Packets.

    Link-Local Addresses Have Only Local Significance And Can Be Flooded On The Local Link Only. Therefore, Link-Local Addresses Can Appear In Link-LSAS Only.

    IDENTIFYING NEIGHBORS BY ROUTER ID :

    In OSPFv2, Neighbors On Broadcast Or NBMA Links Are Identified By Their Interfaces’ Ipv4 Addresses, And Neighbors On Point-To-Point Networks Or Connected Through Virtual Links Are Identified By Their Router IDs.

    In OSPFv3, Neighboring Routers On A Given Link Are Always Identified By Their OSPF Router ID.

    AUTHENTICATION CHANGES :

    In OSPFv3, Authentication Has Been Removed From The OSPF Packet Header. Ospfv3 Relies On The Authentication Mechanism Of Ipv6 To Ensure Integrity And Validity.

    STUB AREA SUPPORT :

    OSPFv3 Supports The Flooding Of Unknown LSAS. To Prevent Uncontrolled Flooding Of Unknown Lsas Within A Stub Area, The Following Rule Regarding Stub Areas Has Been Established: An LSA Whose LS Type Is Unrecognized Can Be Flooded Throughout A Stub Area Only If Both A) The LSA Has Area Or Link-Local Flooding Scope And B) The LSA Has U-Bit Set To 0.

    OSPFv3 PACKET FORMATS :

    OSPFv3 Packets Are Encapsulated In Ipv6 Headers. All OSPF Packet Types Begin With A Standard 16-Byte Header.

    Like OSPFv2, Ospfv3 Also Has Five Types Of Packets: Hello, DD, LSR, LSU, And Lsack, Which Share The Same Header Format.

    OSPFv3 Has The Same LSU And LSACK Packet Formats As Ospfv2 But Different Packet Headers, Hello, DD, And LSR Packet Formats :
  • Version: For Ospfv3, This Field Is 3.
  • Packet Header: An OSPFv3 Packet Header Is Only 16 Bytes Long, With No Authentication Field But An Additional Instance ID Field, Which Is Used To Support Multiple Instances On A Link. The Instance ID Has Local Link Significance Only. Received Packets Whose Instance ID Is Not Equal To The Receiving Interface's Instance ID Are Discarded. In That Case, No Neighbor Relationship Can Be Established.
  • Hello Packet: Compared With The OSPFV2 Hello Packet, The Ospfv3 Hello Packet Has No Network Mask Field But Has Interface ID Field, Which Uniquely Identifies This Interface Among The Collection Of This Router's Interfaces.

    NOTE :

    In OSPFv2, Each Hello Packet, DD Packet, And LSA Has The Options Field.

    In OSPFv3, The Options Field Is Available In Only Hello Packets, DD Packets, Router LSAS, Network LSAS, Inter-Area-Router LSAS, And Link LSAS.

    OSPFV3 LSA TYPES :

    OSPFv3 Has Two New LSA Types: Link LSA And Intra Area Prefix LSA. 
  • In OSPFv3, Router LSAS Contain No Address Information. An OSPFv3 Router Originates A Separate Link-LSA For Each Link It Is Attached To. A Link-LSA Provides The Router's Link-Local Address And Other Addresses On This Link To All Other Routers Attached To The Link.
  • Router-LSAS And Network-LSAS Do Not Carry Route Information, Which Is Carried By Intra-Area-Prefix-LSAS. An Intra-Area-Prefix-LSA Can Advertise One Or More Ipv6 Address Prefixes.

    THE FLOODING SCOPE OF AN LSA IS DEFINED IN ITS LS TYPE FIELD. THERE ARE THREE FLOODING SCOPES :
  • Link-Local Scope: The LSA Is Flooded Only On The Local Link. It Is Used For New LINK-LSAS.
  • Area Scope: The LSA Is Flooded Throughout The Single OSPF Area Only. It Is Used For Router-Lsas, Network-LSAS, Inter-Area-Prefix-LSAS, Inter-Area- Router-LSAS, And INTRA-AREA-PREFIX-LSAS.
  • AS Scope. The LSA Is Flooded Throughout The Routing Domain. It Is Used For ASEXTERNAL-LSAS.

    OSPFv3 and OSPFv2 use a similar set of LSAs, with some differences. Lists the OSPFv3 LSAs, including the LSA function code, which indicates the function of the LSA.

    OSPFv3 LSAs
    LSA Function CodeNameDescription
    1Router-LSAAdvertise router IDs within an area, from a router
    2Network-LSAAdvertise router IDs within an area, from a DR
    3Inter-Area-Prefix-LSAAdvertise prefixes from one area to another
    4Inter-Area-Router-LSAAdvertise location of an autonomous system boundary router (ASBR)
    5AS-External-LSAAdvertise routes redistributed into OSPF
    6Group-Membership LSAAdvertise multicast information
    7Type-7-LSAPass external routes through an NSSA
    8Link-LSAAdvertise a router's link-local address to directly attached neighbors and allow the local routers to share prefix and option information
    9Intra-Area-Prefix-LSAAdvertise prefixes associated with a router ID
    Note
    The LSA link-state (LS) type is created by concatenating 0x200 with the LSA function code. For example, LSA function code 1 has an LS type 0x2001. However, because the 0x200 doesn't really add any new information, the LS function code typically is used when discussing LS types.

    LSA types 1 and 2 no longer contain route prefixes; instead, they contain 32-bit IDs. Types 3 and 4 have been renamed but still fulfill the same functions as they do in OSPFv2. Types 8 and 9 are new LSAs in OSPFv3.
    In OSPFv3, address prefixes are stored as prefixoptions, and prefix length. Addresses are expressed as prefixprefix length, a more flexible format than the OSPFv2 method of using prefix and mask.
    OSPFv3 type 3 and type 9 LSAs carry all IPv6 prefix information; in OSPFv2, IPv4 prefix information is carried in router and network LSAs (type 1 and type 2).
    LSAs are sourced from the link-local address of an interface and have an OSPFv3 IPv6 multicast address as the destination address.


    SUMMARY



    OSPFV2 VS OSPFV3 SUMMARY :


    OSPFv3 Also Differs From OSPFv2 In Many Ways. The Most Obvious Is That Ospfv3 Supports 128-Bit Prefixes.

    OSPfv3 Runs Directly Within Ipv6 Packets And Can Co-Exist With OSPFv2. The Two Routing Protocols Do Not Exchange Information Or Pay Attention To Each Other In Any Way.

    The OSPFv2 Multicast Addresses Are 224.0.0.5 And 224.0.0.6; OSPFv3 Uses The Ipv6 Multicast Addresses FF02::5 (For All OSPF Routers) And FF02::6 (For All Designated Routers [DR] And Backup Drs [BDR]).

    OSPFv3 Ipv6 Routers Are Expected To Support Many Addresses Per Interface, Including The Link-Local Address, Global Unicast Addresses, And Multicast Addresses, Including The Two Addresses For OSPFv3.

    OSPFv2 Builds Neighbor Relationships About Subnets, But The Terms "Network" Or "Subnet" Imply A Specific Address Space On An Interface; In Contrast, OSPFv3 Is Only Concerned About Its Connection Across A Link To Its Neighbor. Thus, OSPFv3 Terminology Is Discussed In Terms Of Links, And An OSPFv3 Router Uses Its Link-Local Address As The Source Address Of Its Advertisements—Not Its Global Unicast Address. It Uses The Appropriate Ospfv3 Ipv6 Multicast Address As The Destination Address.

    The OSPFv3 Packet Header Is 16 Bytes, While The OSPFv2 Packet Header Is 24 Bytes.

    Authentication Is Not Built-In To Ospfv3; The Authentication And Authentication Type Fields In The Ospfv2 Header Do Not Appear In The Ospfv3 Header. Ospfv3 Instead Relies On The Underlying Capabilities Of Ipv6 To Provide Authentication And Encryption, Using Extension Headers.

    OSPFv2 Can Run Multiple Processes But Can Only Run One Copy Of OSPF Per Link. The New Instance ID Field In The Ospfv3 Header Is Used To Differentiate OSPF Processes; Two Instances Need To Have The Same Instance ID To Communicate With Each Other. This Allows Multiple Routing Domains To Communicate Across The Same Link. Separate Neighbor Tables, Link-State Databases, And Shortest-Path Trees Are Kept For Each Instance.

    Perhaps Surprisingly, The Ospfv3 Router ID And Area ID (And The Link-State ID Within An LSA) Are Still 32-Bit Numbers, And They Are Written In An Ipv4-Address Dotted Decimal Format. In The Same Way That IS-IS Requires A Connectionless Network Service (CLNS) Address, Ospfv3 Reveals Its Heritage In Ipv4 By Requiring A 32-Bit Number For Its Router ID. The Ospfv3 DR And BDR Are Identified By Their Router ID, Not By Their IP Address, As They Are Identified In Ospfv2.

    OSPFV3 LSA TYPES

    OSPFv3 And OSPFv2 Use A Similar Set Of LSAs, With Some Differences.

    LSA Types 1 And 2 No Longer Contain Route Prefixes; Instead, They Contain 32-Bit Ids. Types 3 And 4 Have Been Renamed But Still Fulfill The Same Functions As They Do In Ospfv2. Types 8 And 9 Are New Lsas In OSPFv3.

    In OSPFv3, Address Prefixes Are Stored As Prefix, Options, And Prefix Length. Addresses Are Expressed As Prefix, Prefix Length, A More Flexible Format Than The OSPFV2 Method Of Using Prefix And Mask.

    OSPFv3 Type 3 And Type 9 LSAS Carry All Ipv6 Prefix Information; In OSPFv2, Ipv4 Prefix Information Is Carried In Router And Network Lsas (Type 1 And Type 2).

    LSAs Are Sourced From The Link-Local Address Of An Interface And Have An Ospfv3 Ipv6 Multicast Address As The Destination Address.

    For More About - > CISCO – OSPFv2 Vs OSPFv3
    For More About - > CISCO – OSPF FOR IPV6



    CONCLUSION:


    The Goal Of This Article Is To Give An Easy Way To Understand The “OSPF Version 2 Vs OSPF Version 3". Hope This Article Will Help Every Beginners Who Are Going To Start Cisco Lab Practice Without Any Doubts.

    Some Topics That You Might Want To Pursue On Your Own That We Did Not Cover In This Article Are Listed Here, Thank You And Best Of Luck.

    This Article Written Author By: Premakumar Thevathasan. CCNA, CCNP, CCIP, MCSE, MCSA, MCSA - MSG, CIW Security Analyst, CompTIA Certified A+.
  • No comments:

    PAN-OS Supported ciphers

    Following is a list of supported ciphers for PAN-OS 7.1 and later: SSLv3 Ciphers Supported (No change from PAN-OS 7.0) Non-FIPS mod...