51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【Vyos-开源篇-10】- Docker 镜像 BGPServer 在 VyOS 中的详细配置

文章介绍:本篇主要介绍博主在vyos中配置路由分流的方法,基于博主更新的docker镜像实现在vyos中配置路由分流功能,在我的docker hub镜像库中,bgpserver镜像目前存放着三个镜像,本篇将详细说明在vyos中的使用方法和注意事项。

一、bgpserver:cn {#一-bgpserver-cn}

bgpserver:cn 地址

bgpserver:cn 镜像是拉取中国的路由列表,适用vyos本身的默认路由是全局海外模式,学习中国的路由设置next-hop走本地,vyos中默认路由优先级是1,bgp学习的是200,但是根据路由匹配原则,先匹配子网掩码再去匹配优先级,所以可以实现国内外分流功能。

1.1、config.ini配置 {#1-1-config-ini配置}

sudo nano /config/config.ini

[server]
RouterId = 100.66.66.2
ASN = 65000
NextHop = 10.225.97.1
UpdateSource = 100.66.66.2
`[peer]
IP = 100.66.66.1
ASN = 65000
`

1.2、拉取镜像 {#1-2-拉取镜像}

add container image docker.io/yangpin/bgpserver:cn
sudo podman pull docker.io/yangpin/bgpserver:cn

1.3、vyos完整配置 {#1-3-vyos完整配置}

set container name bgpserver cap-add 'net-admin'
set container name bgpserver cap-add 'sys-admin'
set container name bgpserver host-name 'bgpserver'
set container name bgpserver image 'docker.io/yangpin/bgpserver:cn'
set container name bgpserver memory '2048'
set container name bgpserver network bgpnetwork address '100.66.66.2'
set container name bgpserver restart 'always'
set container name bgpserver volume config destination '/opt/config.ini'
set container name bgpserver volume config source '/config/config.ini'
set container network bgpnetwork prefix '100.66.66.0/30'

set interfaces ethernet eth0 address '10.225.97.9/24'


set nat source rule 100 outbound-interface name 'eth0'
set nat source rule 100 source address '100.66.66.0/30'
set nat source rule 100 translation address 'masquerade'


set protocols bgp neighbor 100.66.66.2 address-family ipv4-unicast soft-reconfiguration inbound
set protocols bgp neighbor 100.66.66.2 remote-as '65000'
set protocols bgp neighbor 100.66.66.2 update-source '100.66.66.1'
set protocols bgp system-as '65000'
set protocols bgp timers holdtime '15'
set protocols bgp timers keepalive '3'


set protocols static route 0.0.0.0/0 next-hop 10.225.97.6


set service ssh port '22'

`set system name-server '223.5.5.5'
set system name-server '223.6.6.6'
`

  1. set container name bgpserver cap-add 'net-admin': 为名为 "bgpserver" 的容器添加网络管理权限。
  2. set container name bgpserver cap-add 'sys-admin': 为名为 "bgpserver" 的容器添加系统管理权限。
  3. set container name bgpserver host-name 'bgpserver': 设置名为 "bgpserver" 的容器的主机名为 "bgpserver"。
  4. set container name bgpserver image 'docker.io/yangpin/bgpserver:cn': 指定名为 "bgpserver" 的容器使用的镜像为 "docker.io/yangpin/bgpserver:cn"。
  5. set container name bgpserver memory '2048': 设置名为 "bgpserver" 的容器的内存限制为 2048MB。
  6. set container name bgpserver network bgpnetwork address '100.66.66.2': 将名为 "bgpserver" 的容器连接到名为 "bgpnetwork" 的网络,并分配给容器的 IP 地址为 100.66.66.2。
  7. set container name bgpserver restart 'always': 设置名为 "bgpserver" 的容器在退出时总是重新启动。
  8. set container name bgpserver volume config destination '/opt/config.ini': 将名为 "bgpserver" 的容器的配置文件存储到宿主机上的 '/opt/config.ini' 目录中。
  9. set container name bgpserver volume config source '/config/config.ini': 将宿主机上的 '/config/config.ini' 文件挂载到名为 "bgpserver" 的容器中。
  10. set container network bgpnetwork prefix '100.66.66.0/30': 配置名为 "bgpnetwork" 的网络的 IP 前缀为 '100.66.66.0/30'。
  11. set interfaces ethernet eth0 address '10.225.97.10/24': 配置以太网接口 'eth0' 的 IP 地址为 '10.225.97.10/24'。
  12. set nat source rule 100 outbound-interface name 'eth0': 设置 NAT 源地址转换规则,匹配出接口 'eth0' 的流量。
  13. set nat source rule 100 source address '100.66.66.0/30': 指定 NAT 源地址转换规则的源地址为 '100.66.66.0/30'。
  14. set nat source rule 100 translation address 'masquerade': 设置 NAT 源地址转换规则中的转换地址为 'masquerade'(伪装,即使用外部 IP 地址)。
  15. set protocols bgp neighbor 100.66.66.2 address-family ipv4-unicast soft-reconfiguration inbound: 配置 BGP 邻居 '100.66.66.2' 支持 IPv4 单播地址族,并启用入站软重配置。
  16. set protocols bgp neighbor 100.66.66.2 remote-as '65000': 设置 BGP 邻居 '100.66.66.2' 的远程自治系统号为 '65000'。
  17. set protocols bgp neighbor 100.66.66.2 update-source '100.66.66.1': 设置 BGP 邻居 '100.66.66.2' 的更新消息的源 IP 地址为 '100.66.66.1'。
  18. set protocols bgp system-as '65000': 配置本地 BGP 实例的自治系统号为 '65000'。
  19. set protocols bgp timers holdtime '15': 设置 BGP 协议的保持时间为 '15' 秒。
  20. set protocols bgp timers keepalive '3': 设置 BGP 协议的保活时间为 '3' 秒。
  21. set protocols static route 0.0.0.0/0 next-hop 10.225.97.6: 添加一个静态路由,将所有流量发送到下一跳 IP 地址 '10.225.97.6'。
  22. set service ssh port '22': 配置 SSH 服务的端口号为 '22'。
  23. set system name-server '223.5.5.5': 配置系统使用的 DNS 服务器为 '223.5.5.5'。
  24. set system name-server '223.6.6.6': 配置系统使用的 DNS 服务器为 '223.6.6.6'。

1.4、明细路由表 {#1-4-明细路由表}

yydy_2024-06-03_22-36-54

1.5、全局路由表 {#1-5-全局路由表}

yydy_2024-06-03_22-38-56

二、bgpserver:ncn {#二-bgpserver-ncn}

bgpserver:ncn 地址

bgpserver:ncn 镜像是拉取除了中国路由以外的路由列表,适用vyos本身的默认路由是走国内模式,学习非中国的路由设置next-hop走隧道,vyos中默认路由优先级是1,bgp学习的是200,但是根据路由匹配原则,先匹配子网掩码再去匹配优先级,所以可以实现国内外分流功能。

2.1、config.ini配置 {#2-1-config-ini配置}

sudo nano /config/config.ini

[server]
RouterId = 100.66.66.2
ASN = 65000
NextHop = 10.225.97.6
UpdateSource = 100.66.66.2
`[peer]
IP = 100.66.66.1
ASN = 65000
`

2.2、拉取镜像 {#2-2-拉取镜像}

add container image docker.io/yangpin/bgpserver:ncn
sudo podman pull docker.io/yangpin/bgpserver:ncn

2.3、vyos完整配置 {#2-3-vyos完整配置}

set container name bgpserver cap-add 'net-admin'
set container name bgpserver cap-add 'sys-admin'
set container name bgpserver host-name 'bgpserver'
set container name bgpserver image 'docker.io/yangpin/bgpserver:ncn'
set container name bgpserver memory '4096'
set container name bgpserver network bgpnetwork address '100.66.66.2'
set container name bgpserver restart 'always'
set container name bgpserver volume config destination '/opt/config.ini'
set container name bgpserver volume config source '/config/config.ini'
set container network bgpnetwork prefix '100.66.66.0/30'

set interfaces ethernet eth0 address '10.225.97.9/24'


set nat source rule 100 outbound-interface name 'eth0'
set nat source rule 100 source address '100.66.66.0/30'
set nat source rule 100 translation address 'masquerade'


set protocols bgp neighbor 100.66.66.2 address-family ipv4-unicast soft-reconfiguration inbound
set protocols bgp neighbor 100.66.66.2 remote-as '65000'
set protocols bgp neighbor 100.66.66.2 update-source '100.66.66.1'
set protocols bgp system-as '65000'
set protocols bgp timers holdtime '15'
set protocols bgp timers keepalive '3'


set protocols static route 0.0.0.0/0 next-hop 10.225.97.1


set service ssh port '22'

`set system name-server '223.5.5.5'
set system name-server '223.6.6.6'
`

  1. set container name bgpserver cap-add 'net-admin': 为名为 "bgpserver" 的容器添加了网络管理权限。
  2. set container name bgpserver cap-add 'sys-admin': 给名为 "bgpserver" 的容器添加了系统管理权限。
  3. set container name bgpserver host-name 'bgpserver': 将名为 "bgpserver" 的容器的主机名设置为 "bgpserver"。
  4. set container name bgpserver image 'docker.io/yangpin/bgpserver:ncn': 指定名为 "bgpserver" 的容器使用的镜像为 "docker.io/yangpin/bgpserver:ncn"。
  5. set container name bgpserver memory '4096': 将名为 "bgpserver" 的容器的内存限制为 4096MB。
  6. set container name bgpserver network bgpnetwork address '100.66.66.2': 将名为 "bgpserver" 的容器连接到名为 "bgpnetwork" 的网络,并分配给容器的IP地址为 100.66.66.2。
  7. set container name bgpserver restart 'always': 设置名为 "bgpserver" 的容器在退出时总是重新启动。
  8. set container name bgpserver volume config destination '/opt/config.ini': 将名为 "bgpserver" 的容器的配置文件存储到宿主机上的 '/opt/config.ini' 目录中。
  9. set container name bgpserver volume config source '/config/config.ini': 将宿主机上的 '/config/config.ini' 文件挂载到名为 "bgpserver" 的容器中。
  10. set container network bgpnetwork prefix '100.66.66.0/30': 配置名为 "bgpnetwork" 的网络的IP前缀为 '100.66.66.0/30'。
  11. set interfaces ethernet eth0 address '10.225.97.9/24': 更新以太网接口 'eth0' 的IP地址为 '10.225.97.9/24'。
  12. set nat source rule 100 outbound-interface name 'eth0': 设置 NAT 源地址转换规则,匹配出接口 'eth0' 的流量。
  13. set nat source rule 100 source address '100.66.66.0/30': 指定 NAT 源地址转换规则的源地址为 '100.66.66.0/30'。
  14. set nat source rule 100 translation address 'masquerade': 设置 NAT 源地址转换规则中的转换地址为 'masquerade'(伪装,即使用外部IP地址)。
  15. set protocols bgp neighbor 100.66.66.2 address-family ipv4-unicast soft-reconfiguration inbound: 配置 BGP 邻居 '100.66.66.2' 支持 IPv4 单播地址族,并启用入站软重配置。
  16. set protocols bgp neighbor 100.66.66.2 remote-as '65000': 设置 BGP 邻居 '100.66.66.2' 的远程自治系统号为 '65000'。
  17. set protocols bgp neighbor 100.66.66.2 update-source '100.66.66.1': 设置 BGP 邻居 '100.66.66.2' 的更新消息的源IP地址为 '100.66.66.1'。
  18. set protocols bgp system-as '65000': 配置本地 BGP 实例的自治系统号为 '65000'。
  19. set protocols bgp timers holdtime '15': 设置 BGP 协议的保持时间为 '15' 秒。
  20. set protocols bgp timers keepalive '3': 设置 BGP 协议的保活时间为 '3' 秒。
  21. set protocols static route 0.0.0.0/0 next-hop 10.225.97.1: 更新静态路由,将所有流量发送到下一跳IP地址 '10.225.97.1'。
  22. set service ssh port '22': 配置 SSH 服务的端口号为 '22'。
  23. set system name-server '223.5.5.5': 配置系统使用的 DNS 服务器为 '223.5.5.5'。
  24. set system name-server '223.6.6.6': 配置系统使用的 DNS 服务器为 '223.6.6.6.'。

2.4、明细路由表 {#2-4-明细路由表}

yydy_2024-06-03_22-50-51

yydy_2024-06-03_22-51-31

2.5、全局路由表 {#2-5-全局路由表}

90万条海外路由show不完wangyuanjing

yydy_2024-06-03_22-59-50

三、bgpserver:auto {#三-bgpserver-auto}

bgpserver:auto 地址

bgpserver:auto 镜像默认是不拉取任何路由信息,auto镜像及包含上面俩个镜像的同时,也赋予bgpserver镜像的可玩性,比如指定拉取香港(HK)路由表,指定拉取美国(US)路由表,指定拉取英国(GB)路由表等等。

3.1、指定拉取CN路由 {#3-1-指定拉取CN路由}

说明:不管拉取那个国家的路由信息,都要有config.ini文件,不然无意义,拉取CN的路由时我们走本地网关。

3.1.1、config.ini配置 {#3-1-1-config-ini配置}

sudo nano /config/config.ini

[server]
RouterId = 100.66.66.2
ASN = 65000
NextHop = 10.225.97.1
UpdateSource = 100.66.66.2
`[peer]
IP = 100.66.66.1
ASN = 65000
`

3.1.2、拉取镜像 {#3-1-2-拉取镜像}

add container image docker.io/yangpin/bgpserver:auto
sudo podman pull docker.io/yangpin/bgpserver:auto

3.1.3、vyos完整配置 {#3-1-3-vyos完整配置}

set container name bgpserver arguments './opt/bgp -c /opt/config.ini -l CN'
set container name bgpserver cap-add 'net-admin'
set container name bgpserver cap-add 'sys-admin'
set container name bgpserver host-name 'bgpserver'
set container name bgpserver image 'docker.io/yangpin/bgpserver:auto'
set container name bgpserver memory '2048'
set container name bgpserver network bgpnetwork address '100.66.66.2'
set container name bgpserver restart 'always'
set container name bgpserver volume config destination '/opt/config.ini'
set container name bgpserver volume config source '/config/config.ini'
set container network bgpnetwork prefix '100.66.66.0/30'

set interfaces ethernet eth0 address '10.225.97.9/24'


set nat source rule 100 outbound-interface name 'eth0'
set nat source rule 100 source address '100.66.66.0/30'
set nat source rule 100 translation address 'masquerade'


set protocols bgp neighbor 100.66.66.2 address-family ipv4-unicast soft-reconfiguration inbound
set protocols bgp neighbor 100.66.66.2 remote-as '65000'
set protocols bgp neighbor 100.66.66.2 update-source '100.66.66.1'
set protocols bgp system-as '65000'
set protocols bgp timers holdtime '15'
set protocols bgp timers keepalive '3'


set protocols static route 0.0.0.0/0 next-hop 10.225.97.6


set service ssh port '22'

`set system name-server '223.5.5.5'
set system name-server '223.6.6.6'
`

  1. set container name bgpserver arguments './opt/bgp -c /opt/config.ini -l CN': 设置名为 "bgpserver" 的容器的启动参数,指定运行时要执行的命令及其参数。
  2. set container name bgpserver cap-add 'net-admin': 为名为 "bgpserver" 的容器添加网络管理权限。
  3. set container name bgpserver cap-add 'sys-admin': 为名为 "bgpserver" 的容器添加系统管理权限。
  4. set container name bgpserver host-name 'bgpserver': 设置名为 "bgpserver" 的容器的主机名为 "bgpserver"。
  5. set container name bgpserver image 'docker.io/yangpin/bgpserver:auto': 指定名为 "bgpserver" 的容器使用的镜像为 "docker.io/yangpin/bgpserver:auto"。
  6. set container name bgpserver memory '2048': 设置名为 "bgpserver" 的容器的内存限制为 2048MB。
  7. set container name bgpserver network bgpnetwork address '100.66.66.2': 将名为 "bgpserver" 的容器连接到名为 "bgpnetwork" 的网络,并分配给容器的 IP 地址为 100.66.66.2。
  8. set container name bgpserver restart 'always': 设置名为 "bgpserver" 的容器在退出时总是重新启动。
  9. set container name bgpserver volume config destination '/opt/config.ini': 将名为 "bgpserver" 的容器的配置文件存储到宿主机上的 '/opt/config.ini' 目录中。
  10. set container name bgpserver volume config source '/config/config.ini': 将宿主机上的 '/config/config.ini' 文件挂载到名为 "bgpserver" 的容器中。
  11. set container network bgpnetwork prefix '100.66.66.0/30': 配置名为 "bgpnetwork" 的网络的 IP 前缀为 '100.66.66.0/30'。
  12. set interfaces ethernet eth0 address '10.225.97.9/24': 配置以太网接口 'eth0' 的 IP 地址为 '10.225.97.9/24'。
  13. set nat source rule 100 outbound-interface name 'eth0': 设置 NAT 源地址转换规则,匹配出接口 'eth0' 的流量。
  14. set nat source rule 100 source address '100.66.66.0/30': 指定 NAT 源地址转换规则的源地址为 '100.66.66.0/30'。
  15. set nat source rule 100 translation address 'masquerade': 设置 NAT 源地址转换规则中的转换地址为 'masquerade'(伪装,即使用外部 IP 地址)。
  16. set protocols bgp neighbor 100.66.66.2 address-family ipv4-unicast soft-reconfiguration inbound: 配置 BGP 邻居 '100.66.66.2' 支持 IPv4 单播地址族,并启用入站软重配置。
  17. set protocols bgp neighbor 100.66.66.2 remote-as '65000': 设置 BGP 邻居 '100.66.66.2' 的远程自治系统号为 '65000'。
  18. set protocols bgp neighbor 100.66.66.2 update-source '100.66.66.1': 设置 BGP 邻居 '100.66.66.2' 的更新消息的源 IP 地址为 '100.66.66.1'。
  19. set protocols bgp system-as '65000': 配置本地 BGP 实例的自治系统号为 '65000'。
  20. set protocols bgp timers holdtime '15': 设置 BGP 协议的保持时间为 '15' 秒。
  21. set protocols bgp timers keepalive '3': 设置 BGP 协议的保活时间为 '3' 秒。
  22. set protocols static route 0.0.0.0/0 next-hop 10.225.97.6: 添加一个静态路由,将所有流量发送到下一跳 IP 地址 '10.225.97.6'。
  23. set service ssh port '22': 配置 SSH 服务的端口号为 '22'。
  24. set system name-server '223.5.5.5': 配置系统使用的 DNS 服务器为 '223.5.5.5'。
  25. set system name-server '223.6.6.6': 配置系统使用的 DNS 服务器为 '223.6.6.6'。

3.1.4、路由信息 {#3-1-4-路由信息}

yydy_2024-06-03_23-18-24

3.2、指定拉取NCN路由 {#3-2-指定拉取NCN路由}

3.2.1、config.ini配置 {#3-2-1-config-ini配置}

sudo nano /config/config.ini

[server]
RouterId = 100.66.66.2
ASN = 65000
NextHop = 10.225.97.6
UpdateSource = 100.66.66.2
`[peer]
IP = 100.66.66.1
ASN = 65000
`

3.2.2、拉取镜像 {#3-2-2-拉取镜像}

add container image docker.io/yangpin/bgpserver:auto
sudo podman pull docker.io/yangpin/bgpserver:auto

3.2.3、vyos完整配置 {#3-2-3-vyos完整配置}

set container name bgpserver arguments './opt/bgp -c /opt/config.ini -l NCN'
set container name bgpserver cap-add 'net-admin'
set container name bgpserver cap-add 'sys-admin'
set container name bgpserver host-name 'bgpserver'
set container name bgpserver image 'docker.io/yangpin/bgpserver:auto'
set container name bgpserver memory '4096'
set container name bgpserver network bgpnetwork address '100.66.66.2'
set container name bgpserver restart 'always'
set container name bgpserver volume config destination '/opt/config.ini'
set container name bgpserver volume config source '/config/config.ini'
set container network bgpnetwork prefix '100.66.66.0/30'

set interfaces ethernet eth0 address '10.225.97.9/24'


set nat source rule 100 outbound-interface name 'eth0'
set nat source rule 100 source address '100.66.66.0/30'
set nat source rule 100 translation address 'masquerade'


set protocols bgp neighbor 100.66.66.2 address-family ipv4-unicast soft-reconfiguration inbound
set protocols bgp neighbor 100.66.66.2 remote-as '65000'
set protocols bgp neighbor 100.66.66.2 update-source '100.66.66.1'
set protocols bgp system-as '65000'
set protocols bgp timers holdtime '15'
set protocols bgp timers keepalive '3'


set protocols static route 0.0.0.0/0 next-hop 10.225.97.1


set service ssh port '22'

`set system name-server '223.5.5.5'
set system name-server '223.6.6.6'
`

  1. set container name bgpserver arguments './opt/bgp -c /opt/config.ini -l NCN': 设置名为 "bgpserver" 的容器的启动参数,指定运行时要执行的命令及其参数。
  2. set container name bgpserver cap-add 'net-admin': 为名为 "bgpserver" 的容器添加网络管理权限。
  3. set container name bgpserver cap-add 'sys-admin': 为名为 "bgpserver" 的容器添加系统管理权限。
  4. set container name bgpserver host-name 'bgpserver': 设置名为 "bgpserver" 的容器的主机名为 "bgpserver"。
  5. set container name bgpserver image 'docker.io/yangpin/bgpserver:auto': 指定名为 "bgpserver" 的容器使用的镜像为 "docker.io/yangpin/bgpserver:auto"。
  6. set container name bgpserver memory '4096': 设置名为 "bgpserver" 的容器的内存限制为 4096MB。
  7. set container name bgpserver network bgpnetwork address '100.66.66.2': 将名为 "bgpserver" 的容器连接到名为 "bgpnetwork" 的网络,并分配给容器的 IP 地址为 100.66.66.2。
  8. set container name bgpserver restart 'always': 设置名为 "bgpserver" 的容器在退出时总是重新启动。
  9. set container name bgpserver volume config destination '/opt/config.ini': 将名为 "bgpserver" 的容器的配置文件存储到宿主机上的 '/opt/config.ini' 目录中。
  10. set container name bgpserver volume config source '/config/config.ini': 将宿主机上的 '/config/config.ini' 文件挂载到名为 "bgpserver" 的容器中。
  11. set container network bgpnetwork prefix '100.66.66.0/30': 配置名为 "bgpnetwork" 的网络的 IP 前缀为 '100.66.66.0/30'。
  12. set interfaces ethernet eth0 address '10.225.97.9/24': 配置以太网接口 'eth0' 的 IP 地址为 '10.225.97.9/24'。
  13. set nat source rule 100 outbound-interface name 'eth0': 设置 NAT 源地址转换规则,匹配出接口 'eth0' 的流量。
  14. set nat source rule 100 source address '100.66.66.0/30': 指定 NAT 源地址转换规则的源地址为 '100.66.66.0/30'。
  15. set nat source rule 100 translation address 'masquerade': 设置 NAT 源地址转换规则中的转换地址为 'masquerade'(伪装,即使用外部 IP 地址)。
  16. set protocols bgp neighbor 100.66.66.2 address-family ipv4-unicast soft-reconfiguration inbound: 配置 BGP 邻居 '100.66.66.2' 支持 IPv4 单播地址族,并启用入站软重配置。
  17. set protocols bgp neighbor 100.66.66.2 remote-as '65000': 设置 BGP 邻居 '100.66.66.2' 的远程自治系统号为 '65000'。
  18. set protocols bgp neighbor 100.66.66.2 update-source '100.66.66.1': 设置 BGP 邻居 '100.66.66.2' 的更新消息的源 IP 地址为 '100.66.66.1'。
  19. set protocols bgp system-as '65000': 配置本地 BGP 实例的自治系统号为 '65000'。
  20. set protocols bgp timers holdtime '15': 设置 BGP 协议的保持时间为 '15' 秒。
  21. set protocols bgp timers keepalive '3': 设置 BGP 协议的保活时间为 '3' 秒。
  22. set protocols static route 0.0.0.0/0 next-hop 10.225.97.1: 添加一个静态路由,将所有流量发送到下一跳 IP 地址 '10.225.97.1'。
  23. set service ssh port '22': 配置 SSH 服务的端口号为 '22'。
  24. set system name-server '223.5.5.5': 配置系统使用的 DNS 服务器为 '223.5.5.5'。
  25. set system name-server '223.6.6.6': 配置系统使用的 DNS 服务器为 '223.6.6.6'。

3.2.4、路由信息 {#3-2-4-路由信息}

yydy_2024-06-03_23-23-14

yydy_2024-06-03_23-23-56

3.3、指定拉取US路由 {#3-3-指定拉取US路由}

3.3.1、config.ini配置 {#3-3-1-config-ini配置}

sudo nano /config/config.ini

[server]
RouterId = 100.66.66.2
ASN = 65000
NextHop = 10.225.97.6
UpdateSource = 100.66.66.2
`[peer]
IP = 100.66.66.1
ASN = 65000
`

3.3.2、拉取镜像 {#3-3-2-拉取镜像}

add container image docker.io/yangpin/bgpserver:auto
sudo podman pull docker.io/yangpin/bgpserver:auto

3.3.3、vyos完整配置 {#3-3-3-vyos完整配置}

set container name bgpserver arguments './opt/bgp -c /opt/config.ini -l US'
set container name bgpserver cap-add 'net-admin'
set container name bgpserver cap-add 'sys-admin'
set container name bgpserver host-name 'bgpserver'
set container name bgpserver image 'docker.io/yangpin/bgpserver:auto'
set container name bgpserver memory '3072'
set container name bgpserver network bgpnetwork address '100.66.66.2'
set container name bgpserver restart 'always'
set container name bgpserver volume config destination '/opt/config.ini'
set container name bgpserver volume config source '/config/config.ini'
set container network bgpnetwork prefix '100.66.66.0/30'

set interfaces ethernet eth0 address '10.225.97.9/24'


set nat source rule 100 outbound-interface name 'eth0'
set nat source rule 100 source address '100.66.66.0/30'
set nat source rule 100 translation address 'masquerade'


set protocols bgp neighbor 100.66.66.2 address-family ipv4-unicast soft-reconfiguration inbound
set protocols bgp neighbor 100.66.66.2 remote-as '65000'
set protocols bgp neighbor 100.66.66.2 update-source '100.66.66.1'
set protocols bgp system-as '65000'
set protocols bgp timers holdtime '15'
set protocols bgp timers keepalive '3'


set protocols static route 0.0.0.0/0 next-hop 10.225.97.1


set service ssh port '22'

`set system name-server '223.5.5.5'
set system name-server '223.6.6.6'
`

  1. set container name bgpserver arguments './opt/bgp -c /opt/config.ini -l US': 设置名为 "bgpserver" 的容器的启动参数,指定运行时要执行的命令及其参数。
  2. set container name bgpserver cap-add 'net-admin': 为名为 "bgpserver" 的容器添加网络管理权限。
  3. set container name bgpserver cap-add 'sys-admin': 为名为 "bgpserver" 的容器添加系统管理权限。
  4. set container name bgpserver host-name 'bgpserver': 设置名为 "bgpserver" 的容器的主机名为 "bgpserver"。
  5. set container name bgpserver image 'docker.io/yangpin/bgpserver:auto': 指定名为 "bgpserver" 的容器使用的镜像为 "docker.io/yangpin/bgpserver:auto"。
  6. set container name bgpserver memory '3072': 设置名为 "bgpserver" 的容器的内存限制为 3072MB。
  7. set container name bgpserver network bgpnetwork address '100.66.66.2': 将名为 "bgpserver" 的容器连接到名为 "bgpnetwork" 的网络,并分配给容器的 IP 地址为 100.66.66.2。
  8. set container name bgpserver restart 'always': 设置名为 "bgpserver" 的容器在退出时总是重新启动。
  9. set container name bgpserver volume config destination '/opt/config.ini': 将名为 "bgpserver" 的容器的配置文件存储到宿主机上的 '/opt/config.ini' 目录中。
  10. set container name bgpserver volume config source '/config/config.ini': 将宿主机上的 '/config/config.ini' 文件挂载到名为 "bgpserver" 的容器中。
  11. set container network bgpnetwork prefix '100.66.66.0/30': 配置名为 "bgpnetwork" 的网络的 IP 前缀为 '100.66.66.0/30'。
  12. set interfaces ethernet eth0 address '10.225.97.9/24': 配置以太网接口 'eth0' 的 IP 地址为 '10.225.97.9/24'。
  13. set nat source rule 100 outbound-interface name 'eth0': 设置 NAT 源地址转换规则,匹配出接口 'eth0' 的流量。
  14. set nat source rule 100 source address '100.66.66.0/30': 指定 NAT 源地址转换规则的源地址为 '100.66.66.0/30'。
  15. set nat source rule 100 translation address 'masquerade': 设置 NAT 源地址转换规则中的转换地址为 'masquerade'(伪装,即使用外部 IP 地址)。
  16. set protocols bgp neighbor 100.66.66.2 address-family ipv4-unicast soft-reconfiguration inbound: 配置 BGP 邻居 '100.66.66.2' 支持 IPv4 单播地址族,并启用入站软重配置。
  17. set protocols bgp neighbor 100.66.66.2 remote-as '65000': 设置 BGP 邻居 '100.66.66.2' 的远程自治系统号为 '65000'。
  18. set protocols bgp neighbor 100.66.66.2 update-source '100.66.66.1': 设置 BGP 邻居 '100.66.66.2' 的更新消息的源 IP 地址为 '100.66.66.1'。
  19. set protocols bgp system-as '65000': 配置本地 BGP 实例的自治系统号为 '65000'。
  20. set protocols bgp timers holdtime '15': 设置 BGP 协议的保持时间为 '15' 秒。
  21. set protocols bgp timers keepalive '3': 设置 BGP 协议的保活时间为 '3' 秒。
  22. set protocols static route 0.0.0.0/0 next-hop 10.225.97.1: 添加一个静态路由,将所有流量发送到下一跳 IP 地址 '10.225.97.1'。
  23. set service ssh port '22': 配置 SSH 服务的端口号为 '22'。
  24. set system name-server '223.5.5.5': 配置系统使用的 DNS 服务器为 '223.5.5.5'。
  25. set system name-server '223.6.6.6': 配置系统使用的 DNS 服务器为 '223.6.6.6'。

3.3.4、路由信息 {#3-3-4-路由信息}

通过拉取了US美丽国的路由就可以知道,为什么说中国大陆缺ipv4了吧,本来ipv4是不缺的,但是大部分IP都在美丽国。

yydy_2024-06-03_23-28-21

yydy_2024-06-03_23-28-48

四、拓展 {#四-拓展}

国家域名缩写

QQ交流群

赞(0)
未经允许不得转载:工具盒子 » 【Vyos-开源篇-10】- Docker 镜像 BGPServer 在 VyOS 中的详细配置