On 03/05/14 10:55, Alexey Markov wrote:
Имеется сервер на FreeBSD 8.4-RELEASE-p6, на интерфейсе em1
создан VLAN #66 с сеткой 172.16.96.0/22 (именно /22!), других
адресов на сервере нет.

172.16.96.0/22 это 172.16.96.0 -
172.16.99.255
Пытаюсь настроить на нём OpenVPN 2.3.2
так, чтобы он выдавал клиентам адреса из сетки 172.16.97.0/22,

А такой сети быть не может. Наверно 172.16.97.0/24 ?

с использованием proxy-arp. Но при попытке добавления записи
в ARP таблицу я получаю:

/usr/sbin/arp -s 172.16.97.2 00:1e:67:03:14:f4 pub
cannot intuit interface index and type for 172.16.97.2
...skip...
vlan66: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=103<RXCSUM,TXCSUM,TSO4>
        ether 00:1e:67:03:14:f4
        inet 172.16.96.2 netmask 0xfffffc00 broadcast 172.16.99.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 66 parent interface: em1
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet 172.16.97.1 --> 172.16.97.1 netmask 0xffffff00
        Opened by PID 97556

Попробуй прописать 72.16.97.1 (tunnel endpoint) как alias на vlan66 а клиентам выдавать ip начиная с 72.16.97.2

Чтобы получалось что то вида
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
         options=80000<LINKSTATE>
         inet 172.16.97.1 --> 172.16.97.2 netmask 0xffffff00
И mtu на tun0 должен быть не 1500 а меньше.

А вообще зря в своё время ARP-стэк в коде совместили с L3 таблицей маршрутизации. Это немного уменьшило объем copy-paste в коде (хотя возможны и другие методы уменьшить дублирование кода), но породило ворох разных проблем.

Некоторое время назад ARP и L3 routing неможко расплели, но не до конца, так что скорей всего и в 10-ке будут такие же грабли :( Я в свое время это место в коде смотрел - там нагромождение грязных хаков, думаю его просто боятся трогать, чтобы не сломать то что сейчас работает.

Ответить