Приходиться изучать докер, а то этих докеров везде насовали, а просто приложений бинарных или хотя бы готовых виртуалок нет… Сразу скажу, я не эксперт в сетях.
Последний докер, все дела. Авто создание iptables правил для докера отключено в системд сервисе (у меня их нет, я ими не пользуюсь, у меня nftables). Создал свою пользовательскую сеть и присоединил к ней
NETWORK ID NAME DRIVER SCOPE
46176c91bd13 bridge bridge local
e333dab226db host host local
4baab8ccfc49 my-docker-net bridge local
d152559db207 none null local
docker network inspect my-docker-net
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"2bddcafec9ceccfbcd487813182caeba9e3bd79bdc29da73d0f60c963f3aaeeb": {
"Name": "alpine1",
"EndpointID": "ceeaf90446fc59816a8c186a3017a3da4a7ef4d26a40eb3b4b562d3bd6aa1777",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
В итоге на хосте имею 3 новых интерфейса
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:04:2e:d9:f6 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:4ff:fe2e:d9f6/64 scope link
valid_lft forever preferred_lft forever
308: br-4baab8ccfc49: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:0e:ca:04:45 brd ff:ff:ff:ff:ff:ff
inet 172.18.0.1/16 brd 172.18.255.255 scope global br-4baab8ccfc49
valid_lft forever preferred_lft forever
inet6 fe80::42:eff:feca:445/64 scope link
valid_lft forever preferred_lft forever
370: vethb40c7f3@if369: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-4baab8ccfc49 state UP group default
link/ether 4e:99:c7:eb:6a:c2 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::4c99:c7ff:feeb:6ac2/64 scope link
valid_lft forever preferred_lft forever
ЕЯПП докер0 это дефолтный интерфейс, бр-4б… это интерфейс, который появился, когда я создал свою сеть, а последний не понятно, что это, но вроде появился, когда я приконнектил контейнер к своей сети. Внутри контейнера с алпайном ситуация такая:
/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 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
369: eth0@if370: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP
link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.18.0.2/16 brd 172.18.255.255 scope global eth0
valid_lft forever preferred_lft forever
/ # ip route
default via 172.18.0.1 dev eth0
172.18.0.0/16 dev eth0 scope link src 172.18.0.2
На хосте включен форвардинг, в нфтейблс конфиг добавлено
define DOCKERDEV = br-4baab8ccfc49
define DOCKERNET = 172.18.0.0/24
chain my_forward {
type filter hook forward priority filter; policy accept;
}
table ip nat {
chain postrouting {
type nat hook postrouting priority 100;
ip saddr $DOCKERNET oifname $ETHDEV masquerade
}
chain prerouting {
type nat hook prerouting priority 0;
}
}
Конфиг нфтейблс ессено применен. Однако доступа из контейнера в интернет нет. Пинги не проходят, резолвы тоже. Где я сделал что-то не так? Каким боком тут интерфейс vethb40c7f3@if369 ?