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.
