Невозможно подключиться по SSH к IP-адресу второго сетевого адаптера

Инфраструктура : Microsoft Azure ОС : Ubuntu 18.04

Проблема: Мы назначили 2 карты NIC (та же подсеть). Мы можем использовать SSH с первичным IP-адресом (20.71.0.21), но не можем подключиться к вторичному адресу (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: правда
dhcp4-overrides:
маршрут-метрика: 100
dhcp6: ложь
совпадение:
macaddress: 00: 0d: 3a: ab: xx: xx
имя-набора: eth0
eth1:
dhcp4: правда
dhcp4-overrides:
маршрут-метрика: 200
dhcp6: ложь
совпадение:
macaddress: 00: 0d: 3a: xx: xx: xx
имя-набора: eth1
версия: 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

Как мы можем решить эту проблему?

0
задан 17 January 2020 в 08:29

1 ответ

Теперь у меня есть решение для 2-го сетевого адаптера, маршрутизируемого в Интернет, выполните следующие команды, чтобы настроить маршруты для 2-го сетевого адаптера.

#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

Вышеупомянутые шаги настроят вторую сетевую карту, а также сделают IP-маршрутизацию через Интернет (если вторая сетевая карта настроена с любым общедоступным IP-адресом), указанные выше маршруты не сохраняются при перезагрузках. Вам либо нужно создать службу systemd для запуска этих маршрутов во время загрузки, либо вы можете добавить вышеупомянутые параметры маршрута, упомянутые в шаге 3, в свой файл профиля .bashrc (~ / .bashrc)

Параметр постоянных маршрутов через службу Systemd:

1) Создайте файл с приведенным ниже содержимым в любом каталоге. В качестве примера я создал в каталоге / sbin.

root @ ubuntu18-2: / sbin # cat route.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) Теперь создайте файл с именем route.service в / etc / systemd / system со следующим содержимым

root @ ubuntu18-2: / etc / systemd / system # cat route.service

[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

Спасибо :)

1
ответ дан 20 January 2020 в 06:24

Другие вопросы по тегам:

Похожие вопросы: