Joined: 04 Jul 2008 Posts: 16 Location: Fair Oaks, CA, USA
Posted: Fri Aug 08, 2008 23:11 Post subject:
Infern0 wrote:
Since I have a asus WL500W I can use the mega build what is the benefit of using the mega build?
All builds intended for a router with 4MB of flash are a compromise of capabilities to fit this space. Routers with 8MB of flash can accommodate everything at once that is in any other build (except for different driver variants, which require different kernel builds). If you have an 8MB router there’s no reason to run any build except a mega unless you really want the extra 4MB in JFFS space.
Infern0 wrote:
Since I cannot find any docs on that.
If you search the wiki and forums, you will find plenty of reference to mega builds, but the concept is pretty simple.
Infern0 wrote:
You mentioned earlier that for the new version you recommended a reset of the router. Is this still the case for the latest version?
I assume you’re asking whether a reset is required between my two versions. My experience is that it is not, but this may differ depending on your hardware (I doubt it is necessary in any case, but I haven’t verified this.) Try it out—worst case you’ll have to reflash via TFTP. If it doesn’t boot or doesn’t work right, you can then reset. The paranoid advice often given is to reset upon any upgrade, but this is a bit extreme. I believe one intent to this advice is to reduce bug reports due to old NVRAM junk causing weird behavior.
If you’re instead asking whether my newer version requires a reset relative to some older DD-WRT version (such as stock v24), then the answer is that this requirement hasn’t changed.
The right solution would be for NVRAM to carry an “NVRAM version” (similar to a structure version carried in a database) and for each version of DD-WRT to know how to upgrade NVRAM parameters from anything previous, or at least from one previous major version. At worst, someone would need to upgrade in several steps to keep their parameters, and the things affected, that might need to be checked or reset, would be documented. How often have you heard of a commercial software package that requires you to lose all of your settings every time you upgrade? If this were the norm, it’d be pretty hard to sell upgrades.
Yes, I know this isn’t commercial software (unless you count BS’s store), but that’s no excuse for lazy coding.
Sorry about the rant, but this stuff bugs me.
One procedure that I have used to merge my settings is this:
In an ssh session, copy my enhanced nvram binary (built for mipsel, which is most routers) to your router using scp, wget, ftp, etc.
Use this nvram with a command such as /tmp/nvram -q show > /tmp/nvram-old.txt to dump your current settings, and then copy this file to a Linux machine somewhere (or an environment with Unix-like utilities, such as Windows SFU, Interix, or Cygwin).
Use Administration->Backup in the GUI to save your current settings. You may never use this, but it’s nice to be able to go back if necessary.
Upgrade the firmware with the option Reset to Default settings.
In an ssh session with the new firmware, repeat the nvram command (which is my enhanced version in my builds) and copy the results out.
In your external Unix environment, manually separate out any multi-line definitions using a text editor. Searching for lines that don’t begin with nvram will find these quickly.
Go through and edit nvram-merge.txt, choosing the appropriate old or new variable definitions (if you choose to keep the new version, you can simply delete it here since it is already set this way on your router). This is the hard part. For things that are less obvious, such as the sets of wireless settings and network interface plumbing, play it safe and choose the new stuff, and make notes about what to reconfigure manually later using the GUI. Also manually compare and merge in the multi-line variables you broke out earlier.
Copy the resulting merge file to your router, and apply the settings by running it as a shell script.
Do nvram commit and reboot your router.
Hope for the best.
For any settings you noted earlier for which you weren’t comfortable simply setting the variables, manually change them through the GUI.I’ve also found this procedure helpful for moving selected settings between routers with different hardware. NVRAM backups from different routers (even with identical hardware) are certainly not compatible—at the least they should have different MAC addresses and SSH keys.
Since I have a asus WL500W I can use the mega build what is the benefit of using the mega build?
All builds intended for a router with 4MB of flash are a compromise of capabilities to fit this space. Routers with 8MB of flash can accommodate everything at once that is in any other build (except for different driver variants, which require different kernel builds). If you have an 8MB router there’s no reason to run any build except a mega unless you really want the extra 4MB in JFFS space.
Ok nice and clear
Quote:
Infern0 wrote:
Since I cannot find any docs on that.
If you search the wiki and forums, you will find plenty of reference to mega builds, but the concept is pretty simple.
Then it is just my lack of searching good enough
Quote:
Infern0 wrote:
You mentioned earlier that for the new version you recommended a reset of the router. Is this still the case for the latest version?
I assume you’re asking whether a reset is required between my two versions. My experience is that it is not, but this may differ depending on your hardware .
I will just try the upgrade without a reset of the nvram and indeed it was based on a upgrade between your versions, since that is the one I'm running right now.
Thanks for the long answers and development of your firmware!
Sorry I haven't been able to get back in a while. I have a WRT54GS v1.1. I'm using a SIXXS static tunnel. I hope I can try your build - it seems you've added what I was hoping for. Not sure I understand the difference between VINT builds and normal builds (it appears my WRT54GS needs a VINT build). Could you shed any light on this?
You've also opened up the possibility of upgrading my router at some point since you are based on v24sp1.
I've tried setting up IPv6 on my WRT54GS using your firmware. It doesn't seem to be working. A ping to an IPv6 address from the router works fine, as does an nslookup, but pings and nslookups from client machines don't work properly.
Here's the info HE gave me:
Code:
Server IPv4 address: 216.66.80.26
Server IPv6 address: 2001:470:1f08:48f::1/64
Client IPv4 address: 82.23.180.243
Client IPv6 address: 2001:470:1f08:48f::2/64
Routed /64: 2001:470:1f09:48f::/64
My startup script:
Code:
ip tunnel add he-ipv6 mode sit remote 216.66.80.26 local 82.23.180.243 ttl 64
ip link set he-ipv6 up
ip addr add 2001:470:1f08:48f::2/64 dev he-ipv6
ip route add ::/0 dev he-ipv6
ip addr add 2001:470:1f08:48f::1/64 dev br0
Joined: 04 Jul 2008 Posts: 16 Location: Fair Oaks, CA, USA
Posted: Wed Aug 20, 2008 17:21 Post subject:
CaptObvious wrote:
A ping to an IPv6 address from the router works fine, as does an nslookup,
You didn’t say what you were pinging, but if it was an IPv6 address out on the Internet, this proves that your tunnel is up. nslookup, in the implementation on the router, always uses IPv4 transport for the lookup, so this tells you nothing about IPv6 connectivity.
CaptObvious wrote:
but pings and nslookups from client machines don't work properly.
Again, you didn’t say to where. Your client doesn’t have a global IPv6 address, which means that it’s not communicating with radvd. It’s possible that this is a client issue, but more likely that radvd is not running or not configured properly.
Also, it appears that you have both en0 and en1 interfaces on your client connected to the same network. Why? This is at best redundant and confusing, and at worst can cause subtle problems. Just unplug one of them.
Here’s what I suggest:
From your client, ping the link local address of the router, which should work: ping6 fe80::216:b6ff:fe18:5b2a
Change your radvd config on the router to specify a network prefix, not a host, as you have. Use: “prefix 2001:470:1f08:48f::/64”. This shouldn’t have prevented the client from working though. Also, add a semicolon at the end of the last line of your script. I believe that this was making radvd fail to start.
Check ps on the router to see if radvd is running. If not, try starting it manually by running “radvd” from the command line.
If you post further results, be explicit about what you tried and the results. Post the command lines you used and the exact output. Saying that something “doesn't seem to be working” is virtually content-free.
I will posting a new version very soon with GUI config. Configuration will then be much easier.
Joined: 04 Jul 2008 Posts: 16 Location: Fair Oaks, CA, USA
Posted: Wed Aug 20, 2008 17:42 Post subject:
SMF wrote:
Not sure I understand the difference between VINT builds and normal builds (it appears my WRT54GS needs a VINT build). Could you shed any light on this?
As I understand it, it depends on the exact model of CPU and even the revision of it, so it is possible that my build will work. I suggest checking other threads and wiki articles for exact details about this. I have access to a similar WRT54GS that I haven’t tried my build on yet (it is in production use in an environment sensitive to disruption). I’ll probably try it soon, but not before my next release.
A ping to an IPv6 address from the router works fine, as does an nslookup,
You didn’t say what you were pinging, but if it was an IPv6 address out on the Internet, this proves that your tunnel is up. nslookup, in the implementation on the router, always uses IPv4 transport for the lookup, so this tells you nothing about IPv6 connectivity.
Sorry, all ping tests were to ipv6.he.net.
crushedhat wrote:
CaptObvious wrote:
but pings and nslookups from client machines don't work properly.
Again, you didn’t say to where. Your client doesn’t have a global IPv6 address, which means that it’s not communicating with radvd. It’s possible that this is a client issue, but more likely that radvd is not running or not configured properly.
Also, it appears that you have both en0 and en1 interfaces on your client connected to the same network. Why? This is at best redundant and confusing, and at worst can cause subtle problems. Just unplug one of them.
One is wired, one is wifi. It's a laptop and OS X ignores wifi while a wired connection is plugged in (even so far as dropping ALL wifi connections when you plug in an ethernet cable, much to my dismay).
crushedhat wrote:
Here’s what I suggest:
[list=1][*]From your client, ping the link local address of the router, which should work: ping6 fe80::216:b6ff:fe18:5b2a
[*]Change your radvd config on the router to specify a network prefix, not a host, as you have. Use: “prefix 2001:470:1f08:48f::/64”. This shouldn’t have prevented the client from working though. Also, add a semicolon at the end of the last line of your script. I believe that this was making radvd fail to start.
"ping6 fe80::216:b6ff:fe18:5b2a" now works after adding the semicolon. The client now has an IPv6 addy of 2001:0470:1f08:048f:021b:63ff:fea3:e81e.
"ping6 ipv6.he.net" from the router gives:
Code:
PING ipv6.he.net (2001:470:0:64::2): 56 data bytes
64 bytes from 2001:470:0:64::2: seq=0 ttl=59 time=163.378 ms
64 bytes from 2001:470:0:64::2: seq=1 ttl=59 time=185.831 ms
And it just stops there seemingly forever. When trying to browse to an IPv6 site, FireFox sits there saying "Connecting to ipv6.he.net..." for ages, then seems to fall back to IPv4, loading the page and showing my connecting IP as my public IPv4 address.
Joined: 04 Jul 2008 Posts: 16 Location: Fair Oaks, CA, USA
Posted: Wed Aug 20, 2008 23:58 Post subject:
CaptObvious wrote:
One is wired, one is wifi. It's a laptop and OS X ignores wifi while a wired connection is plugged in (even so far as dropping ALL wifi connections when you plug in an ethernet cable, much to my dismay).
Even if the GUI tells you the connection is “dropped”, apparently BSD still thinks it’s an active (up) interface.
CaptObvious wrote:
"ping6 fe80::216:b6ff:fe18:5b2a" now works after adding the semicolon.
Actually, this should have worked even before fixing radvd by adding the semicolon.
CaptObvious wrote:
The client now has an IPv6 addy of 2001:0470:1f08:048f:021b:63ff:fea3:e81e.
This is good, and means your client saw the radvd broadcast.
I don’t know BSD (and the OS X version of it) as well as Linux, but I’m guessing that the lack of an error here means that there is a default route, but there’s no response. Enter “netstat -f inet6 -r” to see if the default route is your DD-WRT router. If there is one, I suspect a firewall issue. Do you have a client of another type to try?
Did you change the address on your radvd “prefix” line to be a prefix, not a host? This may not be important, but may change the default route advertisement from radvd.
At this point, it looks like your tunnel and radvd are likely working, so the issues you are experiencing are no longer DD-WRT specific. You can probably find more help on other forums geared towards IPv6 on OS X.
Well I installed the mega build and it seems to be working fine. The only issue I seem to be having is I can't connect to sixxs.net. It just keeps trying to load but http://ipv6.whatismyv6.com/ shows my correct ipv6 address.
The dd-wrt gui reports Broadcom BCM4712 chip rev 1.
crushedhat,
first of all, I would like to say a huge thanks to you for creating this custom version with IPv6 enabled! I really appreciate it.
Though, I have a few questions and issues regarding this version.
Where does the '/var/log/messages' reside? Is it in the RAM or Flash? What happens when it gets too big and there's no space left to let the file grow?
Is it possible to mount SMBFS (Windows share) with this custom version so I could store more files on the router?
And I have an issue with SNMP. The SNMPD does not seem to work. I've enabled it in the webinterface then saved, applied, rebooted and the following appears in the syslog:
Code:
Aug 23 22:59:46 wrt54g user.info syslog: snmpd : SNMP daemon successfully started
But when I check the running processes with 'ps' there's no snmp anywhere, neither in 'ps' nor in 'netstat -ln'. Of course I cannot query my router from an SNMP client. I was using SNMP with v23 without any problems. I've also created firewall exceptions to allow UDP port 161 but this isn't the case because the daemon itself is not running. Is it a bug or am I doing wrong something? Please advise how should I troubleshoot this.