멀티홈 네트워크 카드를 통해 패킷을 라우팅하는 방법을 알 수 없습니다.

멀티홈 네트워크 카드를 통해 패킷을 라우팅하는 방법을 알 수 없습니다.

환경은 아래와 같이 대부분 FreeBSD입니다.

HOST_A <-> ROUTER <-> LOKI <-> HOST_B

최소한 HOST_B에서 ROUTER를 ping할 수 있기를 바랍니다.

  • 라우터에 IP 10.0.0.1이 할당되었습니다.
  • LOKI는 IP 10.0.0.2 및 192.168.200.1이 할당된 멀티홈 컴퓨터입니다.
  • HOST_B에는 IP 192.168.200.3이 할당되었습니다.
  • HOST_A에는 IP 10.0.0.3이 할당되었습니다.

위와 같이 네트워크를 설정하고 loki의 rc.conf에 Gateway_enable="YES"를 추가했습니다.

LOKI의 netstat -r은 다음을 생성합니다.

Routing tables
Internet:
Destination        Gateway            Flags      Netif Expire
default            10.0.0.1           UGS         em0
10.0.0.0           link#1             U           em0
10.0.0.2           link#1             UHS         lo0
loki               link#2             UH          lo0
192.168.200.0      link#3             U           ue0
192.168.200.1      link#3             UHS         lo0

그것은 좋은 라우팅 테이블처럼 보이며 모든 방향에서 작동하는 것 같습니다.

HOST_B의 netstat -r은 다음을 생성합니다.

Routing tables
Internet:
Destination        Gateway            Flags      Netif Expire
default            192.168.200.1      UGS         em0
hostb              link#2             UH          lo0
192.168.200.0      link#1             U           em0
192.168.200.3      link#1             UHS         lo0

또 다른 세분화된 라우팅 테이블처럼 보이지만 LOKI만 보입니다.

간단히 말해서:

  • LOKI는 HOST_A, HOST_B 및 ROUTER를 ping할 수 있습니다.
  • HOST_B는 LOKI를 핑할 수 있지만 ROUTER 또는 HOST_A는 핑할 수 없습니다.

몇 가지 추가 참고사항: HOST_B에서

ping 10.0.0.1 100% packet loss

LOKI의 Wireshark에서 HOST_B에서 10.0.0.1을 핑할 때:

120 40.549564000    192.168.200.3   10.0.0.1    ICMP    98  Echo (ping) request  id=0x5a0e, seq=92/23552, ttl=63 (no response found!)

제가 보기에는 LOKI에서 ROUTER로 아무것도 라우팅되지 않는 것 같습니다. 내가 무엇을 놓치고 있나요?

/etc/rc.conf에서 Gateway_enable="YES"를 주석 처리하고 재부팅하여 IP 전달이 진행되고 있음을 확인했습니다.

그런 다음 loki에서 다음 명령을 실행합니다.

sudo tcpdump -i em0 -nS
sudo tcpdump -i ue0 -nS

두 네트워크 카드의 활동을 모니터링합니다.

Hostb에서 다음을 실행했습니다.

ping 10.0.0.1

192.168.200.1의 ue0 인터페이스는 다음을 보고합니다.

14:44:21.870865 IP 192.168.200.3 > 10.0.0.1: ICMP echo request, id 21509, seq 0, length 64

10.0.0.2의 em0 인터페이스에는 아무 것도 보고되지 않습니다.

그런 다음 나는 다음을 실행했습니다.

sudo sysctl -w net.inet.ip.forwarding=1

물론, em0은 다음과 같이 보고했습니다.

14:58:14.745369 IP 192.168.200.3 > 10.0.0.1: ICMP echo request, id 25861, seq 0, length 64

하지만 아니요, 호스트b의 ping loki에서 얻은 것과 같은 결과로 답장해 주세요.

14:44:15.724200 IP 192.168.200.3 > 192.168.200.1: ICMP echo request, id 21253, seq 4, length 64
14:44:15.724207 IP 192.168.200.1 > 192.168.200.3: ICMP echo reply, id 21253, seq 4, length 64

loki에서 라우터에 ping을 실행하면 모든 것이 정상입니다.

15:04:55.637839 IP 10.0.0.2 > 10.0.0.1: ICMP echo request, id 46852, seq 3, length 64
15:04:55.638324 IP 10.0.0.1 > 10.0.0.2: ICMP echo reply, id 46852, seq 3, length 64

답장을 찾는 방법에 대한 아이디어가 있나요?

답변1

LOKI와 HOST_A가 동일한 서브넷에 있을 때 왜 라우터를 통해 연결해야 합니까? 정말 라우터인가요, 아니면 단순한 스위치인가요? (나중 의견으로 판단하면 장치는 라우터이지만 단순히 LOKI와 HOST_A 사이의 스위치 역할을 합니다.)

HOST_A 및 ROUTER의 라우팅 테이블은 무엇입니까? 192.168.200.1에 접근하려고 하는데 왜 LOKI를 목적지로 사용하는 걸까요?

이러한 장치의 라우팅 테이블이 192 서브넷에 대해 LOKI를 사용하는 것을 알지 않는 한 기본 게이트웨이로만 전달됩니다.

대안으로 LOKI에 NAT를 설치하는 것을 고려해 볼 수도 있습니다. 많은 서비스의 경우 HOST_B의 트래픽을 LOKI의 트래픽으로 캡슐화할 수 있습니다. 다른 시스템이 해당 위치에 도달할 수 있으므로 트래픽을 수신하여 HOST_B로 다시 전달할 수 있습니다.

답변2

제 생각에는 Loki는 여러분이 기대하는 것과 정확히 일치합니다. ping에서 요청 패킷을 수신 ue0하여 으로 전달 합니다 em0. ping답변을 받으면 em0으로 전달됩니다 ue0.

문제는 라우터에 있습니다. LAN 측 ping에서 요청을 받습니다 (그러나 이는 중요하지 않습니다). 에 응답을 보낼 192.168.200.3때 라우팅 테이블을 살펴봅니다. LAN 측은 (또는 유사) 응답 패킷이 공용 인터넷의 WAN 측인 라우터의 기본 게이트웨이로 전송됩니다.ping192.168.200.310.0.0.0/24

라우터는 NAT(Network Address Translation)를 사용하여 10.0.0.0/24실제 공용 IP 주소(ISP가 라우터의 WAN 측에 할당함) 중 하나 뒤에 네트워크를 위조합니다. RFC1918 주소는 비공개이며 공용 인터넷에 노출될 수 없으며 항상 NAT 뒤에 있습니다.

실험을 성공적으로 수행하기 위해 고정 경로를 ROUTER에 배치할 수 있지만 ping이는 여전히 공용 인터넷에서 격리됩니다. LOKI에서 NAT를 활성화할 수 있으며, 이 경우 이중 NAT를 사용하여 인터넷에 연결할 수 있습니다(잘 작동하지만 의미가 없음). 두 번째 수준 방화벽만 필요한 경우 LOKI를 브리지 방화벽으로 설정하고 10.0.0.0/24두 NIC 모두에서 실행하는 것을 고려할 수 있습니다. 인터넷 연결 서비스를 호스팅하고 공용 IP 주소가 하나만 있는 경우 라우터에서 포트 전달 규칙을 사용해야 합니다.

답변3

네트워크 A에서 네트워크 B로 패킷을 전달하려면 일부 설정을 수행해야 합니다. Loki는 이중 홈을 갖추고 있어 이를 수행할 수 있지만 자동은 아닙니다. 이렇게 하면 Loki를 라우터로 설정하고 Loki를 호스트 B의 기본 게이트웨이로 사용해야 합니다. 또 다른 옵션은 호스트 B의 라우팅 테이블에 영구 경로를 설정하여 Loki를 10.xxx 트래픽의 대상으로 지정하는 것입니다.

관련 정보