멀티홈 NIC를 통해 패킷을 라우팅하는 방법을 알 수 없습니다.

멀티홈 NIC를 통해 패킷을 라우팅하는 방법을 알 수 없습니다.

환경은 대부분 FreeBSD이며 다음과 같습니다:

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

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

  • ROUTER에는 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를 핑할 수 있습니다.
  • 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

두 NIC의 활동을 모니터링합니다.

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

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

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

답변3

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

관련 정보