如何配置实现VPP的远程登录?

前面介绍带内网络管理和带外网络管理时带内网络管理和带外网络管理有啥区别?,我们提到公有云环境不建议采用带外网络管理,因为增加网络接口之后,对应的需要增加公网IP地址,增加部署成本。

比如我们之前介绍的VPP,我常用的两台设备就是VPP72和VPP73,我在配置案例时就是使用了带外管理口。

如上图所示,网卡ens192就是带外管理网卡,另外两个就是VPP的业务网卡。

我们给eth1配置一个IP地址。

vppctl set int state eth1 upvppctl set int ip address eth1 11.1.1.1/24

然后试着从其他设备来远程VPP72。

我们可以发现,如果只有一个网卡,就会出现无法网管的问题。

其实这个问题也不大,主要是因为VPP不支持网管。

对于部署了VPP的主机,如果我们想远程进行网管,那还得想办法登录到宿主机的内核进行操作。关键是现在内核和VPP之间缺乏连接的通道,该怎么办呢?

回顾一下给VPP增加一个接口(非DPDK方式),在 Linux 中,有一种接口叫做“veth”,veth设备是成对出现的,一端连接内核的协议栈,另一端相连VPP的接口。所以,我们可以使用veth来连接内核和VPP之间的网络。

首先,在内核创建一个veth接口,一端命名为ethvpp,另一端命名为ethhost。

ip link add name ethvpp type veth peer name ethhost

这里我们可以看到,设备上新增了名称分别为ethhost@ethvpp和ethvpp@ethhost的两个接口,说明两个接口是有依赖关系的。

然后使能veth两端的接口。

ip link set dev ethvpp upip link set dev ethhost up

接口UP起来之后,我们给内核中的ethhost接口分配一个IP地址。

ip addr add 172.16.1.1/24 dev ethhost

接下来,我们在VPP内也创建一个接口,来连接到ethvpp的主机接口。

vppctl create host-interface name ethvpp

可以看到,接口ethvpp创建成功,然后手工使能接口host-ethvpp,并配置IP地址。

vppctl set interface state host-ethvpp upvppctl set int ip address host-ethvpp 172.16.1.2/24

然后从内核中测试一下172.16.1.2的连通性。

我们接下来要测试从11.1.1.2来登录VPP72,所以我们先在VPP72内核中和11.1.1.2上配置好路由。

然后测试从11.1.1.2通过172.16.1.1远程登录VPP72。

登陆成功。

对于部署在公网的设备,我们建议是把内核的网关配置成host-ethvpp,并且在VPP的接口上配置NAT映射,就像VPP配置指南:NAT“三板斧”中介绍的那样。

vppctl set interface nat44 out eth1 output-featurevppctl nat44 add interface address eth1vppctl nat44 add identity mapping 11.1.1.1vppctl nat44 add static mapping tcp local 172.16.1.1 22 external eth1 22

然后我们再通过11.1.1.1登录设备试一下。

登陆成功,查看NAT的相关信息。

可以看到,是将请求的11.1.1.1:22转换为了实际的172.16.1.1:22,业务访问成功。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇