AD는 라우팅 프로토콜이 라우팅 테이블에 경로를 추가할 때 사용하는 우선순위를 나타내는 값입니다. AD 값이 낮을수록 해당 경로가 더 신뢰할 수 있는 것으로 간주됩니다. 라우터는 여러 라우팅 프로토콜에서 동일한 목적지에 대한 경로를 수신할 때, AD 값을 기준으로 가장 신뢰할 수 있는 경로를 선택합니다.
주요 라우팅 프로토콜별 AD 값
라우팅 프로토콜AD 값
Directly Connected
0
Static Route
1
eBGP
20
EIGRP (Internal)
90
IGRP
100
OSPF
110
IS-IS
115
RIP
120
EIGRP (External)
170
iBGP
200
Unknown
255
이 표는 각 라우팅 프로토콜의 기본 AD 값을 나타내며, AD 값이 낮을수록 해당 경로가 더 신뢰할 수 있는 것으로 간주됩니다.
1. BGP Path Attribute (BGP 경로 속성)
ㅇ 어떤 도착 가능한 목적지 AS까지의 라우트(route) 경로에 관련된 정보들을 나타내는
일종의 매개변수(속성)들을 말함
ㅇ 이 속성들이 최적의 경로를 선정하는데 사용됨 (Routing Metric)
- 이 속성들(Path Attribute)은, `BGP Update Message`에 포함되어 전파됨
2. 주요 속성 및 의미
ㅇ AS-Path
- 해당 목적지 AS까지 갈때 경유되는 AS 번호들
. 이 번호들의 갯수가 작을 경우 짧은 경로로 판단함
- 한편, 이 번호들 중 자신의 AS 번호가 있으면 해당 정보를 무시함
. 이렇게 함으로써, AS Path에서 Routing Loop의 발생을 방지하게됨
ㅇ Next-Hop
- BGP 정보를 전송하는 라우터의 IP 주소로써, 목적지까지 가는 경로에서 반드시
자신을 거쳐야만 한다고 알리는 Next Hop 라우터의 주소를 말함
ㅇ Local Preference
- 목적지까지 여러 경로가 있을 경우, 외부로 나가는 통로들에 대해 선호도를 줌
- 수치가 큰 값이 더 높은 선호도를 가지며, 기본값은 통상 100
- AS 내부 즉 IBGP 사이에서만 영향을 받음
ㅇ Multi-Exit-Discriminator (MED)
- 들어오는 입구 경로가 여러 개 있을 경우에 각 경로에 대해 선호도를 줌
ㅇ Origin
- BGP 정보가 내부 라우팅 프로토콜(IGP) 또는 외부 라우팅 프로토콜(EGP) 중, 어
디로부터 생성되었는지를 알려준다. IGP 및 EGP도 아닌 경우에는 Incomplete
- 0 -> IGP, 1 -> EGP, 2 -> 기타(Incomplete)
ㅇ Community
- 어떤 특정 목적지 네트워크에 속하게하여 각 멤머들에게 동일한 속성을 적용하
기 위함. 4 바이트의 정수 값임. (RFC 1997)
ㅇ Atomic Aggregate 등
3. Path Attribute의 주요 구분
ㅇ Well-known Mandatory => AS-Path, Next-hop, Origin 속성.
- 모든 BGP Router들이 인식/구현하여야 하는 필수속성
- 이는 모든 Update 메세지에 반드시 포함되야하는 필수속성임
※ Well-known 속성은 모든 BGP 라우터가 인식할 수 있도록 반드시 구현되야함
ㅇ Well-known Discretionary => Local Preference, Atomic Aggregate 속성.
- 모든 라우터들이 이해하고 해석할 수 있어야 하는 속성
- Update 메세지에 포함될 수도(Local Preference), 안될 수도(Atomic Aggregate)
있는 속성들
ㅇ Optional Transitive => Aggregator, Community 속성.
- 옵션속성으로 어떤 라우터에 의해 인식은 되지 않지만, 이웃 라우터에게 전파
ㅇ Optional Nontransitive => Multi-Exit-Discriminator (MED) 속성.
- 옵션속성으로 이를 인식/구현하지 못하는 라우터는 이 속성을 폐기 처분하고,
이웃 라우터에게 이를 전파하지 않음
4. Path Attribute의 포멧
ㅇ path attribute flag
- O (Optional/Well-known) : 1 -> Optional, 0 -> Well-known
- T (Transitive/Non-transitive) : O=1(Optional) 이면 반드시 T=1(Transitive)
- P (Partial/Complete) : 1 -> Partial, 0 -> Complete
- E (Extended length)
5. 목적지까지의 여러 경로 중 최적경로 선택 우선순위
ㅇ 1) Next-Hop
ㅇ 2) 가장 높은 Local Preference를 선택
ㅇ 3) 같은 AS 내의 라우터에서 생성된 Route를 선택
ㅇ 4) AS-Path 들 중 가장 짧은 경로를 선택
ㅇ 5) Origin type 중 가장 작은 값 (IGP < EGP < Incomplete)
ㅇ 6) 가장 낮은 값은 MED
어떤 절차에 따른 작업을 하기 위해서 웹서버에 접속을 하고 작업을 진행하다 접속이 끊어졌을때 작업을 새로이 시작해야 한다고 보시면 됩니다. 하긴 요즈음의 경우 쿠키같은 것으로 조금은 개선이 되어 있기는 하지만요..
결국 웹서버가 사용자의 작업을 기억하지 않고 있다는 의미입니다.
그에 비해 stateful은 상태를 기억하고 있는 것입니다. 아마 이에 대한 적절한 예는 온라인 게임의 경우라고 볼 수 있겠네요. 사용자가 진행한 작업또는 사용자의 요청을 서버가 기록하고 있으며 사용자가 다시 게임에 로그온 했을때는 이전에 기록된 단계에서 부터 다시 시작하는 것입니다.
그럼 방화벽에서의 stateful은 이러합니다.
일반적인 라우터 기반의 방화벽은 tcp 패킷의 syn 또는 syn-ack로서 처리를 하는데 방화벽 내부에 위치한 네트워크로 들어보는 패킷을 차단하려면 라우터의 프로세서가 패킷의 tcp 헤더를 열어서 tcp헤더 정보가 syn인것은 차단하고 syn-ack는 통과 결정 하므로 상당한 부하가 발생합니다.
그래서 방화벽에서는 stateful 패킷 필터링을 사용하는데 이것은 내부네트워크에서 외부로 접속하는 접속에 대한 정보(syn)를 기록하고 외부에서 내부로의 응답(syn-ack)이 오게 되면 방화벽의 프로세서는 응답을 기록된 정보와 비교해서 정보가 존재하면 선택적으로 통과 시키게 됩니다. stateful기능이 없다면 외부에서 내부로 들어 오는 패킷은 모두 차단되어 버리는 결과가 발생하므로 패킷을 하나하나 열어서 tcp 헤더를 확인해야 되므로 고속처리는 어려워 지게 됩니다.
결국 접속의 상태를 기록(또는 유지)하느냐 안하느냐의 차이라고 개념을 잡으심 되겠고요..해석하실때는 그냥 stateful 또는 stateless라고 적으시면 됩니다.
ingress_policing_burst : ingress_policing_rate을 넘어서 전송할 수 있는 최대 데이터량 Kb
Goal:
Rate-limit the traffic sent by each VM to 1 Mbps.
Configuration:
For both VMs, we modify the Interface table to configure an ingress policing rule. There are two values to set:
“ingress_policing_rate”: the max-rate in kbps that this VM should be allowed to send.
“ingress_policing_burst”: a parameter to the policing algorithm to indicate the maximum amount of data (in kb) that this interface can send beyond the policing rate.
To rate limit VM1 to 1 Mbps, run:
ovs-vsctl set Interface tap0 ingress_policing_rate=1000
ovs-vsctl set Interface tap0 ingress_policing_burst=100
Similarly, to limit VM2 to 10 Mbps, run:
ovs-vsctl set Interface tap1 ingress_policing_rate=10000
ovs-vsctl set Interface tap1 ingress_policing_burst=1000