두 로컬 인터페이스 간에 데이터 전달을 활성화하는 방법은 무엇입니까?

두 로컬 인터페이스 간에 데이터 전달을 활성화하는 방법은 무엇입니까?

리퍼브 컴퓨터에 Ubuntu 11.10을 설치했습니다. 또한 결함이 있는 NIC 카드를 새 NIC 카드로 교체했는데 설치 시 2개의 NIC 카드가 인식되었습니다. 또한 프록시 서버로 오징어를 설치했습니다. Squid는 모든 워크스테이션이 라우터에 연결되어 있을 때 잘 작동합니다. 하지만 ... .

하나의 NIC를 내 라우터(라이브 인터넷 연결 가능)에 연결하고 다른 NIC를 내 스위치(인터넷을 사용할 수 없음)에 연결하면 두 개의 별도 네트워크를 생성할 수 있지만 두 개의 NIC 카드를 전송하는 방법을 알 수 없습니다. 두 네트워크 간의 데이터는 물론 서로 간의 데이터도 마찬가지입니다.

  1. 두 이더넷 카드를 모두 연결하려고 시도했지만 운이 좋지 않습니다!
  2. iptables를 업데이트하려고 했는데... 운이 없습니다!
  3. 두 NIC 카드를 모두 고정 주소로 설정했습니다. 운이 좋지 않습니다!
  4. 다른 하나를 게이트웨이로 사용하도록 하나의 NIC를 구성했습니다. 운이 좋지 않습니다! 모두 ping된 주소(스위치와 관련된 네트워크)가 도달할 수 없는 대상에 있다는 오류가 발생합니다.

내가 무엇을 놓치고 있나요?

답변1

@laurent가 설명하는 스크립트는 표준적인 방법이 있기 때문에 불필요합니다. 당신이 해야 할 일은 다음 줄을 편집 /etc/sysctl.conf하고 주석 처리를 해제( #시작 부분에서 삭제)하는 것뿐입니다.

net.ipv4.ip_forward = 1

그러면 부팅 시 이미 적용됩니다.

답변2

Ubuntu에는 기본적으로 IP 전달이 비활성화되어 있으므로 시스템에서 패킷을 라우팅하려면 이를 활성화해야 합니다.

활성화하려면 터미널에 루트( sudo su)로 입력하세요.

echo 1 > /proc/sys/net/ipv4/ip_forward

Obs: sudo에서는 작동하지 않습니다

그리고 이 머신에서 인터넷을 라우팅하려면 NAT도 구성해야 할 수도 있습니다.

편집하다:

첫 번째 명령은 echo 1 ...sudo에서 작동하지 않습니다. 이전 에 루트로 변경해야 합니다 sudo su(sudo는 루트로 echo 1을 실행하지만 사용자로 파일로 리디렉션을 시도하므로 작동하지 않기 때문입니다). 어쨌든 1이 있는지 항상 확인할 수 있습니다 cat /proc/sys/net/ipv4/ip_forward. 관찰:이 작업은 부팅할 때마다 수행되어야 스크립트를 작성하고 이에 대해 update-rc.d를 사용할 수 있습니다.

eth0이 인터넷 연결 NIC인 경우 POSTROUTING 규칙이 정상으로 보입니다.

확립된 관련 연결에 사용하는 FORWARD 규칙:

-A FORWARD -p tcp -m state -d your_network_ip.0/255.255.255.0 --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p udp -m state -d your_network_ip.0/255.255.255.0 --state RELATED,ESTABLISHED -j ACCEPT

두 번째 업데이트 - 자동 스크립트:

#!/bin/sh
# turn ip_forward on/off

case "$1" in
'start')
        echo 1 > /proc/sys/net/ipv4/ip_forward
        ;;
'stop')
        echo 0 > /proc/sys/net/ipv4/ip_forward
        ;;
*)
        echo "Usage: $0 { start | stop }"
        ;;
esac
exit 0

/etc/init.d이 스크립트를 원하는 이름(예:)으로 저장하고 router실행 가능하게 만듭니다( sudo chmod +x /etc/init.d/router).

재부팅할 때마다 실행되도록 하려면 update-rc.d를 사용하여 시작 링크를 만들어야 합니다.

sudo update-rc.d router defaults

확인해야 할 기타 사항:

  • DHCP는 두 번째 네트워크에서 작동하고 컴퓨터 IP를 기본 게이트웨이로 서브넷으로 보냅니다.
  • 기본 게이트웨이(새 서브넷의 컴퓨터 IP)는 고정 IP를 사용하는 것이 더 좋습니다.
  • 두 번째 NIC를 핑할 수 없다고 말씀하셨는데 어디서부터요? 서브넷, 귀하의 컴퓨터 또는 라우터에 직접 연결된 컴퓨터?
  • 오징어가 컴퓨터에 설치되어 있습니까? 새 서브넷을 포함하도록 구성을 변경하셨나요? 오징어가 필요해요? 구성하기가 그리 쉽지 않으며 추가 기능이 필요하지 않은 경우 구성 없이도 인터넷과 네트워크를 매우 잘 공유할 수 있습니다.

관찰: update-rc.d 메시지는 정상입니다. 문제가 없습니다. 이제 ip_forward 파일에는 항상 1이 있어야 합니다.

답변3

나는 이 조언을 시도했지만 여기서 다루지 않은 문제에 직면했습니다. 다음 컴퓨터는 마지막 컴퓨터로 돌아가는 방법을 알아야 합니다.

제 경우에는 WiFi 네트워크 192.168.1.0/24와 이더넷 네트워크 192.168.40.0/24라는 2개의 네트워크가 있습니다. 내 "라우터"는 192.168.1.0/24의 WiFi 트랜시버와 192.168.40.0/24 네트워크의 이더넷 인터페이스를 모두 갖춘 랩탑입니다. 가정용 라우터에는 WiFi 송수신기와 이더넷 인터페이스도 있지만 이 이더넷 송수신기는 인터넷에 연결됩니다. 가정용 라우터에는 NAT(Network Address Translator)도 있습니다. 가정용 라우터에는 라우팅 테이블이 있고 해당 라우팅 테이블에는 일반적으로 ISP(인터넷 서비스 공급자) 라우터를 가리키는 기본 경로 항목이 있습니다.

192.168.40.0/24 네트워크의 컴퓨터가 인터넷의 일부 컴퓨터로 패킷을 보내려고 할 때 자체 라우팅 테이블을 참조하여 기본 게이트웨이가 랩톱인 192.168.40.1이라는 것을 알았습니다. 패킷이 노트북에 도착하면 자체 라우팅 테이블을 참조하여 패킷을 가정용 라우터로 전달했습니다. 가정용 라우터는 라우팅 테이블을 참조하고 네트워크 주소 변환(이 논의에서는 무시할 수 있는 세부 사항)을 거친 다음 ISP의 라우터로 이동했습니다. 어느 시점에서 대상 컴퓨터는 내 컴퓨터로 패킷을 보내려고 할 것입니다. 패킷은 가정용 라우터에 도착하고 역방향 NAT를 거친 후 라우팅되어야 합니다. 패킷이 NAT에서 나오면 192.168.40.0/24 네트워크의 대상 IPv4 주소를 갖게 됩니다. 이 시점에서 문제가 발생했습니다. 가정용 라우터가 이더넷 네트워크(192.168.40.0/24)에 대해 몰랐습니다. 그래서 그것은 해야 할 일을 했습니다. 즉, 해당 패킷을 기본 라우터, 즉 ISP의 라우터로 전달하는 것입니다.

문제를 해결하기 위해 가정용 라우터의 라우팅 테이블에 192.168.40.0/24 네트워크에 있는 컴퓨터에 접속하려면 192.168에 있는 노트북의 WiFi 주소로 패킷을 보내도록 항목을 만들어야 했습니다. 1.0/24. 이제 패킷이 랩탑에 도착하면 랩탑은 192.168.40.0/24 네트워크에 대해 알고 그곳으로 패킷을 라우팅합니다.

관련 정보