diff options
author | Joachim Tingvold <joachim@tingvold.com> | 2015-03-30 05:13:37 +0200 |
---|---|---|
committer | Joachim Tingvold <joachim@tingvold.com> | 2015-03-30 05:13:37 +0200 |
commit | 61dfddebf652cae188e9ca3381cfbbb129728fa7 (patch) | |
tree | 4432f335f8ecec14b62297b36e449b979a7e6ea0 /tools | |
parent | 2be5b9c701fd979f7f2a80504b868a60527ab46b (diff) |
Update for IPv6.
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/make-linknet-hosts.pl | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/tools/make-linknet-hosts.pl b/tools/make-linknet-hosts.pl index d535832..5e411af 100755 --- a/tools/make-linknet-hosts.pl +++ b/tools/make-linknet-hosts.pl @@ -4,31 +4,27 @@ use Net::IP; # # Input file format: # -# ipv4-link-network router1 router2 +# <ipv4-linknet> <ipv6-linknet> src-router dst-router # # e.g. -# 151.216.0.2 telegw nocgw -# 151.216.0.4 telegw cam -# 151.216.0.6 nocgw coren -# 151.216.0.8 telegw pressegw -# -# Note: IPv6 linknets use link-local adresses, so they are not included in list. -# +# 151.216.128.0/31 2a02:ed02:FFFE::0/127 rs1.tele rs1.core +# 151.216.128.2/31 2a02:ed02:FFFE::2/127 rs1.tele rs1.noc + while (<STDIN>) { next if /^(#|\s+$)/; # skip if comment, or blank line - my ($ipv4_raw, $from, $to) = split; - my $ipv4; + my ($ipv4_raw, $ipv6_raw, $from, $to) = split; + + # v4 + my $ipv4_first = NetAddr::IP->new($ipv4_raw); + my $ipv4_second = $ipv4_first + 1; - # Assumes ipv4 address is the first address in a /31 :-)) - $ipv4 = NetAddr::IP->new($ipv4_raw."/31") unless $ipv4=~/no/; - printf STDERR "Missing IPv4 scope for linket %s -> %s\n", $from, $to if not $ipv4; - next if not $ipv4; + # v6 + my $ipv6_first = NetAddr::IP->new($ipv6_raw); + my $ipv6_second = $ipv6_first + 1; - # generate-dnsrr.pl format: - # hostname ipv4 ipv6 (with nope as valid null argument) - my $ipv4_other = $ipv4 +1; - printf("%s-%s %s nope\n", $from, $to, $ipv4->addr); - printf("%s-%s %s nope\n", $to, $from, $ipv4_other->addr); + # hostname ipv4 ipv6 + printf("%s-%s %s %s\n", $from, $to, $ipv4_first->addr, $ipv6_first->addr); + printf("%s-%s %s %s\n", $to, $from, $ipv4_second->addr, $ipv6_second->addr); } |