имеется работающий сервер softether + ISC-DHCP для раздачи адресов и маршрутов клиентам.
Сервер с двумя сетевыми + tap-интерфейс softether:
# ifconfig
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=c019b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,VLAN_HWTSO,LINKSTATE>
ether 08:02:ef:29:a6:94
inet xx.xx.xx.xx netmask 0xffffff00 broadcast xx.xx.xx.xx
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
bge1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=c0099<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWTSO,LINKSTATE>
ether 08:02:ef:29:a6:95
inet 10.0.9.3 netmask 0xff000000 broadcast 10.255.255.255
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet 127.0.0.1 netmask 0xff000000
groups: lo
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
ue0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 0a:94:ef:29:e6:9b
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33160
groups: pflog
tap_vpn: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80000<LINKSTATE>
ether 5e:ac:ef:ce:9b:60
hwaddr 58:96:fc:10:11:09
inet 172.16.0.1 netmask 0xffff0000 broadcast 172.16.255.255
groups: tap
media: Ethernet autoselect
status: active
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
Opened by PID 1281DHCP сконфигурирован следующим образом:
# less /etc/rc.conf| grep dhcp
dhcpd_enable="YES"
dhcpd_flags="-4"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
dhcpd_ifaces="tap_vpn bge1"
# less /usr/local/etc/dhcpd.conf
ddns-update-style none;
log-facility local7;
option ms-static-routes code 249 = array of unsigned integer 8;
option rfc-static-routes code 121 = array of unsigned integer 8;
subnet 172.16.0.0 netmask 255.255.0.0 {
authoritative;
range 172.16.0.10 172.16.255.254;
option domain-name-servers 10.0.1.2, 10.0.1.4;
option netbios-node-type 8;
option routers 172.16.0.1;
option broadcast-address 172.16.255.255;
option ms-static-routes 8,10, 172,16,0,1, 24,192,168,30, 172,16,0,1;
option rfc-static-routes 8,10, 172,16,0,1, 24,192,168,30, 172,16,0,1;
default-lease-time 600;
max-lease-time 7200;
}
Это работает, клиент по vpn подключается, получает адрес из сети 172.16.0.0 и маршруты для 10.0.0.0/8 и 192.168.30.0/24:
IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.216 4250
0.0.0.0 0.0.0.0 On-link 172.16.0.20 26
10.0.0.0 255.0.0.0 On-link 172.16.0.20 26
10.255.255.255 255.255.255.255 On-link 172.16.0.20 281
127.0.0.0 255.0.0.0 On-link 127.0.0.1 4556
127.0.0.1 255.255.255.255 On-link 127.0.0.1 4556
127.255.255.255 255.255.255.255 On-link 127.0.0.1 4556
172.16.0.0 255.255.0.0 On-link 172.16.0.20 26
172.16.0.20 255.255.255.255 On-link 172.16.0.20 281
172.16.255.255 255.255.255.255 On-link 172.16.0.20 281
192.168.1.0 255.255.255.0 On-link 192.168.1.216 4506
192.168.1.216 255.255.255.255 On-link 192.168.1.216 4506
192.168.1.255 255.255.255.255 On-link 192.168.1.216 4506
192.168.30.0 255.255.255.0 On-link 172.16.0.20 26
192.168.30.255 255.255.255.255 On-link 172.16.0.20 281
224.0.0.0 240.0.0.0 On-link 127.0.0.1 4556
224.0.0.0 240.0.0.0 On-link 192.168.1.216 4506
224.0.0.0 240.0.0.0 On-link 172.16.0.20 26
255.255.255.255 255.255.255.255 On-link 127.0.0.1 4556
255.255.255.255 255.255.255.255 On-link 192.168.1.216 4506
255.255.255.255 255.255.255.255 On-link 172.16.0.20 281
===========================================================================
Но с недавних пор группа товарищей кровь из носу захотела получать адреса непременно из внутренней сети 10.0.9.х. Дописал в конфиг dhcp subnet по аналогии
subnet 10.0.9.0 netmask 255.255.255.0 {
authoritative;
range 10.0.9.240 10.0.9.254;
option domain-name-servers 10.0.1.2, 10.0.1.4;
option netbios-node-type 8;
option routers 10.0.9.1;
option broadcast-address 10.0.9.255;
option ms-static-routes 24,192,168,30, 10,0,9,1;
option rfc-static-routes 24,192,168,30, 10,0,9,1;
default-lease-time 600;
max-lease-time 7200;
}
В softether, соответственно, добавил второй бридж к внутренней сетевой карте bge1
VPN Server/HUB0-LOCAL>BridgeList
BridgeList command - Get List of Local Bridge Connection
Number|Virtual Hub Name|Network Adapter or Tap Device Name|Status
------+----------------+----------------------------------+---------
1 |HUB0 |vpn |Operating
2 |HUB0-LOCAL |bge1 |Operating
The command completed successfully.
Клиент подключается, получает адрес из подсети 10.0.9.х, а вот маршрут к закрытой сетке 192.168.30.0/24 - почему-то не хочет передаваться:
IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.216 4250
0.0.0.0 0.0.0.0 On-link 10.0.9.250 26
10.0.9.250 255.255.255.255 On-link 10.0.9.250 281
127.0.0.0 255.0.0.0 On-link 127.0.0.1 4556
127.0.0.1 255.255.255.255 On-link 127.0.0.1 4556
127.255.255.255 255.255.255.255 On-link 127.0.0.1 4556
192.168.1.0 255.255.255.0 On-link 192.168.1.216 4506
192.168.1.216 255.255.255.255 On-link 192.168.1.216 4506
192.168.1.255 255.255.255.255 On-link 192.168.1.216 4506
224.0.0.0 240.0.0.0 On-link 127.0.0.1 4556
224.0.0.0 240.0.0.0 On-link 192.168.1.216 4506
224.0.0.0 240.0.0.0 On-link 10.0.9.250 26
255.255.255.255 255.255.255.255 On-link 127.0.0.1 4556
255.255.255.255 255.255.255.255 On-link 192.168.1.216 4506
255.255.255.255 255.255.255.255 On-link 10.0.9.250 281
===========================================================================
Пока вышли из положения прописыванием маршрута на клиенте вручную.
Но вопрос "почему так" и "что делать" - остался. Почему в одном случае маршруты отсылаются клиенту, а в другом - нет? И как это поправить?