반응형

2022년 7월 현재, 아래 Red Hat 문서가 MetalLB BGP Mode에 관한 문서 중에서는 제일 설명이 잘 되어 있는 것 같다.

 

OCP(Openshift Container Platform)에서 BGP Mode의 MetalLB를 사용할 것이라면 아래 Red Hat Docs를 참고.

다루는 내용은 이렇다.

  • MetalLB, BGP, BFD에 관한 설명
  • BGP Mode의 MetalLB를 사용하기 위한 사전 요구 사항
  • 테스트 예시 환경 (그림 포함)
  • 테스트 해보기.
 

How to Use MetalLB in BGP Mode

The purpose of this article is to introduce MetalLB design and goals and cover in more detail this new mode.

content.cloud.redhat.com

 

 

 

 

위 Red Hat 문서를 찬찬히 읽어서 이해를 다 했다면, 굳이 아래 문서는 안 봐도 된다.

위 문서가 웬만한 것을 다 Cover하기도 하고, FRR(FR Routing) 같은 Router Emulator를 이용해서 실질적으로 실습환경도 잘 설명하고 있어서 위 문서 1개로 스터디를 끝낼 수 있다.

 

 

도움이 될만한 Web Docs

MetalLB에서 BGP 모드를 사용하는 개념과 Network 구성에 관한 Web Docs이다.

그림과 예제를 이해하기 잘 작성했다.

 

 

 

MetalLB BGP 모드를 이용한 Loadbalaning

기본적인 구성은 아래와 같이 worker3대가 10.10.2.0/24의 인터페이스가 연결되어 있으며, 같은 네트워크에 BGP를 사용할 L3SW가 연결 되어 있다. 그리고 Client 는 172.16.100.0 대역대로 L3SW와 연결 되어 있

cyuu.tistory.com

 

'kubernetes' 카테고리의 다른 글

간단하게 Pod, Service, PV 리소스 생성하기  (0) 2021.11.03
Docker image 목록 한방에 지우기  (0) 2021.11.03
Istio Circuit Break  (0) 2021.08.07
Port configurations for Kubernetes service  (0) 2021.07.20
Dockerfile Example  (0) 2021.07.19
반응형

 

Windows 10 Home/ProFPP(Full Package Product), ESD(Electronic Software Distribution) 형태로 구입한 경우에는 이미 설치한 Windows 10을 삭제하고, 다른 PC에 Windows 10을 설치하고 Windows 10 License도 옮길 수 있다. (즉, 다른 PC에서 정품 인증이 된다)

그러나 Windows 10이 설치되었던 기존 PC에서 Windows 10을 삭제하기 전에 정품 인증을 해제해야 한다.

이렇게 먼저 정품 인증을 해제하지 않고, Windows 10만 삭제하면 Microsoft 고객센터에 전화해서 정품 인증 절차를 받아야 하는데 실제로 전화해서 정품 인증 절차를 받아보면서 느낀 점은 "아~ 지친다!!!" 이다.

고객센터와 정말 통화를 길게해야 한다.

게다가 이 고객센터가 필리핀 같은 곳에 있는지 통화 품질이 엄청 안 좋고, 소리도 작다.

그래서 통화를 15분 정도 하면서 스트레스를 꽤 많이 받았다.

전화상으로 수십 자리의 알파벳 코드를 불러 주는 것을 듣고 PC에 입력해야 하는데, 이거 상당히 어렵다. ㅠㅠ

(전화를 해보면 알겠지만, 고객센터가 달나라에 있는 것처럼 음질이 너무 안 좋다)

 

 


 

아래 블로그에 윈도우즈 라이센스를 해제하는 방법이 잘 설명되어 있다. 

그리고 Windows 10을 삭제하기 전에 현재의 Product Key를 확인하고, 삭제해야 한다.

 

 

 

윈도우 제품키(시디키) 확인하기

내 PC의 윈도우 제품 키(시디 키)를 확인하는 방법에 대해 알아 보자. MS 윈도우 제품 키(시디 키)는 2...

blog.naver.com

 

 


위 웹 문서에 여러 방법의 설명이 있지만, KeyFinder 라는 프로그램을 다운로드 받아서 실행하면 Product Key를 열람할 수 있다.
다른 방법은 잘 안 되서 비추~

 

 


 

 

 

 

윈도우10 정품 인증하기 및 해제하기

윈도우10 정품 인증하기 및 해제하기에 대해 알아 보자. 윈도우10 디지탈 라이센스를 사용하여 정품 인증하...

blog.naver.com

 

 

 

주의

만약, MS 계정으로 등록된 PC라면, 아래와 같이 추가로 MS 홈피에 접속해서 계정에 등록된 PC를 지워야 한다.

꼭!!! 지워야 한다.

 

작업 순서는 아래와 같다.

 

  1. https://microsoft.com 에 로그인한다.
  2. Web 화면의 우측 상단에 있는 사람 icon을 click한다.
  3. "내 Microsoft 계정"을 click한다.
  4. "장치" Section의 "모든 장치 보기"를 click한다.
  5. 웹 페이지에 보여진 Windows가 설치된 PC 정보를 확인하고 해당 PC를 삭제한다.
    --------------------------------------------------------------------------------------------------
    여기 까지는 microsoft.com 웹 페이지에서 하는 작업이고, 아래부터는 실제 PC에서 터미널을 열고 작업해야 한다
    --------------------------------------------------------------------------------------------------
  6. 실제 컴퓨터에서 Windows를 초기화(또는 삭제)한다.
    Windows 제품키를 지우고, 초기화하는 것은 자세한 내용은 아래 웹 페이지를 따라 한다.

 

 

 

윈도우10 정품인증 해제하는 방법입니다. - 아이티온즈넷

윈도우10 정품인증을 해제는 slmgr /cpky 및 slmgr /upk 명령어를 이용하며 MS계정 디지털라이선스 사용자는 마이크로소프트 홈페이지에서 PC 제거를 합니다.

itons.net

 

반응형

Web Server를 운영하다보니, 해외에서 내 Web Server를 공격하는 시도가 많이 보인다.

그래서 이런 Web Server를 공격하는 Access를 몽땅 iptables 명령으로 drop(block)하는 스크립트를 만들었다.

아래와 같이 스크립트를 작성하고, 실행하면 이 시간 이후로 공격이 모두 차단된다.

 

##
## Block Some IP addresses
##

#!/bin/bash

LOG_FILE_NAME="/var/log/apache2/access.log"

BLACK_LIST=$(awk '{ printf "%s\n", $1 }' $LOG_FILE_NAME  | grep -v "192.168.0." | sort | uniq)

for BLOCKING_IP in $BLACK_LIST
do
  BLOCKING_CIDR="$BLOCKING_IP/16"
  echo "Blocking CIDR: $BLOCKING_CIDR"
  GEO_ADDRESS=$(whois $BLOCKING_IP | grep -i "address:")
  echo "$GEO_ADDRESS"
  echo ""
  iptables -A INPUT -s $BLOCKING_CIDR  -p tcp  --dport 80  -j DROP
done


iptables -L -n --line-numbers | grep "DROP" | awk '{ printf "%s\n", $5 }' | sort
# iptables -D INPUT 1
# iptables -D INPUT 2
# ...


##
## If you would like to save the iptables rules, then run the following command.
##
# service iptables save

 

만약, 위와 같이 수행했다가 다시 Rule을 지우고 싶다면, 아래와 같이 스크립트를 작성해서 실행한다.

 

##
## Remove rules of IP tables
##

#!/bin/bash

REMOVE_IP_LIST=$(iptables -L -n | grep "DROP" | awk '{ printf "%s\n", $4 }' | sort)

for REMOVE_IP in $REMOVE_IP_LIST
do
  echo "IP Address to be removed: $REMOVE_IP"
  iptables -D INPUT -s $REMOVE_IP -j DROP
done
반응형

아래의 글이 쉽게 설명되어 있다. 시간될 때, 다시 꼼꼼하게 읽어봐야겠다.

 

참고: istio v1.2  kubernetes v1.14로 테스트한 과정이 설명되어 있다.

 

http://itnp.kr/post/istio-circuit-break

 

Istio Circuit Breaking

Circuit Breaking이란 전기의 회로차단기에서 차용한 개념으로 전기가 흐르다가 문제가 생기면 회로를 open하여 더이상 전기가 흐르지 않도록하여 문제가 되는 부분으로 부터 전체 시스템에 장애가

itnp.kr

 

반응형

 

한국기술대학교 박승철 교수 /  BGP 강의

지금까지 찾은 BGP 설명 영상 중에서 개념과 라이팅 동작 원리를 포괄적으로 잘 설명한 자료이다.

이 영상을 먼저 본 이후에 다른 영상을 보는 것이 좋다.

 

 

예제를 통한 BGP 이해하기 (후티와 떠나는 네트워크 여행 2 - BGP 라우팅 설정과 조정)

'후티'님이 예제를 이용하여 설명해주는 영상이다. 30분 만에 eBGP, iBGP에 대한 감을 잡기에 딱 좋은 설명이다.

 

 6-1장

 

 

6-2장

 

6-3장

 

6-4장 

 

6-5장

 

 

 

 

 

 

BGP 기본 설정 - 실습 

 

 

참고 영상

https://www.youtube.com/watch?v=lISiQ6ifeM0 

 

 

BGP 라우팅 동작 원리 (동영상)

 

 

BGP (Border Gateway Protocol) 이해하기

아래 Web Docs가 BGP Concept에 관해 잘 설명하고 있다. 이 문서에서 AS(Autonomous System), BGP Protocol Spec, Advertisement 등에 관한 개념을 설명한다. 

 

[이해하기] 라우팅 프로토콜 - BGP | STEVEN J. LEE

글로벌 네트워크는 최종적으로 AS 라는 집단 (예> 하나의 인터넷 회선 사업자가 가지고 있는 모든 라우터들의 그룹) 끼리 상호 통신을 하게 됨으로써 구성된다고 볼 수 있습니다. 이 AS 들 끼리 서

www.stevenjlee.net

 

 

Network Switch 설정 및 BGP Table

아래 Web Docs가 실제 Cisco Switch를 이용해서 실제 AS간 Peer(Beighbor) 설정을 어떻게 하는지 보여준다.

 

Routing Protocol - BGP (Border Gateway Protocol)

BGP (Border Gateway Protocol) BGP (Border Gateway Protocol)는 서로 다른 조직의 네트워크를 연결할 때 사용하는 라우팅 프로토콜이다. 기업체 또는 학교나 정부 기관등이 2개 이상의 ISP와 연결할 때 BGP를 사..

net-study.club

 

반응형

항상 환경부가 관리하는 충전기를 이용해서 전기차를 충전하다가 오늘은 GS칼텍스에서 충전해봤다.

서울 서초구 남부터미널 근처에 있는 연일주유소에 갔고, 설치한지 얼마 안 되서 그런지 충전기가 깨끗했다.

충전기 2개 모두 비어있어서, 기다리지 않고 바로 충전할 수 있었다.

 

충전하고 10분쯤 지났을 때 충전기 화면

 

 

직접 GS 칼텍스에서 충전해보니, 환경부 충전기보다 좋은 점은 이렇다.

충전 속도가 빠르다.

내 차(아이오닉 2020년식)는 환경부 급속충전기에 연결하면, 여름 기준으로  34~37kW/h 정도인데 GS칼텍스 충전기로는 45~47kW/h 정도 충전된다. 어림잡아 GS칼텍스 충전기가 20% 정도 충전속도가 더 빠르다.

 

충전 요금이 싸다.

현재(2021년 7월 23일) 222원/kW인데, 환경부 충전기보다 대략 30% 정도 싼 셈이다.

단, 222원/kW 요금으로 충전하려면 신용카드로 결제해야 한다. 만약 환경부 충전카드로 요금을 결제하면 로밍 요금이 적용되서 환경부에 고시된 비싼 금액으로 요금이 결제된다.

따라서 GS칼텍스에서 충전 요금 결제할 때는 반드시 신용카드로 결제하는 것이 금전적으로 유리하다.

 

관리가 잘 되어 있어서 고장이 적다.

고속도로 휴게소 또는 공영주차장에 있는 전기차 충전소에 가보면, 충전기가 고장난 상태로 방치된 경우가 많다.

전기차 배터리는 10% 정도 남았는데, 고장난 충전기 앞에 서 있다보면 화가 난다. 또 다른 충전기를 찾아가야 하기 때문이다.

GS칼텍스는 주유소 내에 충전기가 있고, 직원이 즉시 고장 관리를 해주니까 고장난 경우를 아직 못 봤다.

 

충전기 화면이 크고 시원시원하다.

일반 공용 충전기와 다르게 GS칼텍스 충전기는 화면이 많이 크다. 

그리고 충전할 때 선택할 수 있는 옵션도 여러 가지이다.

- kW 지정 방식: 10kW, 20kW와 같이 충전 용량을 지정해서 충전할 수 있다.
- 금액 지정 방식: 1,000원  3,000원  5,000원과 같이 금액을 지정해서 충전할 수 있다.
- 시간 지정 방식: 10분  30분과 같이 충전 시간을 지정할 수 있다.
- 퍼센트 지정 방식: 60%  80%와 같이 충전 퍼센트를 지정할 수 있다.

 

내 경우에는 "금액 지정 방식" 제일 편한 것 같다. 내 차의 배터리 용량을 알고 있고, 5천원을 충전하면 전체 배터리 용량의 55% 정도 충전되는 것을 알고 있기 때문에 현재 30% 미만으로 배터리가 떨어졌다면 5천원만 충전하면 된다.

그리고 이렇게 금액 지정방식으로 충전하면, 신용카드의 "결제 -> 취소 -> 결제"와 같이 지저분한 결제 이력이 남지 않아서 좋다.

다른 충전 지정 방식은 일단 높은 금액을 결제가 되고, 충전을 해보다가 잔여 금액이 생기면 다시 결제를 취소해주는 방식이다.

 

 

결론

비슷한 거리에 환경부 충전기랑 GS칼텍스 충전기가 있다면, GS칼텍스로 가는 것이 훨씬 이득이다.

충전속도 빠르고, 충전 요금도 저렴하니까.

반응형

Macbook을 새로 구입하고, .bash_profile을 작성할 때 참고하려고 작성했다.

 

#
# Greeting message
#   31 Red
#   32 Green
#   33 Yellow
#   34 Blue
#   35 Magenta
#   36 Cyan
#   Reference: https://en.wikipedia.org/wiki/ANSI_escape_code
#


# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

# For Ubuntu, CentOS
#OS_DESCRIPTION=$(lsb_release -d)
# For Mac OS
OS_DESCRIPTION=$(uname -srn)

echo "                                                "
echo "  Bourne Again Shell  Environment  for  Andrew "
echo "  $OS_DESCRIPTION "
echo "                                                "

#
# For core dumped file
#
ulimit -c unlimited

#
# Locale
#
## LC_CTYPE=ko_KR.utf8
export LC_ALL="en_US.UTF-8"
export LANGUAGE="en_US.UTF-8"

# export VIM=/usr/share/vim/vim74
export PATH=$PATH:/sbin:/usr/sbin:/usr/local/go/bin:./
export PATH=$PATH:/usr/local/Cellar/iftop/1.0pre4/sbin
export PATH=$PATH:$HOME/go/bin
export PATH=$PATH:$HOME/bin

ssh2() {
    ssh  -oStrictHostKeyChecking=no  -p 33322  $@
}

sftp2() {
    sftp  -oStrictHostKeyChecking=no  -P 33322  $@
}

mandump() {
    man $1 | col -bx > man_page_$1.txt
}

## For docker monitoring
docker_ip() {
    sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' "$@"
}

mywhile() {
	while true; do date;  $2;  echo "";  echo "";  sleep $1;  done
}

conn_vpn() {
	sudo  openconnect --protocol=gp $1
}

## For Mac OS
get_cpu_mac() {
    # istats all
    istats cpu
}

## For Raspberry PI
get_cpu_pi() {
    my_cpu_temp=$(vcgencmd measure_temp)
    echo " *** Execute vcgencmd *** "
    echo "  + CPU Temperature : $my_cpu_temp "

    echo ""
    echo " *** Get information from /sys/class/thermal/thermal_zone0/temp *** "
    cpu=$(</sys/class/thermal/thermal_zone0/temp)
    echo "  + CPU Temperature : $((cpu/1000)) c "
}

## Kubernetes
kube_andrew() {
  export KUBECONFIG=~/Documents/kube_config/andrew
  kubectl config get-contexts
}

kube_peter() {
  export KUBECONFIG=~/Documents/kube_config/peter
  kubectl config get-contexts
}

## For Mac OS
export PS1="\h:\w > "


export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d"
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
source <(kubectl completion bash)
alias k=kubectl
complete -F __start_kubectl k

alias ls='ls -FG'

## For Mac OS
# defaults write .GlobalPreferences com.apple.mouse.scaling -23000
# efaults write -g com.apple.mouse.scaling 5

 

 

'Ubuntu' 카테고리의 다른 글

Install BIND for name server(DNS) on Ubuntu 22.04  (0) 2021.11.05
openssl command example  (0) 2021.11.04
.vimrc 작성  (0) 2021.07.22
iptables and netfilter  (1) 2021.07.10
tcpdump로 HTTP Packet Decode 하기 및 tshark 사용법  (0) 2021.07.10
반응형

VIM 편집기를 사용할 때, .vimrc 파일을 잘 작성하면 IDE만큼 편하게 쓸 수 있다.

각 항목을 잘 이해하고 .vimrc 파일을 설정하면 좋겠지만, 귀찮으면 그냥 아래 내용을 copy & paste하면 된다. :D

 

"
" Filename: .vimrc
"

syntax on

color koehler
set expandtab   " tab character를 whitespace로 자동 변환

set tags=./tags,/root/tags

set fileencodings=utf8,euc-kr
set smartcase   " 대문자가 검색어 문자열에 포함될 때에는 noignorecase
set ignorecase  " 검색시 대소문자 무시
set hlsearch    " 검색시 하이라이트(색상 강조)
set incsearch   " 검색 키워드 입력시 한 글자 입력할 때마다 점진 검색

set ruler       " 현재 커서 위치 (row, col) 좌표 출력
set noerrorbells    " 에러 알림음 끄기

set bs=indent,eol,start " backspace 키 사용 가능
set background=dark  " 검정배경을 사용할 때, (이 색상에 맞춰 문법 하이라이트 색상이 달라짐.)

set wmnu            " tab 자동완성시 가능한 목록을 보여줌
set shiftwidth=4    " shift를 4칸으로 ( >, >>, <, << 등의 명령어)
set tabstop=4       " tab을 4칸으로
"set tabstop=4 softtabstop=4 shiftwidth=4

set noimd       " no imdisable 한글 입력기 관련

set ai              " autoindent 자동 들여쓰기
set smartindent     " 자동 들여쓰기 "
set cindent         " C언어 자동 들여쓰기
set laststatus=2    " 상태바를 언제나 표시할 것
set sm              " 매치되는 괄호 표시 (= showmatch)
set history=1000    " vi 편집기록 기억갯수 .viminfo에 기록



" 마지막으로 수정된 곳에 커서를 위치함
au BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "norm g`\"" |
\ endif


au BufNewFile,BufReadPost *.c,*.h set cindent
au BufNewFile,BufReadPost *.cpp,*.cc source $VIM/syntax/cpp.vim
au BufNewFile,BufReadPost *.cpp,*.cc set cindent
au BufNewFile,BufReadPost *.go source $HOME/Git/shell_config/go.vim
au BufNewFile,BufReadPost *.tex source $VIM/syntax/tex.vim
au BufNewFile,BufReadPost *.tex set autoindent
au BufNewFile,BufReadPost *.java source $VIM/syntax/java.vim
au BufNewFile,BufReadPost *.java set cindent
au BufNewFile,BufReadPost *.html,*.htm source $VIM/syntax/html.vim
au BufNewFile,BufReadPost *.html,*.htm set smartindent


" Move tab for multiple files open
nnoremap <TAB> <C-W>w
nnoremap <S-TAB> <C-W>W

" vim-commentary
map gc <Plug>Commentary
nmap gcc <Plug>CommentaryLine

imap ,for for (idx = 0; idx < ; idx++) {<ENTER>}
imap ,if if () {<ENTER>}<ESC>kf(a
imap ,wh while () {<ENTER>}<ESC>kf(a
imap ,pr printf("%s %s(%d) \n", __func__, __FILE__, __LINE__);

ab _a@  #if 0 /* I would not use the following code */ <CR>#else<CR>#endif


" ctrl-j 로 라인을 분리.
nnoremap <NL> i<CR><ESC>

" copy , paste , select 기능 보완 -------------------------------
noremap <Space>y    "+y
nnoremap <Space>p   "+p
nnoremap <Space>a   gg<S-v>G

" navigation 기능 보완 ---------------------------------
nnoremap <Space>h ^
nnoremap <Space>l $
noremap <Space>j 8j
noremap <Space>k 8k


ab _el      MYLOG_ERR("%s:: \n", __func__);
ab _sl      MYLOG_SVC("%s::success\n", __func__);
ab _dl      MYLOG_DBG("%s:: \n", __func__);

+ Recent posts