Thought I'd reply to this because there was an extra caveat I ran into that might help others with the same problem.
In my setup, my WAN interface gets its IP address via DHCP, not PPPoE. That means that I NAT on the WAN interface, and by default NAT is round-robin. Adding an ip alias to the WAN interface allowed me to access my DSL modem's web interface, but pfSense started to round-robin NAT on my alias and I started losing connectivity.
It is possible to tell pf to NAT only on the main address and not aliases, but pfSense (1.2.x?) does not support the option. Hopefully there will be GUI support for this option in the future. Until then, here's how I did it and made it permanent (steps 1 and 4 are only needed on embedded installs):
mount filesystem as read-write: mount -w /
vi /etc/inc/filter.inc
find the function filter_nat_rules_generate_if and change
$tgt = "($if)";
to
$tgt = "($if:0)";
3)save and exit vi
4)remount filesystem as read-only: mount -r /
That changes the NAT rule from something like
nat on $wan from 192.168.1.0/24 to any -> (sis1)
to
nat on $wan from 192.168.1.0/24 to any -> (sis1:0)
It's the addition of :0 to the interface name that will tell PF to ignore aliases on the interface and NAT only on the main address.
Hopefully somebody else finds this useful.
Also, instead of setting up a port redirection on the pfSense router, I configured advanced outbound NAT in a similar way as described in this m0n0wall tutorial: Accessing a DSL or cable modem IP from inside the firewall
Seems to be working well.