Am un VPS cu un IP public, 64.x.x.x
care i se atribuie enp1s0
.
Scopul meu este să am containere LXC care rulează pe acest VPS care au conectivitate cu gazda și cu WAN. Asta înseamnă că traficul este direcționat din Container > lxcbr0 > enp1s0 > WAN
Am urmat procedura standard în LXC, care creează o punte lxcbr0
și un dispozitiv veth conectat la pod. Din container pot ping gazda și, de asemenea, IP-ul public al gazdei. Dar nu pot ajunge la WAN! Din câte știu eu am făcut totul bine în configurație, dar evident că nu am făcut-o.
Gazdă:
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue stare UNKNOWN grup implicit qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft pentru totdeauna preferred_lft pentru totdeauna
inet6 ::1/128 scope host
valid_lft pentru totdeauna preferred_lft pentru totdeauna
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP grup implicit qlen 1000
link/eter xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 64.x.x.x/32 brd 64.x.x.250 scope global dynamic enp1s0
valid_lft 84329sec preferred_lft 84329sec
inet6 fe80::9400:1ff:fe0e:33dc/64 scope link
valid_lft pentru totdeauna preferred_lft pentru totdeauna
3: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue stare UP grup implicit qlen 1000
link/ether 00:16:3e:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 10.0.3.1/24 brd 10.0.3.255 scope global lxcbr0
valid_lft pentru totdeauna preferred_lft pentru totdeauna
inet6 fe80::216:3eff:fe00:0/64 scope link
valid_lft pentru totdeauna preferred_lft pentru totdeauna
4: vethf6wBpH@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master lxcbr0 stare UP grup implicit qlen 1000
link/ether fe:1f:bc:2d:41:3c brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::fc1f:bcff:fe2d:413c/64 scope link
valid_lft pentru totdeauna preferred_lft pentru totdeauna
# iptables -L -t nat -v
PRERUTARE în lanț (politica ACCEPT 0 pachete, 0 octeți)
pkts bytes target prot opt in out source destination
INTRARE în lanț (politica ACCEPT 0 pachete, 0 octeți)
pkts bytes target prot opt in out source destination
Ieșire în lanț (politica ACCEPT 0 pachete, 0 octeți)
pkts bytes target prot opt in out source destination
POSTROUTING în lanț (politica ACCEPT 0 pachete, 0 octeți)
pkts bytes target prot opt in out source destination
2 124 MASQUERADE toate -- orice orice 10.0.3.0/24 !10.0.3.0/24
# traseu -n
Tabelul de rutare IP al nucleului
Destination Gateway Genmask Flags Metric Ref Utilizare Iface
0.0.0.0 17.x.x.1 0.0.0.0 UG 0 0 0 enp1s0
10.0.3.0 0.0.0.0 255.255.255.0 U 0 0 0 lxcbr0
17.x.x.1 0.0.0.0 255.255.255.255 UH 0 0 0 enp1s0
# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
# iptables -L FORWARD
Lanț FORWARD (politica ACCEPT)
target prot opt sursă destinație
ACCEPT pe toate -- oriunde oriunde
ACCEPT pe toate -- oriunde oriunde state RELATED,STABLISHED
Container:
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue stare UNKNOWN grup implicit qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft pentru totdeauna preferred_lft pentru totdeauna
inet6 ::1/128 scope host
valid_lft pentru totdeauna preferred_lft pentru totdeauna
2: eth0@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue stare UP grup implicit qlen 1000
link/ether 4e:53:3c:48:56:ad brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.0.3.25/24 brd 10.0.3.255 scope global eth0
valid_lft pentru totdeauna preferred_lft pentru totdeauna
inet6 fe80::4c53:3cff:fe48:56ad/64 scope link
valid_lft pentru totdeauna preferred_lft pentru totdeauna
# traseu -n
Tabelul de rutare IP al nucleului
Destination Gateway Genmask Flags Metric Ref Utilizare Iface
0.0.0.0 10.0.3.1 0.0.0.0 UG 0 0 0 eth0
10.0.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
M-am uitat la tcpdump -i lxcbr0 icmp
pe gazdă. Ping cerere trece, dar nu văd niciuna răspuns. tcpdump -i enp1s0 icmp
nu afișează nicio activitate în timp ce dau ping la WAN din container.
Apreciez toate gândurile despre asta!