Hello everyone.
I am new to VyOS and IPv6, so sorry if I am off the mark.
I would like to use the following configuration for communication from a VyOS router to the Internet.
Physical Connection Configurations
It is configured like a double router, but never mind.
This configuration is made for mere technical curiosity!
We do not believe that this physical configuration is the problem, because when we replace the router (NEC UNIVERGE IX2105) with VyOS with a similar configuration, we can connect to the Internet with IPv6 from both the Mac and the router.
For IPv4, all I had to do was set up PPPoE, and I was able to connect to the Internet easily.
However, a puzzling event has occurred regarding IPv6âŠ
In both of the following settings, the movement was different from what I expected.
I want to connect to the Internet from both VyOS and Mac using IPv6 without NAT.
** For testing purposes, the firewall is not configured in any way.
Configuration 1
With this setting, an IPv6 address is assigned to the Mac, allowing IPv6 connections from the Mac to the Internet.
However, I cannot connect to the Internet from my VyOS router via IPv6.
$ show configuration | strip-private
interfaces {
bridge br0 {
address xxx.xxx.0.1/24
description LAN
ipv6 {
address {
eui64 xxxx:xxxx:42c0:3000::/64
}
dup-addr-detect-transmits 1
}
member {
interface eth1 {
}
interface eth2 {
}
interface eth3 {
}
interface eth4 {
}
interface eth5 {
}
}
}
ethernet eth0 {
hw-id xx:xx:xx:xx:xx:93
}
ethernet eth1 {
hw-id xx:xx:xx:xx:xx:92
}
ethernet eth2 {
hw-id xx:xx:xx:xx:xx:91
}
ethernet eth3 {
hw-id xx:xx:xx:xx:xx:90
}
ethernet eth4 {
hw-id xx:xx:xx:xx:xx:8f
}
ethernet eth5 {
hw-id xx:xx:xx:xx:xx:8e
}
loopback lo {
}
pppoe pppoe0 {
authentication {
password xxxxxx
username xxxxxx
}
ip {
adjust-mss 1414
}
mtu 1454
no-peer-dns
source-interface eth0
}
}
nat {
source {
rule 1 {
description NAT_PPPoE
outbound-interface {
name pppoe0
}
source {
address xxx.xxx.0.0/24
}
translation {
address masquerade
}
}
}
}
protocols {
static {
route6 ::/0 {
next-hop fe80::72:10cd:9200:0 {
interface eth0
}
}
}
}
service {
dhcp-server {
shared-network-name xxxxxx {
subnet xxx.xxx.0.0/24 {
lease 86400
option {
default-router xxx.xxx.0.1
name-server xxx.xxx.0.1
}
range 0 {
start xxx.xxx.0.100
stop xxx.xxx.0.199
}
static-mapping xxxxxx {
ip-address xxx.xxx.0.2
mac xx:xx:xx:xx:xx:d3
}
subnet-id 1
}
}
}
dns {
forwarding {
allow-from xxx.xxx.0.0/24
allow-from fe80::/10
allow-from ::1/128
allow-from fc00::/7
listen-address xxx.xxx.0.1
listen-address xxx.xxx.0.1
listen-address ::1
name-server xxx.xxx.0.1 {
}
name-server xxx.xxx.1.1 {
}
name-server xxxx:xxxx:4700::1001 {
}
name-server xxxx:xxxx:4700::1111 {
}
}
}
ndp-proxy {
interface br0 {
prefix xxxx:xxxx:42c0:3000::/64 {
interface eth0
mode interface
}
}
interface eth0 {
prefix ::/0 {
interface br0
mode interface
}
}
}
ntp {
allow-client xxxxxx
address xxx.xxx.0.0/8
address ::1/128
address fe80::/10
address fc00::/7
address xxx.xxx.0.0/24
}
server xxxxx.tld {
pool
}
server xxxxx.tld {
pool
}
}
router-advert {
interface br0 {
other-config-flag
prefix xxxx:xxxx:42c0:3000::/64 {
}
}
}
ssh {
listen-address xxx.xxx.0.1
}
}
system {
config-management {
commit-revisions 100
}
conntrack {
hash-size 655360
table-size 5242880
}
console {
device ttyS0 {
speed 115200
}
}
host-name xxxxxx
login {
banner {
post-login ""
pre-login ""
}
user xxxxxx {
authentication {
encrypted-password xxxxxx
}
}
}
name-server xxx.xxx.1.1
name-server xxx.xxx.0.1
option {
kernel {
disable-power-saving
}
performance latency
time-format 24-hour
}
syslog {
global {
facility all {
level info
}
facility local7 {
level debug
}
}
}
time-zone Asia/Tokyo
}
$ show interfaces | strip-private
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address MAC VRF MTU S/L Description
----------- --------------------------------------- ----------------- ------- ----- ----- -------------
br0 xxx.xxx.0.1/24 xx:xx:xx:xx:xx:be default 1500 u/u LAN
xxxx:xxxx:42c0:3000:d005:ff:fe3d:e5be/64
eth0 - xx:xx:xx:xx:xx:93 default 1500 u/u
eth1 - xx:xx:xx:xx:xx:92 default 1500 u/D
eth2 - xx:xx:xx:xx:xx:91 default 1500 u/D
eth3 - xx:xx:xx:xx:xx:90 default 1500 u/u
eth4 - xx:xx:xx:xx:xx:8f default 1500 u/u
eth5 - xx:xx:xx:xx:xx:8e default 1500 u/D
lo xxx.xxx.0.1/8 xx:xx:xx:xx:xx:00 default 65536 u/u
::1/128
pppoe0 xxx.xxx.46.115/32 n/a default 1454 u/u
$ show ipv6 route | strip-private
Codes: K - kernel route, C - connected, S - static, R - RIPng,
O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
S>* ::/0 [1/0] via fe80::72:10cd:9200:0, eth0, weight 1, 00:00:17
C>* xxxx:xxxx:42c0:3000::/64 is directly connected, br0, 00:00:21
C * fe80::/64 is directly connected, pppoe0, 00:00:19
C * fe80::/64 is directly connected, eth0, 00:00:20
C * fe80::/64 is directly connected, br0, 00:00:20
C>* fe80::/64 is directly connected, lo, 00:00:26
Configuration 2
With this configuration, I can connect to the Internet over IPv6 from your VyOS router.
However, I have an IPv6 address assigned to my Mac, but I cannot connect to the Internet from my Mac with IPv6.
I just added the following line.
set interfaces ethernet eth0 ipv6 address autoconf
set interfaces ethernet eth0 ipv6 dup-addr-detect-transmits 1
$ show configuration | strip-private
interfaces {
bridge br0 {
address xxx.xxx.0.1/24
description LAN
ipv6 {
address {
eui64 xxxx:xxxx:42c0:3000::/64
}
dup-addr-detect-transmits 1
}
member {
interface eth1 {
}
interface eth2 {
}
interface eth3 {
}
interface eth4 {
}
interface eth5 {
}
}
}
ethernet eth0 {
hw-id xx:xx:xx:xx:xx:93
ipv6 {
address {
autoconf
}
dup-addr-detect-transmits 1
}
}
ethernet eth1 {
hw-id xx:xx:xx:xx:xx:92
}
ethernet eth2 {
hw-id xx:xx:xx:xx:xx:91
}
ethernet eth3 {
hw-id xx:xx:xx:xx:xx:90
}
ethernet eth4 {
hw-id xx:xx:xx:xx:xx:8f
}
ethernet eth5 {
hw-id xx:xx:xx:xx:xx:8e
}
loopback lo {
}
pppoe pppoe0 {
authentication {
password xxxxxx
username xxxxxx
}
ip {
adjust-mss 1414
}
mtu 1454
no-peer-dns
source-interface eth0
}
}
nat {
source {
rule 1 {
description NAT_PPPoE
outbound-interface {
name pppoe0
}
source {
address xxx.xxx.0.0/24
}
translation {
address masquerade
}
}
}
}
protocols {
static {
route6 ::/0 {
next-hop fe80::72:10cd:9200:0 {
interface eth0
}
}
}
}
service {
dhcp-server {
shared-network-name xxxxxx {
subnet xxx.xxx.0.0/24 {
lease 86400
option {
default-router xxx.xxx.0.1
name-server xxx.xxx.0.1
}
range 0 {
start xxx.xxx.0.100
stop xxx.xxx.0.199
}
static-mapping xxxxxx {
ip-address xxx.xxx.0.2
mac xx:xx:xx:xx:xx:d3
}
subnet-id 1
}
}
}
dns {
forwarding {
allow-from xxx.xxx.0.0/24
allow-from fe80::/10
allow-from ::1/128
allow-from fc00::/7
listen-address xxx.xxx.0.1
listen-address xxx.xxx.0.1
listen-address ::1
name-server xxx.xxx.0.1 {
}
name-server xxx.xxx.1.1 {
}
name-server xxxx:xxxx:4700::1001 {
}
name-server xxxx:xxxx:4700::1111 {
}
}
}
ndp-proxy {
interface br0 {
prefix xxxx:xxxx:42c0:3000::/64 {
interface eth0
mode interface
}
}
interface eth0 {
prefix ::/0 {
interface br0
mode interface
}
}
}
ntp {
allow-client xxxxxx
address xxx.xxx.0.0/8
address ::1/128
address fe80::/10
address fc00::/7
address xxx.xxx.0.0/24
}
server xxxxx.tld {
pool
}
server xxxxx.tld {
pool
}
}
router-advert {
interface br0 {
other-config-flag
prefix xxxx:xxxx:42c0:3000::/64 {
}
}
}
ssh {
listen-address xxx.xxx.0.1
}
}
system {
config-management {
commit-revisions 100
}
conntrack {
hash-size 655360
table-size 5242880
}
console {
device ttyS0 {
speed 115200
}
}
host-name xxxxxx
login {
banner {
post-login ""
pre-login ""
}
user xxxxxx {
authentication {
encrypted-password xxxxxx
}
}
}
name-server xxx.xxx.1.1
name-server xxx.xxx.0.1
option {
kernel {
disable-power-saving
}
performance latency
time-format 24-hour
}
syslog {
global {
facility all {
level info
}
facility local7 {
level debug
}
}
}
time-zone Asia/Tokyo
}
$ show interfaces | strip-private
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address MAC VRF MTU S/L Description
----------- ---------------------------------------- ----------------- ------- ----- ----- -------------
br0 xxx.xxx.0.1/24 xx:xx:xx:xx:xx:be default 1500 u/u LAN
xxxx:xxxx:42c0:3000:d005:ff:fe3d:e5be/64
eth0 xxxx:xxxx:42c0:3000:1201:2ff:fe44:5693/64 xx:xx:xx:xx:xx:93 default 1500 u/u
eth1 - xx:xx:xx:xx:xx:92 default 1500 u/D
eth2 - xx:xx:xx:xx:xx:91 default 1500 u/D
eth3 - xx:xx:xx:xx:xx:90 default 1500 u/u
eth4 - xx:xx:xx:xx:xx:8f default 1500 u/u
eth5 - xx:xx:xx:xx:xx:8e default 1500 u/D
lo xxx.xxx.0.1/8 xx:xx:xx:xx:xx:00 default 65536 u/u
::1/128
pppoe0 xxx.xxx.5.171/32 n/a default 1454 u/u
$ show ipv6 route | strip-private
Codes: K - kernel route, C - connected, S - static, R - RIPng,
O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
S ::/0 [1/0] via fe80::72:10cd:9200:0, eth0, weight 1, 00:08:07
K>* ::/0 [0/1024] via fe80::72:10cd:9200:0, eth0, 00:08:09
C * xxxx:xxxx:42c0:3000::/64 is directly connected, eth0, 00:08:07
C>* xxxx:xxxx:42c0:3000::/64 is directly connected, br0, 00:08:10
C * fe80::/64 is directly connected, pppoe0, 00:08:09
C * fe80::/64 is directly connected, br0, 00:08:09
C * fe80::/64 is directly connected, eth0, 00:08:09
C>* fe80::/64 is directly connected, lo, 00:08:16
My apologies if I have missed something in the documentation.
Any advice is welcome!
And please donât hesitate to tell me if Iâm missing any information.
Best regards.