История изменений
Исправление TepakoT, (текущая версия) :
Нахрена тебе «lxc.net.0.l2proxy = 1» в режиме router ?
Я человек простой, вижу конфиг - сразу пихаю себе.
LXC 3.2.1 has been released https://discuss.linuxcontainers.org/t/lxc-3-2-1-has-been-released/5322 Networking: Add router veth mode
lxc.net.0.type = veth
lxc.net.0.veth.mode = router
lxc.net.0.link = eth0
lxc.net.0.flags = up
lxc.net.0.ipv4.address = 192.168.1.x/32
lxc.net.0.ipv6.address = 2a02:xxx:xxx:1::x/128
lxc.net.0.ipv4.gateway = auto
lxc.net.0.ipv6.gateway = auto
lxc.net.0.link = host-eth0
lxc.net.0.l2proxy = 1
Я правда не читал ни разу, что там снизу написано, торопился очень, «поехали, потом заведёшся».
Containers can optionally have IPs accessible on local LAN at layer 2 using the existing l2proxy and link settings.
Если нет lxc.net.Х.link то veth.mode = router
Неть.
veth: a virtual ethernet pair device is created with one side assigned to the container and the other side on the host. lxc.net.[i].veth.mode specifies the mode the veth parent will use on the host. The accepted modes are bridge and router. The mode defaults to bridge if not specified.
https://linuxcontainers.org/lxc/manpages/man5/lxc.container.conf.5.html
Все нормально пингуется если есть маршрут в эту подсеть или используется NAT.
Если? В режиме router маршрут рисуется автоматом при запуске контейнера.
~ ip route
default via 10.10.10.2 dev eth0
10.10.10.0/24 dev eth0 proto kernel scope link src 10.10.10.10
10.10.10.234 dev test4veth scope link
veth - это p2p прикидывающаяся сетью
Тут нихрена не понял, не надо меня путать, я сам запутаюсь, с моими-то познаниями. veth это интерфейс, а не сеть. При чём тут одноранговая сеть p2p не понял. Для общения с контейнером нам надо или мост veth<->host_eth0 или veth должен уметь быть интерфейсом (mode=router?). Вот эта цитата мне не понятна:
Additionally Proxy ARP and Proxy NDP entries are added on the host side veth interface for the gateway IPs defined in the container to allow the container to reach the host.
И как я своим умишком понимаю без layer 2 и forward ничего работать не будет.
Controls whether layer 2 IP neighbour proxy entries will be added to the lxc.net.[i].link interface for the IP addresses of the container. Can be set to 0 or 1. Defaults to 0. When used with IPv4 addresses, the following sysctl values need to be set: net.ipv4.conf.[link].forwarding=1
Это то из чего я строю свои выводы. И это даже работает.
Информация - мои заключения - мой конфиг - работает - похоже lxc баг забывает включать proxy_arp.
Информация - твои заключения - «Если нет lxc.net.Х.link то veth.mode = router» - «The mode defaults to bridge if not specified.» - не должно работать в режиме router.
Исходная версия TepakoT, :
Нахрена тебе «lxc.net.0.l2proxy = 1» в режиме router ?
Я человек простой, вижу конфиг - сразу пихаю себе.
LXC 3.2.1 has been released https://discuss.linuxcontainers.org/t/lxc-3-2-1-has-been-released/5322 Networking: Add router veth mode
lxc.net.0.type = veth
lxc.net.0.veth.mode = router
lxc.net.0.link = eth0
lxc.net.0.flags = up
lxc.net.0.ipv4.address = 192.168.1.x/32
lxc.net.0.ipv6.address = 2a02:xxx:xxx:1::x/128
lxc.net.0.ipv4.gateway = auto
lxc.net.0.ipv6.gateway = auto
lxc.net.0.link = host-eth0
lxc.net.0.l2proxy = 1
Я правда не читал ни разу, что там снизу написано, торопился очень, «поехали, потом заведёшся».
Containers can optionally have IPs accessible on local LAN at layer 2 using the existing l2proxy and link settings.
Если нет lxc.net.Х.link то veth.mode = router
Неть.
veth: a virtual ethernet pair device is created with one side assigned to the container and the other side on the host. lxc.net.[i].veth.mode specifies the mode the veth parent will use on the host. The accepted modes are bridge and router. The mode defaults to bridge if not specified.
https://linuxcontainers.org/lxc/manpages/man5/lxc.container.conf.5.html
Все нормально пингуется если есть маршрут в эту подсеть или используется NAT.
Если? В режиме router маршрут рисуется автоматом при запуске контейнера.
~ ip route
default via 10.10.10.2 dev eth0
10.10.10.0/24 dev eth0 proto kernel scope link src 10.10.10.10
10.10.10.234 dev test4veth scope link
veth - это p2p прикидывающаяся сетью
Тут нихрена не понял, не надо меня путать, я сам запутаюсь, с моими-то познаниями. veth это интерфейс, а не сеть. При чём тут одноранговая сеть p2p не понял. Для общения с контейнером нам надо или мост veth<->host_eth0 или veth должен уметь быть интерфейсом (mode=router?). Вот эта цитата мне не понятна:
Additionally Proxy ARP and Proxy NDP entries are added on the host side veth interface for the gateway IPs defined in the container to allow the container to reach the host.
И как я своим умишком понимаю без layer 2 и forward ничего работать не будет.
Controls whether layer 2 IP neighbour proxy entries will be added to the lxc.net.[i].link interface for the IP addresses of the container. Can be set to 0 or 1. Defaults to 0. When used with IPv4 addresses, the following sysctl values need to be set: net.ipv4.conf.[link].forwarding=1
Это то из чего я строю свои выводы. И это даже работает. Информация - мои заключения - мой конфиг - работает - похоже lxc баг забывает включать proxy_arp.
Информация - твои заключения - «Если нет lxc.net.Х.link то veth.mode = router» - «The mode defaults to bridge if not specified.» - не должно работать в режиме router.