お世話になっております。チーム word-unknown-tsukuba-otaku です。 この問題では BGP で受け取っていた経路がトンネル対向アドレスへの経路を上書きしていたことが原因でトラブルが発生したと考えられました。 そのため、以下のように設定を変更し、BGP ピアの確立と通信が正しく動くことを確認いたしました。 確認のほどよろしくお願いします。
Router において configure
を実行して設定モードに入り,以下の設定を投入します。
- VRF の作成とインターフェースの追加
以下のように設定を投入します。この設定はVRF mzr を作成し,BGP で受け取った経路を用いて通信を行いたいインターフェースである tun1 と eth2 をその配下にします。
set vrf name mzr table 1000
set interfaces tunnel tun1 vrf mzr
set interfaces ethernet eth2 vrf mzr
- 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
- 設定の反映
commit; save
を実行して設定を反映・永続化します。
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 (以下省略)
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
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