라우팅 테이블이나 인터페이스 설정값 등을 직접 작성한 함수를 통해 관리하고자 하신다면 Netlink를 사용하시면 됩니다.
man netlink, man rtnetlink 하시면 관련된 내용 중 일부를 아실 수 있을 겁니다.
정확한 사용법을 알고자 하신다면 위의 매뉴얼 페이지들과 rfc3549 "Linux Netlink as an IP Services Protocol"를 참고 하세요.
netlink 관련된 문서 중에서 rfc 문서가 짱!! 입니다.
Netlink를 사용하시면 됩니다.
라우팅 테이블이나 인터페이스 설정값 등을 직접 작성한 함수를 통해 관리하고자 하신다면 Netlink를 사용하시면 됩니다.
man netlink, man rtnetlink 하시면 관련된 내용 중 일부를 아실 수 있을 겁니다.
정확한 사용법을 알고자 하신다면 위의 매뉴얼 페이지들과 rfc3549 "Linux Netlink as an IP Services Protocol"를 참고 하세요.
netlink 관련된 문서 중에서 rfc 문서가 짱!! 입니다.
구현된 코드는 zebra/quagga, iproute 등의 소스를 보시면 됩니다.
Be Creative For Fun!!
Re: ifconfig, 혹은 route 에 해당하는 내부함수가 있는지요.
ifconfig 는 ioctl을 사용하는 것으로 압니다만..
----
Let's shut up and code.
ifconfig이나 route 같은 명령어들은 ioctl을 사용하므로
ifconfig이나 route 같은 명령어들은 ioctl을 사용하므로
관련 ioctl을 직접 해주시면 됩니다...
저도 지금 비슷한 케이스로 고민중인데 ...
커널에서 routing table이나 interface config을 바꿔야 되는데 ...
softirq 처리시에 ioctl루틴을 사용하니까 시스템이 바로 죽더군요 ... :shock:
방법이 없나 고민중입니다...
netlink를 사용하면 될지 찾아봐야 겠네요... :D
^^*
...
그냥 ifconfig와 route 소스를 읽어보시면 되지 않나요. :D
ifconfig, route 모두 ioctl을 사용하여 필요한 값들을 변
ifconfig, route 모두 ioctl을 사용하여 필요한 값들을 변경합니다.
google에서 ioctl 관련 검색하시면, ifconfig, route에서 필요한 ioctl 인자값을 찾으실 수 있습니다.
이런거 하실때는 소스 보시는게 가장 좋은 방법 입니다.
다 아시겠지만, ifconfig, route는 net-tool 패키지에 있습니다.
보다 간결한 소스를 원하시면 busybox의 ifconfig및 route 부분을 보시면
찾고자 하는 해답을 찾으실 수 있습니다.
비 온 뒤에 땅이 굳어진다는 말은 다 거짓말이다.
네트워크 자료마다 커널과 통신하는 방법이 다릅니다.네트워크 인터페
네트워크 자료마다 커널과 통신하는 방법이 다릅니다.
네트워크 인터페이스의 경우, PF_INET 타입으로 socket 을 만든후, ioctl 함수를 사용하면 됩니다. 그런데 ioctl 의 경우, 해당하는 자료의 입출력에 대해서 일일이 정의를 해야하니 유연성이 떨어지게 됩니다.
그래서 라우팅에 관련된 정보는, 이광우님 말씀처럼 PF_NETLINK 타입의 socket 을 만든후, netlink protocol 에 따라서 자료를 주고 받게 되죠. 이 경우에는 ioctl 을 따로 만들필요없이 recv, send 함수를 사용하시면 됩니다.
참고로, 패킷필터링을 하는 경우는 PF_PACKET 타입의 socket 을 사용하게 됩니다.
상세한 답변 감사합니다. 제가 아직 내공이 부족하여. 확 와닫지는
상세한 답변 감사합니다.
제가 아직 내공이 부족하여. 확 와닫지는 않는데요..
간단한 예제 코드를 보여주실수 는 없으신지요..
죄송합니다.^^
----------------------------
www.nate.com
----------------------------
댓글 달기