Ubuntu là một bộ định tuyến IPv6 không lấy tuyến mặc định từ RA ngược dòng


1

Tôi đã có một hộp Ubuntu 14.04 hoạt động như bộ định tuyến gia đình của tôi. Tôi đã có một IPv6 / 64 được ủy quyền bởi ISP của tôi và tôi đang sử dụng RA và ứng dụng khách WIDE DHCPv6 để định cấu hình IPv6. Tất cả mọi thứ hoạt động tốt, ngoại trừ không có tuyến đường mặc định được thiết lập. Nếu tôi sử dụng radvdumpđể xem các gói RA trên giao diện WAN của mình và sử dụng gói đó để đặt tuyến mặc định theo cách thủ công, mọi thứ sẽ hoạt động hoàn hảo.

Tôi có thể (và hiện tại, tôi làm) chỉ cần đặt đặc tả tuyến thủ công này làm uplệnh trong /etc/network/interfacesgiao diện WAN, nhưng điều này không lý tưởng - có vẻ như mỗi khi ISP của tôi bảo trì, địa chỉ của bộ định tuyến thay đổi và tôi có để cấu hình lại một lần nữa. Tôi muốn có được tuyến đường từ RA, nhưng dường như tôi không thể có được tuyến đường đó. Tui bỏ lỡ điều gì vậy?

eth1là giao diện WAN của tôi và eth0là mạng LAN.

cài đặt hệ thống

root@nix $ grep ipv6 /etc/sysctl.conf
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.eth1.accept_ra=2         # The WAN interface
net.ipv6.conf.eth1.accept_ra_defrtr=1
net.ipv6.conf.eth0.accept_ra=0         # The LAN interface
net.ipv6.conf.all.accept_redirects = 0

Cấu hình RỘNG

interface eth1 # WAN
{
  send ia-na 1;
  send ia-pd 1;
  request domain-name-servers;
  request domain-name;

  script "/etc/wide-dhcpv6/dhcp6c-script"; # does resolvconf work
};

id-assoc pd 1 {
  prefix-interface eth0 { # LAN
    sla-id 0;
        ifid 1;
        sla-len 0;
  };
};

id-assoc na 1 {
};

cấu hình radvd

interface eth0
{
        AdvManangedFlag off;
        AdvOtherConfigFlag off;
        AdvSendAdvert on;
        AdvLinkMTU 1280;
        prefix ::/64
        {
                AdvOnLink on;
                AdvAutonomous on;
        };
};

/ etc / mạng / giao diện

# The loopback network interface
auto lo
iface lo inet loopback

# The LAN interface
auto eth0
iface eth0 inet static
        address 172.20.0.1
        netmask 255.255.255.0

# The WAN interface
auto eth1
iface eth1 inet dhcp
iface eth1 inet6 auto
        # My current workaround:
        up ip -6 route add default via fe80::21b:edff:feb2:d481 dev eth1

Bất kỳ trợ giúp sẽ được đánh giá cao!


1
Rõ ràng, phiên bản kernel trước khi 2.6.37âm thầm bỏ qua net.ipv6.conf.eth1.accept_ra=2. Rõ ràng, cách giải quyết là vô hiệu hóa chuyển tiếp trên giao diện WAN.
Ron Maupin

Hừm. Tôi đang trên 3.13.0. Việc vô hiệu hóa chuyển tiếp trên giao diện WAN chỉ khiến các phản hồi quay trở lại các máy LAN nội bộ.
justinian

Vâng, đó là kinh nghiệm của tôi rằng phần lớn hỗ trợ Linux IPv6 là thiếu sót. Nó không thực sự là một ưu tiên của Linux. Tôi thực sự không thấy vấn đề gì khi đặt mặc định thành địa chỉ liên kết cục bộ WAN. Thông thường, chúng tôi đặt nó vào giao diện, thay vì một địa chỉ, trên các bộ định tuyến thực và dường như đó là điều tương tự. Bạn sẽ nhận được nhiều hơn một /64từ ISP của bạn. Bạn thực sự có thể được ủy thác /56. Ít nhất là yêu cầu điều đó. Các ISP không được yêu cầu chỉ cung cấp cho bạn một mạng con IPv6 duy nhất.
Ron Maupin

Câu trả lời:


2

Linux tắt accept_rakhi chuyển tiếp được kích hoạt. Để buộc nó trên giao diện ngược dòng của bạn (giả sử eth0) bạn có thể sử dụng net.ipv6.conf.eth0.accept_ra = 2. Điều này buộc giao diện chấp nhận quảng cáo bộ định tuyến ngay cả khi bật chuyển tiếp.


Đáng buồn thay, eth1giao diện ngược dòng của tôi đã được accept_rađặt thành 2. Tôi đã phát hiện ra forwarding/ accept_ravấn đề khi nghiên cứu qua google, nghe có vẻ phù hợp hoàn hảo cho vấn đề của tôi, nhưng than ôi ...
justinian
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.