리눅스에서 브리지를 추가하는 명령어이다.
사용법은 다음과 같다.
eth0와 eth1을 br0로 묶는 방법이다.
1. #brctl addbr br0 : br0 인터페이스를 추가한다.
2. #brctl addif eth0 : eth0 추가
3. #brctl addif eth1 : eth1 추가
4. #ifconfig eth0 0.0.0.0 : eth0 down
5. #ifconfig eth1 0.0.0.0 : eth1 down
6. #ifconfig br0 10.10.10.10 netmask 255.255.255.0
설정 완료
7. sysctl -a | grep forward : forward 설정 확인
8. sysctl -w 항목=1 : forward enable
ifcfg 파일 설정
9. ifcfg-br0
DEVICE=br0
ONBOOT=on
TYPE=Bridge
BOOTPROTO=static
IPADDR=10.10.10.10
NETMASK=255.255.255.0
USRCTL=no
10. ifcfg-eth0
DEVICE=eth5
HWADDR=00:30:DB:43:62:1B
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br0
USRCTL=no
11. DEVICE=eth1
HWADDR=00:30:DB:43:62:1C
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br0
USRCTL=no
----------------------------------------------------------------------
http://www.aesop.or.kr/?mid=Board_Community_Freeboard&document_srl=408348&sort_index=readed_count&order_type=asc
1. kernel/include/linux/in.h를 보면
loopback interface로의 access를 판별하기 위하여 ipv4_is_loopback( )라는 함수를 가지고 있습니다.
그래서 127.x.x.x로 시작되는 모든 access를 Loopback I/F로 가도록 처리를하는 거죠...
2. 그런데 저희 시스템은 하나의 시스템 내에 두 개의 Board가 있고, 두 Board간의 통신을 위해서
127.254.254.254와 127.254.254.253으로 IP를 부여 후 통신을 하도록 만들려고 합니다.
3. 당근 127이라서 Loopback으로 access하려 하기 때문에 정상적으로 동작하지 않겠죠...
4. 그래서 아래와 같이 수정 후 사용하려고 합니다.
From ::: static inline bool ipv4_is_loopback(__be32 addr) { return (addr & htonl(0xff000000)) == htonl(0x7f000000); }
To:::: static inline bool ipv4_is_loopback(__be32 addr) { return (addr & htonl(0xff800000)) == htonl(0x7f000000); }
Idea의 요는 127.128.x.x 이상의 경우엔 Loopback I/F로 Access하지 않도록 network stack에 알려 주는거죠...
5. 이전 시스템의 GNU/Linux에서는 잘 작동했습니다.
6. 현재 개발중인 Android/Linux 에서는 문제네요...
이렇게 설정 후 127.254.254.253 Board에서 "ping -c 2 127.254.254.254"를 하면 usb0 port의
TX뿐만 아니라, "lo" I/F의 RX/TX도 packet number가 증가한다는 겁니다.
(CDC Ethernet사용으로 usb port를 network port처럼 사용이라 usb0로 I/F가 보입니다)
7. 혹시 Android/Linux에서는 Loopback사용 시 GNU/Linux와는 다른 뭔가가 있나요?
혹은 Network 전반에 걸쳐서 GNU/Linux와는 다른 점 때문에 특별히 고려해줘야 하는 점이 있나요???
-----------------------------------------------------------
--------------------------------------------
'개발/활용정보 > Linux' 카테고리의 다른 글
bootchart (0) | 2011.12.29 |
---|---|
Shell Script (0) | 2011.12.29 |
리눅스 명령어 목록 (0) | 2011.10.10 |
ip forwarding, sniffing, nat (0) | 2011.10.07 |
tcpdump (0) | 2011.10.07 |