brunch

You can make anything
by writing

C.S.Lewis

by Yoong Apr 08. 2016

ARP 기반의 BGP host Routing

keyword : bgp, arp, proxy-arp

BGP-only 네트워크에서 호스트의 이동이 자유로운 네트워크를 구성하기 위해 호스트에 단일 IP만을 설치하고 ARP 정보를 기반으로 호스트IP 32bit를 광고하고 통신하는 방안을 정리 한다.


고민

 

 네트워크 담당자로서 다양한 요구조건을 듣다 보면 많은 사용자들은 호스트의 이동에 제한이 없길 바란다. 그러면 네트워크 엔지니어가 가장 쉽게 선택할 수 있는 구조는 L2 기반의 네트워크다. 고전 방식으로 성실히 Vlan을 나누고 STP를 구성하며 루프, unknown unicast flooding을 제거하고자 고군분투 하지만 한계를 느낀다. 그러면 게으른 NE는 근본적인 문제를 해결할 다른 기술을 찾는다.

그런 과정으로 다양한 검토를 하던 중 처음 Cisco NX-OS의 vPC, Nexus 5K-2K, MAC/ARP  aging time 내용 등이 정리된, 나의 고민을 누군가 대필해 둔 것 같은 Overview 문서를 읽었을 때 나는 나와 같은 고민을 하는 네트워크 엔지니어들이 많다는 생각에 참으로 위안을 느꼈다. 네트워크 엔지니어들의 고민은 비슷하다. 그 고민들이 모여 흐름을 만들고 기술의 유행을 만든다. 그 흐름 속에 MCLAG, 클러스터링 기능들이 나온다. TRILL, TRILL스러운 기술들이 나온다. L2는 안 되겠다 싶은지 L3로 회귀한다. L3기반에서 유연성을 높이고자 overlay를 한다. 또는 BGP로 망 전체를 구성하고 각 호스트의 32 bit IP를 제한 없이 광고한다.


이미 대규모 회사들은 EBGP only 네트워크를 구성하여 운영 중이다. BGP 기반의 네트워크에서 호스트의 이동이 자유롭기 위해서 각 호스트의 IP를 specific route인 32 bit로 광고한다. 나는 그 네트워크에 API 연동하여 자동화를 어떻게 이룰지 보다는 어떻게 효율적으로 각 호스트의 32 bit route를 광고할지가 고민이었다.


기획


상식적으로 아래와 같은 한계가 있다.

 1. 기본적으로 호스트 IP는 상위 네트워크의 서브넷에 종속된다.

 2. "1"외 Loopback IP와 같이 Floating IP의 형태를 통해 종속되지 않는 IP를 구현한다.

 3. 번거롭게도 "2"를 광고하기 위해 호스트마다 BGP를 올리고 Edge Router와 neighbor를 맺는다.

 또는 Edge Router에서 Static route로 Floating IP의 Next-hop을 "1"의 IP로 설정한다.

 4. 가상화 환경에서는 hypervisor들이 자신들 위에서 실행 중인 VM들의 IP를 제공 가능하다.

 Edge Router와 hypervisor가 BGP neighbor를 맺으면  BGP neighbor를 최소화할 수 있다.

 물리적 환경에서는 어떻게 구성 가능할까


아래와 같이 설계해 본다.

 1. 호스트에 별도의 Floating IP를 구성하지 않고 서브넷의 IP만으로 구성한다.

 2. 특정 Edge Router에 종속되지 않도록 모든 Edge Router에 동일한 Vlan/Subnet을 할당한다.

 3. ARP 정보를 기반으로 호스트를 광고하고 통신하기 한다.

 4. ARP를 BGP로 재분배를 하여 광고를 한다. 구현된 장비가 없으므로 API/Injector를 구성한다.

 5. 같은 서브넷이면서 다른 Edge Router에 위치한 호스트와의 통신을 위해 Proxy-ARP를 사용한다.


구성안

구성도 1

모든 Edge Router(R3, R4)에는 동일한 서브넷(10.200.0.0/16), 동일 Vlan200을 할당한다.

호스트에는 10.200.0.0/16 내의 단일 IP만 설정한다.

Edge Router의 ARP를 API를 통해 수신, Static Route로 변환하여 적용, BGP로 재분배하여 광고한다.

다른 Edge Router에 위치한 호스트(H1 - H2)와의 통신을 위해 Vlan200에  Proxy-ARP를 Enable 한다.


테스트를 위한 계위는 2단계로만 구성했다.
라우터(R[1-4]), 호스트(H[1-3])은 모두 Arista Multi layer Switch로 구성하였다.
사용한 기능 및 프로토콜은 EBGP, ARP, Proxy-ARP, Arista eAPI(Python)이다.


설정


# R3 설정


vlan 200     # 모든 Edge Router에 동일

   name ALL_HOST

!

interface Ethernet1

   description Router-1

   no switchport

   ip address 10.100.1.6/30

!

interface Ethernet2

   description Router-2

   no switchport

   ip address 10.100.1.14/30

!

interface Ethernet3

   description Host-1

   switchport access vlan 200

   spanning-tree portfast

   spanning-tree bpduguard enable

!

interface Ethernet4

   description Host-3

   switchport access vlan 200

   spanning-tree portfast

   spanning-tree bpduguard enable

!

interface Ethernet48

   description Router-4

   no switchport

   ip address 10.100.1.21/30

!

interface Vlan200

   description ALL_HOST

   ip proxy-arp     # proxy-arp enable

   ip address 10.200.0.1/16 # 모든 Edge Router에 동일

!

ip prefix-list HOST-IP seq 10 permit 10.200.0.0/16 eq 32     # 32 bit route

ip prefix-list SERIAL seq 10 permit 0.0.0.0/0 eq 30

!

route-map HOST-to-BGP permit 10     # Static to BGP

   match ip address prefix-list HOST-IP

   set origin igp

!

route-map SERIAL-to-BGP permit 10

   match ip address prefix-list SERIAL

!

router bgp 3

   router-id 10.0.0.3

   timers bgp 1 3

   maximum-paths 2 ecmp 2

   neighbor 10.100.1.5 remote-as 1

   neighbor 10.100.1.5 description Router-1

   neighbor 10.100.1.5 maximum-routes 12000

   neighbor 10.100.1.13 remote-as 2

   neighbor 10.100.1.13 description Router-2

   neighbor 10.100.1.13 maximum-routes 12000

   redistribute connected route-map SERIAL-to-BGP

   redistribute static route-map HOST-to-BGP     # Static to BGP


# R4 설정


vlan 200

   name ALL_HOST

!

interface Ethernet1

   description Router-1

   no switchport

   ip address 10.100.1.10/30

!

interface Ethernet2

   description Router-2

   no switchport

   ip address 10.100.1.18/30

!

interface Ethernet3

   description Router-6

   switchport access vlan 200

   spanning-tree portfast

   spanning-tree bpduguard enable

!

interface Ethernet48

   description Router-3

   shutdown

   no switchport

   ip address 10.100.1.22/30

!

interface Vlan200

   description ALL_HOST

   ip proxy-arp

   ip address 10.200.0.1/16

!

ip route 10.200.200.200/32 Vlan200

!

ip prefix-list HOST-IP seq 10 permit 10.200.0.0/16 eq 32

ip prefix-list SERIAL seq 10 permit 0.0.0.0/0 eq 30

!

route-map HOST-to-BGP permit 10

   match ip address prefix-list HOST-IP

   set origin igp

!

route-map SERIAL-to-BGP permit 10

   match ip address prefix-list SERIAL

!

router bgp 4

   router-id 10.0.0.4

   timers bgp 1 3

   maximum-paths 2 ecmp 2

   neighbor 10.100.1.9 remote-as 1

   neighbor 10.100.1.9 description Router-1

   neighbor 10.100.1.9 maximum-routes 12000

   neighbor 10.100.1.17 remote-as 2

   neighbor 10.100.1.17 description Router-2

   neighbor 10.100.1.17 maximum-routes 12000

   redistribute connected route-map SERIAL-to-BGP

   redistribute static route-map HOST-to-BGP


# Host 1,2,3


#Host-1

interface Ethernet1

   description Router-3

   no switchport

   ip address 10.200.100.100/16

!

ip route 0.0.0.0/0 10.200.0.1

#Host-2

interface Ethernet1

   description Router-4

   no switchport

   ip address 10.200.200.200/16

!

ip route 0.0.0.0/0 10.200.0.1

#Host-3

interface Ethernet1

   description Router-3

   no switchport

   ip address 10.200.50.50/16

!

ip route 0.0.0.0/0 10.200.0.1


# Injection Script


#!/usr/bin/python


from __future__ import print_function

from jsonrpclib import Server


vlan_num=200

arp_table={}

route_table=["configure terminal"]


switch = Server( "http://ID:PASSWORD@EDGE-ROUTER-IP/command-api" )

response = switch.runCmds( 1, [ "show ip arp interface vlan%d" % vlan_num ], "json" )

# Edge Router로부터 ARP Table 수신


for host in response[0]["ipV4Neighbors"]:

        arp_table[host["address"]]=host["hwAddress"]


print ("show ARP Tables")

for IP in arp_table:

        print (IP, end="\t")

        print (arp_table[IP])

        route_table.append("ip route %s 255.255.255.255 Vlan%d" % (IP, vlan_num))

# ARP Table을 Static Route로 변환


print ("\nshow Route Tables")

for route in route_table:

        print (route)


print ("\ninstall Routes")

response = switch.runCmds( 1,

                        route_table,

                         "json" )

# 위의 생성된 route_table을 Edge Router에 적용


print (response)


# R1 설정


interface Ethernet3

   description Router-3

   no switchport

   ip address 10.100.1.5/30

!

interface Ethernet4

   description Router-4

   no switchport

   ip address 10.100.1.9/30

!

interface Ethernet48

   description Router-2

   no switchport

   ip address 10.100.1.1/30

!

ip prefix-list SERIAL seq 10 permit 0.0.0.0/0 eq 30

!

route-map SERIAL-to-BGP permit 10

   match ip address prefix-list SERIAL

!

router bgp 1

   router-id 10.0.0.1

   timers bgp 1 3

   neighbor 10.100.1.2 remote-as 2

   neighbor 10.100.1.2 description Router-2

   neighbor 10.100.1.2 maximum-routes 12000 

   neighbor 10.100.1.6 remote-as 3

   neighbor 10.100.1.6 description Router-3

   neighbor 10.100.1.6 maximum-routes 12000

   neighbor 10.100.1.10 remote-as 4

   neighbor 10.100.1.10 description Router-4

   neighbor 10.100.1.10 maximum-routes 12000

   redistribute connected route-map SERIAL-to-BGP


# R2 설정


interface Ethernet3

   description Router-3

   no switchport

   ip address 10.100.1.13/30

!

interface Ethernet4

   description Router-4

   no switchport

   ip address 10.100.1.17/30

!

interface Ethernet48

   description Router-1

   no switchport

   ip address 10.100.1.2/30

!

ip prefix-list SERIAL seq 10 permit 0.0.0.0/0 eq 30

!

route-map SERIAL-to-BGP permit 10

   match ip address prefix-list SERIAL

!

router bgp 2

   router-id 10.0.0.2

   timers bgp 1 3

   neighbor 10.100.1.1 remote-as 1

   neighbor 10.100.1.1 description Router-1

   neighbor 10.100.1.1 maximum-routes 12000

   neighbor 10.100.1.14 remote-as 3

   neighbor 10.100.1.14 description Router-3

   neighbor 10.100.1.14 maximum-routes 12000

   neighbor 10.100.1.18 remote-as 4

   neighbor 10.100.1.18 description Router-4

   neighbor 10.100.1.18 maximum-routes 12000

   redistribute connected route-map SERIAL-to-BGP



테스트


테스트 순서는 아래와 같다.

 1. H2(Host-2)를 연결한다. Gateway인 Edge Router R4에 H2의 ARP가 생성된다.

 2. Injector는 주기적으로 Edge Router들의 ARP를 질의하여 추가된 ARP를 Static route로 변환하여  해당 Edge Router에 다시 설정한다.

 3. Injector를 통해 설정된 Static route는 BGP로 재분배되어 광고된다.

 4. R4에서 광고된 호스트 IP는 R[1-3]에 BGP를 통해 32 bit route를 설치한다.

 5. H1는 동일 서브넷인 H2(R4에 위치한)와의 통신을 위해 ARP를 요청한다.

 H1, H2는 동일한 L2 Domain 내 위치하지 않으므로 H2는 ARP 응답을 할 수 없다.
 R3은 H2의 route가 존재하므로 proxy-arp에 의해 자신의 MAC address로 ARP를 대신 응답한다.

 6. H1은 R3의 MAC으로 Frame를 생성하여 송신 및 H2와 통신한다.

 7. H1와 H3와의 통신은 동일한 L2 Domain에 위치하므로 H3가 직접 ARP를 응답한다.


테스트 결과는 아래와 같다.

* H2(10.200.200.200 / 001c.73d6.9087)를 연결한다, H2의 ARP table은 아래와 같다.

Host-2#show ip arp
10.200.0.1              0  001c.73d6.ce25  Ethernet1 # Gateway, R4

* R4의 ARP table은 아래와 같다.

Router-4#show ip arp
10.100.1.9                0  001c.73d6.d17f  Ethernet1
10.100.1.17              0  001c.73d6.c0ff  Ethernet2
10.200.200.200       0  001c.73d6.9087  Vlan200, Ethernet3  #### Host-2


* Injector에 의해 R4의 ARP table이 Static route로 적용된다.

show ARP Tables
10.200.200.200 001c.73d6.9087

show Route Tables
configure terminal
ip route 10.200.200.200 255.255.255.255 Vlan200

install Routes
[{}, {}, {}]


* R4에 아래와 같이 Static route가 생성되고 BGP로 광고된다.

Router-4#show run | include "ip route"
ip route 10.200.200.200/32 Vlan200   #### Injector에 의해 생성

Router-4#show ip route
 S      10.200.200.200/32 is directly connected, Vlan200

Router-4#show ip bgp neighbors 10.100.1.9 advertised-routes   ##### R1
       Network             Next Hop         Metric  LocPref Weight Path
 * >   10.200.200.200/32   10.100.1.10      -       -       -      4 i
Router-4#show ip bgp neighbors 10.100.1.17 advertised-routes ##### R2
       Network             Next Hop         Metric  LocPref Weight Path
 * >   10.200.200.200/32   10.100.1.18      -       -       -      4 i


* R1, R2, R3를 BGP를 통해 H2의 route를 수신한다.

Router-1#show ip route
 B E    10.200.200.200/32 [200/0] via 10.100.1.10, Ethernet4

Router-2#show ip route
 B E    10.200.200.200/32 [200/0] via 10.100.1.18, Ethernet4

Router-3#show ip route
 B E    10.200.200.200/32 [200/0] via 10.100.1.5, Ethernet1
                                                           via 10.100.1.13, Ethernet2

* H1은 H2(10.200.200.200)와의 통신을 위해 ARP를 요청한다. R3(Gateway)가 대신 ARP를 응답한다.

Host-1#show ip arp
10.200.0.1              0  001c.7379.6e61  Ethernet1

Host-1#ping 10.200.200.200
80 bytes from 10.200.200.200: icmp_req=1 ttl=61 time=886 ms     ##### ARP 요청
80 bytes from 10.200.200.200: icmp_req=2 ttl=61 time=0.145 ms
80 bytes from 10.200.200.200: icmp_req=3 ttl=61 time=0.191 ms

Host-1#show ip arp
10.200.0.1                   0  001c.7379.6e61  Ethernet1
10.200.200.200          0  001c.7379.6e61  Ethernet1 # R3의 MAC Address으로 응답

* H1은 H3(10.200.50.50)와의 통신을 위해 ARP를 요청한다. 요청 후 H3가 응답한다.

Host-1#show ip arp
10.200.0.1                   0  001c.7379.6e61  Ethernet1
10.200.200.200          0  001c.7379.6e61  Ethernet1

Host-1#ping 10.200.50.50
80 bytes from 10.200.50.50: icmp_req=1 ttl=64 time=0.340 ms
80 bytes from 10.200.50.50: icmp_req=2 ttl=64 time=0.160 ms
80 bytes from 10.200.50.50: icmp_req=3 ttl=64 time=0.126 ms

Router-5#show ip arp
10.200.0.1                  0  001c.7379.6e61  Ethernet1
10.200.50.50              0  001c.73d6.cc99  Ethernet1 # Host3의 MAC Address
10.200.200.200          0  001c.7379.6e61  Ethernet1


테스트 결과 예상과 같이 ARP가 생성되고 Injector를 통해 BGP로 전파되어 ARP/Proxy-ARP/BGP의 조합으로 정상적인 통신이 이루어진다.


구성의 장단점


장점

 1. 모든 Edge Router에 동일한 서브넷을 할당하므로 별도의 서브넷팅이 필요 없고 IP의 낭비가 적다.

 2. 호스트당 단일 IP 사용으로 별도의 IP 할당, 관리가 불필요하다.

 3. 호스트 계위에서 자신의 IP 광고를 위해 별도의 작업이 필요 없다.

 4. Edge Router에 종속되지 않고 가상화, 물리적 호스트 모두 자유로운 이동이 가능하다.


단점

 1. 호스트가 속한 서브넷의 모든 호스트의 ARP Table를 가지고 있어야 한다.

 16 bit 서브넷에 가능한 모든 호스트를 구성한다면 호스트들은 호스트들 간의 통신을 위해 최대 

 65,534개의 ARP entry를 유지해야 한다.

 2. Edge Router를 포함한 모든 Router들은 호스트들의 수만큼의 호스트 라우트 또는 LPM Table를 유지해야 한다. 해당 라우트를 지원하기 위해 Edge Router 또한 고사양의 장비 또는 라이센스 비용이 증가한다.

 3. 모든 정보의 기반이 ARP이기에 ARP spoofing에 취약하다. 

 ARP Inspection을 제대로 구현하지 않는다면 단순한 ARP spoofing에도 네트워크 전체가 무너질 수 있다.


활용을 위한 고려 사항


 페이스북 네트워크의 pod(layer3 micro-cluster)처럼 최소한의 네트워크 단위 정의가 필요하다. 

해당 pod에 구성할 호스트 수를 정하고 그 호스트 수만큼의 route와 ARP 운영에 문제가 없을지 검증을 해야 한다.

또한 호스트의 자유로운 이동은 해당 pod 내로 제한된다. 해당 pod에만 동일한 서브넷이 존재하기 때문이다.

Edge Router 대수, API를 통한 ARP 업데이트 주기, 중복 제거 또는 anycast 허용 등이 고려되어야 한다.

ARP to BGP 재분배를 지원하는 장비가 있다면 API/Injector 또한 불필요하다.


맺음말


 이런저런 상념 중에 재미있겠다 싶어 구상한 설계안이 문서로 정리해 보니 영 쓸모없겠다 싶다.

최초 구상은 대규모 네트워크를 떠올리며 설계했지만 오히려 작은 네트워크에서 호스트 이동이 잦은 곳에서 사용한다면 활용도가 높아 보인다.

다양한 조합을 해보며 새로운 구성을 만들어 보는 것에 의미를 두고 글을 맺는다.


참고 문서


 사용된 내역은 모두 일반적인 프로토콜이며 사용된 API 관련 문서만 덧붙인다.

Arista eAPI 101( https://eos.arista.com/arista-eapi-101/ )


전체 결과


 테스트 시 각 장비의 ARP, Route, BGP 전체 결과 덧붙인다.



Router-1#show ip bgp summary

BGP summary information for VRF default

Router identifier 10.0.0.1, local AS number 1

Neighbor         V  AS      MsgRcvd   MsgSent  InQ OutQ  Up/Down State  PfxRcd PfxAcc

10.100.1.2       4  2         11587     11587    0    0 00:00:51 Estab  5      4

10.100.1.6       4  3         10976     11001    0    0 00:00:51 Estab  6      5

10.100.1.10      4  4         10302     10252    0    0 00:00:51 Estab  6      5


Router-1#show ip route

Codes: C - connected, S - static, K - kernel,

       O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,

       E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,

       N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,

       R - RIP, I - ISIS, A B - BGP Aggregate, A O - OSPF Summary,

       NG - Nexthop Group Static Route


Gateway of last resort is not set


 C      10.100.1.0/30 is directly connected, Ethernet48

 C      10.100.1.4/30 is directly connected, Ethernet3

 C      10.100.1.8/30 is directly connected, Ethernet4

 B E    10.100.1.12/30 [200/0] via 10.100.1.2, Ethernet48

 B E    10.100.1.16/30 [200/0] via 10.100.1.2, Ethernet48

 B E    10.200.100.100/32 [200/0] via 10.100.1.6, Ethernet3

 B E    10.200.200.200/32 [200/0] via 10.100.1.10, Ethernet4


Router-2#show ip bgp summary

BGP summary information for VRF default

Router identifier 10.0.0.2, local AS number 2

Neighbor         V  AS      MsgRcvd   MsgSent  InQ OutQ  Up/Down State  PfxRcd PfxAcc

10.100.1.1       4  1         11667     11669    0    0 00:02:12 Estab  5      4

10.100.1.14      4  3         10870     10902    0    0 00:02:59 Estab  4      3

10.100.1.18      4  4         10034      9988    0    0 00:02:59 Estab  4      3


Router-2#show ip route

Codes: C - connected, S - static, K - kernel,

       O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,

       E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,

       N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,

       R - RIP, I - ISIS, A B - BGP Aggregate, A O - OSPF Summary,

       NG - Nexthop Group Static Route


Gateway of last resort is not set


 C      10.100.1.0/30 is directly connected, Ethernet48

 B E    10.100.1.4/30 [200/0] via 10.100.1.1, Ethernet48

 B E    10.100.1.8/30 [200/0] via 10.100.1.1, Ethernet48

 C      10.100.1.12/30 is directly connected, Ethernet3

 C      10.100.1.16/30 is directly connected, Ethernet4

 B E    10.200.100.100/32 [200/0] via 10.100.1.14, Ethernet3

 B E    10.200.200.200/32 [200/0] via 10.100.1.18, Ethernet4


Router-3#show ip bgp summary

BGP summary information for VRF default

Router identifier 10.0.0.3, local AS number 3

Neighbor         V  AS      MsgRcvd   MsgSent  InQ OutQ  Up/Down State  PfxRcd PfxAcc

10.100.1.5       4  1         11312     11287    0    0 00:06:03 Estab  6      5

10.100.1.13      4  2         11131     11109    0    0 00:06:49 Estab  6      5


Router-3#show ip bgp neighbors  10.100.1.5 advertised-routes

BGP routing table information for VRF default

Router identifier 10.0.0.3, local AS number 3

Route status codes: s - suppressed, * - valid, > - active, E - ECMP head, e - ECMP

                    S - Stale, c - Contributing to ECMP

Origin codes: i - IGP, e - EGP, ? - incomplete

AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop


       Network             Next Hop         Metric  LocPref Weight Path

 * >Ec 10.100.1.0/30       10.100.1.6       -       -       -      3 2 i

 * >   10.100.1.4/30       10.100.1.6       -       -       -      3 i

 * >   10.100.1.12/30      10.100.1.6       -       -       -      3 i

 * >   10.100.1.16/30      10.100.1.6       -       -       -      3 2 i

 * >   10.200.100.100/32   10.100.1.6       -       -       -      3 i

 * >Ec 10.200.200.200/32   10.100.1.6       -       -       -      3 2 4 i


Router-3#show ip bgp neighbors  10.100.1.5 received-routes

BGP routing table information for VRF default

Router identifier 10.0.0.3, local AS number 3

Route status codes: s - suppressed, * - valid, > - active, E - ECMP head, e - ECMP

                    S - Stale, c - Contributing to ECMP

Origin codes: i - IGP, e - EGP, ? - incomplete

AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop


       Network             Next Hop         Metric  LocPref Weight Path

 *  ec 10.100.1.0/30       10.100.1.5       0       100     -      1 i

       10.100.1.4/30       10.100.1.5       0       100     -      1 i

 * >   10.100.1.8/30       10.100.1.5       0       100     -      1 i

 *     10.100.1.12/30      10.100.1.5       0       100     -      1 2 i

 *     10.100.1.16/30      10.100.1.5       0       100     -      1 2 i

 *  ec 10.200.200.200/32   10.100.1.5       0       100     -      1 4 i


Router-3#show ip bgp neighbors  10.100.1.13 advertised-routes

BGP routing table information for VRF default

Router identifier 10.0.0.3, local AS number 3

Route status codes: s - suppressed, * - valid, > - active, E - ECMP head, e - ECMP

                    S - Stale, c - Contributing to ECMP

Origin codes: i - IGP, e - EGP, ? - incomplete

AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop


       Network             Next Hop         Metric  LocPref Weight Path

 * >   10.100.1.4/30       10.100.1.14      -       -       -      3 i

 * >   10.100.1.8/30       10.100.1.14      -       -       -      3 1 i

 * >   10.100.1.12/30      10.100.1.14      -       -       -      3 i

 * >   10.200.100.100/32   10.100.1.14      -       -       -      3 i


Router-3#show ip bgp neighbors  10.100.1.13 received-routes

BGP routing table information for VRF default

Router identifier 10.0.0.3, local AS number 3

Route status codes: s - suppressed, * - valid, > - active, E - ECMP head, e - ECMP

                    S - Stale, c - Contributing to ECMP

Origin codes: i - IGP, e - EGP, ? - incomplete

AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop


       Network             Next Hop         Metric  LocPref Weight Path

 * >Ec 10.100.1.0/30       10.100.1.13      0       100     -      2 i

 *     10.100.1.4/30       10.100.1.13      0       100     -      2 1 i

 *     10.100.1.8/30       10.100.1.13      0       100     -      2 1 i

       10.100.1.12/30      10.100.1.13      0       100     -      2 i

 * >   10.100.1.16/30      10.100.1.13      0       100     -      2 i

 * >Ec 10.200.200.200/32   10.100.1.13      0       100     -      2 4 i


Router-3#show ip route

Codes: C - connected, S - static, K - kernel,

       O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,

       E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,

       N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,

       R - RIP, I - ISIS, A B - BGP Aggregate, A O - OSPF Summary,

       NG - Nexthop Group Static Route


Gateway of last resort is not set


 B E    10.100.1.0/30 [200/0] via 10.100.1.5, Ethernet1

                              via 10.100.1.13, Ethernet2

 C      10.100.1.4/30 is directly connected, Ethernet1

 B E    10.100.1.8/30 [200/0] via 10.100.1.5, Ethernet1

 C      10.100.1.12/30 is directly connected, Ethernet2

 B E    10.100.1.16/30 [200/0] via 10.100.1.13, Ethernet2

 S      10.200.100.100/32 is directly connected, Vlan200

 B E    10.200.200.200/32 [200/0] via 10.100.1.5, Ethernet1

                                  via 10.100.1.13, Ethernet2

 C      10.200.0.0/16 is directly connected, Vlan200


Router-3#show ip arp

Address         Age (min)  Hardware Addr   Interface

10.100.1.5              0  001c.73d6.d17f  Ethernet1

10.100.1.13             0  001c.73d6.c0ff  Ethernet2

10.200.50.50            0  001c.73d6.cc99  Vlan200, Ethernet4

10.200.100.100          0  001c.7379.7281  Vlan200, Ethernet3


Router-3#show mac address-table

          Mac Address Table

------------------------------------------------------------------


Vlan    Mac Address       Type        Ports      Moves   Last Move

----    -----------       ----        -----      -----   ---------

 200    001c.7379.7281    DYNAMIC     Et3        1       0:00:09 ago

 200    001c.73d6.cc99    DYNAMIC     Et4        1       0:00:19 ago

Total Mac Addresses for this criterion: 2


          Multicast Mac Address Table

------------------------------------------------------------------


Vlan    Mac Address       Type        Ports

----    -----------       ----        -----

Total Mac Addresses for this criterion: 0


Router-4#show ip bgp summary

BGP summary information for VRF default

Router identifier 10.0.0.4, local AS number 4

Neighbor         V  AS      MsgRcvd   MsgSent  InQ OutQ  Up/Down State  PfxRcd PfxAcc

10.100.1.9       4  1         10755     10805    0    0 00:09:14 Estab  6      5

10.100.1.17      4  2         10409     10464    0    0 00:10:00 Estab  6      5


Router-4#show ip bgp neighbors 10.100.1.9 advertised-routes

BGP routing table information for VRF default

Router identifier 10.0.0.4, local AS number 4

Route status codes: s - suppressed, * - valid, > - active, E - ECMP head, e - ECMP

                    S - Stale, c - Contributing to ECMP

Origin codes: i - IGP, e - EGP, ? - incomplete

AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop


       Network             Next Hop         Metric  LocPref Weight Path

 * >Ec 10.100.1.0/30       10.100.1.10      -       -       -      4 2 i

 * >   10.100.1.8/30       10.100.1.10      -       -       -      4 i

 * >   10.100.1.12/30      10.100.1.10      -       -       -      4 2 i

 * >   10.100.1.16/30      10.100.1.10      -       -       -      4 i

 * >Ec 10.200.100.100/32   10.100.1.10      -       -       -      4 2 3 i

 * >   10.200.200.200/32   10.100.1.10      -       -       -      4 i

Router-4#show ip bgp neighbors 10.100.1.9 received-routes

BGP routing table information for VRF default

Router identifier 10.0.0.4, local AS number 4

Route status codes: s - suppressed, * - valid, > - active, E - ECMP head, e - ECMP

                    S - Stale, c - Contributing to ECMP

Origin codes: i - IGP, e - EGP, ? - incomplete

AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop


       Network             Next Hop         Metric  LocPref Weight Path

 *  ec 10.100.1.0/30       10.100.1.9       0       100     -      1 i

 * >   10.100.1.4/30       10.100.1.9       0       100     -      1 i

       10.100.1.8/30       10.100.1.9       0       100     -      1 i

 *     10.100.1.12/30      10.100.1.9       0       100     -      1 2 i

 *     10.100.1.16/30      10.100.1.9       0       100     -      1 2 i

 *  ec 10.200.100.100/32   10.100.1.9       0       100     -      1 3 i


Router-4#show ip bgp neighbors 10.100.1.17 advertised-routes

BGP routing table information for VRF default

Router identifier 10.0.0.4, local AS number 4

Route status codes: s - suppressed, * - valid, > - active, E - ECMP head, e - ECMP

                    S - Stale, c - Contributing to ECMP

Origin codes: i - IGP, e - EGP, ? - incomplete

AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop


       Network             Next Hop         Metric  LocPref Weight Path

 * >   10.100.1.4/30       10.100.1.18      -       -       -      4 1 i

 * >   10.100.1.8/30       10.100.1.18      -       -       -      4 i

 * >   10.100.1.16/30      10.100.1.18      -       -       -      4 i

 * >   10.200.200.200/32   10.100.1.18      -       -       -      4 i

Router-4#show ip bgp neighbors 10.100.1.17 received-routes

BGP routing table information for VRF default

Router identifier 10.0.0.4, local AS number 4

Route status codes: s - suppressed, * - valid, > - active, E - ECMP head, e - ECMP

                    S - Stale, c - Contributing to ECMP

Origin codes: i - IGP, e - EGP, ? - incomplete

AS Path Attributes: Or-ID - Originator ID, C-LST - Cluster List, LL Nexthop - Link Local Nexthop


       Network             Next Hop         Metric  LocPref Weight Path

 * >Ec 10.100.1.0/30       10.100.1.17      0       100     -      2 i

 *     10.100.1.4/30       10.100.1.17      0       100     -      2 1 i

 *     10.100.1.8/30       10.100.1.17      0       100     -      2 1 i

 * >   10.100.1.12/30      10.100.1.17      0       100     -      2 i

       10.100.1.16/30      10.100.1.17      0       100     -      2 i

 * >Ec 10.200.100.100/32   10.100.1.17      0       100     -      2 3 i


Router-4#show ip route

Codes: C - connected, S - static, K - kernel,

       O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,

       E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,

       N2 - OSPF NSSA external type2, B I - iBGP, B E - eBGP,

       R - RIP, I - ISIS, A B - BGP Aggregate, A O - OSPF Summary,

       NG - Nexthop Group Static Route


Gateway of last resort is not set


 B E    10.100.1.0/30 [200/0] via 10.100.1.9, Ethernet1

                              via 10.100.1.17, Ethernet2

 B E    10.100.1.4/30 [200/0] via 10.100.1.9, Ethernet1

 C      10.100.1.8/30 is directly connected, Ethernet1

 B E    10.100.1.12/30 [200/0] via 10.100.1.17, Ethernet2

 C      10.100.1.16/30 is directly connected, Ethernet2

 B E    10.200.100.100/32 [200/0] via 10.100.1.9, Ethernet1

                                  via 10.100.1.17, Ethernet2

 S      10.200.200.200/32 is directly connected, Vlan200

 C      10.200.0.0/16 is directly connected, Vlan200


Router-4#show ip arp

Address         Age (min)  Hardware Addr   Interface

10.100.1.9              0  001c.73d6.d17f  Ethernet1

10.100.1.17             0  001c.73d6.c0ff  Ethernet2

10.200.200.200          0  001c.73d6.9087  Vlan200, Ethernet3


Router-4#show mac address-table

          Mac Address Table

------------------------------------------------------------------


Vlan    Mac Address       Type        Ports      Moves   Last Move

----    -----------       ----        -----      -----   ---------

 200    001c.73d6.9087    DYNAMIC     Et3        1       0:00:08 ago

Total Mac Addresses for this criterion: 1


          Multicast Mac Address Table

------------------------------------------------------------------


Vlan    Mac Address       Type        Ports

----    -----------       ----        -----

Total Mac Addresses for this criterion: 0


Host-1#ping 10.200.0.1

PING 10.200.0.1 (10.200.0.1) 72(100) bytes of data.

80 bytes from 10.200.0.1: icmp_req=1 ttl=64 time=0.201 ms

80 bytes from 10.200.0.1: icmp_req=2 ttl=64 time=0.146 ms

80 bytes from 10.200.0.1: icmp_req=3 ttl=64 time=0.148 ms

80 bytes from 10.200.0.1: icmp_req=4 ttl=64 time=0.143 ms

80 bytes from 10.200.0.1: icmp_req=5 ttl=64 time=0.145 ms

--- 10.200.0.1 ping statistics ---

5 packets transmitted, 5 received, 0% packet loss, time 1ms

rtt min/avg/max/mdev = 0.143/0.156/0.201/0.026 ms, ipg/ewma 0.272/0.178 ms


Host-1#show ip arp

Address         Age (min)  Hardware Addr   Interface

10.200.0.1              0  001c.7379.6e61  Ethernet1


Host-1#show ip interface brief

Interface              IP Address         Status     Protocol         MTU

Ethernet1              10.200.100.100/16  up         up              1500


Host-1#ping 10.200.200.200

PING 10.200.200.200 (10.200.200.200) 72(100) bytes of data.

80 bytes from 10.200.200.200: icmp_req=1 ttl=61 time=886 ms

80 bytes from 10.200.200.200: icmp_req=2 ttl=61 time=0.145 ms

80 bytes from 10.200.200.200: icmp_req=3 ttl=61 time=0.191 ms

80 bytes from 10.200.200.200: icmp_req=4 ttl=61 time=0.167 ms

80 bytes from 10.200.200.200: icmp_req=5 ttl=61 time=0.170 ms

--- 10.200.200.200 ping statistics ---

5 packets transmitted, 5 received, 0% packet loss, time 2935ms

rtt min/avg/max/mdev = 0.145/177.361/886.136/354.387 ms, ipg/ewma 733.982/519.506 ms


Host-1#show ip arp

Address         Age (min)  Hardware Addr   Interface

10.200.0.1              0  001c.7379.6e61  Ethernet1

10.200.200.200          0  001c.7379.6e61  Ethernet1


Host-1#ping 10.200.50.50

PING 10.200.50.50 (10.200.50.50) 72(100) bytes of data.

80 bytes from 10.200.50.50: icmp_req=1 ttl=64 time=0.340 ms

80 bytes from 10.200.50.50: icmp_req=2 ttl=64 time=0.160 ms

80 bytes from 10.200.50.50: icmp_req=3 ttl=64 time=0.126 ms

80 bytes from 10.200.50.50: icmp_req=4 ttl=64 time=0.135 ms

80 bytes from 10.200.50.50: icmp_req=5 ttl=64 time=0.129 ms

--- 10.200.50.50 ping statistics ---

5 packets transmitted, 5 received, 0% packet loss, time 2ms

rtt min/avg/max/mdev = 0.126/0.178/0.340/0.081 ms, ipg/ewma 0.662/0.255 ms


Host-1#show ip arp

Address         Age (min)  Hardware Addr   Interface

10.200.0.1              0  001c.7379.6e61  Ethernet1

10.200.50.50            0  001c.73d6.cc99  Ethernet1

10.200.200.200          0  001c.7379.6e61  Ethernet1


Host-1#ping 10.200.250.250

PING 10.200.250.250 (10.200.250.250) 72(100) bytes of data.

From 10.200.100.100 icmp_seq=1 Destination Host Unreachable

From 10.200.100.100 icmp_seq=2 Destination Host Unreachable

From 10.200.100.100 icmp_seq=3 Destination Host Unreachable

--- 10.200.250.250 ping statistics ---

5 packets transmitted, 0 received, +3 errors, 100% packet loss, time 4002ms

pipe 3


Host-1#show ip arp

Address         Age (min)  Hardware Addr   Interface

10.200.0.1              0  001c.7379.6e61  Ethernet1

10.200.50.50            0  001c.73d6.cc99  Ethernet1

10.200.200.200          0  001c.7379.6e61  Ethernet1


Host-2#ping 10.200.0.1

PING 10.200.0.1 (10.200.0.1) 72(100) bytes of data.

80 bytes from 10.200.0.1: icmp_req=1 ttl=64 time=0.197 ms

80 bytes from 10.200.0.1: icmp_req=2 ttl=64 time=0.145 ms

80 bytes from 10.200.0.1: icmp_req=3 ttl=64 time=0.144 ms

80 bytes from 10.200.0.1: icmp_req=4 ttl=64 time=0.143 ms

80 bytes from 10.200.0.1: icmp_req=5 ttl=64 time=0.134 ms

--- 10.200.0.1 ping statistics ---

5 packets transmitted, 5 received, 0% packet loss, time 1ms

rtt min/avg/max/mdev = 0.134/0.152/0.197/0.026 ms, ipg/ewma 0.270/0.174 ms


Host-2#show ip arp

Address         Age (min)  Hardware Addr   Interface

10.200.0.1              0  001c.73d6.ce25  Ethernet1


Host-2#ping 10.200.100.100

PING 10.200.100.100 (10.200.100.100) 72(100) bytes of data.

80 bytes from 10.200.100.100: icmp_req=1 ttl=61 time=39.8 ms

80 bytes from 10.200.100.100: icmp_req=2 ttl=61 time=0.163 ms

80 bytes from 10.200.100.100: icmp_req=3 ttl=61 time=0.175 ms

80 bytes from 10.200.100.100: icmp_req=4 ttl=61 time=0.189 ms

80 bytes from 10.200.100.100: icmp_req=5 ttl=61 time=0.187 ms

--- 10.200.100.100 ping statistics ---

5 packets transmitted, 5 received, 0% packet loss, time 134ms

rtt min/avg/max/mdev = 0.163/8.112/39.846/15.867 ms, ipg/ewma 33.533/23.431 ms


Host-2#show ip arp

Address         Age (min)  Hardware Addr   Interface

10.200.0.1              0  001c.73d6.ce25  Ethernet1

10.200.100.100          0  001c.73d6.ce25  Ethernet1


Host-2#ping 10.200.50.50

PING 10.200.50.50 (10.200.50.50) 72(100) bytes of data.

From 10.200.200.200 icmp_seq=1 Destination Host Unreachable

From 10.200.200.200 icmp_seq=2 Destination Host Unreachable

From 10.200.200.200 icmp_seq=3 Destination Host Unreachable

From 10.200.200.200 icmp_seq=4 Destination Host Unreachable

From 10.200.200.200 icmp_seq=5 Destination Host Unreachable

--- 10.200.50.50 ping statistics ---

5 packets transmitted, 0 received, +5 errors, 100% packet loss, time 4002ms

pipe 3


Host-2#show ip arp

Address         Age (min)  Hardware Addr   Interface

10.200.0.1              0  001c.73d6.ce25  Ethernet1

10.200.100.100          0  001c.73d6.ce25  Ethernet1


Host-3#show ip arp

Address         Age (min)  Hardware Addr   Interface

10.200.0.1              0  001c.7379.6e61  Ethernet1

10.200.100.100          0  001c.7379.7281  Ethernet1




감사합니다.


Yoong.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari