개요 및 명령어

4 Layer(TCP, UDP 등) 에서 사용하는 포트 번호를 통해 라우팅을 하는 것을 "Port-Based Routing"이라 불리운다. 필자가 네트워크 관리 중에 Port-Based Routing이 필요했었으며, 이것을 달성한 내용을 본 페이지에서 설명한다.

 

아래 명령을 통해 TCP 소스 포트번호가 22, 3389번일 경우 특정 인터페이스로 라우팅할 수 있다.

 

네트워크 관리 중에는 여러 VLAN이 사용될텐데 이때, 관리 세션(SSH, XRDP 등)을 특정 VLAN으로 라우팅되어야 하는 경우가 있을 것이다. 아래 명령은 그때 적절하게 사용해줄 수 있을 것이다.

 

sudo iptables -t mangle -A OUTPUT -p tcp --sport 22 -j MARK --set-mark 1
sudo iptables -t mangle -A OUTPUT -p tcp --sport 3389 -j MARK --set-mark 1

sudo ip rule add fwmark 1 table 2
sudo ip route add default via 192.168.10.1 dev eth0.1 table 2
sudo ip route flush cache

 

iptables 명령을 통해 Netfilter를 거치는 패킷 중 TCP 소스 포트가 22, 3389인 패킷은 마커 1이 기록되며, ip 명령을 통해 마커 1이 기록된 패킷은 table 2의 rule을 따르도록 한다.

정확히 마커라는 것이 패킷내에 담겨지는 것인지 리눅스 시스템 상에 관리하는 특정 구조체에 저 값을 담는 것인진 모르겠지만 아무튼 마커를 등록해준다.. 더 깊이 패킷을 까볼 생각은 하진 않았다..

 

table 2의 rule은 eth0.1(VLAN 1)로 패킷을 향하게끔 라우팅한다.

 

References

https://klyr.github.io/posts/ip_route_based_on_port/

'Linux' 카테고리의 다른 글

Redis 설치 및 자료구조  (0) 2024.08.15
tmux 유용한 명령어  (0) 2024.06.26
Ubuntu 22.04 Server(CLI) WIFI AP(Access Point) 모드 방법  (0) 2024.03.03
Ubuntu 22.04 Server(CLI) WIFI 연결 방법  (1) 2024.02.26
[vim] 초기 설정  (0) 2024.02.15
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기