Skocz do zawartości
Zaloguj się, aby obserwować  
Kashi66

LXC - Konfiguracja interfejsu sieciowego

Polecane posty

Witam.

Stworzyłem sobie kontener używając LXC na moim VPSie(debian 8) z OVH.

Teraz mam problem bo nie wiem jak skonfigurować interfejs sieciowy by kontenery miały dostęp do internetu.

Liczę ze ktoś mnie naprowadzi.

Edytowano przez Kashi66 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Interfejs kontenera to jedno, ale na interfejsie VPS'a potrzebujesz zrobić maskaradę i włączyć IP forwarding.

  • Upvote 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Możesz podpiąć kontener pod istniejący interfejs lub pod bridge który będzie podpięty pod interfejs. Lub bridge bez podpinania i robisz forwarding + nat.

 

Bridge z natem: https://wiki.debian.org/LXC/SimpleBridge

Bridge podpięty do veth: https://wiki.debian.org/LXC/VlanNetworking

 

Lub jak podpinasz pod istniejący interfejs zgodnie z tym: https://linuxcontainers.org/lxc/manpages//man5/lxc.container.conf.5.html

zmieniasz tylko lxc.network.type na phys i dajesz nazwę istniejącego interfejsu.

  • Upvote 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No to tak.

Sposób z natem:

Po wpisaniu

systemctl enable lxc-net

wywala:

Failed to execute operation: No such file or directory

po mimo tego że plik znajduje sie w /etc/default

 

Sposób z istniejącym interfejsem:

Jak podpinałem pod istniejący interfejs to wycinało mi sieć na VPSie.

 

Sposób z veth:

Zrobiłem bridge do veth, ta alternatywna opcja niżej bo ta wyżej też wycinała mi sieć.

Ta opcja niżej po dodaniu interfejsu mogłem go pingować, chciałem dodać go do konenera z takim configiem:

lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = lxc-bridge-nat
lxc.network.ipv4 = 192.168.100.10/24
lxc.network.ipv4.gateway = 192.168.100.1

Przy próbie uruchomienia kontenera wywala błąd:

lxc-start 1468097782.471 ERROR    lxc_conf - Cannot add ipv4 gateway for eth0 when not bringing up the interface
lxc-start 1468097782.471 ERROR    lxc_conf - failed to setup netdev
lxc-start 1468097782.471 ERROR    lxc_conf - failed to setup the network for 'kontener'
lxc-start 1468097782.471 ERROR    lxc_start - failed to setup the container
lxc-start 1468097782.471 ERROR    lxc_sync - invalid sequence number 1. expected 2

@edit

 

Ale jestem głupi....

/etc/init.d/networking restart i po problemie.

 

Dziękuję wam za pomoc :)

 

 

Edytowano przez Kashi66 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No i problem znowu.

Po restarcie VPSa nie chce zaskoczyć mostek

      lxc-start 1468103482.525 ERROR    lxc_conf - failed to attach 'vethLFH6IL' to the bridge 'lxc-bridge-nat' : No such device
      lxc-start 1468103482.549 ERROR    lxc_conf - failed to create netdev
      lxc-start 1468103482.549 ERROR    lxc_start - failed to create the network
      lxc-start 1468103482.549 ERROR    lxc_start - failed to spawn 'kontener'

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Takie miałem przed restartowaniem VPSa

auto lxc-bridge-nat
iface lxc-bridge-nat inet static
        bridge_ports none
        bridge_fd 0
        bridge_maxwait 0
        address 192.168.100.1
        netmask 255.255.255.0
        up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Po restarcie zamieniło sie to na:

iface lxc-bridge-nat inet static
	address 192.168.100.1
	netmask 255.255.255.0
	broadcast 192.168.100.255
	network 192.168.100.0

Wklepałem to co wcześniej i kontener uruchomił sie ale nie działa forwardowanie.

Działało przed zrestartowaniem VPSa, potem po wklepaniu na nowo tego wyżej zaskoczyło ale po kolejnym restarcie już nie działa. Sprawdziłem plik interfaces i mam to co powinno być a nie działa :/

Taką regułke mam w CSF

MOJE_IP|5555|192.168.100.10|8087|udp
Edytowano przez Kashi66 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nat nie działa dlatego ze najpierw wstają interfejsy z /etc/networking/interfaces a potem CSF. CSF działa tak że czyści całe iptables, więc wszystko co dodasz w /etc/networking/interfaces w up, jest kasowane przez CSF.

Jeśli chcesz dodać MASQUERADE zrób to w /etc/csf/csfpre.sh

 

Żeby działał internet, a kontener był za nat'em robisz:

# INTERNET
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Dodatkowo żeby csf przepuszczał forwardy na inne interfejsy:

iptables -A FORWARD -i eth0 -o lxc-bridge-nat -j ACCEPT
iptables -A FORWARD -i lxc-bridge-nat -o eth0 -j ACCEPT

Dopiero teraz zadziałają Ci przekierowania w /etc/csf/csf.redirect

 

Opcjonalnie możesz to wszystko (poza przekierowaniem portów) dodać w skrypcie startowym kontenera, jest możliwość utworzenia pliku sh który wykonywany jest przed jego startem.

Osobiście uważam że ma to sens gdy mamy do czynienia z kontenerem który nie ma autostartu.

 

  • Upvote 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Po wpisaniu w csfpre.sh i zrestartowaniu CSF działało ale po zrestartowaniu kontenera już nie.

Dodałem tak jak pisałeś do pre-start.sh kontenera i działa :)

Dziękuje ci za pomoc.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Po wpisaniu w csfpre.sh i zrestartowaniu CSF działało ale po zrestartowaniu kontenera już nie.

Dodałem tak jak pisałeś do pre-start.sh kontenera i działa :)

Dziękuje ci za pomoc.

 

Spoko miesiąc czasu ponad siedziałem nad kontenerami :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość
Temat jest zablokowany i nie można w nim pisać.
Zaloguj się, aby obserwować  

×