Yes, there's one or two ways to set the system-wide default IPv6 source address, of varying levels of evil. Individual applications may also support setting the source address for connections they make.
The system-wide method I use is
marking certain addresses as deprecated. For example, here's a snippet of how eth0 is configured on my Ubuntu node -- "preferred_lft 0" is the important part:
Code:
auto eth0
iface eth0 inet static
address 67.18.187.111
gateway 67.18.187.1
netmask 255.255.255.0
up ip addr add 192.168.130.4/17 dev eth0
down ip addr del 192.168.130.4/17 dev eth0
up ip addr add 2600:3c00::2:b001/64 dev eth0
down ip addr del 2600:3c00::2:b001/64 dev eth0
up ip addr add 2600:3c00::2:b101/64 dev eth0 preferred_lft 0
down ip addr del 2600:3c00::2:b101/64 dev eth0
up ip addr add 2600:3c00::2:b401/64 dev eth0 preferred_lft 0
down ip addr del 2600:3c00::2:b401/64 dev eth0
N.B.: I don't mark the autoconfigured EUI-64 address (i.e. 2600:3c00::f03c:91ff:fe96:6bcc in my case) as deprecated. It shouldn't ever get used as the default source address anyway, since it's added before my other addresses, but I don't mind if it does, so I make no effort to prevent it. If I wanted to do so, something like this would work:
Code:
up ip addr change 2600:3c00::f03c:91ff:fe96:6bcc dev eth0 preferred_lft 0
I'm sure Arch has a different style of networking configuration, but this should give you an idea -- and it's always possible to stick iproute2 commands *somewhere*.