Skip to content

Instantly share code, notes, and snippets.

@tosuke

tosuke/mzr.md Secret

Last active March 5, 2023 02:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tosuke/cc34f0999becbe6c4284491c32702cbc to your computer and use it in GitHub Desktop.
Save tosuke/cc34f0999becbe6c4284491c32702cbc to your computer and use it in GitHub Desktop.

お世話になっております。チーム word-unknown-tsukuba-otaku です。 この問題では BGP で受け取っていた経路がトンネル対向アドレスへの経路を上書きしていたことが原因でトラブルが発生したと考えられました。 そのため、以下のように設定を変更し、BGP ピアの確立と通信が正しく動くことを確認いたしました。 確認のほどよろしくお願いします。

手順

Router において configure を実行して設定モードに入り,以下の設定を投入します。

  1. VRF の作成とインターフェースの追加

以下のように設定を投入します。この設定はVRF mzr を作成し,BGP で受け取った経路を用いて通信を行いたいインターフェースである tun1 と eth2 をその配下にします。

set vrf name mzr table 1000
set interfaces tunnel tun1 vrf mzr
set interfaces ethernet eth2 vrf mzr
  1. BGP の設定の移動

default VRF を対象にしていた BGP の設定を VRF mzr を対象とするように移動します。

set vrf name mzr protocols bgp address-family ipv4-unicast network 203.0.113.0/24
set vrf name mzr protocols bgp neighbor 192.0.2.0 address-family ipv4-unicast 
set vrf name mzr protocols bgp neighbor 192.0.2.0 remote-as 64512
set vrf name mzr protocols bgp neighbor 2001:db8:face:babe::1 address-family ipv6-unicast
set vrf name mzr protocols bgp neighbor 2001:db8:face:babe::1 remote-as 64512
set vrf name mzr protocols bgp system-as 65280 
set protocols bgp neighbor 192.0.2.0 shutdown 
set protocols bgp neighbor 2001:db8:face:babe::1 shutdown
  1. 設定の反映

commit; save を実行して設定を反映・永続化します。

状態の確認

対向ルータの BGP State

IPv4 の BGP State は以下のようになりました。

user@Router:~$ show bgp vrf mzr neighbors 192.0.2.0 
BGP neighbor is 192.0.2.0, remote AS 64512, local AS 65280, external link
  Local Role: undefined
  Remote Role: undefined
Hostname: Neighbor
  BGP version 4, remote router ID 198.51.100.1, local router ID 192.0.2.1
  BGP state = Established, up for 00:28:34
(以下省略)

IPv6 の BGP State は以下のようになりました。

user@Router:~$ show bgp vrf mzr neighbors 2001:db8:face:babe::1 
BGP neighbor is 2001:db8:face:babe::1, remote AS 64512, local AS 65280, external link
  Local Role: undefined
  Remote Role: undefined
Hostname: Neighbor
  BGP version 4, remote router ID 198.51.100.1, local router ID 192.0.2.1
  BGP state = Established, up for 00:31:01
(以下省略)

対向ルータの経路

IPv4 側から受け取った経路は以下のようになりました。

user@Router:~$ show bgp vrf mzr ipv4 neighbors 192.0.2.0 routes 
BGP table version is 4, local router ID is 192.0.2.1, vrf id 8
Default local pref 100, local AS 65280
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

   Network          Next Hop            Metric LocPrf Weight Path
*> 0.0.0.0/0        192.0.2.0                0             0 64512 i
*> 192.0.2.0/24     192.0.2.0                0             0 64512 i
*> 198.51.100.0/24  192.0.2.0                0             0 64512 i

Displayed  3 routes and 4 total paths

IPv6 側から受け取った経路は以下のようになりました。

user@Router:~$ show bgp vrf mzr ipv6 neighbors 2001:db8:face:babe::1 routes 
BGP table version is 5, local router ID is 192.0.2.1, vrf id 8
Default local pref 100, local AS 65280
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

   Network          Next Hop            Metric LocPrf Weight Path
*> ::/0             fe80::f93b:d2ff:fef3:1191
                                             0             0 64512 i
*> 2001:db8:2718::/48
                    fe80::f93b:d2ff:fef3:1191
                                             0             0 64512 i
*> 2001:db8:cafe::/48
                    fe80::f93b:d2ff:fef3:1191
                                             0             0 64512 i
*> 2001:db8:face::/48
                    fe80::f93b:d2ff:fef3:1191
                                             0             0 64512 i

Displayed  4 routes and 5 total paths

トンネル対向アドレスとの通信

Router からトンネルの対向アドレスへの ping が可能であることを確認しました。

user@Router:~$ ip link show tun1
7: tun1@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1476 qdisc noqueue master mzr state UNKNOWN mode DEFAULT group default qlen 1000
    link/gre6 2001:db8:cafe:babe::beef peer 2001:db8:cafe:f00d::beef permaddr de97:d3bb:5ce0::
user@Router:~$ ping 2001:db8:cafe:f00d::beef
PING 2001:db8:cafe:f00d::beef(2001:db8:cafe:f00d::beef) 56 data bytes
64 bytes from 2001:db8:cafe:f00d::beef: icmp_seq=1 ttl=63 time=1.09 ms
64 bytes from 2001:db8:cafe:f00d::beef: icmp_seq=2 ttl=63 time=0.445 ms
64 bytes from 2001:db8:cafe:f00d::beef: icmp_seq=3 ttl=63 time=0.465 ms
^C

トンネル内での対向ルータとの通信

Router からトンネルを通ったルータ対向アドレスへの ping が可能であることを確認しました。

user@Router:~$ ping 192.0.2.0 vrf mzr 
PING 192.0.2.0 (192.0.2.0) 56(84) bytes of data.
64 bytes from 192.0.2.0: icmp_seq=1 ttl=64 time=1.11 ms
64 bytes from 192.0.2.0: icmp_seq=2 ttl=64 time=0.531 ms
64 bytes from 192.0.2.0: icmp_seq=3 ttl=64 time=0.450 ms
^C (以下省略)
user@Router:~$ ping 2001:db8:face:babe::1 vrf mzr
PING 2001:db8:face:babe::1(2001:db8:face:babe::1) 56 data bytes
64 bytes from 2001:db8:face:babe::1: icmp_seq=1 ttl=64 time=0.379 ms
64 bytes from 2001:db8:face:babe::1: icmp_seq=2 ttl=64 time=0.439 ms
64 bytes from 2001:db8:face:babe::1: icmp_seq=3 ttl=64 time=0.555 ms
^C (以下省略)

Router から BGP で受け取った経路への通信

198.51.100.1 と 2001:db8:2718:2818::1 への ping が可能であることを確認しました。

user@Router:~$ ping 198.51.100.1 vrf mzr 
PING 198.51.100.1 (198.51.100.1) 56(84) bytes of data.
64 bytes from 198.51.100.1: icmp_seq=1 ttl=64 time=0.770 ms
64 bytes from 198.51.100.1: icmp_seq=2 ttl=64 time=0.696 ms
64 bytes from 198.51.100.1: icmp_seq=3 ttl=64 time=0.521 ms
^C
user@Router:~$ ping 2001:db8:2718:2818::1 vrf mzr 
PING 2001:db8:2718:2818::1(2001:db8:2718:2818::1) 56 data bytes
64 bytes from 2001:db8:2718:2818::1: icmp_seq=1 ttl=64 time=0.759 ms
64 bytes from 2001:db8:2718:2818::1: icmp_seq=2 ttl=64 time=0.527 ms
64 bytes from 2001:db8:2718:2818::1: icmp_seq=3 ttl=64 time=0.434 ms
^C

PC から BGP で受け取った経路への通信

198.51.100.1 と 2001:db8:2718:2818::1 への ping が可能であることを確認しました。

user@PC:~$ ping 198.51.100.1
PING 198.51.100.1 (198.51.100.1) 56(84) bytes of data.
64 bytes from 198.51.100.1: icmp_seq=1 ttl=63 time=1.61 ms
64 bytes from 198.51.100.1: icmp_seq=2 ttl=63 time=0.684 ms
64 bytes from 198.51.100.1: icmp_seq=3 ttl=63 time=0.587 ms
^C
user@PC:~$ ping 2001:db8:2718:2818::1
PING 2001:db8:2718:2818::1(2001:db8:2718:2818::1) 56 data bytes
64 bytes from 2001:db8:2718:2818::1: icmp_seq=1 ttl=63 time=0.980 ms
64 bytes from 2001:db8:2718:2818::1: icmp_seq=2 ttl=63 time=0.640 ms
64 bytes from 2001:db8:2718:2818::1: icmp_seq=3 ttl=63 time=0.613 ms
^C
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment