![Route entsprechend Gateway von DHCP ändern](https://rvso.com/image/1641894/Route%20entsprechend%20Gateway%20von%20DHCP%20%C3%A4ndern.png)
Ich habe BGP auf meinem Router (mit Entware) so konfiguriert, dass einige Routen über VPN gesendet werden. Das hat funktioniert. Aber jetzt musste ich ein Gerät davon ausschließen (es darf nicht über den VPN-Tunnel gehen).
Meine Vogelkonfiguration
log syslog all;
log stderr all;
router id x.x.x.x;
function martians()
{
return net ~ [ 100.64.0.0/10+,
169.254.0.0/16+,
172.16.0.0/12+,
192.168.0.0/16+,
10.0.0.0/8+,
127.0.0.0/8+,
224.0.0.0/4+,
240.0.0.0/4+,
0.0.0.0/32-,
0.0.0.0/0{0,7}
];
}
protocol device {
scan time 15;
}
protocol kernel kernel_routes {
scan time 60;
import none;
export all;
kernel table 1000; # kernel routing table number
}
protocol static static_routes {
import all;
#route 192.168.2.62/32 via "eth3";
}
protocol bgp antifilter {
import filter {
if martians() then reject;
gw = 1.0.0.1; # override route nexthop
accept;
};
export none;
local as 64999; # local default as-number
neighbor y.y.y.y as 65432;
multihop;
hold time 240;
}
Tabelle 1000 wird erstellt, wenn eine VPN-Verbindung hergestellt wird
ip rule add iif br0 table 1000
An SBR habe ich versucht, diese Befehle zu senden:
ip rule add from 192.168.2.62 table 120
ip route add default dev eth3 table 120
Das Ergebnis ist jedoch „Netzwerk ist nicht verfügbar“.
Jetzt habe ich das probiert
ip rule add from 192.168.2.62 table 120
ip route add default via x.x.x.x dev eth3 table 120
Und es hat funktioniert. Aber ich kenne das Gateway vom Netzbetreiber nicht, nicht zur Laufzeit. Es kommt über DHCP. Wie ändere ich die Standardroute in Tabelle 120 entsprechend den neuen Informationen von DHCP? Oder wie schließe ich sie in der Bird-Konfiguration aus?
Antwort1
Sie können einfach die Tabelle für Hosts anfordern main
, die die DHCP-Standardroute benötigen:
ip rule add pref 100 from 192.168.2.62 table main
ip rule add pref 200 iif br0 table 1000