前幾篇,有跟大家分享了一下DN42註冊及廣播的方式
那這篇的話,我們就來實作吧!
首先,我已經找到可以與我對等的網路了
我們與他透過WireGuard建立隧道,隧道內部IP使用PTP Address
ip addr add 172.22.189.96/32 peer <對方IP> dev <網卡>
ip addr add <本機IPv6> peer <對方IPv6> dev <網卡>
接著,也在對方機器這樣配置
兩端嘗試icmp ping或tcp ping看是否通行
可以ping通後,我們進入frrouting來配置BGP
輸入 vtysh
進入CLI
接著輸入 config
進入配置區router bgp
進入
接著,輸入對方的IP及AS建立BGPneighbor <對方IP> remote-as <對方AS>
這樣就完成BGP配置了。那接著,我們要廣播prefix給對方,讓對方幫我們transit
輸入 address-family ipv4
進入IPv4
接著,輸入 network <prefix>
就可以廣播了!
那由於我將公網跟DN42配在同一台機器上,我們需要使用route-map來做filter
我們這邊定義一個community,用於出口及進口(防止把對方發過來的發回去,造成迴路)
首先,進入config
接著,輸入route-map <自定義名稱> permit 5
輸入,set community 65000:<自定義>
輸入 bgp community-list standard DN42 permit 65000:<自定義>
來建立community表
接著,我們在建立一個route-map,用來match的community表match community DN42
這樣,我們就建立好route-map了!
那我們返回 address-family ipv4
,輸入 network <prefix> route-map <第一個自定義名稱>
(讓他出去的時候建立一個community)
接著,在 neighbor <對方IP> route-map <第二個自定義名稱>
(讓他去做filter)
這樣,你的配置大概會是這樣
Current configuration:
!
frr version 7.3.1
frr defaults traditional
hostname YI-HOME-Router
log syslog informational
service integrated-vtysh-config
!
router-id <本機IP>
!
router bgp 209557
neighbor <對方IP> remote-as <對方AS>
!
address-family ipv4 unicast
network 172.22.189.96/29 route-map DN42
neighbor <對方IP> route-map DN42 in
neighbor <對方IP> route-map DN42-OUT out
exit-address-family
!
bgp community-list standard DN42 permit 65000:2000
!
route-map DN42 permit 5
set community 65000:12345
!
route-map DN42-OUT permit 5
match community DN42
!
line vty
!
end
YI-HOME-Router#