The choice between the nodes 2 and 3 is now deterministic

Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
This commit is contained in:
Yohann D'ANELLO 2021-06-01 12:06:11 +02:00
parent 792eca0889
commit fae4564b9d
Signed by: ynerant
GPG Key ID: 3A75C55819C8CF85
2 changed files with 20 additions and 18 deletions

View File

@ -82,9 +82,9 @@ interfaces connectées et leurs IP :
| vde2 vde1 | | vde2 vde1 |
+-------172.17.2.3/32---------NŒUD 3---------172.17.1.3/32-------+ +-------172.17.2.3/32---------NŒUD 3---------172.17.1.3/32-------+
| 2a0c:700:3012:3::2:3/128 2a0c:700:3012:3::1:3/128 | 2a0c:700:3012:3::2:3/128 2a0c:700:3012:3::1:3/128
| |
| |
| |
| vde2 | vde2
+-------172.17.2.4/32---------NŒUD 4 +-------172.17.2.4/32---------NŒUD 4
2a0c:700:3012:3::2:4/128 2a0c:700:3012:3::2:4/128
@ -184,21 +184,22 @@ appliquée au niveau de la machine hôte grâce à ``nftables``,
voir ``firewall/nat.conf``. voir ``firewall/nat.conf``.
Pour modéliser les restrictions au niveau du réseau, un pare-feu est Pour modéliser les restrictions au niveau du réseau, un pare-feu est
également chargé au niveau des nœuds 2 et 3, interdisant le trafic également chargé au niveau du nœuds 2, interdisant le trafic HTTP
HTTP uniquement (port 80/TCP). À terme, seul un seul des nœud bloquera uniquement (port 80/TCP). De plus, le voisin 3 est marqué comme
le trafic, qui sera le nœud privilégié presque sûrement par Babel. non-priviligié afin que Babel choisisse la route congestionnée
par le nœud 2.
Pour tester, dans le namespace 4 : Pour tester, dans le namespace 4 :
$ ip r $ ip r
default via 172.17.2.2 dev vde2 proto babel onlink default via 172.17.2.2 dev vde2 proto babel onlink
10.2.1.0/30 via 172.17.2.2 dev vde2 proto babel onlink 10.2.1.0/30 via 172.17.2.2 dev vde2 proto babel onlink
10.2.1.2 via 172.17.2.2 dev vde2 proto babel onlink 10.2.1.2 via 172.17.2.2 dev vde2 proto babel onlink
172.17.1.1 via 172.17.2.2 dev vde2 proto babel onlink 172.17.1.1 via 172.17.2.2 dev vde2 proto babel onlink
172.17.1.2 via 172.17.2.3 dev vde2 proto babel onlink 172.17.1.2 via 172.17.2.3 dev vde2 proto babel onlink
172.17.1.3 via 172.17.2.3 dev vde2 proto babel onlink 172.17.1.3 via 172.17.2.3 dev vde2 proto babel onlink
172.17.2.2 via 172.17.2.3 dev vde2 proto babel onlink 172.17.2.2 via 172.17.2.3 dev vde2 proto babel onlink
172.17.2.3 via 172.17.2.3 dev vde2 proto babel onlink 172.17.2.3 via 172.17.2.3 dev vde2 proto babel onlink
$ ping crans.org -c 1 $ ping crans.org -c 1
PING (185.230.79.10) 56(84) octets de données. PING (185.230.79.10) 56(84) octets de données.

View File

@ -101,15 +101,16 @@ ip route add 172.17.0.0/16 via 10.2.1.2
ip -6 route add 2a0c:700:3012:3::1:0/112 via 2a0c:700:3012:3::ff:1 ip -6 route add 2a0c:700:3012:3::1:0/112 via 2a0c:700:3012:3::ff:1
ip -6 route add 2a0c:700:3012:3::2:0/112 via 2a0c:700:3012:3::ff:1 ip -6 route add 2a0c:700:3012:3::2:0/112 via 2a0c:700:3012:3::ff:1
# Restrict HTTP transport on node 2
tmux send-keys -t ns2 "nft -f $dir/firewall/restrict-http.conf" Enter
# Put a higher metric for node 3, to enforce babel to choose node 2
tmux send-keys -t ns4 "echo \"in neigh fe80::ff:fe00:202\" metric 512"
for i in 1 2 3 4; do for i in 1 2 3 4; do
tmux send-keys -t ns$i "touch /etc/babeld.conf && mount --bind /tmp/ns$i/babeld.conf /etc/babeld.conf" Enter tmux send-keys -t ns$i "touch /etc/babeld.conf && mount --bind /tmp/ns$i/babeld.conf /etc/babeld.conf" Enter
tmux send-keys -t ns$i "babeld -D -I /tmp/ns$i/babeld.pid -G /tmp/ns$i/socket -S /tmp/ns1/state" Enter tmux send-keys -t ns$i "babeld -D -I /tmp/ns$i/babeld.pid -G /tmp/ns$i/socket -S /tmp/ns1/state" Enter
done done
for i in 2 3; do
tmux send-keys -t ns$i "nft -f $dir/firewall/restrict-http.conf" Enter
done
bash bash
reset reset