У меня есть 2 общедоступных IP-адреса (например, 1.2.3.4 и 1.2.3.10) и несколько виртуальных машин, использующих LXC / LXD. Я хочу указать оба общедоступных IP-адреса для определенных портов на контейнеры lxc с использованием NAT.
Он уже работал, но как-то сломался. На данный момент 1.2.3.4 работает нормально, но 1.2.3.10 не работает. 1.2.3.10 недоступен на портах 80 и 443 и недоступен для проверки связи.
Если я установлю 192.168.102.102 mydomain
в /etc/hosts
curl https://mydomain
работает, но когда я меняю его на `` 1.2.3.10 mydomain` curl, получается тайм-аут. Так что я думаю, что это проблема с сетью.
Я создал правила iptables
iptables -I FORWARD -m state -d 192.168.102.1/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -I PREROUTING -p tcp -d 1.2.3.10 --dport 80 -j DNAT --to-destination 192.168.102.102:80
iptables -t nat -I PREROUTING -p tcp -d 1.2.3.10--dport 443 -j DNAT --to-destination 192.168.102.102:443
iptables -t nat -I PREROUTING -p tcp -d 1.2.3.4 --dport 80 -j DNAT --to-destination 192.168.102.102:80
iptables -t nat -I PREROUTING -p tcp -d 1.2.3.4 --dport 443 -j DNAT --to-destination 192.168.102.102:443
Вывод iptables:
$ cat /proc/sys/net/ipv4/ip_forward
1
$ iptables -t nat -v -x -n -L
Chain PREROUTING (policy ACCEPT 71 packets, 3774 bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- * * 0.0.0.0/0 1.2.3.10 tcp dpt:443 to:192.168.102.102:443
0 0 DNAT tcp -- * * 0.0.0.0/0 1.2.3.10 tcp dpt:80 to:192.168.102.102:80
157341 7227769 DNAT tcp -- * * 0.0.0.0/0 1.2.3.4 tcp dpt:21 to:192.168.102.102:21
4114 166824 DNAT tcp -- * * 0.0.0.0/0 1.2.3.4 tcp dpt:20 to:192.168.102.102:20
5380823 253642962 DNAT tcp -- * * 0.0.0.0/0 1.2.3.4 tcp dpt:443 to:192.168.102.102:443
3771093 182834495 DNAT tcp -- * * 0.0.0.0/0 1.2.3.4 tcp dpt:80 to:192.168.102.102:80
925 39230 DNAT tcp -- * * 0.0.0.0/0 1.2.3.4 tcp dpt:995 to:192.168.102.102:995
4358 239605 DNAT tcp -- * * 0.0.0.0/0 1.2.3.4 tcp dpt:110 to:192.168.102.102:110
24716 1335753 DNAT tcp -- * * 0.0.0.0/0 1.2.3.4 tcp dpt:25 to:192.168.102.102:25
3593156 215526288 DOCKER all -- * * 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type LOCAL
Chain INPUT (policy ACCEPT 68 packets, 3618 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 54 packets, 3223 bytes)
pkts bytes target prot opt in out source destination
16 1032 DOCKER all -- * * 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE match dst-type LOCAL
Chain POSTROUTING (policy ACCEPT 78 packets, 4587 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * !docker0 172.17.0.0/16 0.0.0.0/0
0 0 RETURN all -- * * 192.168.101.0/24 224.0.0.0/24
0 0 RETURN all -- * * 192.168.101.0/24 255.255.255.255
90982 4983678 MASQUERADE tcp -- * * 192.168.101.0/24 !192.168.101.0/24 masq ports: 1024-65535
47 3572 MASQUERADE udp -- * * 192.168.101.0/24 !192.168.101.0/24 masq ports: 1024-65535
0 0 MASQUERADE all -- * * 192.168.101.0/24 !192.168.101.0/24
0 0 MASQUERADE all -- * * 10.196.61.0/24 !10.196.61.0/24 /* generated for LXD network lxdbr1 */
310293 19384321 MASQUERADE all -- * * 192.168.102.0/24 !192.168.102.0/24 /* generated for LXD network lxdbr0 */
0 0 MASQUERADE all -- * * 192.168.100.0/24 !192.168.100.0/24
Chain DOCKER (2 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- docker0 * 0.0.0.0/0 0.0.0.0/0
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 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 forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
inet 1.2.3.4/27 brd 1.2.3.223 scope global eth0
valid_lft forever preferred_lft forever
inet 1.2.3.10/31 scope global eth0
valid_lft forever preferred_lft forever
inet6 XXXXXXXX::2/64 scope global
valid_lft forever preferred_lft forever
inet6 XXXXXX/64 scope link
valid_lft forever preferred_lft forever
3: lxdbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether fe:34:c1:5d:77:a4 brd ff:ff:ff:ff:ff:ff
inet 192.168.102.1/24 scope global lxdbr0
valid_lft forever preferred_lft forever
inet6 fe80::50fd:55ff:fe2f:b8f5/64 scope link
valid_lft forever preferred_lft forever
[...]