What's new? cfos IPv6 Link --------------------------------------------------------------------------- Legend: * New feature + Minor improvement ! Software change requires modification of your configuration x Bugfix - 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 connections.ini anymore. 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 connections dialog. ! 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 mapping: [param] nat46_addr=10.0.0.0 nat46_subnet_mask=255.0.0.0 For incoming connections you can also specify a port mapping, by filling the section [nat46_ports] in cfos6link.ini with values, like this: 5000=some_program 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 192.168.2.1=2001:DB8::1 * 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: http://tools.ietf.org/html/draft-fujisaki-dhc-addr-select-opt-08. 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 carefully + 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. + New c6link get_statefull_dhcpv6_option [value [num]] and 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) representation. + 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 adapter1=substr 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 adapter1=wireless 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 prefix. + 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 installation. x Fixed a bug connectivity problems, when the ISP doesn't send Router Advertisements. 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 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. * Flexible negotiation of all IPv6 parameters / DHCPv6 Prefix Delegation: 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 the DUID. + 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.