티스토리 뷰
bridge 명령 사용준비
아래 명령으로 설치하여 사용할수도 있고
(RHEL 7에는 기본으로 포함되어 있다.)
yum install bridge-utils
# apt install bridge-utils
아래 사이트에서 clone 하여 make 하고 사용할 수도 있다.
bridge 사용법
brctl 기본 사용법
Usage: brctl [commands]
commands:
addbr <bridge> add bridge
delbr <bridge> delete bridge
addif <bridge> <device> add interface to bridge
delif <bridge> <device> delete interface from bridge
hairpin <bridge> <port> {on|off} turn hairpin on/off
setageing <bridge> <time> set ageing time
setbridgeprio <bridge> <prio> set bridge priority
setfd <bridge> <time> set bridge forward delay
sethello <bridge> <time> set hello time
setmaxage <bridge> <time> set max message age
setpathcost <bridge> <port> <cost> set path cost
setportprio <bridge> <port> <prio> set port priority
show [ <bridge> ] show a list of bridges
showmacs <bridge> show a list of mac addrs
showstp <bridge> show bridge stp info
stp <bridge> {on|off} turn stp on/off
CentOS 7 기준 brctl version은 다음과 같다.
[root@localhost ~\]# brctl --version
bridge-utils, 1.5
Hairpin
hairpin 이란?
NAT loopback 이라고도 불리우는 hairpin은 NAT장비대역뒤에 서버간의 통신상에서 사용되는 용어이며
대외로 서비스 하고 있는 서버를 서비스되고 있던 서버와 동일한 네트워크를 사용하는 서버가 통신을 하게 하기 위한 방식이라 보면 된다.
결론은 NAT 장비 뒷단의 서버들 중 하나가 대외 서비스를 하고 있고 동일한 사내 네트워크 사용하던 서버는 대외 서비스를 하는 서버의 대외 서비스 IP로 연결을 시도하게 되는데 이는 별도의 처리가 없는 경우 폐기 되게 된다. 이를 hairpin mode를 통해 통신이 이루어질수 있도록 만드는것이다.
실제 과정은 아래 링크를 참고하여 이해하기 바란다.
일반적으로 다음과 같은 조건이 있는 경우 Hairpin 현상이 발생될 수 있다.
- 동일 subnet 내에서 NAT와 public IP로 서비스되는 서버가 같이 존재하며
- 동일한 subnet내 다른 서버가 public IP로 접근하려 할때
hairpin mode의 on/off 설정
[root@localhost ~]# brctl hairpin qbr5074cfa8-bd qvb5074cfa8-bd off
[root@localhost ~]# brctl hairpin qbr5074cfa8-bd tap5074cfa8-bd off
[root@localhost ~]# brctl showstp hairpin qbr5074cfa8-bd
showstp command를 이용해 각 port의 flag field 하단에 hairpin mode를 확인할 수 있다.
그외에 bridge command를 이용하여 확인 및 제어를 수행할 수 있다.
brctl과 bridge를 비교 자료를 아래의 링크에서 확인할 수 있다.
참고로 OpenStack의 경우 openvswitch에서 iptables를 통한 control를 수행할수 없어 bridge를 이용한다.
'os > Linux' 카테고리의 다른 글
dnsmasq (0) | 2018.03.02 |
---|---|
changing for size of centos root (0) | 2016.10.28 |
socket option related kernel (0) | 2015.03.09 |
ssh certification (0) | 2014.09.01 |
desktop icon execution of root privilege in ubuntu (0) | 2013.05.13 |
- Total
- Today
- Yesterday
- ceph
- minio
- OpenStack
- DevSecOps
- ansible
- openstacksdk
- crashloopbackoff
- boundary ssh
- GateKeeper
- hashicorp boundary
- wsl2
- kubernetes
- minikube
- metallb
- mattermost
- kata container
- macvlan
- K3S
- Terraform
- vmware openstack
- openstack backup
- Helm Chart
- azure policy
- kubernetes install
- jenkins
- open policy agent
- nginx-ingress
- Jenkinsfile
- socket
- aquasecurity
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |