Установите основной адрес IPv6

У меня есть/64 адресов IPv6, доступных одному из моих серверов (Ubuntu 12.04). Я связываю их как это:

auto eth0
    iface eth0 inet static
    address xxx.xxx.xxx.82
    netmask 255.255.255.248
    network xxx.xxx.xxx.80
    broadcast xxx.xxx.xxx.255
    gateway xxx.xxx.xxx.81

    iface eth0 inet6 static
    address xxxx::2
    netmask 64
    gateway xxxx::1

    pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/autoconf
    pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra
    pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra_defrtr
    pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra_pinfo
    pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra_rtr_pref

    up /sbin/ifconfig eth0 inet6 add xxxx::3/64
    # ... snip ...
    up /sbin/ifconfig eth0 inet6 add xxxx::25/64

Это работает, но приложения все используют xxxx::25 для их исходящих запросов, если конкретно не сказали иначе. Если я добавляю xxxx::26 в моем /etc/network/interfaces, они все начинают использовать это. Кажется, что они просто используют то, что самое большое количество.

Как я указываю определенный адрес, который будет использоваться в качестве значения по умолчанию? В моем случае я, оказывается, хочу использовать самый низкий адрес (xxxx::2), но я действительно хотел бы знать, как указать конкретный, должен потребность возникать в будущем.

1
задан 22 March 2014 в 08:16

1 ответ

Можно решить это путем изменения маршрута по умолчанию. Каждый маршрут в Linux имеет опцию определить исходный адрес по умолчанию. Если Вы определяете xxxx:: 3 адреса в Вашем маршруте тогда, что каждый будет использоваться по умолчанию:

/sbin/ip -6 route del default
/sbin/ip -6 route add default via xxxx::1 src xxxx::3

при показе таблицы маршрутизации Вы будете видеть результат:

/sbin/ip -6 route
default via xxxx::1 dev eth0  src xxxx::222  metric 1024

Одна вещь не упустить состоит в том, что адреса IPv6 находятся в предварительном состоянии, пока дублирующееся обнаружение адреса не было выполнено. Linux откажется использовать предварительный адрес в качестве исходного адреса по умолчанию. Это означает, что Вы, возможно, должны были бы добавить короткое sleep прежде, чем добавить этот маршрут так, чтобы адрес имел время, чтобы выйти из предварительного состояния и стать применимым.

3
ответ дан 10 November 2019 в 19:38

Другие вопросы по тегам:

Похожие вопросы: