단일 이더넷 링크를 통해 네트워크에 연결하려는 상자에 두 개의 Linux 장치가 있습니다. 간단하게 Raspberry Pi라고 부르겠습니다.
모두 네트워크에서 개별적으로 액세스할 수 있어야 합니다. 직렬 포트를 통해 서로 쉽게 연결할 수 있습니다.
대답 처럼 보이 pppd
거나 slip
그럴 수도 있지만 지금까지 본 모든 예는 고정된 구성을 사용하므로 나에게는 작동하지 않습니다.둘 다이사회는 다음을 수행할 수 있어야 합니다.어느IP 주소는 DHCP를 통해 구성하거나 다른 구성과 관계없이 수동으로 구성할 수 있습니다.
Linux를 사용하면 상당히 쉬울 것 같지만 올바른 정보를 찾을 수 없거나 검색할 때 잘못된 용어를 사용하고 있습니다.
어떤 아이디어라도 감사하겠습니다.
답변1
직렬 포트의 양쪽 끝에서 이 변형을 사용할 수 있습니다.
socat TUN,tun-type=tap,iff-up /dev/ttyS0
, 직렬 연결의 양쪽 끝에 TAP 이더넷 장치가 제공됩니다.
소캇가지다TAP 장치를 위한 다양한 옵션그리고직렬 포트.
최적의 직렬 포트 속도를 수동으로 선택해야 할 수 있으며 양쪽 끝의 TAP 장치에서 브리징 및 기타 네트워크 통합을 수행해야 합니다.
답변2
여기에는 닭과 달걀의 문제가 있습니다. PPP/SLIP 연결을 설정하려면 IP 매개변수가 필요하지만 직렬로 연결된 장치는 PPP/SLIP 연결이 설정될 때까지 DHCP 요청을 보낼 수 없습니다. PPP에는 PPP 서버에서 클라이언트로 구성 정보를 전달하는 고유한 방법이 있지만 내 기억이 정확하다면 SLIP에는 직렬 링크의 양쪽에 기존 구성 정보가 필요할 수도 있습니다.
내가 아는 한 두 가지 옵션이 있습니다.
A.) 고정 개인 IP로 PPP/SLIP 링크를 설정하고, 링크가 연결된 경우 이더넷 연결 장치가 두 번째 IP 주소를 자체적으로 구성하도록 합니다(DHCP 클라이언트의 두 번째 인스턴스를 실행하거나 수동으로 구성). ) NAT를 사용하여 두 번째 IP 주소의 트래픽을 직렬 링크에 사용되는 고정 주소로 리디렉션합니다.
이 접근 방식에서는 직렬로 연결된 클라이언트가 실제 IP 주소를 반드시 알 필요는 없습니다. 이는 NAT를 지원하지 않는 네트워크 프로토콜을 사용해야 하는 경우 문제가 될 수 있습니다. 반면에 두 번째 주소는 실제로 연결이 설정될 때까지 예약할 필요가 없습니다.
B.) 이더넷 연결 장치를 항상 두 개의 이더넷 측 IP 주소로 구성하고(예: DHCP를 사용하는 경우 DHCP 클라이언트의 두 인스턴스 실행) 두 번째 주소가 알려지면 이를 사용하여 이더넷 서버 측을 구성합니다. 직렬 링크. 사용하는 경우 pppd
해당 proxyarp
옵션을 사용하십시오. SLIP를 사용하는 경우 다른 방법(예 echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
: )으로 프록시 ARP를 구성합니다.
직렬 연결을 준비하도록 구성된 경우 이 방법을 사용하면 이더넷 연결 장치는 항상 두 개의 IP 주소를 예약하지만 직렬 연결 장치는 실제로 액세스 가능한 IP 주소를 유지할 수 있습니다.
두 방법 모두 직렬 연결 장치에 대한 대부분의 네트워크 구성은 이더넷 연결 장치에서 수행되어야 합니다.