인접한 두 시스템의 forwarding plane 간에 양방향 전송을 통해서 빠르게 장애를 감지하기 위한 프로토콜이다.

지정된 간격으로 Hello packet을 주고 받으며, 지정된 시간 동안 Neighbor로 부터 Hello packet을 수신하지 못하면 장애로 판단한다.

 

* 인터페이스에 BFD 적용 전 인터페이스 모드에서 no ip redirects 명령 또는 no ipv6 redirects 명령을 적용

* SVI, Ethernet, Port-channel 인터페이스에서 구성할 수 있다.
* 포트 채널 인터페이스에서 실행되는 경우 BFD에는 250 * 3밀리초의 타이머 값 제한이 있다.
* 인터페이스 구성 모드에서 bfd interval 명령을 구성하면 bfd echo 모드가 기본적으로 활성화된다.

* 인터페이스 구성 모드에서 no ip redirect(BFD echo가 필요한 경우) 및 no bfd echo를 권장한다.
* BFD echo 모드를 사용하기 전에 높은 CPU 사용률을 방지하기 위해 no ip redirect 명령을 입력하여 ICMP redirect message 전송을 비활성화해야 한다

 

BFD를 맺고자하는 장비간에 default bfd 설정 시 두 장비 모두 next-hop이 서로를 바라보도록 디폴트 라우트 설정이 되어야 bfd 네이버를 맺고 routing table에도 Entry가 등록된다. (서로 바라보는 디폴트가 다르면 다이렉트 연결로 인해 핑은 될 수 있으나 bfd 네이버를 맺지 못하고 라우팅 테이블에 디폴트 경로도 올라오지 않는다.)

 

 

-

1
2
3
4
5
6
7
8
9
10
11
12
sW1(config)#do sh run int gi1/1
interface GigabitEthernet1/1
 no switchport
 ip address 10.10.10.1 255.255.255.0
 negotiation auto
 bfd interval 555 min_rx 555 multiplier 5
 no ip redirects
 no bfd echo
!
sW1(config)#do sh run | se ip route                   
ip route static bfd GigabitEthernet1/1 10.10.10.2
ip route 2.2.0.0 255.255.0.0 GigabitEthernet1/1 10.10.10.2
cs
 
1
2
3
4
5
6
7
8
9
10
11
12
sW2(config)#do sh run int gi1/1
interface GigabitEthernet1/1
 no switchport
 ip address 10.10.10.2 255.255.255.0
 negotiation auto
 bfd interval 999 min_rx 777 multiplier 8
 no ip redirects
 no bfd echo
!
SW2(config)#do sh run | se ip route                   
ip route static bfd GigabitEthernet1/1 10.10.10.1
ip route 1.1.0.0 255.255.0.0 GigabitEthernet1/1 10.10.10.1
cs

-

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
sW1#sh bfd ne det
 
IPv4 Sessions
NeighAddr                              LD/RD         RH/RS     State     Int
10.10.10.2                              1/1          Up        Up        Gi1/1
Session state is UP and not using echo function.
Session Host: Software
OurAddr: 10.10.10.1     
Handle: 1
Local Diag: 0, Demand mode: 0, Poll bit: 0
MinTxInt: 555000, MinRxInt: 555000, Multiplier: 5
Received MinRxInt: 777000, Received Multiplier: 8
Holddown (hits): 7401(0), Hello (hits): 777(363)
Rx Count: 25, Rx Interval (ms) min/max/avg: 1/980/739 last591 ms ago
Tx Count: 30, Tx Interval (ms) min/max/avg: 1/772/615 last486 ms ago
Elapsed time watermarks: 0 0 (last0)
Registered protocols: IPv4 Static CEF 
Uptime: 00:03:06
Last packet: Version: 1                  - Diagnostic: 0
             State bit: Up               - Demand bit: 0
             Poll bit: 0                 - Final bit: 0
             C bit: 0                                   
             Multiplier: 8               - Length: 24
             My Discr.: 1                - Your Discr.: 1
             Min tx interval: 999000     - Min rx interval: 777000
             Min Echo interval: 0   
 
SW2#sh bfd ne det
 
IPv4 Sessions
NeighAddr                              LD/RD         RH/RS     State     Int
10.10.10.1                              1/1          Up        Up        Gi1/1
Session state is UP and not using echo function.
Session Host: Software
OurAddr: 10.10.10.2     
Handle: 1
Local Diag: 0, Demand mode: 0, Poll bit: 0
MinTxInt: 999000, MinRxInt: 777000, Multiplier: 8
Received MinRxInt: 555000, Received Multiplier: 5
Holddown (hits): 3593(0), Hello (hits): 999(221)
Rx Count: 43, Rx Interval (ms) min/max/avg: 1/772/639 last292 ms ago
Tx Count: 36, Tx Interval (ms) min/max/avg: 1/988/759 last557 ms ago
Elapsed time watermarks: 0 0 (last0)
Registered protocols: IPv4 Static CEF 
Uptime: 00:03:14
Last packet: Version: 1                  - Diagnostic: 0
             State bit: Up               - Demand bit: 0
             Poll bit: 0                 - Final bit: 0
             C bit: 0                                   
             Multiplier: 5               - Length: 24
             My Discr.: 1                - Your Discr.: 1
             Min tx interval: 555000     - Min rx interval: 555000
             Min Echo interval: 0  
cs

 

-

bfd interval 300 min_rx 300 multiplier 3
   - interval : BFD 제어 패킷이 BFD 피어로 전송되는 속도(밀리초)를 지정합니다. 범위는 50 ~ 999 (default 50)
   - min_rx : BFD 제어 패킷이 BFD 피어로부터 수신될 것으로 예상되는 속도(밀리초)를 지정합니다. 범위는 50 ~ 999 (default 50)
   - multiplier : BFD가 피어를 사용할 수 없다고 선언하고 Layer3 BFD 피어에 실패를 알리기 전에 BFD 피어에서 누락되어야 하는 연속 BFD 제어 패킷의 수를 지정한다.

                  범위는 1 ~ 50 (default 3)
   - 와이어샤크 BFD 패킷 확인 시 mix_rx는 Echo Interval 값이 되고, Multiplier는 Detect Time Multiplier가 된다.

 

bfd echo
   - BFD echo 모드는 인터페이스 구성 모드에서 bfd interval 명령을 사용하여 BFD를 구성한 경우 기본적으로 활성화됨.
   - 키워드 없이 no bfd echo 명령을 입력하면 에코 패킷 전송이 꺼지고, 스위치가 BFD 인접 스위치에서 수신한 에코 패킷을 전달하지 않으려는 것을 나타낸다.
   - 활성화되면 원하는 최소 에코 전송 간격과 필요한 최소 전송 간격 값은 각각 bfd interval milliseconds min_rx parameters에서 가져온다.

 

SVI 인터페이스에서 구성시 다음 단계를 수행

* SVI의 BFD static session은 해당 SVI에서 bfd interval [ms] min_rx [ms] Multiplier [multiplier-value] 명령이 비활성화되고 활성화된 후에만 설정

 

1. SVI에서 BFD 타이머를 활성화합니다.
bfd interval <milliseconds> min_rx <milliseconds> multiplier <multiplier-value>

2. 스태틱 라우트 IP 경로에 대해 BFD 활성화
ip route static bfd <interface-type interface-number ip-address>

3. SVI에서 BFD 타이머를 비활성화했다가 다시 활성화합니다.
no bfd interval <milliseconds> min_rx <milliseconds> multiplier <multiplier-value>
bfd interval <milliseconds> min_rx <milliseconds> multiplier <multiplier-value>

+ Recent posts