无法通过 SSH 连接第二个网卡 IP

无法通过 SSH 连接第二个网卡 IP

基础设施: 微软 Azure 操作系统:Ubuntu 18.04

问题 : 我们已分配 2 个 NIC 卡(同一子网)。我们能够使用主 IP(20.71.0.21)地址进行 SSH,但无法使用辅助地址(20.71.0.22)进行连接。这在 Ubuntu 16.04 上运行正常。我想设置路由。

> :~# ip r l  
> default via 10.171.0.1 dev eth0 proto dhcp src 20.71.0.21
> metric 100
> 20.71.0.0/24 dev eth0 proto kernel scope link src 20.71.0.21
> 20.71.0.0/24 dev eth1 proto kernel scope link src 20.71.0.22
> 168.63.129.16 via 20.71.0.1 dev eth0 proto dhcp src 20.71.0.21 metric 100
> 169.254.169.254 via 20.71.0.1 dev eth0 proto dhcp src 20.71.0.21 metric 100

> :~# route -n
> Kernel IP routing table Destination    Gateway        
> Genmask         Flags Metric Ref    Use Iface
> 0.0.0.0         20.71.0.1       0.0.0.0         UG    100    0        0 eth0
> 20.71.0.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0
> 20.71.0.0       0.0.0.0         255.255.255.0   U     0      0        0 eth1
> 168.63.129.16   20.71.0.1       255.255.255.255 UGH   100    0        0 eth0
> 169.254.169.254 20.71.0.1       255.255.255.255 UGH   100    0        0 eth0

:~# cat /etc/netplan/50-cloud-init.yaml

ethernets:
    eth0:
        dhcp4: true
        dhcp4-overrides:
            route-metric: 100
        dhcp6: false
        match:
            macaddress: 00:0d:3a:ab:xx:xx
        set-name: eth0
    eth1:
        dhcp4: true
        dhcp4-overrides:
            route-metric: 200
        dhcp6: false
        match:
            macaddress: 00:0d:3a:xx:xx:xx
        set-name: eth1
version: 2
> :~# cat /etc/netplan/60-static.yaml network:
>     version: 2
>     ethernets:
>         eth0:
>             addresses:
>                 - 20.71.0.21/24
>         eth1:
>             addresses:
>                 - 20.71.0.22/24

我们如何解决这个问题?

答案1

现在,我得到了第二个 NIC 可路由到互联网的解决方案,请运行以下命令为第二个 NIC 配置路由。

#et_ip=`ip addr show eth1 | awk '/inet / {split($2, a, "/"); print a[1]}'`
#def_gw=`ip route show | awk '$1 ~ "default" {print $3}'`
#sudo ip route add default via $def_gw dev eth1 table 11
#sudo ip rule add from $et_ip table 11

上述步骤将配置第二个 NIC,并使 IP 可通过 Internet 路由(如果第二个 NIC 配置了任何公共 IP),上述路由在重启后不会持久。您需要创建一个 systemd 服务以在启动期间运行这些路由,或者您可以将步骤 3 中提到的上述路由选项添加到您的 .bashrc 配置文件(~/.bashrc)中

通过 Systemd 服务的持久路由选项:

1) 在任意目录中创建一个包含以下内容的文件。例如,我在 /sbin 目录中创建。

root@ubuntu18-2:/sbin#猫路线.sh

#!/bin/bash

et_ip=`ip addr show eth1 | awk '/inet / {split($2, a, "/"); print a[1]}'`

def_gw=`ip route show | awk '$1 ~ "default" {print $3}'`

ip route add default via $def_gw dev eth1 table 11

ip rule add from $et_ip table 11

2)创建文件后,确保设置适当的权限

#chmod 777 **/sbin/route.sh**

3)现在在 /etc/systemd/system 中创建一个名为 route.service 的文件,内容如下

root@ubuntu18-2:/etc/systemd/system#cat 路线.服务

[Unit]

Description=To configure routes for 2nd NIC

[Service]

ExecStart=/sbin/route.sh

Type=oneshot

RemainAfterExit=yes

[Install]

WantedBy=multi-user.target

4) 一旦创建 /etc/systemd/system/route.service 文件,运行以下命令以确保服务设置为在启动期间启动。

#sudo systemctl enable route

#sudo systemctl start route

谢谢 :)

相关内容