-1

I broadcast my own IPv6 block on vultr(I use bird6 to broadcast IP) I'm going to create my own 6in4 server I used this script to create the tunnel https://github.com/KazamiLabs/6in4

But the problem arises.

On the client side, I can ping the IPv6 of any network card on the server side. But the client can't ping and traceroute any non-server-bound IPv6. On the server side, I can ping the client's IPv6 and any internet's ipv6.

The client's error is `traceroute6 2001:4860:4860::8888'without routing.

I think there's a problem with route on the server side, but I don't know how to modify it.


This is the routing table on the server side.

root@vultr:~#  route -A inet6
Kernel IPv6 routing table
Destination                    Next Hop                   Flag Met Ref Use If
2001:19f0:7001:338::/64        ::                         UAe  256 0     0 ens3
2a0c:b641:245:1::/64           ::                         Un   256 1    26 tun_6in4_1
2a0c:b641:245:8001::/64        ::                         U    1024 0     0 tun_6in4_1
fe80::/64                      ::                         U    256 0     0 ens3
fe80::/64                      ::                         Un   256 0     0 tun_6in4_1
::/0                           fe80::fc00:1ff:fecf:596c   UGDAe 1024 1  4310 ens3
::/0                           ::                         !n   -1  1  4586 lo
::1/128                        ::                         Un   0   2  1150 lo
2001:19f0:7001:338:5400:1ff:fecf:596c/128 ::                         Un   0   2   462 lo
2a0c:b641:245:1::1/128         ::                         Un   0   2    26 lo
fe80::2d4d:8492/128            ::                         Un   0   1     0 lo
fe80::5400:1ff:fecf:596c/128   ::                         Un   0   2   386 lo
ff00::/8                       ::                         U    256 1    35 ens3
ff00::/8                       ::                         U    256 0     0 tun_6in4_1
::/0                           ::                         !n   -1  1  4586 lo



root@vultr:~# ip -6 route
2001:19f0:7001:338::/64 dev ens3  proto kernel  metric 256  expires 2591630sec pref medium
2a0c:b641:245:1::/64 dev tun_6in4_1  proto kernel  metric 256  pref medium
2a0c:b641:245:8001::/64 dev tun_6in4_1  metric 1024  pref medium
fe80::/64 dev ens3  proto kernel  metric 256  pref medium
fe80::/64 dev tun_6in4_1  proto kernel  metric 256  pref medium
default via fe80::fc00:1ff:fecf:596c dev ens3  proto ra  metric 1024  expires 1430sec hoplimit 64 pref medium

Can someone give me some advice?


A brief explanation:

  • 6in4 server: can communicate with internet IPv6 address and client IPv6 address normally
  • 6in4 clinet: can only communicate with server's IPv6 address, but can't communicate with IPv6 address on Internet
  • My other IPv6 servers: they can communicate with the IPv6 of the 6in4 server, but they can't communicate with the IPv6 address assigned to the client
  • What do you mean by "broadcast?" IPv6 eliminated broadcast. – Ron Maupin Feb 12 '19 at 14:28
  • I know 'broadcast' does not belong to ipv6. But I don't know what words should be used to replace it. This operation of IPv6 is similar to the broadcast operation of ipv4, so I used 'broadcast'. – 神楽坂白 Feb 14 '19 at 00:11
  • IPv4 has unicast, broadcast, and multicast. IPv6 eliminated broadcast, and it only has unicast and multicast. Typically, client/server communication is unicast, and the addresses you have in the question are unicast addresses. All IPv6 addresses in the `2000::/3` address block are Global unicast addresses, addresses in the `fc00::/7` address block are ULA unicast addresses, and addresses in the `fe80::/10` address block are Link-Local unicast addresses. IPv6 multicast addresses are in the `ff00::/8` address block. – Ron Maupin Feb 14 '19 at 00:17

1 Answers1

0

The problem has been solved.

echo 'net.ipv6.conf.all.forwarding = 1' >> /etc/sysctl.conf
sysctl -p

Then it starts to work.