ip rule cannot match based on the source IPv4 address

智慧雨泽 <[email protected]> Sun, 26 Mar 2023 07:06:57 +0000
Newsgroups gmane.linux.network.routing
Message-ID <C1003-8e-8gEMKEhNz0iMVHdHrxUns8uWDXAUcJcLQZNfDSXktPZ9gCFKlkcf4o4vTHyt6XX--2ZUR1PS-YEE5tbII4lwnMVM71UWuKKsFA=@protonmail.com>
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------08139fa4bd6cc4d6cbf80aab7ccef6a65182d0b5c0efa4d407af102e3a139fd5
Content-Type: multipart/mixed;boundary=---------------------5f98716da8c126379f94cbc1946e21c1

-----------------------5f98716da8c126379f94cbc1946e21c1
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;charset=utf-8

Hi there,
I recently had trouble deploying my Linux based BGP router, ip rule cannot=
 selecting route table based on source ipv4 address

Our network structure is like this.

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0GRE
Server(IN) >>>>> Server(SG)>>> upstream.

SG(root@yxvm-2252644:~#) just means the Singapore node from another provid=
er that supports BGP.
IN(root@ip007-20230227) refers to my vultr dedicated server in India, I di=
d not configure BGP with vultr here, because vultr refused to accept my pr=
efix.

The following is the routing information to 8.8.8.8 obtained on my SG serv=
er


=C2=A0 =C2=A0 root@ip007-20230227:~# ip route 46.23.100.0 8.8.8.8
=C2=A0 =C2=A0 Command "46.23.100.0" is unknown, try "ip route help".
=C2=A0 =C2=A0 root@ip007-20230227:~# ip route from 46.23.100.0 8.8.8.8
=C2=A0 =C2=A0 Command "from" is unknown, try "ip route help".
=C2=A0 =C2=A0 root@ip007-20230227:~# ip route get 8.8.8.8
=C2=A0 =C2=A0 8.8.8.8 via 139.84.140.1 dev enp1s0f0 src 139.84.140.60 uid =
0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 cache
=C2=A0 =C2=A0 root@ip007-20230227:~# ip route get 8.8.8.8 table 147
=C2=A0 =C2=A0 Error: inet prefix is expected rather than "table".
=C2=A0 =C2=A0 root@ip007-20230227:~# ip route show table 147 | grep =C2=A0=
8.8.8
=C2=A0 =C2=A0 8.8.8.0/24 via 10.0.5.1 dev gre_sg proto bird metric 32
=C2=A0 =C2=A0 98.8.8.0/23 via 10.0.5.1 dev gre_sg proto bird metric 32
=C2=A0 =C2=A0 198.8.80.0/24 via 10.0.5.1 dev gre_sg proto bird metric 32
=C2=A0 =C2=A0 198.8.81.0/24 via 10.0.5.1 dev gre_sg proto bird metric 32
=C2=A0 =C2=A0 198.8.82.0/24 via 10.0.5.1 dev gre_sg proto bird metric 32
=C2=A0 =C2=A0 198.8.83.0/24 via 10.0.5.1 dev gre_sg proto bird metric 32
=C2=A0 =C2=A0 198.8.84.0/24 via 10.0.5.1 dev gre_sg proto bird metric 32
=C2=A0 =C2=A0 198.8.85.0/24 via 10.0.5.1 dev gre_sg proto bird metric 32
=C2=A0 =C2=A0 198.8.86.0/24 via 10.0.5.1 dev gre_sg proto bird metric 32
=C2=A0 =C2=A0 198.8.87.0/24 via 10.0.5.1 dev gre_sg proto bird metric 32
=C2=A0 =C2=A0 198.8.88.0/24 via 10.0.5.1 dev gre_sg proto bird metric 32
=C2=A0 =C2=A0 198.8.89.0/24 via 10.0.5.1 dev gre_sg proto bird metric 32
=C2=A0 =C2=A0 root@ip007-20230227:~#



When I use ping, I did not got any output from tcpdump for interface gre_s=
g.
I think it would be better to paste the full output so we can communicate,=
 let's call it TEST 1.
--------------------------------------------- TEST 1 ---------------------=
------------------------

root@ip007-20230227:~# ping -I dummy2 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 46.23.100.0 dummy2: 56(84) bytes of data.


root@ip007-20230227:~# tcpdump -i gre_sg host 8.8.8.8 -v -v
tcpdump: listening on gre_sg, link-type LINUX_SLL (Linux cooked v1), snaps=
hot length 262144 bytes

root@ip007-20230227:~# tcpdump -i gre_sg host 8.8.8.8
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on gre_sg, link-type LINUX_SLL (Linux cooked v1), snapshot lengt=
h 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
root@ip007-20230227:~# tcpdump -i gre_sg host 8.8.8.8 -v
tcpdump: listening on gre_sg, link-type LINUX_SLL (Linux cooked v1), snaps=
hot length 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
root@ip007-20230227:~# tcpdump -i gre_sg host 8.8.8.8 -v -v
tcpdump: listening on gre_sg, link-type LINUX_SLL (Linux cooked v1), snaps=
hot length 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
root@ip007-20230227:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group =
default qlen 1000
=C2=A0 =C2=A0 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
=C2=A0 =C2=A0 inet 127.0.0.1/8 scope host lo
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
=C2=A0 =C2=A0 inet6 ::1/128 scope host
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
2: enp1s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP =
group default qlen 1000
=C2=A0 =C2=A0 link/ether 3c:ec:ef:ba:6c:80 brd ff:ff:ff:ff:ff:ff
=C2=A0 =C2=A0 inet 139.84.140.60/23 brd 139.84.141.255 scope global dynami=
c enp1s0f0
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft 75843sec preferred_lft 75843sec
=C2=A0 =C2=A0 inet6 2401:c080:3000:2a5c:3eec:efff:feba:6c80/64 scope globa=
l dynamic mngtmpaddr
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft 2591985sec preferred_lft 604785sec
=C2=A0 =C2=A0 inet6 fe80::3eec:efff:feba:6c80/64 scope link
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
3: enp1s0f1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group de=
fault qlen 1000
=C2=A0 =C2=A0 link/ether 3c:ec:ef:ba:6c:81 brd ff:ff:ff:ff:ff:ff
6: dummy2: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKN=
OWN group default qlen 1000
=C2=A0 =C2=A0 link/ether 2e:45:0b:65:83:40 brd ff:ff:ff:ff:ff:ff
=C2=A0 =C2=A0 inet 46.23.100.0/32 scope global dummy2
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
=C2=A0 =C2=A0 inet6 fe80::2c45:bff:fe65:8340/64 scope link
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
7: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 10=
00
=C2=A0 =C2=A0 link/sit 0.0.0.0 brd 0.0.0.0
10: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN group default qlen 1=
000
=C2=A0 =C2=A0 link/gre 0.0.0.0 brd 0.0.0.0
11: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN gro=
up default qlen 1000
=C2=A0 =C2=A0 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
12: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1450 qdisc noop state DOWN gro=
up default qlen 1000
=C2=A0 =C2=A0 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
14: sit2@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue stat=
e UNKNOWN group default qlen 1000
=C2=A0 =C2=A0 link/sit 139.84.140.60 peer 178.173.233.141
=C2=A0 =C2=A0 inet 10.0.2.2/24 brd 10.0.2.255 scope global sit2
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
=C2=A0 =C2=A0 inet6 2407:d340:7500:2::2/64 scope global
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
=C2=A0 =C2=A0 inet6 fe80::8b54:8c3c/64 scope link
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
15: gre_sg@enp1s0f0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1476 qdisc noqueu=
e state UNKNOWN group default qlen 1000
=C2=A0 =C2=A0 link/gre 139.84.140.60 peer 178.173.233.141
=C2=A0 =C2=A0 inet 10.0.5.2/24 brd 10.0.5.255 scope global gre_sg
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
=C2=A0 =C2=A0 inet6 fe80::200:5efe:8b54:8c3c/64 scope link
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
16: twix: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq state UNKNOW=
N group default qlen 1000
=C2=A0 =C2=A0 link/ether 76:a0:c4:30:96:38 brd ff:ff:ff:ff:ff:ff
=C2=A0 =C2=A0 inet 10.0.4.2/24 scope global twix
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
=C2=A0 =C2=A0 inet6 fe80::c44f:2eff:fe15:8d02/64 scope link
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
root@ip007-20230227:~# tcpdump -i enp1s0f0 host 8.8.8.8 -v -v
tcpdump: listening on enp1s0f0, link-type EN10MB (Ethernet), snapshot leng=
th 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
root@ip007-20230227:~# tcpdump -i any host 8.8.8.8 -v -v
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapsho=
t length 262144 bytes
11:57:26.104394 dummy2 Out IP (tos 0x0, ttl 64, id 34501, offset 0, flags =
[DF], proto ICMP (1), length 84)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 9579, seq 22=
1, length 64
11:57:27.128409 dummy2 Out IP (tos 0x0, ttl 64, id 34623, offset 0, flags =
[DF], proto ICMP (1), length 84)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 9579, seq 22=
2, length 64
11:57:28.152409 dummy2 Out IP (tos 0x0, ttl 64, id 34771, offset 0, flags =
[DF], proto ICMP (1), length 84)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 9579, seq 22=
3, length 64
11:57:29.176411 dummy2 Out IP (tos 0x0, ttl 64, id 34918, offset 0, flags =
[DF], proto ICMP (1), length 84)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 9579, seq 22=
4, length 64
11:57:30.200413 dummy2 Out IP (tos 0x0, ttl 64, id 35005, offset 0, flags =
[DF], proto ICMP (1), length 84)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 9579, seq 22=
5, length 64
11:57:31.224391 dummy2 Out IP (tos 0x0, ttl 64, id 35173, offset 0, flags =
[DF], proto ICMP (1), length 84)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 9579, seq 22=
6, length 64
11:57:32.248404 dummy2 Out IP (tos 0x0, ttl 64, id 35175, offset 0, flags =
[DF], proto ICMP (1), length 84)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 9579, seq 22=
7, length 64
^C
7 packets captured
8 packets received by filter
0 packets dropped by kernel
root@ip007-20230227:~# tcpdump -i any host 8.8.8.8 -v
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapsho=
t length 262144 bytes
11:57:37.368392 dummy2 Out IP (tos 0x0, ttl 64, id 36107, offset 0, flags =
[DF], proto ICMP (1), length 84)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 9579, seq 23=
2, length 64
11:57:38.392401 dummy2 Out IP (tos 0x0, ttl 64, id 36316, offset 0, flags =
[DF], proto ICMP (1), length 84)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 9579, seq 23=
3, length 64
11:57:39.416433 dummy2 Out IP (tos 0x0, ttl 64, id 36335, offset 0, flags =
[DF], proto ICMP (1), length 84)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 9579, seq 23=
4, length 64
11:57:40.440394 dummy2 Out IP (tos 0x0, ttl 64, id 36550, offset 0, flags =
[DF], proto ICMP (1), length 84)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 9579, seq 23=
5, length 64
11:57:41.464401 dummy2 Out IP (tos 0x0, ttl 64, id 36651, offset 0, flags =
[DF], proto ICMP (1), length 84)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 9579, seq 23=
6, length 64
11:57:42.488411 dummy2 Out IP (tos 0x0, ttl 64, id 36825, offset 0, flags =
[DF], proto ICMP (1), length 84)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 9579, seq 23=
7, length 64
^C
6 packets captured
7 packets received by filter
0 packets dropped by kernel


---------------------------------------------------------------------END O=
F TEST 1-----------------------------------------------------


For the second test, I switched to MTR. Let's call it TEST 2


--------------------------------------------------------------------------=
----------------TEST 2------------------------------
root@ip007-20230227:~# mtr -a 46.23.100.0 8.8.8.8


root@ip007-20230227:~# tcpdump -i any host 8.8.8.8 -v
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapsho=
t length 262144 bytes
12:02:37.138196 enp1s0f0 Out IP (tos 0x0, ttl 1, id 6453, offset 0, flags =
[none], proto ICMP (1), length 64)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 54563, seq 3=
3000, length 44
12:02:37.238495 enp1s0f0 Out IP (tos 0x0, ttl 2, id 6475, offset 0, flags =
[none], proto ICMP (1), length 64)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 54563, seq 3=
3001, length 44
12:02:37.338799 enp1s0f0 Out IP (tos 0x0, ttl 3, id 6498, offset 0, flags =
[none], proto ICMP (1), length 64)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 54563, seq 3=
3002, length 44
12:02:37.439118 enp1s0f0 Out IP (tos 0x0, ttl 4, id 6510, offset 0, flags =
[none], proto ICMP (1), length 64)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 54563, seq 3=
3003, length 44
12:02:37.539427 enp1s0f0 Out IP (tos 0x0, ttl 5, id 6528, offset 0, flags =
[none], proto ICMP (1), length 64)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 54563, seq 3=
3004, length 44
12:02:37.639748 enp1s0f0 Out IP (tos 0x0, ttl 6, id 6536, offset 0, flags =
[none], proto ICMP (1), length 64)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 54563, seq 3=
3005, length 44
12:02:37.740067 enp1s0f0 Out IP (tos 0x0, ttl 7, id 6561, offset 0, flags =
[none], proto ICMP (1), length 64)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 54563, seq 3=
3006, length 44


root@ip007-20230227:~# tcpdump -i gre_sg host 8.8.8.8 -v -v
tcpdump: listening on gre_sg, link-type LINUX_SLL (Linux cooked v1), snaps=
hot length 262144 bytes
^C
0 packets captured
0 packets received by filter

root@ip007-20230227:~# tcpdump -i enp1s0f0 host 8.8.8.8 -v -v
tcpdump: listening on enp1s0f0, link-type EN10MB (Ethernet), snapshot leng=
th 262144 bytes
12:03:46.936558 IP (tos 0x0, ttl 6, id 15388, offset 0, flags [none], prot=
o ICMP (1), length 64)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 54563, seq 3=
3971, length 44
12:03:47.008335 IP (tos 0x0, ttl 7, id 15405, offset 0, flags [none], prot=
o ICMP (1), length 64)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 54563, seq 3=
3972, length 44
12:03:47.079988 IP (tos 0x0, ttl 8, id 15412, offset 0, flags [none], prot=
o ICMP (1), length 64)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 54563, seq 3=
3973, length 44
12:03:47.151624 IP (tos 0x0, ttl 9, id 15426, offset 0, flags [none], prot=
o ICMP (1), length 64)
=C2=A0 =C2=A0 46.23.100.0 > dns.google: ICMP echo request, id 54563, seq 3=
3974, length 44
12:03:47.223336 IP (tos 0x0, ttl 10, id 15439, offset 0, flags [none], pro=
to ICMP (1), length 64)

------------------------------------------------END OF TEST 2-------------=
----------------------------------------

For netcat, let's call it TEST 3

For the method used by different tcpdumps, I send "hello" every time

--------------------------------------------------------------------------=
-------------TEST 3-------------------------------------------------------=
------------

root@ip007-20230227:~# nc -s 46.23.100.0 -u 8.8.8.8 53
hello
hello
hello

root@ip007-20230227:~# tcpdump -i enp1s0f0 host 8.8.8.8 -v -v
tcpdump: listening on enp1s0f0, link-type EN10MB (Ethernet), snapshot leng=
th 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
root@ip007-20230227:~# tcpdump -i gre_sg host 8.8.8.8 -v -v
tcpdump: listening on gre_sg, link-type LINUX_SLL (Linux cooked v1), snaps=
hot length 262144 bytes
12:09:16.198374 IP (tos 0x0, ttl 64, id 58243, offset 0, flags [DF], proto=
 UDP (17), length 34)
=C2=A0 =C2=A0 46.23.100.0.24017 > dns.google.domain: [bad udp cksum 0xa246=
 -> 0xbbc8!] domain [length 6 < 12] (invalid)
^C
1 packet captured
1 packet received by filter
0 packets dropped by kernel
root@ip007-20230227:~# tcpdump -i any host 8.8.8.8 -v
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapsho=
t length 262144 bytes
12:09:27.702784 gre_sg Out IP (tos 0x0, ttl 64, id 58244, offset 0, flags =
[DF], proto UDP (17), length 34)
=C2=A0 =C2=A0 46.23.100.0.24017 > dns.google.domain: domain [length 6 < 12=
] (invalid)

Last login: Tue Mar 21 11:37:12 2023 from 140.138.182.239
root@yxvm-2252644:~# tcpdump -i any host 8.8.8.8 -v
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapsho=
t length 262144 bytes
12:10:58.237149 vultr_IN In =C2=A0IP (tos 0x0, ttl 64, id 58245, offset 0,=
 flags [DF], proto UDP (17), length 61)
=C2=A0 =C2=A0 46.23.100.0.24017 > dns.google.domain: 18031 zoneInit [b2&3=3D=
0x7220] [29795a] [28261q] [24948n] [11296au] [|domain]
12:10:58.237168 eth0 =C2=A0Out IP (tos 0x0, ttl 63, id 58245, offset 0, fl=
ags [DF], proto UDP (17), length 61)
=C2=A0 =C2=A0 46.23.100.0.24017 > dns.google.domain: 18031 zoneInit [b2&3=3D=
0x7220] [29795a] [28261q] [24948n] [11296au] [|domain]
^C
2 packets captured
4 packets received by filter
0 packets dropped by kernel
root@yxvm-2252644:~# tcpdump -i eth0 host 8.8.8.8 -v
tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 2=
62144 bytes
12:11:22.977896 IP (tos 0x0, ttl 63, id 58246, offset 0, flags [DF], proto=
 UDP (17), length 34)
=C2=A0 =C2=A0 46.23.100.0.24017 > dns.google.domain: domain [length 6 < 12=
] (invalid)
^C
1 packet captured
1 packet received by filter
0 packets dropped by kernel
root@yxvm-2252644:~# tcpdump -i vultr_IN host 8.8.8.8 -v
tcpdump: listening on vultr_IN, link-type LINUX_SLL (Linux cooked v1), sna=
pshot length 262144 bytes
12:12:02.239933 IP (tos 0x0, ttl 64, id 58247, offset 0, flags [DF], proto=
 UDP (17), length 29)
=C2=A0 =C2=A0 46.23.100.0.24017 > dns.google.domain: domain [length 1 < 12=
] (invalid)

root@yxvm-2252644:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group =
default qlen 1000
=C2=A0 =C2=A0 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
=C2=A0 =C2=A0 inet 127.0.0.1/8 scope host lo
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
=C2=A0 =C2=A0 inet6 ::1/128 scope host
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,L
OWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
=C2=A0 =C2=A0 link/ether ba:5e:16:eb:32:7d brd ff:ff:ff:ff:ff:ff
=C2=A0 =C2=A0 altname enp0s18
=C2=A0 =C2=A0 altname ens18
=C2=A0 =C2=A0 inet 178.173.233.141/25 brd 178.173.233.255 scope global eth=
0
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
=C2=A0 =C2=A0 inet6 2404:92c0:233:2271:b85e:16ff:feeb:327d/64 scope global=
 dynamic mngtmpaddr
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft 2591779sec preferred_lft 604579sec
=C2=A0 =C2=A0 inet6 fe80::b85e:16ff:feeb:327d/64 scope link
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
3: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN group default qlen 10=
00
=C2=A0 =C2=A0 link/gre 0.0.0.0 brd 0.0.0.0
4: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN grou=
p default qlen 1000
=C2=A0 =C2=A0 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
5: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1450 qdisc noop state DOWN grou=
p default qlen 1000
=C2=A0 =C2=A0 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
6: gretap1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1462 qdisc fq state=
 UNKNOWN group default qlen 1000
=C2=A0 =C2=A0 link/ether c2:42:c3:89:8a:3d brd ff:ff:ff:ff:ff:ff
=C2=A0 =C2=A0 inet 10.0.0.1/24 brd 10.0.0.255 scope global gretap1
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
=C2=A0 =C2=A0 inet6 2407:d340:7500:1::1/64 scope global
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
=C2=A0 =C2=A0 inet6 fe80::c042:c3ff:fe89:8a3d/64 scope link
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
7: dummy3: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKN=
OWN group default qlen 1000
=C2=A0 =C2=A0 link/ether 2e:7c:bc:6d:7d:f2 brd ff:ff:ff:ff:ff:ff
=C2=A0 =C2=A0 inet6 2407:d340:7100::1/128 scope global
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
=C2=A0 =C2=A0 inet6 2407:d340:7100::/128 scope global
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
=C2=A0 =C2=A0 inet6 fe80::2c7c:bcff:fe6d:7df2/64 scope link
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
8: dummy1: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKN=
OWN group default qlen 1000
=C2=A0 =C2=A0 link/ether 0a:29:d5:31:67:84 brd ff:ff:ff:ff:ff:ff
=C2=A0 =C2=A0 inet6 2407:d340:7500::1/128 scope global
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
=C2=A0 =C2=A0 inet6 2407:d340:7500::/128 scope global
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
=C2=A0 =C2=A0 inet6 fe80::829:d5ff:fe31:6784/64 scope link
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
9: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 10=
00
=C2=A0 =C2=A0 link/sit 0.0.0.0 brd 0.0.0.0
10: sit2@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue stat=
e UNKNOWN group default qlen 1000
=C2=A0 =C2=A0 link/sit 178.173.233.141 peer 139.84.140.60
=C2=A0 =C2=A0 inet6 2407:d340:7500:2::1/64 scope global
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
=C2=A0 =C2=A0 inet6 fe80::b2ad:e98d/64 scope link
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
11: vultr_IN@eth0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1476 qdisc noqueue =
state UNKNOWN group default qlen 1000
=C2=A0 =C2=A0 link/gre 178.173.233.141 peer 139.84.140.60
=C2=A0 =C2=A0 inet 10.0.5.1/24 brd 10.0.5.255 scope global vultr_IN
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
=C2=A0 =C2=A0 inet6 fe80::200:5efe:b2ad:e98d/64 scope link
=C2=A0 =C2=A0 =C2=A0 =C2=A0valid_lft forever preferred_lft forever
root@yxvm-2252644:~#-

-----------------------------------------------------------END OF TEST 3--=
------------------------------------------------

This is the full mash BGP routing table. Please check the email attachment=
.

https://drive.google.com/file/d/1HWuVecElPgHt2VKvFxq88-YFOiP-ecrT/view?usp=
=3Ddrive_web

I think it might have something to do with the software calling network-re=
lated modules(netcat follows IP rule but mtr and ping don't), but if some =
software doesn't obey the ip rule, then it will be a problem (the ip -6 ru=
le doesn't have this problem)


Best,

-----------------------5f98716da8c126379f94cbc1946e21c1
Content-Type: application/pgp-keys; filename="publickey - [email protected] - 0x3063182D.asc"; name="publickey - [email protected] - 0x3063182D.asc"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="publickey - [email protected] - 0x3063182D.asc"; name="publickey - [email protected] - 0x3063182D.asc"

LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCgp4c0ZOQkY2VHo3RUJFQURnbTNi
ckM3Z2JCekcvZEhRVXV4a1A4ME16Q3lUQVd3dVpJbVhVY2NaaFE0VG8KdC9POUJ3ZUZGR2N2RE0r
STdxVTR6MkJObUwvYXZpMHk0ZGhYVHJzTDRSVUFoOE5JOXVZbkoyNmhXOFZVCmVkckJqV2ZmVTRm
Z2VkVTNpYnpGMi9wL1RWYk0yVGdJRGZ5MGlyWlZydzYrKzNWVGprdGFDSGp1MUoyYQozNmlsakVN
ZmNPU1FENW9LVjN6NllyWTcwTjZ4QVBwcGlWQmU1aDVCNG1KcHBOU1kveHNOS3ZESU1oQlAKUGRj
emJnaTV4VGxkTDlZY3VkUk9sMmExR1prZGxGMk1BcExmWUJ5QVNMS2VRUC9YK2N2Ykp5RWN3ODRi
CkFDY3lDeHQzR3YyZUlmVCtuVm9DZ01xVmxIS1IrT0ZWRWRhR2d1QnduNW0xb3dxTHFxS1Q4dEJC
Ykx1awpnWUtQcW8xRHZzYUtKcDMzclZPcTFNZFA2YzlRbmR5YU93V2tqSEsySzlaRTVueWhaN3Rz
MUFZZTVxWjUKblY0WURkOWtlV0RMOXVPUlpJWmx0d1kyeGd5VjhrdFcyZDhNdEhxMFp5YmxsanpU
ZGdrVnlGUnB4ajhyClkvakRkeGJKVC9CSXJVVXhGZG45b1MvWGxhYTloSUFuMVgzNmNobVpsTDJH
ZDd5NkdOTEUxelYrWGNTRwpvcFN5SW5xRVg2TWxaTzdQVHpJQUpTSFkyZmR1ZW53dm50QUZvaXp1
MGs2NUUra2dpcnUwaklYYk96WFAKOVZtZlJkcWVIN3pBV2EzTGRieU5QcTVxVFFsdmh6aHlJYks0
NFNSdzk3U3o1S2Q3MzVLeS95SWE4dEIwCnlBd0pHaTVBMkN1ZFpzM2RoRVVrazZRQm5XaVEzc1JX
SkxvMXR3QVJBUUFCelRkSWRXbDVkWHBsWDFwbwphVUJ3Y205MGIyNXRZV2xzTG1OdmJTQThTSFZw
ZVhWNlpWOWFhR2xBY0hKdmRHOXViV0ZwYkM1amIyMCsKd3NHTkJCQUJDQUFnQlFKZk43UlFCZ3NK
QndnREFnUVZDQW9DQkJZQ0FRQUNHUUVDR3dNQ0hnRUFJUWtRCitCeUZTcU8vUmZjV0lRUXdZeGd0
eU4zSUtWTW4yV2o0SElWS283OUY5L0k3RC80dmdrR2czQWJoaUh2MQp3WWFyWVc1eDdLZ3U1bjVz
M2hIRFVNWk1BRnVPcndXUDlQRU5CZ3I4NCsxak9HQ2V1OHZ2NFo3THJZbGoKNHZjVUtJNnk1U2dV
bEJBcVhXTDdITkZHanRxMnZYSU5TUGpsVUNQRTJWRDE0UTFmMlJlZC9kVTZPQUN2ClorZzhLUTRv
dkhvQ01rVVRob0hodlU2RDdIbmVYYTZrNHBVRitlL0pMZjRBZzZnTHVjUU1ROVRsQkloRAo0dU1q
N2hHSkViT1lrUG0rcno5QUEycHNETmxlYjRVbGJpOHR5dG1JVHpMS2hBTS82VWxHQmRrMEphVEQK
R2pxQ3RxMCtBMjQ3ckhWQWwrVW9HSDZGeU1MNnlTRUZBWk1KNEFycS92cWhjUE9lZjlZMm9LbjJV
RHliCnZNSUJKUUVvQ3NyeGk2a2h0MENVSHVaelQyMitWTXRGZjVpdXdJQ1pXSkM4cStlTXVCajk3
QUx4cllVYQpLbUlFNmdUVzROZjVML3pYUGhTZWNlOEdHUno2TndZZ2JZTmN2eFlqa2x6ZU0wSWFR
Y0VORS9TT3VMRzUKRjhIY1pTbGYyeVd0eDQwMGFkTVk1cEtWRW1pN2U5KzRvbzJaeU9WalRwS2RF
eHFzZGV6amNhZnZYV1JtCjl1clU3STh0ZVltdDluN0F0ZU5IS3MyU2dnNFhJQWFyVm9MY09RamFq
MFg4SjArUzdsN3JndVZWajNRTAppN0oxdlpwVTI5TjNZZ0VQMVgyUkFFNHdzSlBobDJJa1ZpWGJ4
U3l2Uk5YMUx1ck00d1kxTjBMeFk4SHoKV3Zuc1JBUkdtTjdmNThsd0l0YWkyM0hNcmRMRGV5Nm81
UXBLVkJhWVVBUlpvbGNMNXdEV04vZXFnOVBjCjVENm9lZ1dzeGM3QlRRUmVrOCt4QVJBQTZPWlYv
eXNpSlM3OWxlelJWQUV2WWZoWmRVVkgwenZUK1JTYwo5cjh3Yzd6N0dDNjlaMnphTWV4MnZtSFFG
WVhINlJDZk9ndXBaK2hpY0U0UXhmb2F3cE5nMEM1Q1dPRE8KaDYrVXJGeXo2a2ZDKzhmczJFRm1n
dTRSMXlYL0FEemIveDYzOUhaSXhHeExFcTVQSTBFZXdoMmU2d3FwCjVGckNnVFFtOGFyOVdRRk5h
OFFWaFdNVzdzREJyY29WNGIzV0thUkhkd21ENm56QUlDWmE2c002U2tqKwpuWXVvQWM5c2VMc2Zs
eHUxTmZiOUN6c3Q4dEtFS1Q3bXJaY0RPdVE5dVF2K1h1dFg4dWdmYW9zUXNRd28KTkhlcVl1TkJH
SEJxSDY2dXVGRG1DK2RvbnZUZXVMSUE4VmVJQUV5c29SemM1dXY5S2MwRjBjdVVSV1dFCml2Vmlw
TDdhREh1ZGdMOFg4WUk4UFN4Tk80dGFsL0NlVGF4TFRrbTh3QkYzc2M2M2FEd1I0aStDL21jSQpp
NXNDMUlkR0hydjV3MXkwZCswYi90eWpYT1luNERvakRsa3Q0WVV3RTNrVG10Z3QyUzdlcFg0RHhP
WWkKQTVhNG5TVjZjM2IzaWlTdERuKzViZDFObkV5Y0UrbGJYbndZYlJFQkdYNmR5dUk2amN2RDZX
WlIyWVFKClNCTFRvaWhlSklCVkliUzJQMDVxQ2FkUldBaUdUaW5oQi94bjdyVHFUanJVNFpNQVVO
YUxYZTVwTTBDbwpsVEE0SlNUYnY2TFA4bys2MTB5cWp5V0xoeTgwVW9kcHFlbTJmQzh5eWo1aWZh
TW1NalRueVB1WHJEVUwKTnVHcFN3R200WVlpYVlUUWxQVVQvQ09uT0VBRks3TC9xRUJ1RGhwQ080
L09taGNBRVFFQUFjTEJkZ1FZCkFRZ0FDUVVDWHplMFVBSWJEQUFoQ1JENEhJVktvNzlGOXhZaEJE
QmpHQzNJM2NncFV5ZlphUGdjaFVxagp2MFgzOHlJUC9pMVlmVHY0VWc1amtzUjlBaitmVHZRVFNj
ZzFyUTdvUlB6QXY2NWNYUlhGekd3aXhFSWgKa0Y0Q3c5TEpIdk9XYVpNeTRDaG9lTktKU3EwTEhN
N21ETkRhS1JqejZpTUVTWU0zVWYwZ0tmb3pWN05hClVxaGllaERuUEN6cVQ5ZytTd0l5dlMwd2xU
eThWY1YzQVNFS2RobEdIc2dOb2pHVVFVK0lNa21TbnpXYwpRRG9YSnB2UEhXWnVYMkFuQm10b1Nz
Z0hlOXZkQjhuNnVEa3puMmYzOFRFVnpaTWdzVngrNGFUeHpzVDgKbmR3K2FFQUtqLzBCS1ZTNnU4
YmNWeVNxSUdHSGJxV3NzQVBRaGRDaHJSSEs3ZTk1dUtrdjRsWC9WTGJPCkQ4emVveXJ3TjBHcWJK
dm5Gc3NMV0V5WXV5RUE4c3l5cXJ1TkV6N281dml0d0VCOUMxNWFtY1NtNUZNYwo2YmFyeTB1S29q
S0phM2lhTHF2NE9sejBBaXEyUGZXYXZ2RmtscjFoWm1aMTN3bFJKMWtiMHIvOTU1aUMKekFBU25G
alRuUVJ1SkZjUCs2MHg2a0xTRnZ6NXJRVEdORUFTR1d4Sy9lblo2dWdJaVhHTnhQWGtqT0ZaClZI
SDNKZm5jQVYzMURZNnd0MTRob3FxRzA2dENiZXY4MFJqYWx0NTVOZ0drV2E1aGVDZ3BpSUcwZ2xq
TQpRbW82TzBvWjBBU0hPNDVtM2pSV3pFMkd5bXpCVHRsd0IySTBLeTZxSHRFcUJEc1lndzlrZWMr
dm5oMmwKVEJsR05IaFF2TXBCZFFMNUI1cFFSbEV5MmhYS3hRKzZlR1RLUVl5bHFybDF2c3g2S3RM
OFBIUkxRdTEwCmJlWU5mNmVlN2lxajdzSWY1bFBJUkEwd0NrNEdqSi9aCj1zeEVFCi0tLS0tRU5E
IFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS0K
-----------------------5f98716da8c126379f94cbc1946e21c1--

--------08139fa4bd6cc4d6cbf80aab7ccef6a65182d0b5c0efa4d407af102e3a139fd5
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: ProtonMail

wsFzBAEBCAAnBQJkH+78CRD4HIVKo79F9xYhBDBjGC3I3cgpUyfZaPgchUqj
v0X3AAChjxAAyiwcZLtifI1V+Q5C+s3b37ssCjzsCjwZ1OIyEPrq83/Bp4Zz
709j7Z4s9HAJ7AOGWwHze5qqSFRGXTIhUoHVAzlVlkvaoBil2656E9VvSZr5
ED3mxNo1wvaY05kmSodGLWwqHLiIpb8h5iik2UDWQ/fk02enyx25qsgwMUbD
uoYm3fHSyLf+oR2SajM8BxV7U6UIzeOsIJO2Ms/UWa985w9sqpBterw965Z8
uqpdls+hskGLdvkX5S8mVh+CwciNdwuaolox26VjGyaEfoxvEdDyLvhFL/MD
fkIx71tXBrNrn9QHJ6qNmkLzr30Bw/7VmaozgYmVVcbg8+ew1me1gYl/okpc
QKt7msn2PyEgGJZsDRzP/IWExbb2z8qqZ/MI+TVP0esp4Y/YVpM8nOILBmxp
kINlX6YTRdsn/1tceU+8g2VrJcgXi/2lVzOybpT7YDxnQ8fKtL0URgzxZudY
6IRhplHig30oeYrf/IZ7MQUD7CflvWdoEGXmSwXtW4Z78jKVFYsOtMWawtp7
Znjc1UxcNAuR1e6puLxlaNO5l0mr8/A6+PsY8jTJr0F19KnX+wCHll7OPcxo
e3Igrao8bd9S7RYF2u9CTUhTdozjvGr23RfU++NcdkoLwpKya9l0leTD8Lig
8XITwr8Gp7rYfOPFnEgQOVf2eRJkwG9iAJg=
=GYyy
-----END PGP SIGNATURE-----


--------08139fa4bd6cc4d6cbf80aab7ccef6a65182d0b5c0efa4d407af102e3a139fd5--