물리적 인터페이스에서 docker 0 -> docker 컨테이너 eth0으로 트래픽을 전달합니다.

물리적 인터페이스에서 docker 0 -> docker 컨테이너 eth0으로 트래픽을 전달합니다.

2개의 인터페이스 카드가 있는 Ubuntu 16.04 데스크탑이 있습니다. Windows 시스템에서 Ubuntu 시스템의 enp6s0 인터페이스로 트래픽을 라우팅하려고 합니다. 이더넷 케이블을 사용하여 Windows 시스템과 Ubuntu 16.04를 연결했습니다.

Ubuntu 시스템의 물리적 인터페이스에서 동일한 트래픽을 docker0(172.17.0.1) 및 docker 컨테이너(172.17.0.2)로 전달하고 싶습니다.

현재 설정에 따르면* Docker 컨테이너가 있습니다.- 다리이렇게 하면 2개의 인터페이스가 있습니다. eth1은 ns3 프로젝트 IP 주소를 기반으로 구성됩니다.

root@c246ffcf5054:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:ac:11:00:02  
          inet addr:172.17.0.2  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:107 errors:0 dropped:0 overruns:0 frame:0
          TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:12491 (12.4 KB)  TX bytes:1802 (1.8 KB)

eth1      Link encap:Ethernet  HWaddr 12:34:88:5d:61:bd  
          inet addr:10.0.0.2  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1066938 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1432799 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1169075120 (1.1 GB)  TX bytes:2534973873 (2.5 GB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:151 errors:0 dropped:0 overruns:0 frame:0
          TX packets:151 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:12768 (12.7 KB)  TX bytes:12768 (12.7 KB)

Ubuntu 시스템에는 다음과 같은 IP 주소가 있습니다.

docker0   Link encap:Ethernet  HWaddr 02:42:fd:06:5f:68  
          inet addr:172.17.0.1  Bcast:172.17.255.255  Mask:255.255.0.0
          inet6 addr: fe80::42:fdff:fe06:5f68/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:25096 errors:0 dropped:0 overruns:0 frame:0
          TX packets:47902 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1342650 (1.3 MB)  TX bytes:76227846 (76.2 MB)

enp5s0    Link encap:Ethernet  HWaddr 68:05:ca:26:6f:0a  
          inet addr:192.168.0.16  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: 2601:641:481:2020:6a05:caff:fe26:6f0a/64 Scope:Global
          inet6 addr: fe80::6a05:caff:fe26:6f0a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:193989 errors:0 dropped:0 overruns:0 frame:0
          TX packets:109541 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:216544575 (216.5 MB)  TX bytes:12131093 (12.1 MB)
          Interrupt:16 Memory:fbce0000-fbd00000 

enp6s0    Link encap:Ethernet  HWaddr f4:6d:04:1a:76:40  
          inet addr:192.168.100.3  Bcast:192.168.100.255  Mask:255.255.255.0
          inet6 addr: fe80::f66d:4ff:fe1a:7640/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10064 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4933 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:798388 (798.3 KB)  TX bytes:504172 (504.1 KB)
          Interrupt:18 

Ubuntu 시스템과 Docker 컨테이너 모두에서 Windows 시스템을 ping할 수 있습니다. docker 0아래 iptable을 사용하여 Windows 컴퓨터에서 핑 및 도커 컨테이너를 사용할 수 있습니다 . 하지만 docker conatiner에서 tcpdump를 실행하면 트래픽이 없습니다. 누구든지 이 문제를 해결하도록 도와줄 수 있나요? 감사합니다!

iptables -t nat -I PREROUTING -i enp6s0 -p tcp -j DNAT --to-destination 172.17.0.1

여기에 이미지 설명을 입력하세요.

관련 정보