What's new? cfos IPv6 Link
* New feature
+ Minor improvement
! Software change requires modification of your configuration
- Information only
Revision history: ---------------------------------------------------------
cfos6link 2.52 build 1120 -- 03-May-2010
x Fixed a bug with DHCPv4 servers which report the assigned IP
address with unicast.
x Fixed crash with unhandled commands.
+ Four more languages added: Greek, Thai, Macedonian, Romanian.
That makes a total of 26 languages supported.
cfos6link 2.50 build 1102 -- 17-Mar-2010
! ipv4_router_addr is now in cfos6link.ini, section [param], not in the
default_use_ipv4 and default_use_ipv6 in section [param] now specify the
default value for each connection in connection.ini. You can
overwrite this default with the use_ip4/6 options in the
! If a router connection is used (instead of PPPoE), connections.ini
contains a connection named "Router-", which you can setup with
the normal connection setup.
* Added NAT46 mapping.
NAT46 mapping allows you to run IPv4-only applications with IPv6
destinations or IPv4-only services, which are accessible from IPv6.
cfos6link can now map traffic from IPv4 only applications to IPv6.
To do so, it temporaryly associates an IPv6 address
with a temporay IPv4 address. You can specify the IPv4 address pool by
setting nat46_addr=x and nat46_subnet_mask=m in the [param] section of
cfos6link.ini. If an IPv4 applications requests a name via DNS (i.e. an
A record) cfos6link changes the request into an AAAA record request.
After it receives the corresponding IPv6 address it allocates a
temporary IPv4 for that IPv6 and returns it to the IPv4 application.
Whenever the IPv4 application uses that temporary address it will be
mapped to the IPv6 address for use with an IPv6 destination.
For example you can assign the following pool of IPv4 addresses for
For incoming connections you can also specify a port mapping, by filling
the section [nat46_ports] in cfos6link.ini with values, like this:
Then incoming IPv6 traffic is mapped to IPv4 whenever the
destination port is one of the mapped ports.
In addition you can add static IPv4 <-> IPv6 mappings for applications
which use hard-coded IPv4 addresses. You can specifiy these mappings
by filling the section [nat46_static] with value like
=, for example
* cfos6link can now handle multiple prefixes. It can obtain prefixes
from router advertizements and DHCPv6 prefix delegation. All prefixes,
including prefixes shorter than 64 bit, are reported to Windows via
router advertisement, with their respective lifetimes. In case only
prefixes shorter than 64 bit are obtained, cfos6link "stretches" one
into a 64 bit prefix, but also reports the shorter version. Reporting
the shorter prefixes allows a Windows software router to subnet and
delegate them. Prefixes can also manually specified per dial-up
connection or in native IPv6 mode for "router-" connections.
You can use the "Setup connections" dialog for this.
* To support the source and destination address selection in RFC 3484
(with respect to the policy table), cfos6link can now evaluate DHCPv6
Distributing Address Selection Policy table entries according to
OPTION_DASP in statefull and stateless DHCPv6 responses. The draft
for DASP can be found here:
cfos6link uses the table entries in OPTION_DASP in the following way:
If a prefix/length pair already exists in the system configuration
it is modified by the new values for label and precedence, but never
deleted. If the prefix/length pair doesn't exist, it will be added.
Currently the value for OPTION_DASP is not defined yet. Therefore
you can set the value (as decimal value) in cfos6link.ini, section
[param] with option_dasp=value. If the value is not set, policy
table modification is disabled (default).
Currently the zone index is ignored, since it's not supported by
Windows. Also the 'no privacy' bit is ignored, since it cannot
be set by Windows for inidivual prefixes only.
+ Replaced random assignment for NAT46 with round robin assignment.
+ Minor installation improvement: If the driver is already flagged for
deletion, the installer will fail and prompt you to reboot.
+ Minor installation improvement: If driver installation fails, the
installer will try to rebuild the inf cache after cleaning
old .inf/.pnf files and try again.
+ On startup cfos6link now also performs a PPPoE detection (in addition
to the IPv6 router detection) and switches network adapters without
connectivity to passthrough mode.
+ Increased DNS mapping timeout to 30secs.
+ Existing prefixes are overwritten by new prefix information more
+ Added custom DHCPv6 options. In cfos6link.ini, sections
[DHCPv6_statefull_options] and [DHCPv6_stateless_options] you can
specify two kinds of keys:
oroN=value ; N from 0..., value=decimal value of option to
request with OPTION_ORO
optionN=hex,hex,hex,... ; hex values for custom DHCPv6 option
Values for these options are sent with either statefull or stateless
DHCP requests. This allows to send additional (custom) DHCPv6 options
to the ISP.
c6link get_statefull_dhcpv6_option [value [num]]
c6link get_stateless_dhcpv6_option [value [num]]
commands. cfos6link saves the current options DHCPv6 responses for
for statefull/stateless requests from the ISP.
+ Changed the IPv6 detection. cfos6link's DHCPv4 server is only used
when in dial-up mode (not in native IPv6 mode). Value specifies the
DHCPv6 option value and num the n'th option, if there are more than
one. If you ommit value all options are returned. Return values
are always comma separated hex values of the binary option(s)
+ New ipv4_mcast_is_unicast parameter in cfos6link.ini, section [param].
If you set ipv4_mcast_is_unicast=1 cfos6link treats ipv4 multicast
addresses (class D addresses) as unicast addresses. Maybe they are
used in the future when the IPv4 address space is exhausted.
+ Added 'reset' console command. It tries to reset all adapter states.
+ Added adapter passthrough. In the section [passthrough] in cfos6link.ini
you can specify keys which begin with "adapter", like
If the substr is contained in the adapter description, it will be switched
to passthough mode. Then all data is ignored by cFos IPv6 Link and simply
passed on to the next network layer. For example, you can set
to ignore all wireless adapters (if they have 'wireless' in their description).
+ Reworked connectivity detection. On load and if the medium is
connected, cfos6link now checks if there is an IPv6 router connected
to the network adapter. If not it will try PPPoE if IPv6 connectivity
is requested. If a DHCPv4 server is detected, it will enter mixed-mode,
i.e. IPv4 traffic is passed through to the IPv4 router and not send
over the PPPoE/Dialup connection. You can disable mixed mode by
setting the key allow_mixed_mode=0 in cfos6link.ini, section [param].
+ Now the most important notifications are indicated with a balloon tip:
sucessfull connection, bad login password, PPP errors and if there is
no connectivity on any network device.
+ After PPP link down, a Router Advertisement is sent to invalidate the
+ Added parameter "check_traffic" in [param] section of cfos6link.ini.
Default is 1. If set to 0, the checks for routable IP packets are disabled.
+ When started in compatibility mode, cfos6link will still know the real
operating system version.
x Fixed a bug where cfos6link could not dial a connection after
it was disconnected from the net (e.g. by password error).
x Fixed a bug which prevented proper disconnect if the broadband POP
didn't send PADT fast enough. Thanks to Jewgenij Bytschkow.
x Fixed a bug which prevented unbind from network connections.
Also thanks to Jewgenij Bytschkow.
x Fixed process name resolution for Windows 7 x64.
x Daemon now handles WM_ENDSESSION correctly. Thanks to Sven Gärtner.
x Fixed saving of settings "enabled" and "defualt" in connection setup.
x Settings in cfos6link.ini will no longer be overwritten by update
x Fixed a bug connectivity problems, when the ISP doesn't send
x Fixed a problem with activation of license keys.
- Internal changes (new WDK).
cfos6link 2.00 build 1076 -- 12-May-2009
* Major changes in cfos IPv6 Link:
cfos IPv6 Link is now a NDIS filter driver for network cards.
At load time cfos IPv6 Link performs an auto-detection of the
connected network devices and switches into one of the following
- 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
- 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
* Flexible negotiation of all IPv6 parameters / DHCPv6 Prefix
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.
+ VLAN support for Dial-up connections and Router mode.
Configurable DHCPv6 DUID. Thereby a DHCPv6 server can assign certain
previously determined parameters to the client system, identified by
+ DHCPv6 Stateless Configuration. Allows the ISP to transmit DNS
addresses of the DNS servers independently of the IPv6 prefix.
+ Added additional way of allocation to relieve non-paged pool.
- Added code for post mortem debugging.
x Fixed potentially serious bug in interlocked handling.
cfos6link 1.02 -- 17-Nov-2008
x Fixed driver load problem.
cfos6link 1.00 -- 14-Nov-2008
+ Speeded memory allocation.
+ If you begin you prefix with an !, the prefix option in router advertisements is ignored.
+ Workaround for Cisco AC "payload length" bug. Thanks to Oliver Döring, Titan Networks.
+ PPP / PPPoE errors are now indicated in the Status line in the context menu.
+ cfos IPv6 Link now evaluates Router Advertisements from the ISP. It adjusts
MTU and Prefix (64bit only) accordingly. It also checks for the DNS option (rfc5006)
and can set DNS1/DNS2 addresses if present.
x Fixed some Windows object security problems.
x Entries in connections.ini were sometime active only after a reboot. Fixed.
x An active connection is now also indicated by "IPv6" in the tray icon under Vista.
- Upgraded compiler.
cfos6link 0.91 build 1043
- Initial beta release.