Juniper Networks' Olive

Juniper Networks' Olive

http://www.packetmischief.ca/juniper/


Olive refers to a regular PC that's running Juniper Networks' JUNOS software. Juniper developed Olive early on so they could perform testing of JUNOS during development. These days Olive is deprecated in favor of cheap, low-end M and J-series routers.

Olive is in no way, shape, or form supported by Juniper or JTAC.

Olive requires a valid copy of a JUNOS jinstall file. This file can be found on a "real" Juniper router and/or obtained from Juniper under a support contract.

Preparing for Install

Requirements:

  • FreeBSD 4.x ISO image
  • A valid jinstall package for JUNOS <= 7.4
  • Intel network cards that use the fxp or em driver
  • Serial cable/null-modem cable

If you're reading this page you're probably aware that JUNOS is based on FreeBSD 4.x. A copy of FreeBSD will be used bootstrap into JUNOS.

The jinstall package is a literal FreeBSD software package (think pkg_add) that contains JUNOS. To do the initial install you'll need JUNOS 7.4 or earlier (more on this below).

The right network cards are crucial to having Olive do anything useful. As other sites have documented (see References), Intel-based cards are the only ones supported, specifically cards supported by the FreeBSD 4.x fxp and em drivers.

Just like the real deal, Olive systems are managed initially through their serial port. You'll need a serial cable or null-modem cable to manage the box and do initial configuration.

Installation

Install FreeBSD 4.x. A very generic installation is all that's required. Much of it gets blown away when you installl the JUNOS package anyways. Setup your disklabels like this:

ad0s1a    /          100M
ad0s1b    swap       1G
ad0s1e    /config    12M
ad0s1f	  /var       large (like, the rest of the disk)

During the first reboot after the JUNOS package is installed, the install script will repartition the disk appropriately if it doesn't like what it finds. The sizes listed above are what the script resized everything to in my Olive install.

After installation, boot the system normally, do a bit of tweaking and install JUNOS.

# rm /dev/wd0c && ln -s /dev/ad0c /dev/wd0c
# mkdir /var/etc
# touch /var/etc/master.passwd
# touch /var/etc/group
# touch /var/etc/inetd.conf
# pkg_add jinstall-xxx.tgz

At this point, if you tried to install anything higher than JUNOS 7.4 you'll get an error message and the pkg_add will stop.

ELF binary type "0" not known.
Abort trap

Whenever you upgrade JUNOS it always checks to make sure your PICs are properly supported by the version you're upgrading to. To that end, there is a binary within the package called checkpic. The checkpic binary in newer JUNOS packages causes the ELF error. Installing an older version of JUNOS and then upgrading to something newer seems to work just fine. I have a bit more info on checkpic here: checkpic.txt.

Once the JUNOS package is installed, reboot the system.

# reboot

Make sure your serial cable/null-modem cable is connected so you can watch the bootup and manage the box once it's up.

The system will reboot and run the bootstrap installer. It'll repartition the disk (if necessary), install more packages (jbase, jkernel, jpfe, etc) and then it'll reboot again. Once it comes back up you can login.

root@olive% cli
root@olive> show version
Hostname: olive
Model: olive
JUNOS Base OS boot [7.1R1.3]
JUNOS Base OS Software Suite [7.1R1.3]
JUNOS Kernel Software Suite [7.1R1.3]
JUNOS Packet Forwarding Engine Support (M20/M40) [7.1R1.3]
JUNOS Routing Software Suite [7.1R1.3]
JUNOS Online Documentation [7.1R1.3]
JUNOS Crypto Software Suite [7.1R1.3]

Limitations

Olive does have some limitations.

MTU on fxp and em Cards Limited to 1500 Bytes

The single greatest limitation is that MTU on the fxp and em NICs is locked at 1500 bytes by the driver. This impacts the ability to do vlan-tagging and MPLS. If you do configure an interface for vlan-tagging the router will drop the MTU of that logical interface to 1496 bytes in order to accomodate the dot1q header. So although everything works just fine, as soon as a full size Ethernet frame hits that interface it gets dropped.

root@olive> show configuration interfaces fxp1
vlan-tagging;
unit 100 {
     vlan-id 100;
     family inet {
         address 172.16.0.101/24;
     }
}

root@olive> show interfaces fxp1.100
   Logical interface fxp1.100 (Index 64) (SNMP ifIndex 22)
     Flags: SNMP-Traps VLAN-Tag [ 0x8100.100 ] Encapsulation: ENET2
   Input packets : 316
   Output packets: 51
     Protocol inet, MTU: 1496
       Flags: Is-Primary
       Addresses, Flags: Is-Default Is-Preferred Is-Primary
         Destination: 172.16.0/24, Local: 172.16.0.101, Broadcast: 172.16.0.255 

There is somewhat of a workaround (at least with the fxp cards) and that is to put the interface into promiscuous mode by either running tcpdump(8) from the shell or using the command monitor traffic interface.

Multicast Traffic doesn't pass on Intel GigE Cards

The GigE cards don't seem to pass multicast traffic. Running monitor traffic interface shows zero received mcast packets. This will obviously be an issue when running any routing protocol that uses multicast for HELLOs, etc.

Hardware Support

The following NICs have been tested and known to work with Olive:

  • Intel EtherExpress Pro 10/100B (82557, 82559 chipset)
  • Intel PRO/1000MT, PRO/1000GT

You will need a recent version of JUNOS in order to use the later generation 1000MT/GT cards.

Although I haven't been able to test this, I suspect any card supported by the FreeBSD 4.x fxp or em driver will work just fine.

Here is a show system boot-messages from my Olive system.

References

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值