de előtte még be kell lőnöm az IPv6 tűzfalat, hogy ne legyen nyitott a hálózat.
Ez a része viszonylag egyszerű. Küldöm, ahogy én használom - persze nyilván lehet még finomítani.
ipv6-name WANv6_IN {
default-action drop
description "WAN inbound traffic forwarded to LAN"
enable-default-log
rule 10 {
action accept
description "Allow established/related sessions"
state {
established enable
related enable
}
}
rule 20 {
action drop
description "Drop invalid state"
state {
invalid enable
}
}
}
ipv6-name WANv6_LOCAL {
default-action drop
description "WAN inbound traffic to the router"
enable-default-log
rule 10 {
action accept
description "Allow established/related sessions"
state {
established enable
related enable
}
}
rule 20 {
action drop
description "Drop invalid state"
state {
invalid enable
}
}
rule 30 {
action accept
description "Allow IPv6 icmp"
protocol ipv6-icmp
}
rule 40 {
action accept
description "allow dhcpv6"
destination {
port 546
}
protocol udp
source {
port 547
}
}
rule 50 {
action accept
description WireGuard
destination {
port 51800-51899
}
log disable
protocol udp
source {
}
}
}
Nálam csak SLAAC van:
ethernet eth9 {
address dhcp
description wan
dhcpv6-pd {
pd 0 {
interface eth8 {
host-address ::1
prefix-id :1
service slaac
}
interface eth11 {
host-address ::1
prefix-id :3
service slaac
}
interface switch0 {
host-address ::1
prefix-id :2
service slaac
}
prefix-length /56
}
rapid-commit enable
}
duplex auto
firewall {
in {
ipv6-name WANv6_IN
name WAN_IN
}
local {
ipv6-name WANv6_LOCAL
name WAN_LOCAL
}
}
Az automatikus címadás működött rendben (SLAAC), de szeretném elérni, hogy a hostok IPv6 címei bekerüljenek a DNS zónámba.
Én ezt abszolút fapad módon oldom meg, a routeren fut egy cron script, ami prefix változás esetén (nálam Telekom van, nagyon ritkán változik) megupdateli a DNS-t, a cloud tűzfalakat stb.
#!/bin/bash
LAST_FILE=/home/ubnt/ipv6/ipv6_last
LAST=`cat $LAST_FILE`
SUBNET56_IPV6=`ip addr show dev eth8 | grep inet6 | awk {'print $2'} | awk -F'::' {'print $1'} | awk '{print substr($1, 1, length($1)-2)}'`
if [[ "$LAST" != "$SUBNET56_IPV6" ]]; then
echo $SUBNET56_IPV6 > $LAST_FILE
...
fi