MavEtJu's Distorted View of the World - 2009-11

Australian timezones to become unique
Internode IPv6 over ADSL project

Back to index

Australian timezones to become unique

Posted on 2009-11-10 21:00:00
Tags: zoneinfo, Australia, DST

System administrators in Australia have had this issue for ages: While the Australia/Sydney timezone is known as EST:

[~] edwin@k7>TZ=Australia/Sydney date
Tue Nov 10 21:29:22 EST 2009
The EST timezone is laying somewhere else:
[~] edwin@k7>TZ=EST date
Tue Nov 10 05:29:44 EST 2009
16 hours difference, that is the US East Coast. Thus, you can't use the timezone EST to specify Australian specific times and expect the rest of the world to get in sync with you. Even worse, there is software out there which is still broken on it.

The issue has been brought up multiple times with the maintainers of the timezone data, but they only collect what is defined, they don't want to make the definitions themselves.

But there is hope! According to The Australian Government website, there are three timezones in Australia:

  • Australian Eastern Standard Time (AEST) with Australian Eastern Daylight Time (AEDT)
  • Australian Central Standard Time (ACST) with Australian Central Daylight Time (ACDT)
  • Australian Western Standard Time (AWST)

So real soon, hopefully, the timezone data maintainers will incorperate the changes and our systems will not be confused anymore when we configure our timezones as Australia/Sydney, then we will get AEST and nobody will be confused with us anymore!


No comments | Share on Facebook | Share on Twitter

Internode IPv6 over ADSL project

Posted on 2009-11-06 18:00:00
Tags: FreeBSD, IPv6

Internode has announced IPv6 capabilities for their ADSL users and I have volunteered for the pilot. My ADSL router, a Linksys WAG54G2 running version 1.00.17, didn't support it out of the box, so I needed to do it via the FreeBSD host sitting behind it. The FreeBSD host is running 8.0-RC2 at this moment, but it should work with previous versions too:

The first step is to turn the ADSL router into an ADSL modem by changing the Encapsulation on the WAN side from RFC 2516 PPPoE to Bridged Mode Only. From that moment in time you have lost your internet connection :-)

Add to your /etc/rc.conf:

ipv6_enable="YES"
` That was simple. Reboot :-)

Setup PPP on the FreeBSD host, add this to your /etc/ppp/ppp.conf:

pppoe6:
    set authname "edwing@ipv6.internode.on.net"
    set authkey "secret"
    set device PPPoE:sk0
    enable lqr echo
    nat enable yes
    set cd 5
    set dial
    set login
    set redial 0 0
    set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
    add default HISADDR                 # Add a (sticky) default route
    add default HISADDR6                # Add a (sticky) default route
Notes:
  • The name for the account has to be changed from @internode.on.net to @ipv6.internode.on.net.
  • sk0 is the NIC my FreeBSD host is connected via to the ADSL modem.
and start the ppp service:
[~] root@k7>ppp pppoe6
Loading /lib/libalias_cuseeme.so
Loading /lib/libalias_ftp.so
Loading /lib/libalias_irc.so
Loading /lib/libalias_nbt.so
Loading /lib/libalias_pptp.so
Loading /lib/libalias_skinny.so
Loading /lib/libalias_smedia.so
Working in interactive mode
Using interface: tun0
ppp ON k7> dial
ppp ON k7> Warning: deflink: Reducing configured MRU from 1500 to 1492
Ppp ON k7> Warning: deflink: Reducing configured MRU from 1500 to 1492
PPp ON k7> Warning: ::/: Change route failed: errno: No such process
PPp ON k7> 
PPP ON k7> 
and the the PPP interface has been setup:
[~] root@k7>ifconfig tun0
tun0: flags=8051 metric 0 mtu 1492
        inet6 fe80::20f:eaff:fe2c:d518%tun0 prefixlen 64 scopeid 0x4 
	inet 150.101.113.58 --> 150.101.197.23 netmask 0xffffff00 
	Opened by PID 35920
And the default gateways have been set:
[~] edwin@k7>netstat -rn | grep default
default            150.101.197.23     UGS         0      340   tun0
default                           fe80::20c:86ff:fe75:241b%tun0 UGS        tun0
Now we have the IPv6 configuration setup, but can't do much except for pinging out default gateway:
[~] edwin@k7>ping6 -c 1 fe80::20c:86ff:fe75:241b
PING6(56=40+8+8 bytes) fe80::20f:eaff:fe2c:d518%tun0 --> fe80::20c:86ff:fe75:241b
16 bytes from fe80::20c:86ff:fe75:241b%tun0, icmp_seq=0 hlim=64 time=10.544 ms

--- fe80::20c:86ff:fe75:241b ping6 statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 10.544/10.544/10.544/0.000 ms
[~] edwin@k7>ping6 -c 1 www.freebsd.org
PING6(56=40+8+8 bytes) fe80::20f:eaff:fe2c:d518%tun0 --> 2001:4f8:fff6::21

--- www.freebsd.org ping6 statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss

The next step is to grab an allocation of IPv6 addresses for our network: First install the net/dhcp6 port and use the following configuration for /usr/local/etc/dhcp6c.conf:

interface sk0 {
        information-only;
};

interface tun0 {
	send ia-pd 0;
};
id-assoc pd {
	prefix-interface sk0 {
		sla-id 1;
		sla-len 4;
	};
};
Notes:
  • Interface sk0 is the NIC in the FreeBSD on which the IPv6 subnet should be defined.
  • Interface tun0 is the interface PPP created.
  • sla-len 4 is the number of bits the size of the IPv6 subnet you get from Internode: 64 - 4 = 60 bits (See the IPv6 ADSL Trial pages on the Internode website)
The dhcp6c program is not very informative with its output:
[~] root@k7>dhcp6c -f -d  tun0
Nov/06/2009 11:59:35: dhcp6_ctl_authinit: failed to open /usr/local/etc/dhcp6cctlkey: No such file or directory
Nov/06/2009 11:59:35: client6_init: failed initialize control message authentication
Nov/06/2009 11:59:35: client6_init: skip opening control port
But ifconfig sk0 now gives the proper output:
[~] root@k7>ifconfig sk0
sk0: flags=8843 metric 0 mtu 1500
	options=b
	ether 00:0f:ea:2c:d5:18
	inet6 2001:44b8:7bf1:a51:20f:eaff:fe2c:d518 prefixlen 64 
	media: Ethernet autoselect (100baseTX )
	status: active
I don't know why it says there that the prefix-length is 64 bits, but the IPv6 connectivity is there:
[~] root@k7>ping6 -c 1 www.freebsd.org
PING6(56=40+8+8 bytes) 2001:44b8:7bf1:a51:20f:eaff:fe2c:d518 --> 2001:4f8:fff6::21
16 bytes from 2001:4f8:fff6::21, icmp_seq=0 hlim=56 time=194.522 ms

--- www.freebsd.org ping6 statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 194.522/194.522/194.522/0.000 ms

Now you have one FreeBSD computer with IPv6 connectivity. The next step is to enable it on the rest of the network. Add to your /etc/rc.conf:

ipv6_gateway_enable="YES"
rtadvd_enable="YES"
rtadvd_interfaces="sk0"
As seen earlier, sk0 is the ethernet interface of my FreeBSD machine.

To enable IPv6 connectivity on the other computers....

  • FreeBSD laptop: Add to /etc/rc.conf
    ipv6_enable="YES"
    rtsol_interfaces="fxp0"
    ipv6_default_gateway="fxp0"
    
    and reboot. It now is properly configured too:
    [~] edwin@vaio>ifconfig fxp0
    fxp0: flags=8843 metric 0 mtu 1500
            options=2009
    	ether 00:01:4a:83:a5:82
    	inet6 fe80::201:4aff:fe83:a582%fxp0 prefixlen 64 scopeid 0x3 
    	inet 10.204.250.107 netmask 0xffffff00 broadcast 10.204.250.255
    	inet6 2001:44b8:7bf1:a51:201:4aff:fe83:a582 prefixlen 64 autoconf 
    	media: Ethernet autoselect (100baseTX )
    	status: active
    
    and
    [~] edwin@vaio>ping6 -c 1 www.freebsd.org
    PING6(56=40+8+8 bytes) 2001:44b8:7bf1:a51:201:4aff:fe83:a582 --> 2001:4f8:fff6::21
    16 bytes from 2001:4f8:fff6::21, icmp_seq=0 hlim=55 time=193.748 ms
    
    --- www.freebsd.org ping6 statistics ---
    1 packets transmitted, 1 packets received, 0.0% packet loss
    round-trip min/avg/max/std-dev = 193.748/193.748/193.748/0.000 ms
    
  • On the MacOS/X machine: It came up with IPv6 connectivity after a reboot.


Show comment | Share on Facebook | Share on Twitter