Je tente actuellement de configurer un VPN de pontage Ethernet avec l'utilisation de OpenVPN. Cependant, chaque fois que j'essaie de mettre en place le pont Ethernet, le serveur (Raspberry Pi) perd la connexion du réseau interne. J'utilise le script suivant pour initialiser mon pont Ethernet
#!/bin/bash
# Définir l'interface Ethernet physique à pontifier
# avec les interfaces TAP ci-dessus.
eth="eth0"
eth_ip="192.168.144.200"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.144.255"
eth_gateway="192.168.144.1"
eth_mac="B8:27:EB:48:6D:E3"
# Définir l'interface de pont
br="br0"
# Définir la liste des interfaces TAP à pontifier ensemble
tap="tap0"
#################################
# Configurer un pont Ethernet sur Linux
# Nécessite : bridge-utils
#################################
for t in $tap; do
openvpn --mktun --dev $t
done
brctl addbr $br
brctl addif $br $eth
for t in $tap; do
brctl addif $br $t
done
for t in $tap; do
ifconfig $t 0.0.0.0 promisc up
iptables -A INPUT -i $t -j ACCEPT
done
iptables -A INPUT -i $br -j ACCEPT
iptables -A FORWARD -i $br -j ACCEPT
ifconfig $eth 0.0.0.0 promisc up
ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast
ip link set $br address $eth_mac
dhclient $br
ifconfig $br promisc up
route add default gw 192.168.144.1
Après avoir débogué toute l'histoire, j'ai découvert que le
ifconfig $eth 0.0.0.0 promisc up
résulte en une perte de connexion. La configuration de l'interface après le pontage est
br0: flags=4163 mtu 1500
inet 192.168.144.200 netmask 255.255.255.0 broadcast 192.168.144.255
inet6 fe80::7b9:e278:843e:6f22 prefixlen 64 scopeid 0x20
ether b8:27:eb:48:6d:e3 txqueuelen 1000 (Ethernet)
RX packets 147 bytes 23549 (22.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 155 bytes 75012 (73.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=4419 mtu 1500
inet6 fe80::3abb:5937:1299:3dc5 prefixlen 64 scopeid 0x20
ether b8:27:eb:48:6d:e3 txqueuelen 1000 (Ethernet)
RX packets 1590 bytes 208685 (203.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1422 bytes 314068 (306.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 18 bytes 1244 (1.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 18 bytes 1244 (1.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
tap0: flags=4355 mtu 1500
ether 5e:f6:5f:df:6b:10 txqueuelen 100 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163 mtu 1500
inet 192.168.144.150 netmask 255.255.255.0 broadcast 192.168.144.255
inet6 fe80::9cd2:30b9:74fc:c92d prefixlen 64 scopeid 0x20
ether b8:27:eb:1d:38:b6 txqueuelen 1000 (Ethernet)
RX packets 366 bytes 111524 (108.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 156 bytes 30687 (29.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Des idées pour résoudre ce problème? En général, seule l'interface de pont doit avoir une adresse IP. Mais si je n'attribue pas d'adresse IP à eht0, la connexion du terminal est interrompue et je ne peux plus me connecter.
Remarque : J'ai déjà vérifié les iptables et net.ipv4.ip_forward est défini sur 1.