2. SONiC VS 虚拟交换机启动与基础连通性验证

SONiC VS 虚拟交换机启动与基础连通性验证 学习卡片

任务说明

本案例目标是在SONiC设备上完成SSH远程管理配置,实现两个核心能力:一是通过密钥或密码方式远程登录设备;二是为管理接口配置IP地址并设置默认路由,使远程管理流量可达。配置完成后,需验证SSH服务监听状态、登录认证方式以及管理网络连通性。

配置管理IP与默认路由

SONiC使用Linux内核网络栈,管理IP通过/etc/network/interfaces文件配置。默认情况下,管理接口为eth0。执行以下命令配置管理IP和默认路由:


# 配置管理接口IP(示例:192.168.1.10/24)
sudo cat >> /etc/network/interfaces <<EOF

auto eth0
iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    gateway 192.168.1.1
EOF

# 使配置生效
sudo ifdown eth0 && sudo ifup eth0

# 验证配置
ip addr show eth0
ip route show

若设备已有DHCP分配的地址,可先执行sudo dhclient -r eth0释放旧地址。配置完成后,ip route show应显示默认路由指向192.168.1.1。

启用并配置SSH服务

SONiC默认运行SSH服务(基于OpenSSH)。确认服务状态并配置认证方式:


# 检查SSH服务状态
sudo systemctl status ssh

# 若未运行则启动
sudo systemctl enable ssh
sudo systemctl start ssh

# 备份原始配置
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

# 启用密码认证(默认已启用,确认未被禁用)
sudo sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config
sudo sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config

# 启用密钥认证(默认已启用)
sudo sed -i 's/^#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config

# 重启SSH服务使配置生效
sudo systemctl restart ssh

配置SSH密钥登录

密钥登录需将客户端公钥添加到设备上的~/.ssh/authorized_keys文件中。以admin用户为例:


# 在管理端生成密钥对(若已有可跳过)
ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa -N ""

# 将公钥复制到SONiC设备(需输入admin用户密码)
ssh-copy-id admin@192.168.1.10

# 若ssh-copy-id不可用,手动追加公钥
# 在管理端执行:cat ~/.ssh/id_rsa.pub
# 在SONiC设备上执行:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "粘贴公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

验证SSH登录

完成上述配置后,从管理端执行以下验证:


# 验证SSH服务监听端口
sudo netstat -tlnp | grep :22

# 密码登录测试
ssh admin@192.168.1.10

# 密钥登录测试(使用密钥认证)
ssh -i ~/.ssh/id_rsa admin@192.168.1.10

# 验证管理网络连通性(从管理端ping设备)
ping -c 3 192.168.1.10
管理端 (Linux/Windows) SSH客户端 密钥对 (id_rsa.pub) 密码认证 管理网络 192.168.1.0/24 网关: 192.168.1.1 SONiC设备 SSH服务 (sshd) authorized_keys eth0: 192.168.1.10 默认路由: 192.168.1.1 SSH TCP/22 验证点: ssh admin@192.168.1.10 | ping 192.168.1.10

判定标准

完成配置后,满足以下条件即判定任务通过:

  • netstat -tlnp | grep :22显示sshd监听在22端口;
  • 使用密码ssh admin@192.168.1.10能成功登录设备;
  • 使用密钥ssh -i ~/.ssh/id_rsa admin@192.168.1.10能免密登录(若配置了密钥);
  • 管理端ping 192.168.1.10能收到回复,证明管理IP与路由配置生效。

若密码登录失败,检查/etc/ssh/sshd_config中PasswordAuthentication是否为yes;若密钥登录失败,确认authorized_keys文件权限为600且属主为admin用户。