2025-05-28 01:50:12 +00:00

Policy Routing

이 프로젝트는 정책 기반 라우팅을 구현하기 위한 Python 스크립트입니다. 이 스크립트는 특정 IP 주소에 대해 지정된 게이트웨이를 사용하여 패킷을 라우팅합니다.

사전 조건으로는 iproute2 패키지가 설치되어 있어야 하며, 이 패키지는 Linux 시스템에서 네트워크 인터페이스와 라우팅 테이블을 관리하는 데 사용됩니다. NIC 의 ip 설정이 미리 되어 있어야 합니다.

기능

  • 특정 IP 주소에 대해 지정된 게이트웨이를 사용하여 패킷 라우팅
  • 라우팅 테이블을 생성하고, 해당 테이블에 규칙을 추가하여 정책 기반 라우팅을 구현
  • 자동으로 NIC를 검색하고, 해당 NIC에 대한 라우팅 테이블을 설정

사용 방법

로컬에 자동 PBR 시스템 구성

스크립트는 아래 명령어로 다운로드 받을 수 있습니다

wget -O policy_routing.py https://git.dmslab.xyz/dmslab/policy-routing/-/raw/v0.3/policy_routing.py
# or
curl -o policy_routing.py https://git.dmslab.xyz/dmslab/policy-routing/-/raw/v0.3/policy_routing.py

다운로드한 스크립트를 setup 옵션으로 시스템 데몬으로 설치할 수 있습니다

sudo python3 policy_routing.py setup

ip rule 을 확인하여 정책 기반 라우팅이 설정되었는지 확인할 수 있습니다.

ip rule ls

packer 를 사용하여 이미지 배포

openstack 에 자동으로 PBR 시스템을 구성하는 packer template 을 제공합니다.

Packer 설치

https://developer.hashicorp.com/packer/tutorials/docker-get-started/get-started-install-cli

Packer OpenStack plugin 설치

openstack 에서 사용할 수 있게 하려면 Packer OpenStack 플러그인을 설치해야 합니다. 아래 명령어를 사용하여 설치할 수 있습니다.

packer plugins install github.com/hashicorp/openstack

Packer OpenStack 템플릿 설정

packer 를 사용하기 전에 openrc를 설정해야합니다

vi admin-openrc

설정 파일 내용은 아래 내용들을 채워야합니다.

export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_TENANT_NAME=$OS_PROJECT_NAME
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASSWORD
export OS_AUTH_URL=http://OPENSTACK_KEYSTONE_HOST/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
export OS_SOURCE_IMAGE_ID=원본_이미지_ID
export OS_NETWORK_NAME=이미지_빌드에_사용할_네트워크_ID
export OS_FLOATING_IP_POOL=플로팅_IP_풀_이름

위 환경 변수들은 실제 환경에 맞게 수정해야 합니다. 예를 들어, ADMIN_PASSWORD는 OpenStack 관리자의 비밀번호로 설정해야 하며, OPENSTACK_KEYSTONE_HOST는 OpenStack Keystone 서비스의 호스트 주소로 설정해야 합니다.

source admin-openrc

packer 를 실행할 수 있는지 확인합니다.

packer validate packer-openstack-ubuntu.json

Packer OpenStack 템플릿 실행

packer build packer-openstack-ubuntu.json
Description
No description provided
Readme MIT 139 KiB
Languages
Python 100%