VPN 인터페이스를 통해 Docker 브리지 인터페이스의 트래픽을 라우팅하는 방법

VPN 인터페이스를 통해 Docker 브리지 인터페이스의 트래픽을 라우팅하는 방법

nordlynxVPN 인터페이스 , 기본 인터페이스 ens5및 도커 브리지 인터페이스 가 있습니다 br-83e694bd09ad. 현재 이 nordlynx인터페이스에는 이를 통해 라우팅되는 트래픽이 없지만 curl --interface nordlynx https://ifconfig.ioVPN 네트워크를 통해 요청을 전송할 수 있으며(VPN 서버의 IP 주소를 다시 전송) 간단히 통해 직접 curl https://ifconfig.io요청을 전송할 수 있습니다 (서버의 실제 IP 주소 표시 ens5).

내가 달성해야 할 것은 nordlynx기본 ens5. 그러나 서버의 나머지 "일반" 트래픽은 ens5평소와 같이 해당 인터페이스를 계속 사용해야 하며 Docker 트래픽만 라우팅되어야 합니다. SSH와 같이 서버의 노출된 포트에 계속 액세스할 수 있는 사람이 필요합니다. 실제 IP를 사용하여 다른 장치와 통신합니다(예: VPN을 통하지 않음).

내 연구에 따르면 docker 자체에는 이를 달성하기 위한 간단한 구성 옵션이 없는 것 같아서 어떻게든 일반 Linux 라우팅이나 iptables 규칙을 사용할 수 있기를 바랍니다. 하지만 여기에 그렇게 많은 경험이 있는지도 모르고 이 구성을 구현하는 방법에 대한 가이드도 찾을 수 없습니다.

이것이 현재 출력이다ip addr show

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
2: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
    link/ether 06:1b:b3:94:71:50 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    altname eni-03a0757ebcb70f7cd
    altname device-number-0
    inet 172.31.34.89/20 metric 512 brd 172.31.47.255 scope global dynamic ens5
       valid_lft 2072sec preferred_lft 2072sec
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:eb:b8:73:77 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
42: br-0c64a34b621d: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:a4:56:d1:4e brd ff:ff:ff:ff:ff:ff
    inet 172.19.0.1/16 brd 172.19.255.255 scope global br-0c64a34b621d
       valid_lft forever preferred_lft forever
45: br-83e694bd09ad: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:48:a7:8b:ba brd ff:ff:ff:ff:ff:ff
    inet 10.6.0.1/16 brd 10.6.255.255 scope global br-83e694bd09ad
       valid_lft forever preferred_lft forever
54: nordlynx: <POINTOPOINT,UP,LOWER_UP> mtu 8921 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none
    inet 10.5.0.2/32 scope global nordlynx
       valid_lft forever preferred_lft forever

ip route show출력 은 다음 과 같습니다 .

default via 172.31.32.1 dev ens5 proto dhcp src 172.31.34.89 metric 512
10.6.0.0/16 dev br-83e694bd09ad proto kernel scope link src 10.6.0.1 linkdown
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.19.0.0/16 dev br-0c64a34b621d proto kernel scope link src 172.19.0.1 linkdown
172.31.0.2 via 172.31.32.1 dev ens5 proto dhcp src 172.31.34.89 metric 512
172.31.32.0/20 dev ens5 proto kernel scope link src 172.31.34.89 metric 512
172.31.32.1 dev ens5 proto dhcp scope link src 172.31.34.89 metric 512

출력 ip -details link show dev nordlynx:

55: nordlynx: <POINTOPOINT,UP,LOWER_UP> mtu 8921 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/none  promiscuity 0 minmtu 0 maxmtu 2147483552
    wireguard addrgenmode none numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535

출력 ip rule:

0:  from all lookup local
32766:  from all lookup main
32767:  from all lookup default

출력 ip route show table local:

local 10.5.0.2 dev nordlynx proto kernel scope host src 10.5.0.2
local 10.6.0.1 dev br-83e694bd09ad proto kernel scope host src 10.6.0.1
broadcast 10.6.255.255 dev br-83e694bd09ad proto kernel scope link src 10.6.0.1 linkdown
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
local 172.17.0.1 dev docker0 proto kernel scope host src 172.17.0.1
broadcast 172.17.255.255 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
local 172.19.0.1 dev br-0c64a34b621d proto kernel scope host src 172.19.0.1
broadcast 172.19.255.255 dev br-0c64a34b621d proto kernel scope link src 172.19.0.1 linkdown
local 172.31.34.89 dev ens5 proto kernel scope host src 172.31.34.89
broadcast 172.31.47.255 dev ens5 proto kernel scope link src 172.31.34.89

출력 ip route show table main:

default via 172.31.32.1 dev ens5 proto dhcp src 172.31.34.89 metric 512
10.6.0.0/16 dev br-83e694bd09ad proto kernel scope link src 10.6.0.1 linkdown
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.19.0.0/16 dev br-0c64a34b621d proto kernel scope link src 172.19.0.1 linkdown
172.31.0.2 via 172.31.32.1 dev ens5 proto dhcp src 172.31.34.89 metric 512
172.31.32.0/20 dev ens5 proto kernel scope link src 172.31.34.89 metric 512
172.31.32.1 dev ens5 proto dhcp scope link src 172.31.34.89 metric 512

출력 ip route show table default:

Error: ipv4: FIB table does not exist.
Dump terminated

관련 정보