두 개의 이더넷 카드를 통해 트래픽을 전달하는 방법은 무엇입니까?

두 개의 이더넷 카드를 통해 트래픽을 전달하는 방법은 무엇입니까?

제대로 설정하는 방법을 찾는 데 어려움을 겪고 있습니다. 나는 그것을 설명하기 위해 Google 쿼리를 거의 공식화할 수 없으므로 최선을 다하겠습니다.

두 개의 네트워크 카드가 있는 Ubuntu PC가 있습니다.

eth0(192.168.1.0)은 기본 기본 게이트웨이에 연결되어 인터넷에 연결되고,
eth1(192.168.176.0)은 여러 IP 카메라가 연결된 네트워크 스위치에 연결됩니다.

라우터 PC에서 IP 전달, iptables 규칙 및 호스트를 활성화했습니다. eth1 네트워크의 호스트는 인터넷과 eth0 네트워크의 다른 호스트에 액세스할 수 있습니다. 그래서 좋습니다.

지금 하고 싶은 일은 eth0 네트워크의 호스트가 eth1 네트워크의 호스트에 액세스하도록 허용하는 것입니다.

컴퓨터는 eth0 네트워크에 있지만 웹캠은 eth1 네트워크에 있습니다. 두 개의 NIC 카드가 있는 컴퓨터는 브리지 역할을 합니다. 궁극적으로 나는 eth0의 컴퓨터가 eth1의 IP 카메라를 볼 수 있기를 원합니다.

매핑 시도 중: 192.168.1.1의 호스트는 192.168.176.1의 호스트를 볼 수 있어야 하지만 볼 수 없습니다.

192.168.176.1의 호스트는 192.168.1.1의 호스트를 볼 수 있습니다(이러한 호스트는 인터넷에도 액세스할 수 있습니다). 그래서 여기에서는 모든 것이 괜찮습니다.

지금까지 나는 이러한 IP 규칙을 가지고 있으며 eth1 네트워크가 나가는 것을 허용합니다.

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

내 질문은: eth0 네트워크가 eth1 네트워크의 호스트에 어떻게 도달합니까?

eth1 네트워크에 액세스하려는 각 컴퓨터에 경로를 추가해야 합니까?

라우터 PC에서 eth0과 eth1 인터페이스 간의 전달을 설정해야 합니까?

현재 추가 라우팅 명령, /etc/network/interfaces 및 iptables 규칙은 다음과 같습니다.

(맥에서는 :)
sudo 경로 -n 추가 -net 192.168.176.0/24 192.168.1.1

(NIC가 두 개인 PC의 경우) /etc/네트워크/인터페이스 #메인 인터페이스 enp3s0 자동 enp1s0 iface enp1s0 inet 정적 주소 192.168.1.12 넷마스크 255.255.255.0 네트워크 192.168.1.0 게이트웨이 192.168.1.1 DNS 이름 서버 8.8.4.4 8.8.8.8

#보조 인터페이스 enp3s0 자동 enp3s0 iface enp3s0 inet 정적 주소 192.168.176.1 넷마스크 255.255.255.0 방송 192.168.176.255 네트워크 192.168.176.0

(NIC가 두 개인 PC의 경우) iptables -t 필터-A 전달-i enp1s0 -o enp3s0 -j ​​​​수락 iptables -t 필터-A 전달-i enp3s0 -o enp1s0 -j ​​​​수락 iptables -t nat -A POSTROUTING -j MASQUERADE

답변1

문제는 주로 호스트의 라우팅 구성입니다. 현재 설정은 다음과 같다고 가정합니다.

  • enp1s0 인터페이스의 IP 주소는 192.168.1.1/24입니다.
  • enp3s0 인터페이스의 IP 주소는 192.168.176.1/24입니다.

두 IP 네트워크 간의 호스트가 통신하려면 라우팅 테이블에 전용 항목이 필요합니다.

  1. 네트워크 카메라에 접속해야 하는 192.168.1.0/24의 호스트는 192.168.1.1이 192.168.176.0/24의 라우터라는 것을 알아야 합니다.
  2. 192.168.176.0/24의 호스트에는 192.168.1.0/24로의 경로가 필요합니다.

이제 IP 카메라의 정적/DHCP 구성이 기본 트래픽을 192.168.176.1을 통해 라우팅하여 패킷을 PC로 보낼 위치를 알 수 있다고 가정합니다. 그러나 192.168.1.0/24의 PC에는 인터넷 라우터라는 기본 항목이 하나만 있습니다. 따라서 192.168.176.0/24로 전송된 모든 패킷은 그곳으로 전송되고 손실됩니다.

당신은 할 수

  • "클래스 없는 고정 경로" 옵션을 사용하여 192.168.1.1을 통해 192.168.176.0/24까지 고정 경로를 알리도록 192.168.1.0/24에서 DHCP 라우터를 구성합니다.
  • 192.168.1.1을 PC의 192.168.176.0/24에 대한 게이트웨이로 수동으로 추가

또한 iptables 규칙을 새로 고쳐야 합니다. POSTROUTING 규칙은 라우팅을 엉망으로 만들고 FORWARD 규칙은 쓸모가 없습니다(DROP 정책이 없는 한).

iptables -t nat -F POSTROUTING
iptables -F FORWARD

카메라는 기본 게이트웨이 192.168.176.1과 nat POSTROUTING 항목으로 구성되어 있으므로 PC를 볼 수 있습니다. 예를 들어, IP 카메라 192.168.176.10이 PC 192.168.1.20으로 패킷을 보내는 경우 해당 패킷은 먼저 기본 게이트웨이 192.168.176.1(enp3s0)로 전송됩니다. Ubuntu PC는 패킷을 enp1s0으로 전달하여 보낸 사람의 주소를 자체 주소 192.168.1.1로 다시 씁니다. 192.168.1.20이 패킷으로 응답하면 대체된 주소 192.168.1.1로 다시 보냅니다. 우분투 PC는 이를 수신하면 IP 카메라 192.168.176.10에 대한 응답임을 알게 됩니다. 따라서 대상 주소를 192.168.176.10으로 다시 쓰고 enp3s0을 통해 전달합니다.

이제 NAT를 사용하여 패킷을 엉망으로 만들고 싶지 않고 IP 라우팅만 원합니다. 이전 예에서는 카메라 IP 주소가 Ubuntu PC로 대체되었기 때문에 PC에서는 카메라 IP 주소를 192.168.1.1로 인식합니다. 올바른 경로를 설정한 후,

  • PC와 카메라에 의해 시작된 연결에서 PC는 카메라의 IP 주소가 192.168.176.10임을 알게 됩니다.
  • 카메라에서 PC로의 연결이 시작된 경우 PC에는 여전히 카메라 IP 주소가 192.168.1.1(NAT 주소)로 표시됩니다.

간단한 IP 장치의 경우 두 번째 것은 덜 중요합니다. 그러나 이로 인해 잘못된 동작이 발생할 수 있습니다. 예를 들어, 관리되는 스위치가 있고 SNMP 트랩을 사용하려는 경우입니다. 이 규칙을 삭제해야 합니다 iptables -t nat -A POSTROUTING -j MASQUERADE.

발생할 수 있는 한 가지 질문은 다음과 같습니다. IP 카메라가 인터넷에 액세스할 수 있도록 하시겠습니까? 그렇지 않은 경우 iptables FORWARD 경로를 포함하여 192.168.176.0/24에서 192.168.1.0/24를 제외한 다른 곳으로 가는 패킷을 거부합니다. 액세스 권한을 부여하려면 192.168.176.0/24에 대한 고정 경로로 라우터를 구성해야 합니다.

답변2

서브넷 주소 및 이름의 예

순 "메인" 192.168.1.0/24 (255.255.255.0) – enp1s0

순 "카메라" 192.168.176/24 (255.255.255.0) – enp3s0

"카메라"에서 "기본"으로 전달 중입니다.

iptables --table nat --append POSTROUTING --out-interface enp1s0 -j MASQUERADE

iptables --append FORWARD --in-interface enp3s0 -j ACCEPT

main에는 트래픽을 로컬 서브넷이나 인터넷으로 "라우팅"하는 기본 게이트웨이가 있습니다.

브리지에 반대 규칙을 추가하는 경우:

iptables --table nat --append POSTROUTING --out-interface enp3s0 -j MASQUERADE

iptables --append FORWARD --in-interface enp1s0 -j ACCEPT

그리고

"main"의 기본 게이트웨이에 있는 서브넷 192.168.176.0/24의 브리지 컴퓨터에 경로를 추가합니다.

구문이 잘못되었지만 아이디어를 얻을 수 있습니다.

route add -net 192.168.2.176/24 gateway “bridge computer”

카메라의 게이트웨이 정보를 추가하거나 변경하지 않고도 원하는 결과를 얻을 수 있다고 생각합니다.

관련 정보