-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'develop' of https://github.com/kbu1564/SecurityBootloader…
… into develop
- Loading branch information
Showing
6 changed files
with
237 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
[참고사이트](http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/cloud/Qemu/Network) | ||
<br/> | ||
우분투에서 Bridge 네트워크 구축 | ||
------------------------------------------------------------------- | ||
우분투에 브릿지 네트워크를 구축하기로 했다. 아래의 과정을 거친다. | ||
``` | ||
1. 호스트 브릿지인 br0를 만든다. | ||
2. br0를 eth0 포트에 링크한다. | ||
3. VM을 위한 tap 디바이스 2개를 만든다. 이름은 tap1과 tap2로 했다. | ||
4. br0에 tap1, tap2, eth0을 묶는다. | ||
``` | ||
<br/> | ||
###*1. brctl을 이용해서 브릿지를 만든다.* | ||
``` | ||
# brctl addbr br0 | ||
# ifconfig br0 up | ||
``` | ||
<br/> | ||
###*2. 브릿지 인터페이스를 설정한다.* | ||
1. eth0 과 브릿지 한다. | ||
2. dhcp를 이용해서 브릿지의 네트워크를 설정한다. dhcp 패킷은 eth0을 타고 나가서 브로드캐스팅 된다. | ||
``` | ||
# vim /etc/network/interfaces | ||
``` | ||
▶ interfaces의 내용 | ||
``` | ||
# cat /etc/network/interfaces | ||
auto lo | ||
iface lo inet loopback | ||
auto br0 | ||
iface br0 inet dhcp | ||
bridge_ports eth0 | ||
bridge_stp off | ||
bridge_fd 0 | ||
bridge_maxwait 0 | ||
``` | ||
<br/> | ||
###*3. 브릿지 인터페이스를 올린다.* | ||
``` | ||
# ifup br0 | ||
``` | ||
<br/> | ||
###*4. eth0이 했던 네트워크 인터페이스의 역할은 앞으로 br0이 하고 eth0은 물리적인 디바이스를 링크하기 위한 역할만을 한다. 따라서 eth0의 네트워크 설정을 없앤다.* | ||
``` | ||
# ifconfig eth0 0.0.0.0 | ||
``` | ||
<br/> | ||
###*5. Tap interface 생성* | ||
``` | ||
# openvpn --mktun --dev tap1 | ||
# openvpn --mktun --dev tap2 | ||
# ifconfig tap1 up | ||
# ifconfig tap2 up | ||
``` | ||
<br/> | ||
###*6. 브릿지에 인터페이스들을 추가한다.* | ||
``` | ||
# brctl addif br0 tap1 | ||
# brctl addif br0 tap2 | ||
# brctl addif br0 eth0 | ||
``` | ||
<br/> | ||
###*7. 네트워크 브릿지 정보를 확인해 보자.* | ||
``` | ||
# brctl show | ||
bridge name bridge id STP enabled interfaces | ||
br0 8000.d2a4aba39cf4 no eth0 | ||
tap1 | ||
tap0 | ||
``` | ||
<br/> | ||
###*8. 호스트의 라우팅 설정을 확인해 보자.* | ||
``` | ||
# route -n | ||
Kernel IP routing table | ||
Destination Gateway Genmask Flags Metric Ref Use Iface | ||
0.0.0.0 192.168.11.1 0.0.0.0 UG 0 0 0 br0 | ||
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 br0 | ||
192.168.11.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 | ||
``` | ||
▶ 0.0.0.0/0으로 향하는 패킷은 br0 으로 흐른다. br0은 이 패킷을 eth0 인터페이스로 보낼 것이다. | ||
▶ 192.168.11.0/24로 향하는 패킷은 LAN 영역에서 소비된다. | ||
<br/> | ||
###*9. 테스트를 위한 VM을 실행한다. VM들의 네트워크 설정은 DHCP로 한다.* | ||
``` | ||
# qemu-system-i386 -m 512 -hda brdist-img.raw -net nic,macaddr=52:00:00:00:00:01 -net tap,ifname=tap1,script=no -boot n | ||
``` | ||
<br/> | ||
###*10. 실행된 가상머신은 닫지 않은 상태에서 새로운 터미널을 생성해, 브릿지의 MAC 테이블에 VM의 맥이 포함됐는지 확인해 보자.* | ||
``` | ||
# brctl showmacs br0 | ||
``` | ||
<br/> | ||
<br/> | ||
**이 테스트는 하나의 VLAN에서 이루어졌다. VLAN을 쪼개는 방식으로 Multi-tenant 응용이 가능 할거다.** |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
#ifndef SERVER_HANDLER_H_ | ||
#define SERVER_HANDLER_H_ | ||
|
||
class ServerHandler | ||
{ | ||
public: | ||
ServerHandler() {} | ||
virtual ~ServerHandler() {} | ||
|
||
virtual void accept(epoll_event& event, const char* hbuf, const char* sbuf) = 0; | ||
virtual void disconnect(epoll_event& event) = 0; | ||
virtual void recv(epoll_event& event, const char* buffer, int readlen) = 0; | ||
virtual void send(epoll_event& event) = 0; | ||
}; | ||
|
||
#endif | ||
|