cFosSpeed is now in new hands. Atlas Tech Solutions now owns, develops, and sells new versions of it
New! By the makers of cFosSpeed: The cFos EVSE

Documentation Index

IPv6 Link function diagram

Features at a glance

  • IPv6 dial-up driver for Windows
  • Automatic routing and address configuration
  • IPv4 <-> IPv6 DNS mapping
  • DHCPv6 Stateful, Stateless, Prefix Delegation
  • High-speed, 10x faster than the Windows Vista driver
  • Configurable DHCP DUID
  • VLAN support
  • NAT46 for IPv4-only applications

What is cFos IPv6 Link?

Connectivity with the new IPv6 network

cFos IPv6 Link allows dial-up with IPv6 for Windows 7, Vista and XP.

Install cFos IPv6 Link, configure the dial-up connection to your ISP and you're done! cFos IPv6 Link does not only connect to the new IPv6, but also configures the routing and IP and DNS addresses automatically.

Under XP cFos IPv6 Link also maps IPv4-based DNS queries of IPv6 adresses.

cFos IPv6 Link is fast. Like cFos Broadband Connect it achieves a much higher throughput than the PPPoE driver shipped with XP/Vista/7 (with a fast enough Internet connection).

At load time cFos IPv6 Link performs an auto-detection of the connected network devices and switches into one of the following modes:

  • Router mode: If cFos IPv6 Link detects a router or DHCPv6 server it uses this device to route data to the Internet.
  • Dial-up mode: If cFos IPv6 Link detects a PPPoE node connected to the network card (e.g. via DSL) it establishes a PPP/PPPoE connection to the Internet provider either automatically or on demand.
  • Mixed mode: If cFos IPv6 Link detects an IPv4 DHCP Server attached to the network card (regardless of other IPv6 devices), it passes all IPv4 traffic through to this IPv4 Router.

This allows simultaneous use of IPv4 and IPv6. Windows prefers IPv6 by first trying to resolve an address to an IPv6 address and only uses IPv4 if no IPv6 address is (yet) available. IPv4 is thereby a fallback for IPv6.

Mixed mode is possible with routers that support "PPPoE Passthrough", e.g. Speedport. Then the IPv4 traffic travels as usual to the IPv4 provider, while IPv6 traffic travels via PPPoE to the IPv6 provider.


Technical background:

cFos IPv6 Link uses the existing network connection via router or PPPoE and allows the use of IPv6 under Windows 7, Vista and XP. cFos IPv6 Link can dial into IPv4 and IPv6 with PPPoE via a DSL-modem or router with "PPPoE passthrough" (e.g. Speedport).


Advantages of cFos IPv6 Link

  XP Vista
Windows 7
IPv6 DNS Queries / IPv4 <-> IPv6 DNS mappingYesNo
IPv6 PPPoE/PPP Dial-upYesNo
Automatic routing configurationYesYes
IPv6 default routeYesYes
Automatic DNS server configurationYesYes
DHCPv6 Prefix DelegationYesYes
Policy Table UpdatesYesYes
NAT46 for IPv4-only applicationsYesYes


cFos IPv6 Link has the following components:

  • PPPoE
  • PPP IPv4/IPv6
  • IPv6 Neighbor discovery (ND) + DAD
  • IPv6 Router Advertisement
  • IPv6 DHCP (DHCPv6) statefull & stateless
  • IPv4 DHCP
  • IPv4 <-> IPv6 DNS Mapping
  • IPv6 Router Solicitation with ISP
  • DHCPv6 with ISP

Optional stateful and stateless address and routing configuration with the ISP is done via IPv6 Router Solicitation and DHCPv6. Thereby cFos IPv6 Link can automatically determine and configure all Parameters assigned by the ISP, like IPv6 addresses prefix, DNS addresses, etc.


Flexible negotiation of all IPv6 parameters / DHCPv6 Prefix Delegation:

Optional stateful and stateless address and routing configuration with the ISP is done via IPv6 Router Solicitation and DHCPv6. Thereby cFos IPv6 Link can automatically determine and configure all Parameters assigned by the ISP, like IPv6 addresses prefix, DNS addresses, etc.

cFos IPv6 Link is now also a DHCPv6 client to the Internet. Thereby it can determine the IPv6 prefix not only by router advertisements, but also by DHCPv6 Prefix Delegation. We tested it (among others) with a Cisco Router. Thanks to cFos IPv6 Link ISPs can now employ the Cisco proposed DHCPv6 Prefix Delegation with their end-customers.

cFos IPv6 Link can now also acquire DNS addresses via DHCPv6 (in addition to using the option in Router Advertisements). In Mixed mode the address of the IPv4 DNS server is also used. Thereby cFos IPv6 Link uses all possible ways to access DNS servers, without the need for manual configuration.

cFos IPv6 Link offers extensive logging and tracing features, which are especially useful in the beginning of the IPv6 era. cFos IPv6 Link can for example create Wireshark-compatible trace files.


Delegation of the Framed IPv6 Prefix from RADIUS Server to
cFos IPv6 Link
Delegation of the "Framed IPv6 Prefix" from RADIUS Server to cFos IPv6 Link

cFos IPv6 Link with DSL and other broadband configurations

cFos IPv6 Link interprets multiple Prefixes and DHCPv6 prefix delegation options as follows:

If several IPv6 routers with different prefixes are detected by cFos IPv6 link, it sends packets to the router with the longest prefix match in the source address.

Prefixes shorter than 64 bit from a DHCPv6 server or router are reported to Windows to allow a possible Windows Software router to subnet them and assign 64 bit prefixes to other devices. If cFos IPv6 link only gets prefixes shorter than 64 bit, it constructs one 64 bit prefix from one of the existing prefixes by extending it with 0 bits.

cFos IPv6 link can thereby handle prefixes from setups with DHCPv6 and RADIUS servers. Framed IPv6 prefixes are expected in Router Advertisements and delegated Prefixes in DHCPv6 server responses. See RFC 3162 and RFC 4818.


Related RFCs:

RFC 2464 Transmission of IPv6 Packets over Ethernet Networks
RFC 3162 RADIUS and IPv6
RFC 3315 Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
RFC 3484 Default Address Selection for Internet Protocol version 6 (IPv6)
RFC 3587 IPv6 Global Unicast Address Format
RFC 3633 IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6
RFC 3646 DNS Configuration options for Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
RFC 3736 Stateless Dynamic Host Configuration Protocol (DHCP) Service for IPv6
RFC 4193 Unique Local IPv6 Unicast Addresses
RFC 4429 Optimistic Duplicate Address Detection (DAD) for IPv6
RFC 4443 Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification
RFC 4472 Operational Considerations and Issues with IPv6 DNS
RFC 4818 RADIUS Delegated-IPv6-Prefix Attribute
RFC 4861 Neighbor Discovery for IP version 6 (IPv6)
RFC 4862 IPv6 Stateless Address Autoconfiguration
RFC 5006 IPv6 Router Advertisement Option for DNS Configuration
RFC 5072 IP Version 6 over PPP
RFC 5175 IPv6 Router Advertisement Flags Option
RFC 5220 Problem Statement for Default Address Selection in Multi-Prefix Environments
RFC 5221 Requirements for Address Selection Mechanisms
RFC 5453 Reserved IPv6 Interface Identifiers
draft: http://tools.ietf.org/html/draft-fujisaki-dhc-addr-select-opt-08


System requirements

  • Windows XP / Windows Vista / Windows 7
  • 32bit / 64bit (x64)
  • IPv4 and/or IPv6 Router or DSL cable modem (PPPoE)

Documentation

Parameters of cfos6link.ini, section [param]:

   func_trace     0            logging level, 0 = minimum, 1 = all functions, except data transmission, 2 = also log data transmission functions
   dump_unknown_frames         1 = dump unknown PPPoE Frames into the trace.txt, 0 = deactivated
   ipv4_router_addr            IPv4 private router address for IPv4 DHCP, subnet mask is always 255.255.255.0., default is 192.168.42.1.
   allow_mixed_mode            1 = allow IPv4 passthrough if DHCPv4 detected (default), 0 = disable
   keep_ppinfo                 1 = send NDIS per packet info with each packet, 0 = disable (default)
   check_traffic               1 = check, if packets to/from net are allowed (default), 0 = send all packets
   default_use_ipv4            default value for the use_ipv4 values in connections.ini (default 0 = not allowed)
   default_use_ipv6            default value for the use_ipv6 values in connections.ini (default 1 = allowed)
   ipv4_mcast_is_unicast       1 = treat IPv4 multicast (class D net) packets as unicast packets,
                               0 =  treat as multicast (default)

Passthrough mode, section [passthrough]:

   adapter1=substr
   adapter1=substr
   .
   .
   adapterN=substr
   If the adapter description contains "substr" traffic for this adapter is ignored (passthrough mode).

Format of the phone number:

   parameters can appear in arbitrary order, e.g.,

   d\aidx=x\serv=x\h=x\ac=x\to=x\tr=x\prio=x\vlan=x

   parameter:     default:     meaning:

   d                           any digits, ignored
   aidx=x         -1           -1 = auto-detect, 0..n = PPPoE for network adapter x
                               (adapter index as stored in the registry)
   serv=name                   service name string for outgoing calls
   h=1 or h=0      1           enables or disables use of host_unique tag (1 = enabled))
   ac=name                     string, which can be used to limit the PPPoE negotiation to a certain AC. name must be a substring of the AC name
   to=x            2000        initial timeout for outgoing PPPoE: timeout in milliseconds for server answers
   tr=x            3           number of retries on timeout
   prio=x                      set the VLAN packet priority (value from 0-7)
   vlan=x                      VLAN ID

Parameters for connections in connections.ini:

   enabled            0 = disabled, 1 = dial whenever connection is needed
   dial_string        see "Format of the phone number"
   user_name          user name
   password           encrypted password, use setup to enter password
   mru                PPP Maximum Receive Unit, default 1492
   use_ipv4           0 = disabled, 1 = use IPv4 connectivity
   use_ipv6           0 = disabled, 1 = use IPv6 connectivity
   ipv6_prefix        IPv6 provider prefix, must be always 64bit, e.g 1111:2222:3333:4444/64
   idle_timeout       number of seconds of inactivity after which the connection will be terminated, default is 0=always on
   ipv6_dns1          full 128 bit IPv6 DNS address
   ipv6_dns2          full 128 bit IPv6 DNS address

Policy Table Adjustment and NAT46