[freebsd] setfib и 2-й провайдер
Eugene Grosbein
eugen at grosbein.net
Mon Jul 24 14:27:36 EEST 2017
On 24.07.2017 18:09, Alexey Krylov wrote:
> Здравствуйте.
>
> Я так понимаю, что тема эта избита, но никак не могу понять в чем проблема.
> Есть сервер с 2-мя интернетами со статическими адресами.
>
> /etc/rc.conf
> # Internet 1
> ifconfig_re2="inet xx.xx.xx.xx netmask 255.255.255.252 fib 0"
> route_inet1="default xx.xx.xx.x1 -fib 0"
>
> # Internet 2
> ifconfig_re1="yy.yy.yy.yy netmask 255.255.255.128 fib 1"
> route_westelecom="default yy.yy.yy.y1 -fib 1"
>
> ifconfig_gif0_name="flm1"
> ifconfig_flm1="inet 172.16.0.25 172.16.0.26 netmask 255.255.255.252 tunnel yy.yy.yy.yy rr.rr.rr.rr fib 1"
>
> =======================
> rr.rr.rr.rr-ip удаленного сервера
>
> setfib 0 ping 172.16.0.25
> пакеты не ходят
>
> setfib 1 ping 172.16.0.25
> PING 172.16.0.25 (172.16.0.25): 56 data bytes
> 64 bytes from 172.16.0.25: icmp_seq=0 ttl=255 time=0.014 ms
>
> setfib 0 ping 172.16.0.26
> PING 172.16.0.26 (172.16.0.26): 56 data bytes
> ping: sendto: No route to host
>
> setfib 1 ping 172.16.0.26
> PING 172.16.0.26 (172.16.0.26): 56 data bytes
> ping: sendto: No route to host
> а должно же работать...
>
> setfib 1 netstat -rn
> Routing tables (fib: 1)
>
> Internet:
> Destination Gateway Flags Netif Expire
> default yy.yy.yy.y1 UGS re1
> 172.16.0.25 link#10 UHS lo0
> 172.16.0.26 link#10 UH flm1
> ...
>
> netstat -rn
> Routing tables
>
> Internet:
> Destination Gateway Flags Netif Expire
> default xx.xx.xx.x1 UGS re2
> 172.16.0.26 link#10 UH flm1
> а тут lo интерфейса нет почему-то
Первым делом, нужно понимать, что в FreeBSD не существует никакого
"наследования" fib-ов. Вланы не "наследуют" fib от родительского интерфейса
и по дефолту используют нулевой fib, если не переопределить.
Интерфейсные адреса не "наследуют" fib от интерфейса, на котором они назначены
и принадлежат нулевому fib, если не переопределить (fib интерфейса используется
при роутинге транзитных пакетов).
Инкапсулированные пакеты gif не "наследуют" fib оригинальных пакетов.
Поэтому делай лучше так (обрати внимание на tunnelfib):
ifconfig_re2="fib 0"
ifconfig_re2_alias0="inet xx.xx.xx.xx netmask 255.255.255.252 fib 0"
route_inet1="default xx.xx.xx.x1 -fib 0"
ifconfig_re1="fib 1"
ifconfig_re1_alias0="yy.yy.yy.yy netmask 255.255.255.128 fib 1"
route_westelecom="default yy.yy.yy.y1 -fib 1"
ifconfig_gif0_name="flm1"
ifconfig_flm1="fib 1 tunnelfib 1"
ifconfig_flm1_alias0="inet 172.16.0.25 172.16.0.26 netmask 255.255.255.252 tunnel yy.yy.yy.yy rr.rr.rr.rr fib 1"
А вообще, неплохо бы для начала объяснить исходную задачу,
чтобы можно было отвечать не формально, а по сути.
More information about the freebsd
mailing list