ndppd icon indicating copy to clipboard operation
ndppd copied to clipboard

Not working with OVH & Proxmox

Open adiantek opened this issue 1 year ago • 2 comments

Hi,

Idk why but ndppd doesnt write adverts to OVH gateway and I'm unable to use IPv6 inside LXC containers.

root@ovh1:~# ndppd -vvvv
(notice) ndppd (NDP Proxy Daemon) version 0.2.4
(notice) Using configuration file '/etc/ndppd.conf'
(debug) {
(debug)     proxy vmbr0 {
(debug)         rule 2001:41d0:602:XXXX::/64 {
(debug)             static
(debug)         }
(debug)     }
(debug) }
(warning) Low prefix length (64 <= 120) when using 'static' method
(debug) fd=3, hwaddr=d0:50:99:de:ef:d
(debug) iface::allmulti() state=1, _name="vmbr0"
(debug) proxy::create() if=vmbr0
(debug) rule::create() if=vmbr0, addr=2001:41d0:602:XXXX::/64, auto=no
(debug) iface::fixup_pollfds() _map.size()=1
(debug) reading routes
(debug) iface::read() len=86
(debug) iface::read_solicit() saddr=2001:41d0:602:3fff:ff:ff:ff:fd, daddr=ff02::1:ff00:0, len=86
(debug) proxy::handle_solicit() saddr=2001:41d0:602:3fff:ff:ff:ff:fd, taddr=2001:41d0:602:3f5b::
(debug) checking 2001:41d0:602:XXXX::/64 against 2001:41d0:602:3f5b::
(debug) iface::read() len=86
(debug) iface::read_solicit() saddr=2001:41d0:602:3fff:ff:ff:ff:fd, daddr=ff02::1:ff00:0, len=86
(debug) proxy::handle_solicit() saddr=2001:41d0:602:3fff:ff:ff:ff:fd, taddr=2001:41d0:602:3f5b::
(debug) checking 2001:41d0:602:XXXX::/64 against 2001:41d0:602:3f5b::
(debug) iface::read() len=86
(debug) iface::read_solicit() saddr=2001:41d0:602:3fff:ff:ff:ff:fd, daddr=ff02::1:ff00:0, len=86
(debug) proxy::handle_solicit() saddr=2001:41d0:602:3fff:ff:ff:ff:fd, taddr=2001:41d0:602:3f5b::
(debug) checking 2001:41d0:602:XXXX::/64 against 2001:41d0:602:3f5b::
(debug) iface::read() len=86
(debug) iface::read_solicit() saddr=2001:41d0:602:3fff:ff:ff:ff:fd, daddr=ff02::1:ff00:0, len=86
(debug) proxy::handle_solicit() saddr=2001:41d0:602:3fff:ff:ff:ff:fd, taddr=2001:41d0:602:3f5b::
(debug) checking 2001:41d0:602:XXXX::/64 against 2001:41d0:602:3f5b::
(debug) iface::read() len=86
(debug) iface::read_solicit() saddr=2001:41d0:602:3fff:ff:ff:ff:fd, daddr=ff02::1:ff00:0, len=86
(debug) proxy::handle_solicit() saddr=2001:41d0:602:3fff:ff:ff:ff:fd, taddr=2001:41d0:602:3f5b::
(debug) checking 2001:41d0:602:XXXX::/64 against 2001:41d0:602:3f5b::
(debug) iface::read() len=86
(debug) iface::read_solicit() saddr=fe80::606a:fdff:fe4c:f6f8, daddr=2001:41d0:602:XXXX::2, len=86
(debug) iface::read() len=86
(debug) iface::read_solicit() saddr=fe80::1018:5dff:fede:7c64, daddr=2001:41d0:602:XXXX::2, len=86
(debug) iface::read() len=24
(debug) iface::read_advert() saddr=fe80::80a4:e7ab:ff7f:0, taddr=fe80::606a:fdff:fe4c:f6f8, len=24
(debug) iface::read() len=24
(debug) iface::read_advert() saddr=fe80::80a4:e7ab:ff7f:0, taddr=fe80::1018:5dff:fede:7c64, len=24
(debug) iface::read() len=86
(debug) iface::read_solicit() saddr=fe80::606a:fdff:fe4c:f6f8, daddr=fe80::d250:99ff:fede:ef0d, len=86
(debug) iface::read() len=86
(debug) iface::read_solicit() saddr=fe80::1018:5dff:fede:7c64, daddr=fe80::d250:99ff:fede:ef0d, len=86
(debug) reading routes
(debug) iface::read() len=86
(debug) iface::read_solicit() saddr=::, daddr=ff02::1:ff4c:f6f8, len=86
(debug) proxy::handle_solicit() saddr=::, taddr=fe80::606a:fdff:fe4c:f6f8
(debug) checking 2001:41d0:602:XXXX::/64 against fe80::606a:fdff:fe4c:f6f8
(debug) iface::read() len=86
(debug) iface::read_solicit() saddr=::, daddr=ff02::1:ff00:102, len=86
(debug) proxy::handle_solicit() saddr=::, taddr=2001:41d0:602:XXXX::102
(debug) checking 2001:41d0:602:XXXX::/64 against 2001:41d0:602:XXXX::102
(debug) session::create() pr=b3f65890, saddr=::, daddr=ff02::1:ff00:102, taddr=2001:41d0:602:XXXX::102 =b3f66540
(debug) iface::write_advert() daddr=::, taddr=2001:41d0:602:XXXX::102
(debug) iface::write() daddr=::, len=32
(debug) session::~session() this=b3f66540
(debug) iface::read() len=86
(debug) iface::read_solicit() saddr=2001:41d0:602:XXXX::102, daddr=ff02::1:ff00:2, len=86
(debug) proxy::handle_solicit() saddr=2001:41d0:602:XXXX::102, taddr=2001:41d0:602:XXXX::2
(debug) checking 2001:41d0:602:XXXX::/64 against 2001:41d0:602:XXXX::2
(debug) session::create() pr=b3f65890, saddr=2001:41d0:602:XXXX::102, daddr=ff02::1:ff00:2, taddr=2001:41d0:602:XXXX::2 =b3f66540
(debug) iface::write_advert() daddr=2001:41d0:602:XXXX::102, taddr=2001:41d0:602:XXXX::2
(debug) iface::write() daddr=2001:41d0:602:XXXX::102, len=32
(debug) session::~session() this=b3f66540
(debug) iface::read() len=86
(debug) iface::read_solicit() saddr=2001:41d0:602:XXXX::102, daddr=ff02::1:ff00:0, len=86
(debug) proxy::handle_solicit() saddr=2001:41d0:602:XXXX::102, taddr=2001:41d0:602:XXXX::
(debug) checking 2001:41d0:602:XXXX::/64 against 2001:41d0:602:XXXX::
(debug) session::create() pr=b3f65890, saddr=2001:41d0:602:XXXX::102, daddr=ff02::1:ff00:0, taddr=2001:41d0:602:XXXX:: =b3f66540
(debug) iface::write_advert() daddr=2001:41d0:602:XXXX::102, taddr=2001:41d0:602:XXXX::
(debug) iface::write() daddr=2001:41d0:602:XXXX::102, len=32
(debug) session::~session() this=b3f66540
(debug) iface::read() len=24
(debug) iface::read_advert() saddr=2001:41d0:602:XXXX:80a4:e7ab:ff7f:0, taddr=2001:41d0:602:XXXX::102, len=24
(debug) iface::read() len=86
(debug) iface::read_solicit() saddr=fe80::606a:fdff:fe4c:f6f8, daddr=fe80::d250:99ff:fede:ef0d, len=86
^C(error) Shutting down...
(notice) Bye
(debug) iface::~iface()
(debug) iface::allmulti() state=1, _name="vmbr0"

My sysctl.conf on the host:

net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.vmbr0.autoconf = 0

net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.default.accept_ra = 0
net.ipv6.conf.vmbr0.accept_ra = 0

net.ipv6.conf.all.router_solicitations = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.default.proxy_ndp = 1
net.ipv6.conf.all.proxy_ndp = 1

net.ipv4.ip_forward = 1

Host network configuration:

root@ovh1:~# ip -6 a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
4: vmbr0: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2001:41d0:602:XXXX::2/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::d250:99ff:fede:ef0d/64 scope link
       valid_lft forever preferred_lft forever
5: vmbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::3c05:3fff:fe3f:e8e8/64 scope link
       valid_lft forever preferred_lft forever
root@ovh1:~# ip -6 route
::1 dev lo proto kernel metric 256 pref medium
2001:41d0:602:XXXX::/64 dev vmbr0 proto kernel metric 256 pref medium
fe80::/64 dev vmbr0 proto kernel metric 256 pref medium
fe80::/64 dev vmbr1 proto kernel metric 256 pref medium
default via 2001:41d0:602:40ff:ff:ff:ff:ff dev vmbr0 proto kernel metric 1024 onlink pref medium

Guest network configuration:

root@ovh1:~# pct enter 102
root@dcbot:~# ip -6 a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0@if33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2001:41d0:602:XXXX::102/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::606a:fdff:fe4c:f6f8/64 scope link
       valid_lft forever preferred_lft forever
3: eth1@if34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::1cc1:f6ff:fef9:f38/64 scope link
       valid_lft forever preferred_lft forever
root@dcbot:~# ip -6 route
::1 dev lo proto kernel metric 256 pref medium
2001:41d0:602:XXXX::/64 dev eth0 proto kernel metric 256 pref medium
fe80::/64 dev eth1 proto kernel metric 256 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
default via 2001:41d0:602:XXXX::2 dev eth0 proto static metric 1024 pref medium

Host -> gateway works Host -> global IPv6 works Host -> Guest works

Guest -> gateway doesn't work Guest -> global IPv6 doesn't work Guest -> Hsot works

adiantek avatar Jun 13 '23 22:06 adiantek