1 votes

Impossible de SSH 2ème IP NIC

Infrastructure : Microsoft Azure OS : Ubuntu 18.04

Question : Nous avons attribué 2 cartes NIC (même sous-réseau). Nous sommes en mesure de SSH avec l'adresse IP primaire (20.71.0.21) mais nous ne pouvons pas nous connecter avec l'adresse secondaire (20.71.0.22). Cela fonctionne sur Ubuntu 16.04. Je voudrais définir la route.

> :~# 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

Comment pouvons-nous résoudre ce problème ?

1voto

Maintenant, j'ai trouvé la solution pour que la 2ème NIC soit routable vers l'internet, veuillez exécuter les commandes suivantes pour configurer les routes pour la 2ème 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

Les étapes ci-dessus configurent la deuxième carte réseau et rendent l'IP routable sur Internet (si la deuxième carte réseau est configurée avec une IP publique), les routes ci-dessus ne sont pas persistantes lors des redémarrages. Vous devez créer un service systemd pour exécuter ces routes pendant le démarrage ou vous pouvez ajouter les options de route mentionnées dans l'étape 3 à votre fichier de profil .bashrc (~/.bashrc).

Option de routes persistantes via un service Systemd :

1) Créez un fichier avec le contenu ci-dessous dans le répertoire de votre choix. Par exemple, j'ai créé dans le répertoire /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) Après avoir créé le fichier, assurez-vous de définir la permission appropriée

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

3) Maintenant, créez un fichier nommé route.service dans /etc/systemd/system avec le contenu suivant

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) Une fois le fichier /etc/systemd/system/route.service créé, exécutez la commande suivante pour vous assurer que le service est configuré pour démarrer au démarrage.

#sudo systemctl enable route

#sudo systemctl start route

Merci :)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X