2. 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
判定标准
完成配置后,满足以下条件即判定任务通过:
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用户。