linux 브릿지 설정 brctl

|

리눅스에서 브리지를 추가하는 명령어이다.
사용법은 다음과 같다.

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
And