받은 패킷을 바로 다시 전송을 하려고 합니다.
글쓴이: satanjr / 작성시간: 일, 2004/01/18 - 11:06오후
커널 2.4.24에서 작업중입니다.
네트웍 인터페이스가 총 5개 입니다(eth0~4)
eth0에서 받은 패킷을 조사 하여 목적지가 현재 머신이면 그대로 네트워크 스택을 타고 그렇지 않으면
eth1,eth2,eth3중의 하나를 선택하여 알고 있는 MAC주소로 바로 전송을 하려고 합니다.
(eth1,eth2,eth3과 연결되어 있는 머신의 NIC의 MAC주소는 알고 있습니다.)
netif_rx()내부에서 패킷을 분류하고 바로 dev_queue_xmit()을 호출하면 될것 같아서
여러번 시도를 해봤는데 패킷이 전송이 되지 않습니다.
netif_rx(struct *skb) { . . if(현재 머신의 MAC주소가 아니라면..) { skb->dev = dev_get_by_name("eth1"); skb->mac.ethernet->h_dest[0]=0xXX; . . skb->mac.ethernet->h_dest[5]=0xXX; dev_queue_xmit(skb); } . . }
목적지 MAC(skb->mac.ethernet->h_dest)부분과 보낼때 사용할 디바이스 선택(skb->dev)부분만
바꾸고 바로 dev_queue_xmit()을 호출하여 큐에 넣어 버렸는데..
이러면 안되는건가요? 패킷이 전송이 안되네요..
아니면 다른 부분에서 더 처리를 해줘야 할 부분이 있는건가요?
MAC주소가 잘못되었다고 하더라도 패킷은 전송되어야 하는것 아닌지요?
패킷을 제가 지정한 NIC을 통해 전송하려면 어떤 방법을 사용해야 하는지 조언을 구합니다.
Forums:
댓글 달기