Ubuntu의 두 물리적 포트 간의 라우팅 문제

Ubuntu의 두 물리적 포트 간의 라우팅 문제

다음 문제를 해결하려고 합니다.

  • 우분투 18.04.5
  • 인텔 i3

두 개의 물리적 포트(enp1s0 및 enp2s0)가 있는데, 라우터는 enp1s0에 연결되고 카메라는 enp2s0에 연결됩니다.

  • enp1s0은 192.168.1.10입니다.
  • 연결된 라우터는 192.168.1.1입니다.
  • enp2s0은 192.168.0.10입니다.
  • 카메라는 192.168.0.1입니다.

카메라를 통해 인터넷에 접속하고 싶습니다. (예: ping -I enp2s0 1.1.1.1).

|———--|    |—--——|
enp1s0      enp2s0       
|_____|    |_____|
    |         |
    |         |
  |--———|      Camera
  Router
  |_____|
    |
    |
    Internet

나는 다음 규칙을 시도했습니다.

  • 다음을 통해 IP 전달을 활성화합니다.

      #vim /etc/sysctl.conf
      net.ipv4.ip_forward = 1
    
      #sysctl -p
    
  • IP 테이블 업데이트

      iptables -A FORWARD -i enp2s0 -o enp1s0 -j ACCEPT
      iptables -A FORWARD -i enp1s0 -o enp2s0 -j ACCEPT
      iptables -t nat -A POSTROUTING -o enp1s0 -J MASQUERADE
      iptables -t nat -A POSTROUTING -o enp2s0 -J MASQUERADE
    

여전히 두 인터페이스를 사용하여 통신할 수 없습니다. enp2s0에서 enp1s0을 ping한 다음 enp2s0에서 인터넷에 액세스하고 싶습니다. 서로 다른 서브넷에 있어야 합니다.

이 두 서브넷이 서로 통신할 수 있도록 여기에서 라우팅 문제를 이해하는 데 도움을 줄 수 있는 사람이 있습니까?

답변1

따라서 당신이 해야 할 일은 전체 서브넷 192.168.0.*/24(그 안에 카메라가 있음)을 가져와 Ubuntu 시스템에서 NAT를 사용하여 해당 서브넷의 모든 것이 실제로 Ubuntu 시스템에서 오는 것처럼 가장하는 것입니다. 라우터가 서브넷의 연결만 허용하기 때문에 이 작업을 수행해야 합니다 192.168.1.*/24(라우터에 이러한 제한이 없으면 NAT 없이 일반 라우팅을 수행할 수 있습니다).

이것은 당신이 필요하다는 것을 의미합니다하나의NAT의 규칙은 나가는 인터페이스의 규칙입니다 enp1s0. NAT는 연결 추적기를 통해 작동하므로 나가는 패킷의 경우 소스 주소가 링크의 주소로 대체되고 enp1s0반환 패킷의 경우 대상 주소가 원래 소스 주소로 대체됩니다.

따라서 단일 규칙을 사용한 다음 카메라에서 연결을 시도하는 작업을 수행해 보십시오(또는 카메라를 두 번째 컴퓨터로 교체하여 연결을 시도하십시오 ping). 너할 수 없다ping -I전달 테이블을 사용하지 않으므로 Ubuntu 시스템에서 테스트되었습니다 .

설정이 여전히 작동하지 않으면 카메라에서 트래픽을 생성하는 동안 tcpdump및 를 모두 수행 하면 다른 문제의 범위를 좁힐 수 있는 충분한 정보가 제공됩니다 enp1s0.enp2s0

답변2

원래는 이것을 편집으로 추가했지만 여기에는 답변이 있습니다.

나는 iptableslush를 사용하여 이전 규칙을 제거하고(비록 재부팅 시 수행되었다고 생각하지만) 처음에 정확하다고 생각했던 nat 규칙을 변경했습니다.

iptables --flush
iptables --table nat --flush
iptables --delete-chain

iptables --table nat --delete-chain

iptables --table nat --append POSTROUTING --out-interface enp1s0 -j MASQUERADE
iptables --append FORWARD --in-interface enp2s0 -j ACCEPT

관련 정보