서브넷의 한 호스트를 다른 NIC에 마스킹하는 IPtables

서브넷의 한 호스트를 다른 NIC에 마스킹하는 IPtables

이것에 대해 도움을 좀 받을 수 있어요. iptables에 익숙함에도 불구하고 어떻게 시작해야 할지 모르겠습니다.

고정 IP 주소가 10.0.0.2/24인 가젯이 있습니다. 이것이 바로 그것이며 나는 그것을 바꿀 수 없습니다. 내 노트북에는 NIC가 하나만 있었습니다. 저는 개발 네트워크에 연결하고 노트북 NIC에 보조 주소 10.0.0.1을 제공하고 장치를 내 노트북과 같은 스위치입니다. 이상적이지는 않지만 효과가 있었습니다.

이제 IP 범위가 .... (긴장감 넘치는 음악) .... 10.0.0.0/24인 다른 개발 네트워크로 이동해야 했습니다. 그리고 10.0.0.2는 다른 장치가 차지하는 DHCP 범위에 있습니다.

이제 랩톱용 다른 네트워크 인터페이스 카드(eth1)를 얻어 IP 주소 10.42.42.1을 지정했습니다.

기본적으로 내가 해야 할 일은 iptables 마법을 사용하여 예를 들어 10.42.42.2에 액세스할 때 eth1을 종료할 때 이 트래픽이 예를 들어 IP 주소 10.0.0.5를 얻고 eth1의 10.0.0.2로 전달되도록 만드는 것입니다. 가젯이 응답하고 eth1이 응답을 받으면 마치 10.42.42.2에서 오는 것처럼 내 호스트 노트북으로 전달됩니다.

여기에 SNAT/DNAT 규칙이 필요할 수도 있지만 어떻게 설정해야 합니까?

시간

답변1

그것은 의 작업이 아니며 iptables문제 network namespaces에 더 적합합니다.

# Create network namespace gadget
ip netns add gadget

# Put device eth0 in gadget namespace
ip link set eth0 netns gadget

# Configure network in gadget namespace
# # Bring up ifaces
ip netns exec gadget ip link set lo up
ip netns exec gadget ip link set eth0 up

# # 10.0.0.0/24 address on eth0 
ip netns exec gadget ip address add 10.0.0.1/24 dev eth0

# Now gadget pinging should work...
ip netns exec gadget ping 10.0.0.2

관련 정보